こんにちは天文学

自動翻訳です。簡体字中国語の原文をご参照ください。

「答えの改善」を繰り返すうちに、どんどんとんでもないことになってしまうのはなぜでしょうか?

計算を繰り返しても、すべてが答えに近づくわけではありません。同じ質問でも、書き換え方法と出発点がすべて結果に影響します。

一般的なアルゴリズムと数値計算

誤差がどんどん小さくなることを期待しながら、何度も推測を修正します。しかし、本書にある同じ 5 次方程式は、書き方を変えるだけで、安定収束から一定ビートに変化する可能性があります。それらを同じ画像に配置し、「反復」でツールの変更が必要になるタイミングを確認します。

体験型レッスンを開く →

まずは推測してください

同じ方程式が同等の方法で書き直された場合、反復ではまったく同じ収束パフォーマンスが得られますか?

答えと解説を見る

不確かな — 同等の方程式は根が同じですが、更新ルールの安定性はまったく異なる場合があります。

そして経験と科学を結びつける

まずは「毎回変更する方法」を見てみましょう。

同じ方程式を異なる更新ルールに書き換えることができます。ルールが繰り返されている場合は、ルールが収束すると信じるのではなく、各ルールを確認してください。

xnew = g(xold)

数値が次のようになるかどうかだけを見るのではなく、残差に注目してください。

残差 f(x) は、候補の答えがどれだけ離れているかを示します。収束、ステップの不足、および数値の暴走は個別に記録する必要があります。

残差 |f(x)|およびステップ許容差

ニュートンは接線を使用して次のステップを予測します

接線と横軸の交点から新たな推測が得られます。この予測は、接線が平坦すぎる場合や開始点が適切でない場合にも失敗する可能性があります。

xnew = xold − f(xold)/f′(xold)

根との間隔を2点でガード

連続関数の両端は符号が異なり、間隔が毎回半分になることが知られています。速度は遅くなる可能性がありますが、各ステップでのエラー限界は明らかです。

n番目のステップ間隔幅 = 元の幅 / 2ⁿ

計算の流れを詳しく見る

xₙ₊₁ = g(xₙ) xₙ₊₁ = xₙ − f(xₙ)/f′(xₙ) m = (a+b)/2 二分n車輪后的宽過ごす = (b₀−a₀)/2ⁿ

それぞれ固定小数点、ニュートン、二等分に対応します。ニュートンの方法では、導関数が利用可能であり、非ゼロであることが必要です。二等分には、連続関数の異方性ブラケットが必要です。ステップ サイズが小さい場合は、残差もチェックする必要があります。

試してみてください

まず収束の例を見てから、発散とジャンプバックの書き換えを選択しましょう。 Newton は、開始点が間違っている場合にも失敗します。二等分は、連続した異なる符号付きの境界区間に依存します。

見てみてください →

記号を覚える必要はありません

f(x)
ゼロになりたい関数
f′(x)
接線の傾き、ニュートン法の分母
[a,b]
異なる符号を持つ連続関数の端点で囲まれた区間
許容範囲
唯一の停止条件として正確な浮動小数点の等価性を持たない、許容される残差または区間の幅

アルゴリズム、精度、適用範囲

ニュートン、二分、および浮動小数点の停止条件については、第 5 章の例 5.b ~ 5.d を補足します。 x⁵+17x−8、x⁵+3x−8、x⁵−3x−8、s³+3s−0.9 に相当します。固定小数点形式は (b−xᵖ)/a、実奇数根 (b−ax)^(1/p)、b/(x^(p−1)+a) であり、同じ方程式を異なる書き換えによって収束、発散、または 2 つの周期が形成されることがあります。ニュートンは導関数 p x^(p−1)+a を使用し、導関数はゼロ付近で止まります。二等分は、証明された異なる符号を持つ連続多項式の区間で機能します。デモンストレーションには最大 40 のステップが必要です。絶対候補値が 1e8 を超えると、停止してプロンプトが表示されます。切り捨てがないことを収束と呼びます。許容誤差は 1e−10 です。古いハードウェアの浮動小数点の仮数部の発振は、その理由を説明するだけです。現在の JavaScript エンジンを偽造しなくても、同じシーケンスが必然的に発生します。カーブウィンドウはx∈[−3,3]、y∈[−40,40]に固定されており、ウィンドウの外側の値は数字で示されます。

私の理解度チェック

2回表示される小数が同じに見える場合は、やめるべきでしょうか?

公差と残差も確認してください — 明示的な丸めは変更をマスクする可能性があります。アルゴリズムには明確な停止条件と反復限界が必要です。

二分法では、両端の符号が異なる限り、中央にゼロ点が存在することを保証できますか?

関数は間隔内で連続していることも必要です — Tan を横切る垂直漸近線も符号が異なりますが、ゼロ点はありません。

ニュートンの導関数がゼロに近づいたら、そうすべきでしょうか?

開始点/方法を停止または変更する — 分母が小さすぎると、補正が大きく信頼性が低くなってしまう可能性があります。

反復とは、「あと数回数えるだけ」ではありません。適切なルールを選択し、残差を確認し、失敗した場合は明示的に停止します。

Jean Meeus · Astronomical Algorithms, 2nd ed. · いいえ。 5 章

一般的なアルゴリズムと数値計算 · すべてのインタラクティブなコース