円周率が3.14でも月まで行ける?!

約7分で読めます

円周率が3.14でも月まで行ける?!

〜気象衛星「ひまわり」軌道制御の現場から〜

概要

「円周率は無限に続く」と聞くと、宇宙開発には膨大な桁数が必要だと思いがちです。しかしNASAでさえたった15桁しか使っていません。この発表では、気象衛星「ひまわり4号」の軌道制御開発に携わった経験をもとに、厳密な計算より実践的な備えが重要という教訓と、当時のコンピュータ事情をお話しします。


1. NASAは円周率を何桁使っているか?

深宇宙

驚きの事実:たった15桁

NASAのジェット推進研究所(JPL)では、惑星間航法の最高精度計算でも円周率は15桁(3.141592653589793)しか使いません。

距離15桁での誤差
ボイジャー1号(太陽から約254億km ≒ 1光日)約4cm(指1本分)
観測可能な宇宙(約465億光年)水素原子1個分(39-40桁で十分)

254億kmってどのくらい? 光の速さ(秒速30万km)で丸1日かかる距離。 新幹線(時速300km)なら約10万年かかります。そこまで行って4cmのズレ!

※ボイジャーの距離は太陽からの距離。地球は公転しているため、地球からの距離は日々変動します。 ちなみにボイジャー1号は「星間空間」にいますが、まだ太陽系の中。オールトの雲(太陽系外縁)到達まであと300年

円周率は100兆桁以上計算されていますが、宇宙規模でも40桁あれば原子レベルの精度が出せるのです。


2. 気象衛星「ひまわり4号」での経験

人工衛星

ひまわり4号の概要

  • 打ち上げ: 1989年9月6日(H-Iロケット5号機)
  • 軌道: 静止軌道(高度約36,000km、東経140度)
  • 運用期間: 1989年12月〜1995年6月

私の役割:博士たちへの「通訳係」

軌道制御システムの開発チームでコードを書いていました。

1
2
3
4
5
6
7
8
9
┌─────────────────────────────────────────────────┐
│  チーム構成                                      │
│                                                 │
│  数学者・物理学者(博士号持ち)                   │
│      ↓ 設計・計算式                             │
│  私(プログラマ)                                │
│      ↓ コンピュータへの「通訳」                  │
│  汎用機・衛星搭載コンピュータ                     │
└─────────────────────────────────────────────────┘

国家事業なので、名だたる企業が集結。衛星本体は大手電機メーカー、開発環境は重工メーカーの施設で大型汎用機を使用していました。

都市伝説?「5kgのプロパンガス」

チームで聞いた話ですが、衛星には5kgのプロパンガスボンベが搭載されていて、姿勢・軌道制御のために「コックを捻ってシューッとガスを出す」のだとか。

実際の軌道制御は、静止軌道といっても太陽風や月の引力でズレていくため、許容範囲を超えたらスラスター(ガスジェット)を噴射して修正します。


3. 当時のコンピュータ事情

コンピュータ基板

汎用機の時代

項目当時(1989年頃)MacBook Air M4(2025年)
開発環境国産の大型汎用機(IBM互換)13インチノートPC
言語FORTRAN 77Python, TypeScript, etc.
コンパイル1日に数回(運が悪いと1-2回)秒単位
衛星搭載CPU4bit か 8bitApple M4(10コア)
メモリ極めて限定的16GB〜32GB
重量部屋いっぱい1.24kg

なぜ「IBM互換」? 1970年代、国策で国内メーカー6社が3グループに再編。各グループがIBM互換路線を選択し、IBMより安価で日本語処理に優れ、ソフト資産も活かせる戦略でした。後にIBMとの著作権紛争(1982-1988)を経て和解。

ミスタイプは許されない

複数のエンジニアが1セットの汎用機を共有していたため、コンパイルのタイミングを見計らう必要がありました。すいている時間を狙っても1日に数回。タイプミスでコンパイルエラーなんて出したら、その日の作業が止まります。

bitハンドリングの世界

衛星に搭載されるのは4bitか8bitの極小コンピュータ。「高級言語」FORTRANで書いたコードも、最終的には衛星搭載CPU用のアセンブリに変換されます。

メモリが貴重なので、1つのフラグに1bitが当たり前。今の皆さんは1つのフラグに何bit使っていますか?(boolean = 8bit? それとも32bit?)


4. でも、月には行けた

月面着陸

アポロ計算機のスペック

ひまわりより20年前のアポロ計画。月面着陸を成功させた「アポロ誘導コンピュータ(AGC)」のスペックは:

項目アポロAGC(1969年)ファミコン(1983年)MacBook Air M4(2025年)
クロック2.048 MHz1.79 MHz約4,400 MHz(4.4GHz)
メモリRAM 4KBRAM 2KB16GB(16,000,000KB)
ストレージROM 72KBカセット最大1MBSSD 256GB〜2TB
重量約32kg約620g1.24kg

現代のスマートウォッチ以下の性能で、人類は月に行きました。

そして今、あなたのカバンにはアポロの400万倍のメモリを持つMacBookが入っています。

なぜ可能だったか?

1
2
3
4
5
6
7
8
9
┌─────────────────────────────────────────────────┐
│  厳密な計算 ≠ 成功                              │
│                                                 │
│  計算結果には必ず誤差が含まれる                  │
│        ↓                                        │
│  だから「ずれたら修正する」仕組みを用意           │
│        ↓                                        │
│  備えあれば、3.14でも月まで行ける                │
└─────────────────────────────────────────────────┘

アポロは人間系もすごかった。宇宙飛行士が窓から星を見て位置を確認し、必要なら手動で軌道修正。機械と人間の協業で月面着陸を成し遂げました。


5. ソフトウェア開発への示唆

宇宙開発ソフトウェア開発
計算誤差は必ず存在バグは必ず存在
許容誤差を定義許容品質レベルを定義
ずれたら修正監視して修正(DevOps)
燃料は有限予算・時間は有限
人間系との協業AIとの協業(?)

博士たちから学んだこと

開発チームには博士号を持つ数学者・物理学者がいましたが、意外にもオープンな方々でした。私が疑問に思って確認したことも、理にかなっていれば喜んで訂正してくれる

さすが数学者、物理学者。真理の前には肩書きも関係ない。

おまけ:表面張力の公式を「再発見」した話

数年後、別業種で再び数学者集団のチームに配属されました。与えられた課題は「自動車のハンドルが歪む計算」。

自分なりに考えて導いた計算式を調べてみると、なんと**『理科年表』に載っている表面張力の公式と同じ**だったのです。

今ならネットで秒殺ですね(笑)。でも当時は、自力で考え抜いた経験が自信になりました。博士たちに鍛えられた「まず自分で考える」姿勢が活きた瞬間でした。


6. まとめ

  • NASAでも円周率は15桁で十分
  • アポロはスマートウォッチ以下の計算機で月へ行った
  • 厳密性より**「ずれたら直す」備え**が重要
  • 1日数回のコンパイル時代でも衛星は飛んだ
  • 備えあれば、円周率3.14でも月まで行ける

参考リンク


TOP