马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 牛小贱 于 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=[y(2);-k/m*y(1)];
- end
- tspan=[0 500]
- y0=[5,0]; % initial displacement
- [t,y]=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)=[y(2);-k/m*y(1)];
- end
- end
- end
复制代码
我从网上查到一个arrayfun的函数好像能让上面的代码变的更简便一点。但是不是很会。
有高手能帮我么?
|