Second Order ODE basics?
Afficher commentaires plus anciens
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! :)
Réponses (1)
Star Strider
le 4 Août 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)];
Catégories
En savoir plus sur Ordinary Differential Equations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!