Solving a third order ODE in MATLAB

28 次查看(过去 30 天)
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

采纳的回答

Karan Gill
Karan Gill 2018-2-12
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 个评论
Sergio Manzetti
Sergio Manzetti 2018-2-13
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 2018-2-13
What do you mean by "other methods"?

请先登录,再进行评论。

更多回答(3 个)

Sergio Manzetti
Sergio Manzetti 2018-2-14
Wolfram alpha, it solves it without any problems.

Sergio Manzetti
Sergio Manzetti 2018-2-15
编辑:Sergio Manzetti 2018-2-15
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 个评论
Karan Gill
Karan Gill 2018-2-15
Thanks for catching that. I also noticed the third condition is different.
Torsten
Torsten 2018-2-15
... and I'm surprised that the solution does not depend on "a".

请先登录,再进行评论。


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

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by