明示的な時間ステップスキームを使用して、ODEがスティッフであるかどうかを数値で決定できますか?


10

私はODEを持っています:

u=1000u+sin(t)
u(0)=11000001

この特定のODEは分析的に硬いことを知っています。また、明示的な(順方向)時間ステップメソッド(Euler、Runge-Kutta、Adamsなど)を使用した場合、時間ステップが大きすぎると、メソッドが非常に大きなエラーを返すはずであることも知っています。だから、私は2つの質問があります:

  1. これは、一般に、エラー項の分析式が利用できない、または導出できない場合に、ODEがどのように決定されるのですか?

  2. 一般に、ODEが硬い場合、「十分に小さい」タイムステップをどのように決定しますか?


明示的な方法を使用して剛性を検出するための標準的な方法があります。このコメントをここに配置します。これは、以下のより詳細な回答を見つけるのが難しい場合があるためです。
David Ketcheson、

回答:


6

あなたの質問に答えるには:

  1. 私が知る限り、実際には、明示的なメソッドが対象のタイムスケールに比べて非常に小さなタイムステップを必要とする場合(ODEがスティッフであるという意味についてのこの質問への回答を参照)、正確な結果を得るには、すべての意図と目的、あなたの問題は難しいです。ステップサイズの要件を決定するには、アダプティブタイムステッピングヒューリスティックを備えた、エキスパートが作成した多数のライブラリ(MATLABスイートはその一例、SUNDIALS、VODE、DASPK、DASSL、LSODEなど)の1つに依存します。SUNDIALSマニュアルでは、パッケージが取る時間ステップのサイズを決定するために使用する決定規則について説明し、実際に使用される規則の例を示します。

  2. 繰り返しますが、実際にはアダプティブタイムステッピングのライブラリを使用します。ただし、固定のステップサイズを使用してメソッドを自分でコーディングしている場合、大きな振動、またはソリューションの「爆発」に気付いた場合は、タイムステップが大きすぎるのではないかと考え、それを減らします。適切に動作する数値解が得られるまで繰り返します。AscherとPetzold、HairerとWannerのような教科書には、この現象の良い例があります。


9

これを調べるより良い方法は、スティッフな問題の場合、安定した明示的な計算により、必要な許容誤差よりもはるかに小さい誤差が生じることです

明示的なスキーム、特に埋め込まれたルンゲクッタペアを使用して剛性を自動的に検出するための多くの優れた方法があります。例を見てください:

faleichikの2番目の例では、ステップサイズが縮小されると、安定したタイムステップしきい値を超えると、エラーが典型的な望ましい許容値をはるかに下回るレベルに突然劇的に減少します。したがって、優れたエラー推定器は実際に問題の剛性を明らかにします。最初の問題では、安定したステップサイズで得られる誤差は、典型的な望ましい許容誤差の範囲にあり、非剛性を示します。

結果として、十分に厳密なエラー許容度が必要な場合、問題が硬くならないことに注意してください。


2
それらは私があなたの答えを見る前にリンクしようとしていた論文でした。もちろん+1。:) これこれ、そして最後にこれも追加しましょう。これは間違いなくよく研究された問題です...
JM

9

1.明示的な方法を適用するだけで、剛性を数値的に検出できますか?

  • [0,10]τ=1 τ

    ここに画像の説明を入力してください

    τ=0.1ここに画像の説明を入力してください

    τ=0.1[0,10]

    それで、問題は難しいですか?答えはノーです!解の振動を正しく再現するには、ここで小さなステップサイズが必要です

    y(t)=2cosπt,y(0)=1.

  • τ=1

    ここに画像の説明を入力してください

    τ=0.1

    ここに画像の説明を入力してください

    τ=0.1[0,10]

    この問題は難しいですか?はい!非常にゆっくりと変化するソリューションを再現するために、非常に小さな手順を実行しました。これは不合理です!ここでのタイムステップの大きさは、明示的なオイラーの安定性プロパティによって制限されます。

    この問題は

    y(t)=2y(t)+sint/2,y(0)=1.


結論:タイムステップと対応するエラーに関する情報は、剛性を検出するには不十分です。また、取得したソリューションを確認する必要があります。それがゆっくりと変化し、ステップサイズが非常に小さい場合、問題は硬直している可能性が高いです。ソリューションが急速に振動し、エラー推定手法が信頼できる場合、この問題は堅固ではありません。


2.スティッフな問題を陽解法と統合することを可能にする最大ステップサイズを決定する方法は?

自動ステップ制御を備えたブラックボックス陽解法ソルバーを使用する場合、何もする必要はありません。ソフトウェアは必要なステップサイズを適応的に取得します。

[Λ,0]Λ=1000

[2,0]τΛτ

τ2|Λ|.

τ1|Λ|,
1/|Λ|<τ2/|Λ|

もちろん、そのような分析は主に既知のスペクトルを持つ線形問題に適用できます。より実用的な問題については、剛性検出の数値手法に依存する必要があります(他の回答の参照とコメントを参照)。


Davidがリンクしたいくつかの論文で述べたように、(適切に変更された)支配的な固有値を見つけるためのパワーメソッドは、ヤコビアンベースの剛性検出器の通常の選択です。
JM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.