Matlab解非线性微分方程组的问题要求解的方程组为:dx/dt=-x+y^2dy/dt=-2y+x^2x(0)=y(0)=1如何用Matlab解该方程组,并且画出相轨图(即x-y图象)?我用dsolve函数,

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 23:53:04
Matlab解非线性微分方程组的问题要求解的方程组为:dx/dt=-x+y^2dy/dt=-2y+x^2x(0)=y(0)=1如何用Matlab解该方程组,并且画出相轨图(即x-y图象)?我用dsolve函数,

Matlab解非线性微分方程组的问题要求解的方程组为:dx/dt=-x+y^2dy/dt=-2y+x^2x(0)=y(0)=1如何用Matlab解该方程组,并且画出相轨图(即x-y图象)?我用dsolve函数,
Matlab解非线性微分方程组的问题
要求解的方程组为:
dx/dt=-x+y^2
dy/dt=-2y+x^2
x(0)=y(0)=1
如何用Matlab解该方程组,并且画出相轨图(即x-y图象)?我用dsolve函数,

Matlab解非线性微分方程组的问题要求解的方程组为:dx/dt=-x+y^2dy/dt=-2y+x^2x(0)=y(0)=1如何用Matlab解该方程组,并且画出相轨图(即x-y图象)?我用dsolve函数,
没解析解你肯定得用数值解.以下是步骤.
第一步,在Matlab里写m-file,命名微分方程对应的函数:
function f=myfun(t,x)
f = [-x(1)+x(2)^2; -2*x(2)+x(1)^2];
这里的x(1)就是你这儿的x, x(2)就是你这儿的y.写完后自动保存,不要对保存目录做任何修改,文件名就叫myfun.m.
第二步,在Matlab命令窗口里写命令:
s=[0:0.01:10];x0=[1,1];
[t,x]=ode45('myfun',s,x0);
plot(x(:,1),x(:,2))
就完了.第一行是在设置画图的范围,s就是画图的区间,0.01是步长,0和10是t的起点和终点,这些你都可以自行设定(步长越小图形越精确),x0是初始值;第二行是在解微分方程,t为自变量(注意在上一步定义函数的时候一定要把t也定义进去,不然matlab不会认为这是个微分方程);第三行就是画相图了. 方程的解就保存在变量t和x里,s里面有多少个点你就会得到多少个x和y.