Matlab解非线性微分方程组的问题

要求解的方程组为:dx/dt=-x+y^2dy/dt=-2y+x^2x(0)=y(0)=1如何用Matlab解该方程组,并且画出相轨图(即x-y图象)?我用dsolve函... 要求解的方程组为:
dx/dt=-x+y^2
dy/dt=-2y+x^2
x(0)=y(0)=1
如何用Matlab解该方程组,并且画出相轨图(即x-y图象)?我用dsolve函数,没有解析解
展开
zzzbin872
推荐于2017-11-25 · TA获得超过3066个赞
知道小有建树答主
回答量:525
采纳率:83%
帮助的人:258万
展开全部
没解析解你肯定得用数值解。以下是步骤。
第一步,在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。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式