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) なぜ 1 四半期だけ関数を解くのですか?

2) 本のように見えるようにするにはどうすれば解決できますか?

4

1 に答える 1

2

あなたが示しているプロットに問題があるようには見えません。私がさらに驚いたのは、あなたが上に貼り付けたものによると、本が提供する筋書きです。初期条件について考えてみましょう。最初のものは [x(0) = 1, y(0) = 0] で、これは点 (1,0) から始まり、110 ずつ時間の経過とともに進みます (提供されたコードに従って)。これは明らかに内円です。

ただし、初期条件の 2 番目のセット [x(0) = 0, y(0) = 2] は、本来あるべき場所 (ポイント (0,2) のプロットの上部) から正しく開始されているように見えます。磁力線に沿って移動すると、小さな内側のプロットとほぼ同じ弧の長さになるように見えます。磁力線から判断すると、これはより理にかなっています。1 つの問題は、ポイント (pi, 0) 付近のカスプで数値に敏感である可能性があります。マシン イプシロン内で y 値が完全にゼロにならない場合、次に移動するポイントは、プロットが示すように右上に戻ります。

わずかに異なる初期条件と時間増分で遊んでみましたか? 点 (-pi,0) から開始して、t=0..300 と仮定して、さらに長く行ってみて、何が起こるかを確認してください。このような本では、彼らが表示することを選択したプロットが、提供されたコードから正確に生成されておらず、これについて言及していないことがあります。

于 2011-05-26T22:48:12.113 に答える