作者dooksp (頹廢的人)
看板MATLAB
標題[運算] ode解震動方程式 時間拉長有誤差
時間Wed Jul 5 11:01:06 2017
各位好
目前在利用ode解簡單的力學問題
方程式為 F=-kx
當我的dt設置的範圍再0至10(時間很短的情況下)曲線在+-1震盪
但當我dt設置範圍改為0至100時(時間拉長了)曲線後來就不在+-1震盪了
想詢問是否有方法解決這個問題
感謝
以下是我寫
function dydt=odefcn(t,y,m,b,k,w)
dydt=zeros(2,1);
dydt(1)=y(2);
dydt(2)=-(k/m)*y(1);
-------------------------------------------
clear all
clc
m=1;
k=100;
b=0;
w=1
dt=[0:0.01:10];
y0=[1,0];
[t,y]=ode45(@(t,y) odefcn(t,y,m,b,k,w),dt,y0);
plot(t,y(:,1))
--------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.219.73
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1499223668.A.696.html
※ 編輯: dooksp (60.251.219.73), 07/05/2017 11:06:16
※ 編輯: dooksp (60.251.219.73), 07/05/2017 11:07:05
1F:推 sin55688: 依舊在+-1之間阿 07/05 20:31
2F:→ dooksp: 又改成 dt=0:0.01:100嗎 07/07 10:47