Bluewhiet 2024-04-10 17:01 采纳率: 0%
浏览 30
已结题

maple如何通过作图表示常微分方程的两个极限环?

img

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

img

  • 写回答

10条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-10 17:02
    关注

    引自免费微信小程序:皆我百晓生

    针对您在 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 并结合 quiverscatter 函数绘制相图。以下是对应的完整代码:

    % 定义 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 系统及其参数,确保其满足您的描述。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月10日
  • 修改了问题 4月10日
  • 创建了问题 4月10日