MATLAB Answers

Solving a non-linear second order ODE with Matlab

42 ビュー (過去 30 日間)
Whitewater
Whitewater 2015 年 4 月 29 日
コメント済み: Jan 2015 年 4 月 30 日
I am brand new to Matlab, but I have to find an approximate numerical solution to the following differential equation:
d^2p/dr^2+dp/dr*1/r-2*exp(m(r))*sinh(p)=0 OR p''+p'*(1/r)-2*exp(m(r))*sinh(p)=0
I have separated it (I think correctly??) into two first order ODEs:
y0'=y1 y1'=2*exp(m(r))*sinh(y1)
Now I am confused on how to input this into Matlab. Any help is greatly appreciated!

  0 件のコメント

サインインしてコメントする。

採用された回答

Torsten
Torsten 2015 年 4 月 29 日
Use UDE45 if your problem is an initial value Problem, use bvp4c if it is a boundary value problem.
Best wishes
Torsten.

  3 件のコメント

Torsten
Torsten 2015 年 4 月 29 日
Sorry, should read ODE45 instead of UDE45.
Best wishes
Torsten.
Torsten
Torsten 2015 年 4 月 30 日
And your system of equations must read
y0'=y1
y1'=-y1/r+2*exp(m(r))*sinh(y0)
Best wishes
Torsten.
Jan
Jan 2015 年 4 月 30 日
@Torsten: You know that you can edit your messages?

サインインしてコメントする。

その他の回答 (2 件)

Pratik Bajaria
Pratik Bajaria 2015 年 4 月 29 日
Hello,
ode45 must work for you. All you have to do is make a function handle, which carries your ode function that you have split into set of first order differential equations and then use ode45 solver in MATLAB to attain a solution.
Similar to example shown on this URL: ODE45
Hope it helps!
Regards, Pratik

  0 件のコメント

サインインしてコメントする。


Bjorn Gustavsson
Bjorn Gustavsson 2015 年 4 月 29 日
Another pointer...
You have in fact not separated your DE correctly. You get y1' directly from your DE if you change dp/dr with y1.
HTH

  0 件のコメント

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by