想用matlab画出微分方程组dx/dt=-5*x+y+1;dy/dt=x-0.6*y+1;初值取不同值时的x-y相图,谢谢

微分方程组dx/dt=-5*x+y+1;dy/dt=x-0.6*y+1;初值取不同值时的x-y相图,如果可以,for循环就行了... 微分方程组dx/dt=-5*x+y+1;dy/dt=x-0.6*y+1;初值取不同值时的x-y相图,如果可以,for循环就行了 展开
 我来答
lhmhz
高粉答主

2020-04-26 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17007

向TA提问 私信TA
展开全部

对于求解初值不同取值时的x-y相图,可以这样来解决。解决方法:

1、将不同的初值,赋值给xspan,即

xspan=[0,0;0.5,0.5;1,1;2,2]; %根据要求设定

2、使用for循环语句,取任意一对初值,进行计算。

3、将得到的每组【x,y】,使用plot函数绘制x-y的相位图,使用hold on命令,将若干组x-y的相位图绘制在同一图形窗口中。即

4、使用legend函数标注图例和title函数标题

5、实现代码

func=@(t,x)[-5*x(1)+x(2)+1;x(1)-0.6*x(2)+1];

tspan=[0,10];

xspan=[0,0;0.5,0.5;1,1;2,2]

for i=1:4

x0=xspan(i,:);

[t,x]=ode45(@(t,x)func(t,x),tspan,x0);

plot(x(:,1),x(:,2),'.-'),hold on

end

legend('x0=0,y0=0','x0=0.5,y0=0.5','x0=1,y0=1','x0=2,y0=2')

xlabel('x'),ylabel('y')

title('初值不同值时的x-y相位图')

执行上述代码,运行可以得到如下结果。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式