该微分方程组的解及绘图方法这是我自己编的程序,不知道为什么不能成功,求教>> syms s1 s2 x1 x2 t>> d_equt1='Ds1=(0.25*405+0.25*s2-0.44*s1)/(3+0.25*t)-5.654*10^(-6)*x1*s1';>> d_equt2='Ds2=(0.445*s1-0.25*s2/(9+0.25*t)-1.662

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 04:01:47

该微分方程组的解及绘图方法这是我自己编的程序,不知道为什么不能成功,求教>> syms s1 s2 x1 x2 t>> d_equt1='Ds1=(0.25*405+0.25*s2-0.44*s1)/(3+0.25*t)-5.654*10^(-6)*x1*s1';>> d_equt2='Ds2=(0.445*s1-0.25*s2/(9+0.25*t)-1.662
该微分方程组的解及绘图方法
这是我自己编的程序,不知道为什么不能成功,求教
>> syms s1 s2 x1 x2 t
>> d_equt1='Ds1=(0.25*405+0.25*s2-0.44*s1)/(3+0.25*t)-5.654*10^(-6)*x1*s1';
>> d_equt2='Ds2=(0.445*s1-0.25*s2/(9+0.25*t)-1.6625*10^(-5)*x2*s2*(405-s1)/(201+405-s1)';
>> d_equt3='Dx1=(0.25*x2-0.44*x1-0.25*x1)/(3+0.25*t)';
>> d_equt4='Dx2=(0.44*x1-0.25*x2-0.25*x2)/(9+0.25*t)';
>> condit1='s1(0)=30';
>> condit2='s2(0)=30';
>> condit3='x1(0)=3000';
>> condit4='x2(0)=3000';
>> [S1,S2,X1,X2,'t']=dsolve(d_eq1,d_eq2,d_eq3,d_eq4,condit1,condit2,condit3,condit4,'t')

该微分方程组的解及绘图方法这是我自己编的程序,不知道为什么不能成功,求教>> syms s1 s2 x1 x2 t>> d_equt1='Ds1=(0.25*405+0.25*s2-0.44*s1)/(3+0.25*t)-5.654*10^(-6)*x1*s1';>> d_equt2='Ds2=(0.445*s1-0.25*s2/(9+0.25*t)-1.662
你输入错了:
(1)第三行的第一个括号是多余的;
(2)所有的d_equt1, ...名称都和最后一行的d_eq1, ...不符,必须更正过来;
另外,没必要syms这些变量,然后还在最后一行多写两个't',matlab默认的自变量名称就是t,不怕它不认识.
算出来是没解析解的,于是改用ode45来求数值解并画图.先写如下的m-file,保存为myfun.m到当前目录下:
function y = myfun(t,x)
s1=x(1);s2=x(2);x1=x(3);x2=x(4);
y1=(0.25*405+0.25*s2-0.44*s1)/(3+0.25*t)-5.654*10^(-6)*x1*s1;
y2=0.445*s1-0.25*s2/(9+0.25*t)-1.6625*10^(-5)*x2*s2*(405-s1)/(201+405-s1);
y3=(0.25*x2-0.44*x1-0.25*x1)/(3+0.25*t);
y4=(0.44*x1-0.25*x2-0.25*x2)/(9+0.25*t);
y=[y1;y2;y3;y4];
之后,在命令窗口输入:
[t,x]=ode45(@myfun,[0:0.01:20],[30 30 3000 3000]);
s1=x(:,1);s2=x(:,2);x1=x(:,3);x2=x(:,4);
plot(t,s1,t,s2,t,x1,t,x2)
hleg1 = legend('s1','s2','x1','x2');
就是解方程和画图了.解完的变量储存在t和x里,x的第一列对应s1,第二列对应s2,以此类推.最后一行是在写图例,方便你看哪根线是哪个函数.注意,第一行的[0:0.01:20]是我自己设定的画图区间和步长,你自己可以自行调整,0.01是图上每个点的间隔,越小图越精确;0和20是t的起点和终点.你要是想画相图(这里顶多画三维的),比如你画s1和s2的,就是
plot(s1,s2)
画s1,s2,x1的,就是
plot3(s1,s2,x1)

该微分方程组的解及绘图方法这是我自己编的程序,不知道为什么不能成功,求教>> syms s1 s2 x1 x2 t>> d_equt1='Ds1=(0.25*405+0.25*s2-0.44*s1)/(3+0.25*t)-5.654*10^(-6)*x1*s1';>> d_equt2='Ds2=(0.445*s1-0.25*s2/(9+0.25*t)-1.662 matlab解微分方程组求微分方程组的数值解并作图.要求是用ode45的方法来解 微分方程组.我花圈的部分是怎么导出的. 求解常微分方程组的几种方法 求高手这样的微分方程组该怎么求解呢? 求高手解个微分方程组!不要用拉普拉斯变换的方法求解! 秋天的诗(自己编)必须是自己编的,抄袭的我就完了 matlab解微分方程组ode45用ode45 解微分方程组 以前基本都没碰过matlab,自己试着编了一点儿,搞不定啊, 只剩这么多分了,好人一生平安,雅安加油!@liuliangsxd 您好,下面的是我根据您给的程序,完 maple软件的使用有没有人会用maple啊?在maple里面,两个矩阵相乘的程序怎么编?抓破头了~最好给我一个解常系数非齐次线性微分方程组的程序代码, 讲述微分方程组的概念 Matlab使用ode45解微分方程组的基本问题,下面有一个简单的微分方程组求代码d(X1)/dt=4X1+X2 ^2d(X2)/dt=2*d(X1)/dt+5*X2初始条件是X1=X2=0要用ode45解这个微分方程组该怎么写代码呢? 自己编的爱国诗句,是自己编的! 自己编的神话故事一定是自己编的 谁能帮我编一个成语故事是自己编的不是书上的OK 古诗怎么编我要自己编古诗,是关于童年的, 如图excel软件绘图怎么在坐标轴下面添加该坐标轴的名称及单位, 用matlab解常微分方程组,为什么会出错?调用的是dsolve的函数. VB 画直线的方法是?清楚绘图区的方法是?