[運算] ode解震動方程式 時間拉長有誤差

看板MATLAB作者 (頹廢的人)時間7年前 (2017/07/05 11:01), 7年前編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
各位好 目前在利用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://www.ptt.cc/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

07/05 20:31, , 1F
依舊在+-1之間阿
07/05 20:31, 1F

07/07 10:47, , 2F
又改成 dt=0:0.01:100嗎
07/07 10:47, 2F
文章代碼(AID): #1PN5PqQM (MATLAB)
文章代碼(AID): #1PN5PqQM (MATLAB)