Matlab运行m文件时出现 Missing variable or function.作为初学者,完全不知道问题出在哪里,谢谢!

functionrkode(rho0,N0,b0,w0,g20,H0,g,lambda,alpha,zmin,zmax)globalglambdaalpha;M=[100... function rkode(rho0,N0,b0,w0,g20,H0,g,lambda,alpha,zmin,zmax)
global g lambda alpha;

M=[1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0];
%g=9.8;
%lambda=0.3;
%alpha=0.083;

Q0=pi*w0*b0^2;
M0=0.5*pi*(w0*b0)^2;
B0=pi*lambda^2/(1+lambda^2)*b0^2*w0*g20;

zspan=[zmin,zmax];
IC=[Q0,M0,B0,rho0,N0,b0,w0,g20];
options=odeset('Mass',M);
[z,Y]=ode15s(@odetest,zspan,IC,options)
hold on
plot(z,Y(:,6),'k-.');
plot(z,Y(:,7),'b-.');
plot(z,2*Y(:,8),'r-.');
legend('b','w','g2','Location','NorthEast');
hold off
return
function dy=odetest(z,y)
global alpha ;
[dimm dimn]=size(y);
dy=[2*pi*alpha*y(6,:).*y(7,:)
lambda^2*pi*y(6,:)^2.*y(8,:)
-pi*y(6,:).^2.*y(7,:).*y(5,:)];

return
展开
 我来答
WM_THU
2013-08-28 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3950万
展开全部
g,lambda,alpha到底是输入参数还是global变量呢?请区分清楚,不要重名。
追问
是输入参数,我完全不懂哎,能否详细解答一下应该如何更改?O(∩_∩)O谢谢!!!万分感谢!!!
追答
先看函数rkode
global g lambda alpha;
这一句是声明g lambda alpha为全局变量,也就是说是在函数外定义的变量,而函数的参数列表中又有这三个变量,因此会造成混乱;既然您说是输入参数,那就要把global一行删掉;
再看函数odetest

很明显,程序中用到了两个变量alpha 和 lambda,但是只有alpha 声明为global了,lambda则未定义。我猜想这两个参数应该也作为函数的输入参数,因此函数的参数列表里要再加上这两个变量,并且删掉global一句。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式