« 今日は私の誕生日、ISC(Inverse Symbolic Calculator)で2.023614を推定すると3exp(√2)Γ(13/14)と、6.142023なら √3/(K(1/√2)+cos(π/12))が出てきた。 | トップページ | すき家で牛あいがけタコライス(ご飯大盛)をいただく。タコライス美味しいな!タバスコもついてきてたっぷりかけるとさらに良くなる。 »

2023年6月15日 (木)

時代に逆行してCOBOL(GnuCOBOL)を学んでみる(7) 31桁の10進演算でLU分解で連立一次方程式を解くサブルーチンを作ってみる。Numerical Recipes(ニューメリカル・レシピ)のFORTRAN77(Cじゃなく)の移植版。

さて今回は連立一次方程式だ。まあLU分解とかがいいだろう。適当なルーチンは、、、

まあNumerical Recipesだな。今となっては批判もあったりもっといいルーチンも多いが昔はこれしかなかったのだ。

 

Cより歴史的に近いFORTRAN77のを移植しよう。例題はこれ。

 \[ \left( \begin{array}{rrr} 5 & 10 & 14 \\ 3 & 6 & 2 \\ 2 & 5 & 4 \\ \end{array} \right)
\left( \begin{array}{c} x \\ y \\ z \\ \end{array} \right) = \left( \begin{array}{c} 15 \\ 1 \\ 6 \\ \end{array} \right)
\]

答えはこうなるはず。

x=-12
y=4
z=2.5

 

 

 

ではNumerical recipesの

・ludcmp

・lubksb
ルーチンを移植しよう。ソースコードはこちら。

Cobollu1

これを続けて呼び出すと計算できる。右辺が違う値を計算したいときは2番目を繰り返す。

Cobollu2

結果はこちら。

Cobollu3

ちゃんと計算できてる!

もうNumerical Recipesのコード、全部移植できそうな気がしてきた。

次はFFTかな。

これまでのCOBOLシリーズ:

時代に逆行してCOBOL(GnuCOBOL)を学んでみる(1) Windows11のWSL2でインストール、Visual Studio Codeの拡張機能を使い、10進31桁まで計算できることを生かして二次方程式で桁落ちが落ちる例題をそのまま計算。言語そのものはそんな批判されるほどのこともない気がした。

時代に逆行してCOBOL(GnuCOBOL)を学んでみる(2)話題のMojoが例題としてマンデルブロ集合を使っているそうなので、COBOLでマンデルブロ集合を描いてみよう。ただしテキストベースで! 多重ループの練習。

時代に逆行してCOBOL(GnuCOBOL)を学んでみる(3) ロジスティック写像の分岐図を31桁まで10進計算ができることを生かして描いてみる。テキストベースで!今回は2次元配列の練習。

時代に逆行してCOBOL(GnuCOBOL)を学んでみる(4) 10進31桁まで計算できることを生かして4段4次のルンゲクッタ法でローレンツ方程式を計算して図示してみる。テキストベース(アスキーアート)で! 時代に逆行してCOBOL(GnuCOBOL)を学んでみる(5) 中二病のような名前のブルースカイカタストロフィ(Blue-sky catastrophe)を生じるGavrilov Shilnikov modelをドルマン・プリンス法(ode45)で計算する。テキストベース(アスキーアート)で!

時代に逆行してCOBOL(GnuCOBOL)を学んでみる(6) 31桁の10進演算で複素数を計算するライブラリを作ってみる。外部ファイルのサブルーチンを呼び出すCALL文とUSINGの練習。

« 今日は私の誕生日、ISC(Inverse Symbolic Calculator)で2.023614を推定すると3exp(√2)Γ(13/14)と、6.142023なら √3/(K(1/√2)+cos(π/12))が出てきた。 | トップページ | すき家で牛あいがけタコライス(ご飯大盛)をいただく。タコライス美味しいな!タバスコもついてきてたっぷりかけるとさらに良くなる。 »

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« 今日は私の誕生日、ISC(Inverse Symbolic Calculator)で2.023614を推定すると3exp(√2)Γ(13/14)と、6.142023なら √3/(K(1/√2)+cos(π/12))が出てきた。 | トップページ | すき家で牛あいがけタコライス(ご飯大盛)をいただく。タコライス美味しいな!タバスコもついてきてたっぷりかけるとさらに良くなる。 »

最近の記事

最近のコメント

2024年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
フォト
無料ブログはココログ