ISVR小蔡 发表于 2014-6-25 01:28

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的函数好像能让上面的代码变的更简便一点。但是不是很会。

有高手能帮我么?


ISVR小蔡 发表于 2014-6-25 02:22

补充一下,我解微分方程是为了计算微分方程对应的系统的能量。所以,不同的微分方程有不同的系统能量。我最终是想看随着kp和omeg的变化,系统能量是如何变化的。

chybeyond 发表于 2014-6-27 22:39

不知道lz追求的是程序简单还是效率高,如果是效率的话,对于循环次数较少,for循环效率可能更高一些

hiv5 发表于 2014-7-13 08:04

你那样改没改对。应该是在主函数里用循环的。
页: [1]
查看完整版本: ODE45如何解微分方程组