solving a second order linear differential equation

6 views (last 30 days)
hello everybody, I was trying to solve a simple pendulum second order linear differential equation of the form y''=-(g/l)*sin(y) while using the ode45 function. since it's a second order equation I understood that I have to manipulate the problem, so it will fit the ode45.
The mathematical manipulation I did is described in the attached picture.
I can't understand why my code fails...please help
g=9.8;
l=0.5;
t_span=[0 30];
teta0=deg2rad(60);
F=@(t,q) [q(2);-(g/l)*sin(q(2))];
[t,q]=ode45(@(t,q) F(t,q),t_span,teta0)

Accepted Answer

Mischa Kim
Mischa Kim on 23 Sep 2018
Edited: Mischa Kim on 23 Sep 2018
Almost there:
g = 9.8;
l = 0.5;
t_span = [0 30];
teta0 = deg2rad(60);
tetad0 = 0;
F = @(t,q) [q(2);-(g/l)*sin(q(1))]; % check your derivation
[t,q_t] = ode45(@(t,q) F(t,q),t_span,[teta0; tetad0])
This is a second order DE so you need two initial conditions, one for teta and one for tetad.

More Answers (1)

Eliraz Nahum
Eliraz Nahum on 23 Sep 2018
thank you very much... sometimes it's not about the code, but the mathematics :-)

Categories

Find more on Numerical Integration and Differential Equations in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!