Solving a third order ODE in MATLAB

Hi, MATLAB is quite about this command:
syms a h Y(x) g x B E T
D3Y = diff(Y, 3)
eqn = a.*D3Y -0.5*x^2*Y == (abs(Y))
D2Y = diff(Y, 2)
DY = diff(Y)
cond1 = Y(0) == 1;
cond2 = DY(0) == 0;
cond3 = D2Y(0) == 0
Y(x) = dsolve(eqn, cond1, cond2, cond3)
latex(Y(x))
Is there a limit here for solving it? Thanks

 Respuesta aceptada

Karan Gill
Karan Gill el 12 de Feb. de 2018
Do you not get this warning? If you got it, was the warning clear?
Warning: Unable to find explicit solution.
> In dsolve (line 201)
Y(x) =
[ empty sym ]
Try solving numerically using ode45 or similar.

2 comentarios

Sergio Manzetti
Sergio Manzetti el 13 de Feb. de 2018
Yes I did, but I was surprised, because it is readily solved using other methods. I will check out ode45, however I am not sure it will give an analytical solution.
Karan Gill
Karan Gill el 13 de Feb. de 2018
What do you mean by "other methods"?

Iniciar sesión para comentar.

Más respuestas (3)

Sergio Manzetti
Sergio Manzetti el 14 de Feb. de 2018

0 votos

Wolfram alpha, it solves it without any problems.

2 comentarios

Sergio Manzetti
Sergio Manzetti el 14 de Feb. de 2018
Thanks
Karan Gill
Karan Gill el 14 de Feb. de 2018
Editada: Karan Gill el 14 de Feb. de 2018
Is this what you tried? Didn't work for me.
Could you post your input to Wolfram?

Iniciar sesión para comentar.

Sergio Manzetti
Sergio Manzetti el 15 de Feb. de 2018
Editada: Sergio Manzetti el 15 de Feb. de 2018
I tried this on wolfram, which is the equivalent of this:
syms a h Y(x) g x B E T
D3Y = diff(Y, 3)
eqn = a.*D3Y -0.5*x^2*Y == Y
D2Y = diff(Y, 2)
DY = diff(Y)
cond1 = Y(0) == 1;
cond2 = DY(0) == 0;
cond3 = D2Y(0) == 1;
Y(x) = dsolve(eqn, cond1, cond2, cond3)
latex(Y(x))
and I got a result,Z = 1/3*(exp(x) + 2*exp(-x/2)*cos((sqrt(3)*x)/2)) , however, the result is now non-visible because of std computation time exceeded.

3 comentarios

Torsten
Torsten el 15 de Feb. de 2018
You used
eqn = a.*D3Y -0.5*x^2*Y == Y
instead of
eqn = a.*D3Y -0.5*x^2*Y == abs(Y)
Best wishes
Torsten.
Karan Gill
Karan Gill el 15 de Feb. de 2018
Thanks for catching that. I also noticed the third condition is different.
Torsten
Torsten el 15 de Feb. de 2018
... and I'm surprised that the solution does not depend on "a".

Iniciar sesión para comentar.

Sergio Manzetti
Sergio Manzetti el 15 de Feb. de 2018

0 votos

It doesn't matter, abs(Y) did not yield results with either methods, while the former, Y, yielded result only in wolfram.

2 comentarios

Karan Gill
Karan Gill el 15 de Feb. de 2018
Thanks for the clarifications. I'll investigate. Note that cond3 is different in your two codes.
Sergio Manzetti
Sergio Manzetti el 15 de Feb. de 2018
Editada: Sergio Manzetti el 15 de Feb. de 2018
Yes, I am aware of that.
Torsten, are there alternative ways to solve:
D3y - x^2y = ay, where a is some constant?

Iniciar sesión para comentar.

Etiquetas

Preguntada:

el 9 de Feb. de 2018

Editada:

el 15 de Feb. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by