2024年03月19日
3月19日 パソコンでプログラミング
MIFES
これまで数値計算のために各種プログラム言語でプログラムを書いてきました。
数値計算は、私の場合は、主として微積分方程式体系や動学方程式体系の数
値解を計算したり、方程式体系の不動点(fixed point)を数値で求めることことを
指します。
1.そのために、まず解きたい問題を方程式体系等でモデル化します。
2.次に、モデルの解を求める手続きを計算プログラムで書きます。先述の「各種
プログラム言語でプログラムを書いてきました」というのが1と2に当たります。
プログラム自体はアルファベットや数字、記号からなる単なる文字列です。
文字列からなる命令を読み取り、指示通りに計算処理をするのが、数値計算に
関してはGAUSS、MATLAB、MATHEMATICAなどがあります。
これらはフル装備となると非常に高価なので大学や研究機関での使用が基本で
です。
C(++)は各種OSやプログラムを作るための汎用プログラムといえいえます。プロ
グラムを実行するには、コンパイラにかけて実行ファイルを作っておく必要があり
ますので面倒です。
プログラムを書くソフトウェア
プログラムを書くソフトウェアとして私は長年MIFESを使ってきました。
MIFESは、WORDと違って、いわゆるTEXTファイル作成にほとんど特化したソフ
トウェアです。
特長
1. とにかくスクロールスピードが速い。
複数行の文字列、データを丸ごと超スピーディにコピー&ペーストできます。
例えば、プログラムの一部分(40桁300行とか500行丸ごととか)をコピーし、
それを別のWindowに表示させている別のプログラムのある個所に素早く
ペーストすることができます。
C言語では、一つの処理が関数型のまとまりからなっています。
その処理が300行で書かれているなら、それを別のプログラムで使うときは、
その300行を丸ごとコピー&ペーストすれば良いので作業効率が上がります。
2. MIFESからCなどのコンパイラーを走らせる事ができます。
3. 16進数で文字を処理できますし、機械語でプログラムを書くこともできます。
4. コピー&ペーストの速度は鉛筆で紙にメモするのを遙かに凌ぎます。
ばらばらのデータでもMIFESにテキストデータとして記録しておけば、後から
それらをまとめ推敲すれば、文献目録や、講義原稿等ができてしまいます。
WORDやPOWERPOINTにコピー&ペーストすることも容易です。
数値計算するためのソフトウェア
まずはGAUSSです。
数値計算用のソフトウェアです。
最近はR,Pythonといった無料(Free)ソフトウェアがが使えますが、私はそれらの前
からGAUSSを使ってきました。
現在、家では、GAUSS Light Ver12 (Free Version)を使っています。
上の画面では、階乗(!)を利用して自然対数の底(e)の計算をしています。
kの階乗とは 1*2*3*・・・・・*k です。
eはe=Σ1/k! (k=0,1,2,3,・・・・・・∞)で与えられます。
画面では、kは1から14までとしています。
0!=1です。
format 文で桁数等を指定します。画面では、計算結果が
e=2.718281828459
と表示されています。
さらに最近ではFree SoftwearのJuliaがあります。
上の画面はJulia で3X3の対称行列A
6 8 4
7 5 7
4 8 6
の逆行列を計算させる手順を示したものです。
A=[6 8 4; 7 5 7; 4 8 6]
とすれば3X3の対称行列を作成できます、
print(inv(A))
とすれば、行列Aの逆行列(inverse matrix of A)が画面にプリント(print)
されます。
Juliaはマサチューセッツ工科大学(MIT)の研究者を中心にして開発されたソフト
ウェアです。Freeで使えます。Microsoft Visual Studio Codeの下で走らせること
できます。
MIFESでプログラムし、VSCodeで読み取り、デバッグして走らせることができま
す。
GAUSSは行列の操作に少し弱みがあります。
最近のハイスペックでかつFreeのものといえばJuliaかもしれません。
自分の使用目的に合った、自分にとって使い勝手のあるものを選ぶとよいでしょう。
プログラム言語の間の指示の違いに注意が必要です。
GAUSS の場合
for k(1, 14, 1); という文が写真に写っています。その意味は以下の通りです。
k(1, 14, 1) --------->、kが1から14まで、1ずつ増加する
for-------> 各々のkの値に対してと言う意味。for文の最後にセミコロンを付ける。
Cの場合
for (k = 1 ; k <= 14 ; k++){...........}
上と同じ指示。kは括弧の中に入る。セミコロンで区切る。
上のように、プログラミングでは、コンマ、セミコロン、半角スペースのあるなし一つで、
文法違反になりますので要注意です。
これまで数値計算のために各種プログラム言語でプログラムを書いてきました。
数値計算は、私の場合は、主として微積分方程式体系や動学方程式体系の数
値解を計算したり、方程式体系の不動点(fixed point)を数値で求めることことを
指します。
1.そのために、まず解きたい問題を方程式体系等でモデル化します。
2.次に、モデルの解を求める手続きを計算プログラムで書きます。先述の「各種
プログラム言語でプログラムを書いてきました」というのが1と2に当たります。
プログラム自体はアルファベットや数字、記号からなる単なる文字列です。
文字列からなる命令を読み取り、指示通りに計算処理をするのが、数値計算に
関してはGAUSS、MATLAB、MATHEMATICAなどがあります。
これらはフル装備となると非常に高価なので大学や研究機関での使用が基本で
です。
C(++)は各種OSやプログラムを作るための汎用プログラムといえいえます。プロ
グラムを実行するには、コンパイラにかけて実行ファイルを作っておく必要があり
ますので面倒です。
プログラムを書くソフトウェア
プログラムを書くソフトウェアとして私は長年MIFESを使ってきました。
MIFESは、WORDと違って、いわゆるTEXTファイル作成にほとんど特化したソフ
トウェアです。
特長
1. とにかくスクロールスピードが速い。
複数行の文字列、データを丸ごと超スピーディにコピー&ペーストできます。
例えば、プログラムの一部分(40桁300行とか500行丸ごととか)をコピーし、
それを別のWindowに表示させている別のプログラムのある個所に素早く
ペーストすることができます。
C言語では、一つの処理が関数型のまとまりからなっています。
その処理が300行で書かれているなら、それを別のプログラムで使うときは、
その300行を丸ごとコピー&ペーストすれば良いので作業効率が上がります。
2. MIFESからCなどのコンパイラーを走らせる事ができます。
3. 16進数で文字を処理できますし、機械語でプログラムを書くこともできます。
4. コピー&ペーストの速度は鉛筆で紙にメモするのを遙かに凌ぎます。
ばらばらのデータでもMIFESにテキストデータとして記録しておけば、後から
それらをまとめ推敲すれば、文献目録や、講義原稿等ができてしまいます。
WORDやPOWERPOINTにコピー&ペーストすることも容易です。
数値計算するためのソフトウェア
まずはGAUSSです。
数値計算用のソフトウェアです。
最近はR,Pythonといった無料(Free)ソフトウェアがが使えますが、私はそれらの前
からGAUSSを使ってきました。
現在、家では、GAUSS Light Ver12 (Free Version)を使っています。
上の画面では、階乗(!)を利用して自然対数の底(e)の計算をしています。
kの階乗とは 1*2*3*・・・・・*k です。
eはe=Σ1/k! (k=0,1,2,3,・・・・・・∞)で与えられます。
画面では、kは1から14までとしています。
0!=1です。
format 文で桁数等を指定します。画面では、計算結果が
e=2.718281828459
と表示されています。
さらに最近ではFree SoftwearのJuliaがあります。
上の画面はJulia で3X3の対称行列A
6 8 4
7 5 7
4 8 6
の逆行列を計算させる手順を示したものです。
A=[6 8 4; 7 5 7; 4 8 6]
とすれば3X3の対称行列を作成できます、
print(inv(A))
とすれば、行列Aの逆行列(inverse matrix of A)が画面にプリント(print)
されます。
Juliaはマサチューセッツ工科大学(MIT)の研究者を中心にして開発されたソフト
ウェアです。Freeで使えます。Microsoft Visual Studio Codeの下で走らせること
できます。
MIFESでプログラムし、VSCodeで読み取り、デバッグして走らせることができま
す。
GAUSSは行列の操作に少し弱みがあります。
最近のハイスペックでかつFreeのものといえばJuliaかもしれません。
自分の使用目的に合った、自分にとって使い勝手のあるものを選ぶとよいでしょう。
プログラム言語の間の指示の違いに注意が必要です。
GAUSS の場合
for k(1, 14, 1); という文が写真に写っています。その意味は以下の通りです。
k(1, 14, 1) --------->、kが1から14まで、1ずつ増加する
for-------> 各々のkの値に対してと言う意味。for文の最後にセミコロンを付ける。
Cの場合
for (k = 1 ; k <= 14 ; k++){...........}
上と同じ指示。kは括弧の中に入る。セミコロンで区切る。
上のように、プログラミングでは、コンマ、セミコロン、半角スペースのあるなし一つで、
文法違反になりますので要注意です。