Second Order ODE basics?

6 Ansichten (letzte 30 Tage)
Michael
Michael am 4 Aug. 2014
Kommentiert: Star Strider am 4 Aug. 2014
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! :)

Antworten (1)

Star Strider
Star Strider am 4 Aug. 2014
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 Kommentare
Michael
Michael am 4 Aug. 2014
Thank you for the fast response. That was exactly the problem and now I understand why. Cheers!
Star Strider
Star Strider am 4 Aug. 2014
My pleasure!

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by