MATLAB Answers

0

solving a second order linear differential equation

Eliraz Nahum さんによって質問されました 2018 年 9 月 23 日
最新アクティビティ Eliraz Nahum さんによって 回答されました 2018 年 9 月 23 日
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)

  0 件のコメント

サインイン to comment.

製品


リリース

R2018a

2 件の回答

Mischa Kim
回答者: Mischa Kim
2018 年 9 月 23 日
編集済み: Mischa Kim
2018 年 9 月 23 日
 採用された回答

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.

  0 件のコメント

サインイン to comment.


回答者: Eliraz Nahum 2018 年 9 月 23 日

thank you very much... sometimes it's not about the code, but the mathematics :-)

  0 件のコメント

サインイン to comment.



Translated by