matlab里的ode45求解二阶微分方程问题!!求大神!!在线等!

functionxp=order2(t,x)globalHhzolamdaMRmrlomegaNBngk1k2kdeltaTpsi=atan(-k*H*0.5*sin(k... 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));
求大神!!!
展开
 我来答
free_bsd
2014-05-09 · 超过12用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:38.2万
展开全部
新的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;
追问
那我下面写的对吗,就是方程里有一个f(t)太复杂了我就单独写出来了
追答
没问题
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式