用Matlab画出相图进行相平面分析

一个二阶非线性方程可以转化成状态空间表达,对于如下这类特定的表达:
在这里插入图片描述
matlab提供了直接的方程方便我们计算,本文研究如何用Matlab对这类表达的二阶非线性方程进行相平面分析。

首先把非线性方程转化成我们想要的表达方式:
考虑如下线性二阶常微分方程:
在这里插入图片描述
在这里插入图片描述
得到:
在这里插入图片描述
代码

clear;
%定义我们的非线性方程
f = @(t,X) [X(2); -X(1)]
%不同初值条件下进行求解并画图
for x0=1:1:10
    %计算t从0,递增至10,x1初值为x0,x2初值为0 情况下上述非线性方程的解
    [t,xs] = ode45(f,[0:0.01:10],[x0;0]);
    plot(xs(:,1),xs(:,2))
    hold on
end
hold off
%使x y轴等长,提升圆的显示效果
axis equal
title('相图')
xlabel('x1')
ylabel('x2')

运行得到输出结果如下:
在这里插入图片描述

未解决的问题:
对于某些存在二次平方项的二阶非线性方程,似乎Matlab解不出来

  • 10
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值