ODEを証明可能な正しい数字に数値的に解くにはどうすればよいですか?


8

の形式の初期値問題があるとします whereは正確に(つまり無制限の精度で)既知であり、を効率的に評価できますを任意の精度に。つまり、ベクトルと整数与えられると、正しいことが保証された近似値を返すブラックボックスがあります。の時間多項式の桁。の近似値を取得するための実用的な方法があるかどうか知りたいX 0R N F R NR nはXR nは M 、F XM M XTとF

dxdt=f(x)x(0)=x0
x0Rnf:RnRnxRnMf(x)MMx(tf)(ここでは特定の最終時間です)は桁に間違いなく正しいです。NtfRN

明らかに、これはただの関数のために行うことはできませんあるため、大幅に変更され、真の解決策はなく、中にピックアップされていないことをいくつかのクレイジーな行動を持っているかもしれません評価の妥当な数。したがって、これを行うには、のどのような良好な動作条件(たとえば、すべての偏導関数が存在し、制限されているか、小さなリプシッツ定数など)が必要であることを知りたいと思っています。 f ff:RnRnff


最も一般的な方法は、として動作するエラーがあり、要求すると、で指数関数的なステップ数が発生するため、不適切です:。おそらく、スペクトル法のようないくつかの方法は、誤差がで指数関数的に小さいことを示すことができれば、これを可能にするでしょう。各ステップは長さ有限数の有理演算であり、ブラックボックス評価はカウントせず、それぞれが時間多項式をとるので、おそらく最も重要なのはステップサイズです。 H S10 - M M 1 / H 10 M / S 1 / H O M Mhshs10MM1/h10M/s1/hO(M)M
Kirill

@Kirill:スペクトルアプローチでは(または他の従来のODEメソッドを使用して)、精度の証明書を取得するには、OPが漸近線の主要定数を知る必要があると思います。これらの定数は、分析または区間演算による計算から取得されます。
Geoff Oxberry、2015年

回答:


9

近似を得るための任意の実用的な方法がある場合、私は知りたい(、いくつかの所定の最終的な時間である)に証明可能正確である [原文のまま]桁。T FR Nx(tf)tfRN

それはすべて、区間演算の実用性についてのあなたの意見に依存します。Martin BerzのグループのCOZYコードなど、検証済みのインテグレーターが利用可能です。おそらく、Neumaier、Nedialkov、Berz&Makino、Chachuat、Stadtherr、そしておそらく他のいくつかのグループの論文を見たいと思うでしょう。彼らの論文は、「テイラーモデル」、「検証済み積分器」、「間隔計算」などのフレーズを使用する傾向があります。

明らかに、これは任意の関数可能ではありません。なぜなら、は真の解を劇的に変更するが、 t妥当な数の評価で取り上げられた。したがって、これを行うには、のどのような良好な動作条件(たとえば、すべての偏導関数が存在し、制限されているか、小さなリプシッツ定数など)が必要であることを知りたいと思っています。 f ff:RnRnff

標準的な証明(ここでは、たとえばDahlquistの証明を考えています)は、通常、エラー範囲にGronwall型の不等式を使用しているため、理論的には、ドメインに対して制限付きのリプシッツ定数が必要です。あなたは気になり、WolfgangBangerthが話していることのいくつかについて話しますが、HairerやWannerのような大学院レベルの教科書が評価できる正確さについて具体的に議論することは知りません; 数値的手法の精度と安定性に関するHighamの本は、この点について議論しているかもしれません。 f xRnf(x)

実際には、前述のテイラーモデル手法の場合、通常は理論的条件と実用的条件の組み合わせが必要です。理論の部分は単純です次のテイラーモデルが必要な場合は、関数が必要です。実用性についてのあなたの問題を語る実装部分はより難しいです。C kkCk

ユーザーの観点から見ると、これらのインテグレーターは2つの(-ish)ものに要約されます。

  • を評価するためのソースコードはありますか?(オブジェクトファイルでは不十分です。)f
  • 自動微分ライブラリと区間演算ライブラリとの互換性のために、このソースコードを拡張できますか?

(使用される自動微分技術に応じて)関数が解析されるか演算子がオーバーロードされると仮定し、の区間拡張とその最初の導関数を計算する関数を生成できると仮定すると、検証済みの積分法を実装できます。次のテイラーモデル。k kfkk

典型的なODE解法について、Wolfgangの答えにコメントするには:

エラーが特定の数値を下回る証明書を取得できるとは思いませんが、見積もりが許容範囲を下回っていることはわかります。

エラー推定器が組み込まれているメソッドには、Wolfgangが参照する情報があります。通常、これは、統合方法が実際に2つ(またはそれ以上の解、たとえばDOP853が3つの解を計算)の解を計算し、いくつかの基準を介してそれらを比較することを意味します。より高い次数の解がより正確であると仮定しています。これは、特定の問題、タイムステップ、初期条件などによっては、実際には正しくない場合があります。実装から返される解は、計算された候補解のいずれかになります。一般的なRunge-Kutta 4(5)ケースを例にとると、4次の解または5次の解を返すことができます。通常のアプローチでは、ドーマンドプリンスの公式を使用します。これは、5次の解の誤差を最小限に抑え、4次の解ではなく、それを返します。5次解がより正確になる可能性が高いためです。安定性の問題に加えて、エラー制御(HairerおよびWannerのセクションII.4)も確認する必要があると思います。安定性は必要ですが、精度には不十分です。

対照的に、検証済みのインテグレーターは、真の解を含む区間を計算します。この間隔の上限と下限が桁に一致する場合、これらは真の解法の最初の桁であり、これは正確さの証明書であり、希望どおりの音になります。MMM


@geoffoxberryは私のものよりもはるかに優れているので、私は自分の答えを撤回したくなります...
Wolfgang Bangerth

2

最初の質問は、缶詰のODEインテグレーターのほとんどから実際に得られるものです。これらはすべて、何らかの方法でエラーの推定値を追跡しているためです。エラーが特定の数値を下回る証明書取得できるとは思いませんが、見積もりが許容範囲を下回っていることはわかります。

2番目の質問は答えるのが難しいですを評価できる精度と、それがソリューションの精度にどのように影響するか(ODEを正確に統合できると想定間にはどのような関係がありますか。これら2つの精度の比率は、ODEの安定度定数です。これは、のノルム、ノルム、統合する期間の長さなどに依存します(通常、この間隔の長さに指数関数的に依存します)。数値ODEに関するほとんどの教科書には、安定性に関するセクションがあります。F Ff(x)ff

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.