作者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/cn.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