spml/eigmatrix モジュールは, 実行列の固有値問題を解くための Fortran90 サブルーチンを提供する. このモジュールで提供するサブルーチンは単純なインターフェースを 提供するだけであり, 実際には内部で行列計算ライブラリ SSL II あるいは LAPACK の固有値問題を解くサブルーチンを呼んでいる.
名前 | 機能 |
---|---|
eigen | 実正方行列の固有値, 固有ベクトルを求める |
indexx | 並び替えのための番号順づけを行う |
real(8), dimension(:,:) :: amat ! 入力正方行列 real(8), intent(out), dimension(:) :: eigen_r ! 固有値実数部 real(8), intent(out), dimension(:) :: eigen_i ! 固有値虚数部 real(8), intent(out), & dimension(size(amat,1),size(eigen_r)) :: eigvec_r ! 固有ベクトル実部 real(8), intent(out), & dimension(size(amat,1),size(eigen_i)) :: eigvec_i ! 固有ベクトル虚部 integer, intent(out) :: info ! ステータス character(len=2), intent(in), optional :: sort ! 並び変えの量 logical, intent(in), optional :: reverse ! 並び変えスイッチ
real(8), dimension(:), intent(in) :: arrin ! 順番を調べる配列 integer, dimension(size(arrin)) :: indexx ! 結果の順番づけの番号
index = indexx(array) array = array(index) ! 小さい順 array = array(index(size(index):1:-1) ! 大きい順