0

所以我们尝试解决简单的 ODE。我们使用教科书(警告 - 俄语)。这是本书(第 18 页)中作为示例提供的代码:

> with(DEtools); with(plots);
> eq1 := diff(x(t), t) = y(t); eq2 := diff(y(t), t) = -sin(x(t));

> init := [[x(0) = 1, y(0) = 0], [x(0) = 0, y(0) = 2]];
> DEplot([eq1, eq2], [x, y], t = 0 .. 110, x = -2*Pi .. 2*Pi, init, scene = [x, y], stepsize = 0.5e-1, obsrange = true, color = black, linecolour = black, arrows = 'MEDIUM')

此代码应绘制:在此处输入图像描述

但是枫为我输出了这个:在此处输入图像描述

1)为什么它只解决四分之一的功能?

2)如何解决让它看起来像书中的样子?

4

1 回答 1

2

在我看来,您展示的情节没有任何问题。根据您在上面粘贴的内容,更让我惊讶的是这本书给出的情节。想想你的初始条件。第一个是 [x(0) = 1, y(0) = 0],它从点 (1,0) 开始并以 110 个增量在时间上向前移动(根据您提供的代码)。这显然是内圈。

不过,您的第二组初始条件 [x(0) = 0, y(0) = 2] 似乎正确地从它应该开始的位置(图的顶部在点 (0,2))开始,然后它确实沿着场线移动,在我看来与较小的内部图的弧长大致相同。从场线来看,这更有意义。一个问题可能是在点 (pi, 0) 附近的尖端处对数值敏感。如果它没有在机器 epsilon 内使 y 值一直为零,那么它将到达的下一个点将爬回右上角,如您的绘图所示。

您是否尝试过使用略有不同的初始条件和时间增量?尝试从点 (-pi,0) 开始并持续更长的时间,例如 t=0..300,然后看看会发生什么。有时在这样的书中,他们选择展示的情节并不是从他们给你的代码中精确生成的,他们没有提到这一点。

于 2011-05-26T22:48:12.113 回答