GNU FortranからGNU Octaveへの移行

女性

GNU FortranからGNU Octaveへ移行することにしました。「天体の位置計算 増補版」にあったプログラミング言語であるというのが、その理由になります。次の「2体問題による惑星、彗星などの位置の概算」から移行する形になります。また、いままで作成してきたコードも、順次Octaveに書き直して、掲載とGitHubにアップロードしていく予定です。

数値演算におけるOctaveの主な言語特徴

  • cos、sin、tanなどの標準的なものから、sec、csc、cotといった豊富な数学関数
  • 行列の和、差、積、転置、べき乗などの演算

これ以外にもありますが、天文計算においては上記の特徴で十分でしょう。

Octaveのデメリット

デメリットとしては、以下のことが挙げられます。

  • インタープリタである
  • プログラムの実行にOctaveのインストールが必要
  • プログラムの実行が少し一手間かかる

これは言わずものがなでしょう。GNU Fortranでコンパイルしたものは、独立したアプリケーションであるため、実行ファイルを他のPCに持っていっても実行可能です。ですが、Octaveはそうなりません。Windows版ではUSBにインストールできるようですが、Linuxではできないようです。

インタープリタは遅いというのは、定説です。これは仕方がありません。だからといって、ダメだということではなく、膨大な計算をするシミュレーションを対象にすると遅いと言えます。一般的な天文計算であれば、十分と言えるでしょう。1980年当時のコンピューターと比べれば、現在は遥かに進化したものですし、当時ひとつの結果を出すのに1時間かかった計算は、安価なPCでも一瞬で計算することができます。



Octaveを知れば知るほど、良い言語かなと思っています。できないこともありますが、それは別のプログラミング言語で補えばよいことだと考えています。マイコン宇宙講座では、天文現象の表示にグラフィックを用いていますが、Octaveではグラフ表示はできますが、日食シミュレーションのようなことはできません。だとしたら、そういったことをしたいのであれば、Python3など、グラフィック表示が可能なプログラミング言語を利用すればよいと思います。