# Solving a third order ODE in MATLAB

11 vues (au cours des 30 derniers jours)
Sergio Manzetti le 9 Fév 2018
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
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponse acceptée

Karan Gill le 12 Fév 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 commentairesAfficher AucuneMasquer Aucune
Sergio Manzetti le 13 Fév 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 le 13 Fév 2018
What do you mean by "other methods"?

Connectez-vous pour commenter.

### Plus de réponses (3)

Sergio Manzetti le 14 Fév 2018
Wolfram alpha, it solves it without any problems.
##### 2 commentairesAfficher AucuneMasquer Aucune
Sergio Manzetti le 14 Fév 2018
Thanks
Karan Gill le 14 Fév 2018
Modifié(e) : Karan Gill le 14 Fév 2018
Is this what you tried? Didn't work for me.
Could you post your input to Wolfram?

Connectez-vous pour commenter.

Sergio Manzetti le 15 Fév 2018
Modifié(e) : Sergio Manzetti le 15 Fév 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 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
Karan Gill le 15 Fév 2018
Thanks for catching that. I also noticed the third condition is different.
Torsten le 15 Fév 2018
... and I'm surprised that the solution does not depend on "a".

Connectez-vous pour commenter.

Sergio Manzetti le 15 Fév 2018
It doesn't matter, abs(Y) did not yield results with either methods, while the former, Y, yielded result only in wolfram.
##### 2 commentairesAfficher AucuneMasquer Aucune
Karan Gill le 15 Fév 2018
Thanks for the clarifications. I'll investigate. Note that cond3 is different in your two codes.
Sergio Manzetti le 15 Fév 2018
Modifié(e) : Sergio Manzetti le 15 Fév 2018
Yes, I am aware of that.
Torsten, are there alternative ways to solve:
D3y - x^2y = ay, where a is some constant?

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Common Operations dans Help Center et File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by