作业帮 > 综合 > 作业

matlab函数如何传入参数

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/30 12:25:21
matlab函数如何传入参数
这个是函数部分
function y=testf(t,x)
a=0.8;m = 0.01;b=0.1;
y=[-a*x(1)*x(2)+m*x(2)-b*x(1),a*x(1)*x(2)-b*x(2)-m*x(2),b*x(1)+b*x(2)]';
这个是执行部份
ts=0:0.1:50;
x0=[0.98,0.02,0.00];
[t,x]=ode45('testf',ts,x0);
plot(t,x(:,2),'b-'),grid,
这个是画的二维函数图,我想问一下,怎么把m作为参数传入函数,然后做m,t,和x(2)的三维函数,可能还有些问题,希望有缘人可以帮我
matlab函数如何传入参数
函数定义时,多加一个参数m
function y=testf(t,x,m)
a=0.8;m = 0.01;b=0.1;
y=[-a*x(1)*x(2)+m*x(2)-b*x(1),a*x(1)*x(2)-b*x(2)-m*x(2),b*x(1)+b*x(2)]';
执行部分
ts=0:0.1:50;
x0=[0.98,0.02,0.00];
mm=1:0.1:50; %不同的m取值,根据需要自己改
result=zeros(length(ts),length(m));
for i=1:length(mm)
m=mm(i);
[t,x]=ode45(@(t,x) testf(t,y,m),ts,x0);
result(:,i)=x(:,2);
end
imagesc(mm,ts,result);%画二维图
再问: Undefined function or variable 'm'.

Error in test (line 4)
result=zeros(length(ts),length(m));
我无法运行啊,出现这个请问怎么办呢
再问: 我改出来了,可是画出的图士平面的有颜色的那种图,我想画那种立体的三维图,就是像山峰那种形状的,可以告诉我一下怎么画吗
再答: 最后一句改
mesh(mm,ts,result);
再问: 实在太谢谢你了