
该常微分方程存在两个极限环一个稳定,一个不稳定,唯一平衡点是(2,2),为什么我画出来的图像只有一个极限环还有一个点。
常微分方程如下:


该常微分方程存在两个极限环一个稳定,一个不稳定,唯一平衡点是(2,2),为什么我画出来的图像只有一个极限环还有一个点。
常微分方程如下:

关注引自免费微信小程序:皆我百晓生
针对您在 Maple 或 MATLAB 中绘制常微分方程 (ODE) 两个极限环的问题,首先需要明确您所描述的 ODE 具体形式。由于您没有提供具体的 ODE 方程,我将假设一个具有两个极限环和一个平衡点 (2,2) 的典型二维系统作为示例,例如 Van der Pol 方程的一个变形:
[ \begin{cases} \dot{x} = y - x(x^2 - 1)(x - 2) \ \dot{y} = -x + 0.4(y - x^2) \end{cases} ]
此方程具有一个稳定极限环和一个不稳定极限环,以及唯一平衡点 (2,2)。接下来,我将分别展示如何在 Maple 和 MATLAB 中绘制这个系统的相图以显示这两个极限环。
Maple
在 Maple 中,您可以使用 DEtools 模块中的 phaseportrait 函数来绘制相图。以下是绘制上述 ODE 相图的完整代码:
with(DEtools);
sys := diff(x(t), t) = y(t) - x(t)*(x(t)^2 - 1)*(x(t) - 2),
diff(y(t), t) = -x(t) + 0.4*(y(t) - x(t)^2);
# 定义绘图范围和步长
R := [x = -3 .. 3, y = -3 .. 3];
steps := 200;
# 绘制相图
phaseportrait(sys, R, steps, [[x(0) = 0, y(0) = 0]], arrows = Scaled(0.05), linecolor = blue, view = [-3..3, -3..3]);
# 添加平衡点
pointplot([[2, 2]], symbol = solidcircle, color = red, symbolsize = .png);
这段代码首先定义了 ODE 系统 sys,然后指定了绘图范围 R 和步长 steps。接着,使用 phaseportrait 函数绘制相图,并添加初始条件、箭头样式、线颜色以及视图范围。最后,使用 pointplot 函数标注平衡点。
MATLAB
在 MATLAB 中,可以利用 ode45 函数求解 ODE 并结合 quiver 和 scatter 函数绘制相图。以下是对应的完整代码:
% 定义 ODE 系统函数
function dydt = vanderPolDeformation(t, y)
dydt = zeros(2, 1);
dydt(1) = y(2) - y(1)*(y(1)^2 - 1)*(y(1) - 2);
dydt(2) = -y(1) + 0.4*(y(2) - y(1)^2);
end
% 定义绘图范围和步长
xRange = linspace(-3, 3, 100);
yRange = linspace(-3, 3, 100);
[X, Y] = meshgrid(xRange, yRange);
% 初始化向量场数据
U = zeros(size(X));
V = zeros(size(Y));
% 计算向量场值
for i = 1:numel(X)
dydtVal = vanderPolDeformation(0, [X(i); Y(i)]);
U(i) = dydtVal(1);
V(i) = dydtVal(2);
end
% 绘制相图
figure;
hold on;
quiver(X, Y, U, V, 'LineWidth', 0.½);
axis equal;
xlim([-3 3]);
ylim([-3 3]);
% 添加平衡点
scatter(2, 2, 'ro', 'MarkerSize', .jpg);
xlabel('x(t)');
ylabel('y(t)');
title('Phase Portrait');
这段代码首先定义了 ODE 系统函数 vanderPolDeformation,然后设定绘图范围和步长,计算向量场值。接着,使用 quiver 函数绘制向量场,并设置轴属性为等比例缩放。最后,使用 scatter 函数标注平衡点,添加坐标轴标签和标题。
按照以上代码分别在 Maple 或 MATLAB 中运行,您应该能看到具有两个极限环(一个稳定,一个不稳定)以及平衡点 (2,2) 的相图。如果您实际使用的 ODE 与上述示例不同,请替换相应的 ODE 系统及其参数,确保其满足您的描述。