作业帮 > 综合 > 作业

求MATLAB高手帮忙改下程序,我的有错误啊,像画三条曲线出来的

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 03:29:29
求MATLAB高手帮忙改下程序,我的有错误啊,像画三条曲线出来的
syms x1 x2 x3 t x
%x1=S,x2=I,x3=R
%微分表达式
%x=[x1;x2;x3];
function xdot=DxDt(t,x)
xdot=[-0.0000003*x1.*x2-0.001*x1;0.0000003*x1.*x2-0.025*x2;0.001*x1+0.025*x2];
t=[0,200];
x0=[999999;1;0];
[t,x]=ode45(@xdot,t,x0);
%plot3(x(:,1),x(:,2),x(:,3))
plot(t,x(:,1))
plot(t,x(:,2))
plot(t,x(:,3))
xlabel('t')
你的程序不好用,我自己写了一个.
首先请将以下代码复制到一个m文件中,并存储为DxDt.m:
%%%%%%%%%%%%%%%%%%%%
function dx=DxDt(t,x)
dx(1)=-0.0000003*x(1).*x(2)-0.001*x(1);
dx(2)=0.0000003*x(1).*x(2)-0.025*x(2);
dx(3)=0.001*x(1)+0.025*x(2);
dx=dx(:);
%%%%%%%%%%%%%%%%%%%
然后在另个m文件或者命令窗口中输入以下命令,并运行:
clear;
clc;
t=[0,200];
x0=[999999;1;0];
[t,x]=ode45('DxDt',t,x0);
plot(t,x(:,1),'r',t,x(:,2),'g',t,x(:,3),'b');
xlabel('t');ylabel('x'); %%%%% 坐标轴解释自己加
title('myhelp'); %%%%% 标题解释自己加
legend('x1','x2','x3') %%%%% 图解可以自己加
结果图我就不贴了,省的又被拉去审核
看不懂可以追问,觉得还行就给个采纳