作业帮 > 综合 > 作业

matlab求解x1’=a*x1-b*x1*x2 X2’=c*x1*x2-d*x2 其中a=2,b=0.01,c=0.0

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/06 04:36:14
matlab求解x1’=a*x1-b*x1*x2 X2’=c*x1*x2-d*x2 其中a=2,b=0.01,c=0.001,d=0.7.x1(0)=300,x2(0)=100
function dx=preyer(t,x,flag,a,b,c,d);
dx(1,1)=a*x(1)-b*x(1)*x(2);
dx(2,1)=c*x(1)*x(2)-d*x(2);
tspan=[0,14];
x0=[300,100];
a=2;
b=0.01;
c=0.001;
d=0.7;
[t,x]=ode45('preyer',tspan,x0,a,b,c,d);
figure;
plot(t,x(:,1),'k-');
hold on;
plot(t,x(:,2),'k');
set(gca,'Fontsize',12);
xlabel('\itt','Fontsize',16);
L=legend('{\itx}_1','{\itx}_2',0);
set(L,'Fontname','Times New Roman');
set(gcf,'color','w',[121 233 1121 406]);
这个程序哪里不对,最好把改好后的程序和图像一起,
1.新建function函数
function dx=preyer(t,x);
a=2;b=0.01;c=0.001;d=0.7;
dx=zeros(2,1);
dx(1)=a*x(1)-b*x(1)*x(2);
dx(2)=c*x(1)*x(2)-d*x(2);
2.
[t,x]=ode45(@preyer,[0 14],[300 100]);
figure('position',[121 233 1121 406])
plot(t,x)
set(gcf,'color','w')
set(gca,'fontsize',12)
xlabel('\itt','fontsize',16)
ylabel('\itx','fontsize',16)
L=legend('{\itx}_1','{\itx}_2',0);
legend boxoff
set(L,'fontname','Times New Roman')
看看是不是你想要的结果
再问: 我还是运行不出来啊,说x没定义,一直有错啊
再答: 你的function是否保存在默认文件夹里面? 我明白了,你把我上面所说的第一步放到一个m文件中,然后再把第二步中的命令复制到命令窗口运行就行了,或者也可另建一个m文件,把第二步中命令放到m文件中,然后运行。
再问: 是的啊,如果可以的话,你能把图发过来吗?在默认文件夹有影响吗?
再答: 没有影响,就是要放到默认文件夹里面。 图形我不太清楚能否贴得上去,反正我从来就没有贴上去过。你给个邮箱,我给你传过去。
再问: 641113738@qq.com,万分感谢
再答: 好了,给你发过去了,你看一下吧。