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

5 visualizaciones (últimos 30 días)
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)

Respuesta aceptada

Walter Roberson
Walter Roberson el 4 de Dic. de 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 comentarios
Walter Roberson
Walter Roberson el 5 de Dic. de 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.
YX Sun
YX Sun el 5 de Dic. de 2017
Thank you Walter. Hope to hear more about this soon.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by