usol(x) = [ empty sym ] for using dsolve with the following nonlinear 3rd oder ODE

4 views (last 30 days)
I am trying to solve this 3rd order nonlinear ode using symbolic solver and it returned usol(x) = [ empty sym ]. Can someone help me understand what is going on with this? I have included my code below. Thanks in advance.
syms u(x)
Du=diff(u,x);
D2u=diff(u,x,2);
ode=diff(u,x,3)+0.5*diff(u,x,2)*u==0;
cond1=u(0)==0;
cond2=Du(0)==0;
cond3=D2u(0)==1;
conds = [cond1 cond2 cond3];
usol(x)=dsolve(ode,conds)

Accepted Answer

Walter Roberson
Walter Roberson on 4 Dec 2017
There is no solution for that. The u(0)=0 condition forces u to be identical to 0. If you instead use the D2u(0)=1 condition, then that by itself forces u(x) = 6/(x+12^(1/3)) which can only reach 0 at x = +/- infinity.
  3 Comments
Walter Roberson
Walter Roberson on 5 Dec 2017
Differential equations can be solved numerically or as equations, creating the function for which the differential statements and the boundary conditions hold.
The combination
diff(u,x,3)+0.5*diff(u,x,2)*u==0
u(0)==0
when solved as equations, has only the solution u(x) = 0. That solution is consistent with u(0) == 0 and with Du(0) == 0, but it is not consistent with D2u(0) == 1
At the moment I do not have a description handy for what happens when you do a numeric solution to differential equations such as using ode45(). I will try to come up with some wording later.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!