数値安定性のヒューリスティックチェック


12

数値的に評価したい変数x iの実数値関数があると仮定します。一般に、fの式には積、有理数、超越関数などが含まれる可能性があり、その数値的安定性を分析的に調査するのは長くなります。または、少なくとも実際にそれを行うには時間がかかります。安定性を保証する同等の短いものがないと仮定します。fの数値安定性を分析するための系統的な手順はありますかf(x1,,xN)xiff。コンピューター代数システムを使用して得られた任意の精度の結果と比較することを考えています。関数は、stdlib関数と単精度または倍精度を使用してCで実装されます。有限精度での近似の品質を定量化するには、どの量を比較する必要がありますか?変数の重要な値を判断するにはどうすればよいですか?他の人が結果を簡単に再現できるように、コンパイラとコンパイラ最適化を選択するにはどうすればよいですか?...問題の設定は、適切な答えを出すためにおそらく汎用的なものであることを知っています。しかし、これはコンピューターサイエンスの一般的な問題であり、そのような分析を実行するための標準を提案する参考文献があるのではないかと考えています。

回答:


7

あなたが探しているのは、「自動エラー分析」と呼ばれるものであり、Highamの著書「精度と安定性の数値アルゴリズム」第2版、SIAM Publishersの第26章の主題です。

彼が説明する1つの手法は、直接検索最適化の使用です:問題を最適化問題として定式化し、最適化アルゴリズムを使用して、アルゴリズム/式の精度に関連する量を最大化または最小化する係数またはパラメーター値を見つけます。彼は、ガウス消去法の成長因子の例(この成長因子を最大化するマトリックス)または立方体の根(以前の質問の1つで答えたように)を使用します。

この本のコピーを入手し、紹介の章とこの章26とその中の参考文献を読むことをお勧めします。


3

すべての入力を ulpでわずかにランダムに摂動させて、関数を数回評価します(通常は3で十分です)。3つの結果の標準偏差は、数値感度の大まかな(通常は十分な)尺度を提供します。これを線形化から予想される感度と比較し、商を形成して安定性の推定値を取得できます。±1

x±11/xx=01/(1x)1/(1+x)x=0


0

|fバツ+εfバツ|C|ε|
中程度の定数を保持 C。このため、次の導関数を分析できます。f または、関数のプロパティがドメイン全体で大きく変化していない場合は、これをたくさん試してみてください バツϵ ペア。

そして、関数がそのドメインにわたって大きく変化する場合、または利用可能な実行可能な派生物がない場合、何ができますか?他の手法はありますか、それともモンテカルロ法になりますか?
アンドレ

1
-1:数値の安定性ではなく、条件の概念を説明します。
アーノルドノイマイアー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.