sakeisnomitaiの日記

プログラミングで調べたことを自分なりにまとめるだけの人

Macでlapackを使う

連立一次方程式を解くのにlapackという数値計算用のフリーのライブラリがあることを知ったので、ちょっと使ってみた。環境はM1Macです。

 

1.インストール

 →homebrewでできる

brew install lapack  でOK

 

インストールすると...

For compilers to find lapack you may need to set:

  export LDFLAGS="-L/opt/homebrew/opt/lapack/lib"

  export CPPFLAGS="-I/opt/homebrew/opt/lapack/include"

と言われる。この通りexportしてあげれば良いみたい。

 

2.連立一次方程式を解いてみる

倍精度で解くには DGESVというサブルーチンを使う

n次方程式:Ax = b

 

call DGESV(N, NRHS, A, LDA, IPIV, B, LDB, INFO)

で呼び出せる。

N, LDA, LDBはnで大丈夫ぽい

NRHSはBの列数 1でOK

A:n×nの係数行列 B: 1×nのベクトル(既知)

IPIV: integer,dimension(n)

Info: integer

 

このサブルーチンを呼び出すとbに解が格納される。

write(6,*) b 

としてしまえば解を出力できる。

 

コンパイル

gfortran ~.f90 -llapack

とすれば出来た。

 

詳しく知りたければ

www.nag-j.co.jp

とか

 

sxauroratsubasa.sakura.ne.jp

とか

qiita.com

とかを見てみると良さそうです。(参考にさせていただきました)