エフェメリスの誤差は入力、計算式、または機械に起因するのでしょうか?
同じ結果でも、入力、アルゴリズム、内部操作、最終表示という 4 つのレベルを通過する必要があります。それらを 1 つの「正確さ」と混同しないでください。
プログラムでは多くの小数点以下が表示される場合がありますが、入力時間が四捨五入されたり、数式で項が省略されたり、内部演算の詳細が失われる場合があります。これらのステップを 1 つずつ分解することによってのみ、変更がどこに本当に役立つかを知ることができます。通常、出力形式を変更するだけでは、以前のエラーを変更することはできません。
まずは推測してください
内部で計算ミスされた 125° が 125.000000000° と表示された場合、欠落している小数点を回復できますか?
答えと解説を見る
できない — 文字列を長くしても、入力、アルゴリズム、または操作中に失われた情報は復元されません。
そして経験と科学を結びつける
入力した内容は最初に破棄されますか?
T の小数点以下の桁数だけを保持することは、クエリ時間を最初に太字にすることと同じです。後で正確な式を使用すると、元の入力が見つかりません。
入力丸め誤差≠式近似誤差
式自体からどの項が省略されますか?
T² と T³ を積極的に省略すると、結果が変わります。これはアルゴリズムの選択によって生じる違いであり、最後の行にいくつかのゼロを追加することで修正することはできません。
選択した完全なバージョンと省略されたバージョンを個別に比較する
マシンが保持できる詳細情報は限られています
大きな角度は最初に数十万度まで計算され、その後正規化されるため、内部の有効ビットが不十分になります。小さい角度の cos が 1 に近い場合、計算を直接逆にすると、夾角が失われる可能性があります。
数値的に安定した計算ルートを選択する
最後に表示方法を決定します
元の本の海王星の例では、最初に完全な角度が計算され、次に四捨五入されて 19° になります。 2 つの入力は、最初に 20° になるように丸められます。表示される桁数は、入力およびモデルの精度と一致する必要があります。
最初に計算してから、意味のある最終丸めを行う
丸め、算術切り捨て、浮動小数点誤差は個別に入力され、完全に選択された書き込みバージョンと省略されたバージョンが同じ入力を使用して比較されます。結果の末尾にさらに小数点以下の桁を表示しても、科学モデルの精度が自動的に向上するわけではありません。
試してみてください
最初に「内部的には 6 桁だけ」を見てから、表示を 9 桁に変更しても、答えは基準に近づきません。拡張条件により、入力、アルゴリズム、内部精度がそれぞれ異なります。角度が小さい場合と最終的な丸みの場合は別の問題です。
見てみてください →
記号を覚える必要はありません
- T
- J2000からのユリウス世紀。 0.4 はおよそ J2040.0 です。
- 内部有効ビット
- このレッスンでシミュレートされる 10 進数演算の精度は、JS ハードウェア形式を変更するものではありません。
- 小数点以下の桁を表示
- 文字列形式。計算プロセスは変更されません。
- acos / atan2
- 小角反転への 2 つの数学的に同等だが数値的に異なるルート
アルゴリズム、精度、適用範囲
古い計量レッスンで最も近い数値の減算を繰り返すことを避けるために、計算ターゲットに必要な精度、機械精度、最終レポート精度の違いについて第 2 章を補足します。実験 0 では、月の平均天経度多項式 218.3164477+481267.88123421T−0.0015786T²+0.0000019T³ を使用します。これは第 2 章の省略された本の公式であり、完全な月の真の天の経度ではありません。比較入力 T は丸められ、高次項は積極的に省略され、小数点以下の有効数字は演算ごとにシミュレートされ、最終的に 4 つのレイヤーの効果が表示されます。いわゆる基準は、同じ本の公式の倍精度数学的結果であり、測定された真の値や真の天体暦誤差の上限ではありません。実験 1 では、第 1/2 章で小角度警告を使用しています。atan2(sinθ, cosθ) は acos(cosθ) と比較されます。前者は依然として失われた入力情報を回復できません。実験 2 は、1996 年のゾンネベルクにおける海王星の早すぎる丸め誤差と 1.4+1.4 を再現します。実験 3 では、1.0000001 の連続二乗を再現し、log1p/exp を使用して書籍の参照値と独立してチェックします。実験4ではx←(9x+1)x−1を再現していますが、浮動小数点演算では数学的な固定小数点1/3がずれてしまいます。元の本のハードウェア固有の出力は、すべてのマシンで固定された結果になることを意図したものではありません。反復が 1e100 を超えるか、制限されていない時間内に停止する場合、モデル T の範囲は ±1 世紀に制限されます。等級の有効桁数については、惑星照度/等級コースも参照してください。
私の理解度チェック
完全な式は省略されたバージョンとは異なります。主にどのレベルのエラーが発生するのでしょうか?
アルゴリズム近似 — 省略された項は数学的計算モデルを直接変更します。
cos が非常に小さな角度を 1 に丸めた場合、acos を使用して元の角度を復元できますか?
いいえ、より有効な情報を保持するか、安定したルートを変更する必要があります — 同じ入力 1 は、それが元々ゼロ角度であるか、ゼロではない非常に小さな角度であるかを区別できません。
3 月 15.88 は単純に 3 月 16 日に四捨五入する必要がありますか?
いいえ、日付はまだ 15 日です — 15日午前0時から0.88日ということになります。日付ラベルのセグメント化は、最終的な数値の四捨五入と同じ操作ではありません。
まずエラーがどのレベルにあるのかを特定し、次にデータを補足するか、計算式を変更するか、数値計算方法を変更するか、あるいは報告される桁数を調整するだけかを決定します。
Jean Meeus · Astronomical Algorithms, 2nd ed. · いいえ。 2 章