軌道力学 - Orbital Mechanics -

宇宙を駆けるために!! 数学・物理・工学を結集させて……

「Python」を活用するには − インストール −

 プログラミングを進めるためにも、日常で使用しているパソコンにアプリケーションをインストールしたり、使用環境を整えないとなりません。無償で様々なパッケージが提供されていますが、種類がありすぎてどれをインストールして良いのか迷ってしまいます。

 パッケージにもWindowsLinuxmacOS用と分かれていますが、使用するパソコンによって決まります。日本語の環境にも対応していますが、科学技術計算などを行うためには、関連するドキュメントを英語で読めたほうが良いです。技術者ならば継続して英語も勉強することをお勧めします。

 私は長年Mac派なので日頃からMacBookを使用しており、macOS版をインストールしています。最初は標準的なPython 3系の統合開発環境(IDLEと略記:Integrated DeveLopment Environment)をインストールしました。科学技術計算(特に行列計算)を処理できるようにするためには、サブライプラリであるNumPyをインストールしなければなりません。

 NumPyのインストールやその後の保守管理が面倒にありますが、NumPy等が含まれている汎用的パッケージが配布されていました。IPython(Interactive Python)やSpyder(The Scientific PYthon Development EnviRonment;略語に強引にアルファベットを割り当てています)があり、私はSpyderを使用しています。

 最初はSpyderのパッケージをインストールしましたが、Macのセキュリティ認証のために起動できませんでした。最終的には、Spyderも含む様々なPythonパッケージが使用できるAnacodaを導入しました。個人で使用する場合には、無償版であるIndividual Editionをダウンロードすることになります。PythonもAnacodaも蛇の名前でもあります。

 Anacodaを起動するとANACONDA NAVIGATORの画面が表示され、蜘蛛の巣アイコンのSpyderも選択できます。IPythonについてもQt ConsoleやJupyter Notebookに含まれているので使用できます。

f:id:fujihisa:20210417212758p:plain

Anaconda Package

 Spyderを選択して立ち上げます(Launch)。ようやくPythonで科学技術計算の基礎ライブラリであるNumPyが使用できます。NumPyの活用によって、各種の数学関数が使用でき、行列計算も高速で処理できます。 

f:id:fujihisa:20210417215701p:plain

Spyder Console

 行列計算で逆行列を求める場合にも、NumPyライブラリーをインポートして、行列Aを定義し、行列BをAの逆行列を計算させ、行列AとBの積を取ると単位行列となっていることを確認できます。Pythonでは、C言語のように行列変数の厳密な定義も必要ないし、np.dot関数を使用すれば行列の積計算を行ってくれます。

 In [1]: import numpy as np
 In [2]: A = [[ 1, 0, 1],[-2, 1, 0],[ 2,-1, 1]]
 In [3]: B = np.linalg.inv(A)
 In [4]: np.dot(A,B)
 Out[4]:
 array([[1., 0., 0.],
 [0., 1., 0.],
 [0., 0., 1.]])

参考文献

  1. 科学技術計算のためのPython入門 ――開発基礎、必須ライブラリ、高速化