Third-order nonlinear ODE with boundary condition

Click For Summary
SUMMARY

This discussion focuses on solving the third-order nonlinear ordinary differential equation (ODE) given by u'''(t) + (u/2)u''(t) = 0 with boundary conditions u(0)=0, u'(0)=0, and u(10)=1. The user seeks both analytic and numerical solutions, utilizing Mathematica's NDSolve for numerical methods and considering power series for the analytic approach. The Newton iterative algorithm is mentioned for numerical solutions, while MATLAB is specified for programming the algorithm without using libraries.

PREREQUISITES
  • Understanding of ordinary differential equations (ODEs)
  • Familiarity with Mathematica, specifically NDSolve
  • Knowledge of power series methods for solving differential equations
  • Basic programming skills in MATLAB for implementing numerical algorithms
NEXT STEPS
  • Explore Mathematica's NDSolve documentation for advanced usage
  • Research power series methods for analytic solutions of ODEs
  • Learn about the Newton iterative algorithm for numerical solutions
  • Study MATLAB programming techniques for implementing custom numerical algorithms
USEFUL FOR

Mathematicians, engineers, and students involved in solving differential equations, particularly those interested in both analytic and numerical methods for complex ODEs.

rosecat
Messages
2
Reaction score
0
I'm trying to solve a third-order nonlinear ordinary differential equation. I couldn't get the answer even using Mathematica.

The equation is:

u'''(t) + u/2 u''(t) = 0

with conditions u(0)=0, u'(0)=0, u(10)=1.

I need to get both analytic solution and numerical solution. For the numerical solution, I'm thinking the Newton iterative algorithm. But for the analytic solution, I really have no idea.
 
Physics news on Phys.org
rosecat said:
I'm trying to solve a third-order nonlinear ordinary differential equation. I couldn't get the answer even using Mathematica.

The equation is:

u'''(t) + u/2 u''(t) = 0

with conditions u(0)=0, u'(0)=0, u(10)=1.

I need to get both analytic solution and numerical solution. For the numerical solution, I'm thinking the Newton iterative algorithm. But for the analytic solution, I really have no idea.

I mean if you're using Mathematica, just use NDSolve:

Code:
myguesses = {0.1, 0.15, 0.2}; 
sols = (First[NDSolve[{Derivative[3][u][t] + (u[t]/2)*Derivative[2][u][t] == 0, u[0] == 0, Derivative[1][u][0] == 0, 
        u[10] == 1}, u, t, Method -> {"Shooting", "StartingInitialConditions" -> {u[0] == 0, Derivative[1][u][0] == 0, 
           Derivative[2][u][0] == #1}}]] & ) /@ myguesses; 
Plot[Evaluate[u[t] /. sols], {t, 0, 10}, PlotStyle -> {Black, Blue, Green}]

tweek it as you see fit. As far as an analytic solution, in an act of utter desperation, I would resort to power series.
 
jackmell said:
I mean if you're using Mathematica, just use NDSolve:

Code:
myguesses = {0.1, 0.15, 0.2}; 
sols = (First[NDSolve[{Derivative[3][u][t] + (u[t]/2)*Derivative[2][u][t] == 0, u[0] == 0, Derivative[1][u][0] == 0, 
        u[10] == 1}, u, t, Method -> {"Shooting", "StartingInitialConditions" -> {u[0] == 0, Derivative[1][u][0] == 0, 
           Derivative[2][u][0] == #1}}]] & ) /@ myguesses; 
Plot[Evaluate[u[t] /. sols], {t, 0, 10}, PlotStyle -> {Black, Blue, Green}]

tweek it as you see fit. As far as an analytic solution, in an act of utter desperation, I would resort to power series.
Thank you jackmell!

For the numerical solution, I have to write out the algorithm and programming in MATLAB. No library could be used.

For the analytic solution, I tried DSolve but It didn't work. I am trying the power series.

Again, thanks a lot!
 

Similar threads

Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
1K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 8 ·
Replies
8
Views
4K
Replies
4
Views
2K
  • · Replies 9 ·
Replies
9
Views
1K
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K