ODE45如何解微分方程组
本帖最后由 牛小贱 于 2014-6-25 11:06 编辑function yp=unforce1(t,y)
m=10; % mass
k=10+7*cos(4*t); % stiffnes in this case: kp=7; omeg=4
yp=;
end
tspan=
y0=; % initial displacement
=ode45('unforce1',tspan,y0);% ode45 simulatio上面是我自己写的用来求解单个微分方程的代码。但是我现在要解微分方程组,比如kp和omeg都是从1到8的变量。其余条件都不变。我可以手动设置kp和omeg的值从1到8。让程序运行64次。 但是一旦kp和omeg的值变大,手动计算太浪费时间了。所以来这里请教一下高人,如何让程序能快速有效的得到计算结果。
另外,我初步的更改了一下function的代码:
function yp=unforce2(t,y)
m=10; % mass
yp=zeros(64,1);
for kp=1:8
for omeg=0.5:0.5:4% 0.5 to 4
k=10+kp*cos(omeg*t); % stiffness
yp(n)=;
end
end
end
我从网上查到一个arrayfun的函数好像能让上面的代码变的更简便一点。但是不是很会。
有高手能帮我么?
补充一下,我解微分方程是为了计算微分方程对应的系统的能量。所以,不同的微分方程有不同的系统能量。我最终是想看随着kp和omeg的变化,系统能量是如何变化的。 不知道lz追求的是程序简单还是效率高,如果是效率的话,对于循环次数较少,for循环效率可能更高一些 你那样改没改对。应该是在主函数里用循环的。
页:
[1]