フィルターのクリア

Second Order ODE basics?

3 ビュー (過去 30 日間)
Michael
Michael 2014 年 8 月 4 日
コメント済み: Star Strider 2014 年 8 月 4 日
Hi there... I'm a bit confused on how to solve 2nd order ODE's in Matlab. I feel like I can correctly reduce the 2nd order system to a 1st order system on pencil and paper, but when I go to Matlab, things don't work out.
For example, I'm trying to solve:
and I have the code:
f = @(x) [x(2);sin(x)-x(1)-x(2)];
tSpan = [0 10];
initial = [1;0];
[t,y] = ode23(f,tSpan,initial)
but I can't figure out how to finish it. I feel like I'm interpreting the "x(1)" and "x(2)" incorrectly. On paper, those are the subscripts of my "new" variables.
Any help is appreciated! :)

回答 (1 件)

Star Strider
Star Strider 2014 年 8 月 4 日
You’re almost there. The ODE function needs to return a value for your independent variable as well as the derivative, and the argument to sin needs to be x(1). Otherwise your essential maths for converting the second-order ODE to two first-order ODEs is correct, so you can relax as far as that goes.
This works:
f = @(t,x) [x(2); sin(x(1))-x(1)-x(2)];
  2 件のコメント
Michael
Michael 2014 年 8 月 4 日
Thank you for the fast response. That was exactly the problem and now I understand why. Cheers!
Star Strider
Star Strider 2014 年 8 月 4 日
My pleasure!

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

カテゴリ

Help Center および File ExchangeOrdinary Differential Equations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by