3

odeMATLABのソルバーを使用して微分方程式のシステムを解こうとしているとします。

また、すべてターミナルである3つの異なるイベントを見つけるためのイベント関数を定義したとします。

ie場合によっては、イベントの1つの場所で返される量(ieソルバーを停止したイベントのインデックスであり、私の場合は1、2、または3である可能性があります)が必ずしも単一の数値ではないことに気付きました。しかし、2つの要素を持つベクトル(通常、これらの要素は同一です)

ieスカラーではない場合、それはソルバーを停止しましたかie(1)ie(2)

4

1 に答える 1

3

実際、これは、終了イベントのためにシミュレーションが停止し、停止したのと同じポイント(初期時間と条件)から再開したときに発生することに気付きました。

技術的には、初期条件の算術の不正確さのために、MATLABは以前に停止させたのと同じイベントを再検出します。MATLABはこれを区別できませんが、最初の成功したステップの直後に発生するターミナルイベントで停止しないようにプログラムされています(参照odezero用の関数を参照)。ただし、イベントは記録されます。

その結果、次に終了イベントが原因でodeが停止したときに、に新しいインデックスie追加されます。そのとき(および理由)ieは2つの要素を持つベクトルです。

于 2011-10-02T07:38:20.770 に答える