tangxi 发表于 2008-11-11 08:34

【请教】ODE中如何设置条件语句?

我用ODE解运动方程:Mx''+Cx'+Kx=f
下面是引用的程序

function tangxioder
clear;clc
x0=zeros(6,1);
=ode45(@tangxi,,x0);
plot(t,x(:,1))

function dx=tangxi(t,x)
f=;
M=eye(3);
C=eye(3)*0.1;
K=eye(3)-0.5*diag(ones(2,1),1)-0.5*diag(ones(2,1),-1);
dx=;

我的问题是:我把f改成这样行不行?
if t<=3,
   f1=t*100;
elseif t>3&t<=6,
   f1=(6-t)*100;
else
   f1=0;
end
f=;
如果行的话,该如何安插?我试过放在原来的位置取代原来的 f 好像行不通

想了一整天了,烦请各位高手指教,先谢过了!

[ 本帖最后由 tangxi 于 2008-11-11 09:54 编辑 ]

sigma665 发表于 2008-11-11 09:26

回复 楼主 tangxi 的帖子

原来的f是3*1的

tangxi 发表于 2008-11-11 09:52

回复 沙发 sigma665 的帖子

不好意思,我改了一下

ch_j1985 发表于 2008-11-11 19:31

回复 楼主 tangxi 的帖子

将t分为三段求三次,不知可否?

tangxi 发表于 2008-11-12 02:27

回复 地板 ch_j1985 的帖子

我尝试了您说的,语言编排上老出错
而且分三段理论上行的通吗?

无水1324 发表于 2008-11-12 21:49

回复 楼主 tangxi 的帖子

这里面是对时间进行分段,上面的做法是不合理的
需要调用event这个函数,你查一下ode45
就知道了

tangxi 发表于 2008-11-12 23:36

回复 6楼 无水1324 的帖子

感谢院长,我按您说的试试
页: [1]
查看完整版本: 【请教】ODE中如何设置条件语句?