matlab里的ode45求解二阶微分方程问题!function xp=order2(t,x)global H h z o lamda M R m r l omega N B n g k1 k2 k delta Tpsi=atan(-k*H*0.5*sin(k*o-delta*t));w=-pi*H*delta*sinh(k*(z+h))*cos(k*o-delta*t)/(T*sin(k*h))+g;u=pi*H*delta*cosh(k*(z+
来源:学生作业帮助网 编辑:六六作业网 时间:2024/07/18 17:36:45
matlab里的ode45求解二阶微分方程问题!function xp=order2(t,x)global H h z o lamda M R m r l omega N B n g k1 k2 k delta Tpsi=atan(-k*H*0.5*sin(k*o-delta*t));w=-pi*H*delta*sinh(k*(z+h))*cos(k*o-delta*t)/(T*sin(k*h))+g;u=pi*H*delta*cosh(k*(z+
matlab里的ode45求解二阶微分方程问题!
function xp=order2(t,x)
global H h z o lamda M R m r l omega N B n g k1 k2 k delta T
psi=atan(-k*H*0.5*sin(k*o-delta*t));
w=-pi*H*delta*sinh(k*(z+h))*cos(k*o-delta*t)/(T*sin(k*h))+g;
u=pi*H*delta*cosh(k*(z+h))*sin(k*o-delta*t)/(T*sinh(k*h));
f=((w+g)*sin(psi)+u*cos(psi))/R;
xp=zeros(2,1);
xp(1)=x(2);
xp(2)=-x(2)*k1/k2+f*sin(x(1));
end
主要就是xp(2)=-x(2)*k1/k2+f*sin(x(1));这一句,k1和k2都是主程序里算出的常数,是不是global定义一下就行啦?还有f是上面算出来的,为什么带不进方程里 提示错误是
In an assignment A(I) = B,the number of elements in B and I must be the same.
Error in order2 (line 10)
xp(2)=-x(2)*k1+f*sin(x(1));
matlab里的ode45求解二阶微分方程问题!function xp=order2(t,x)global H h z o lamda M R m r l omega N B n g k1 k2 k delta Tpsi=atan(-k*H*0.5*sin(k*o-delta*t));w=-pi*H*delta*sinh(k*(z+h))*cos(k*o-delta*t)/(T*sin(k*h))+g;u=pi*H*delta*cosh(k*(z+
新的matlab版本好像不鼓励采用global了.你的全局变量有点多了,哈哈.
简单例子:
m=2;
[t,y]=ode45(@(t,x)f1(t,x,m),[0,10],[2])
function dy=f1(t,x,m)
y=m-x;