Class eigmatrix
In: src/eigmatrix.f90
= eigmatrix :固有値問題サブルーチン

概要

spml/eigmatrix モジュールは, 実行列の固有値問題を解くための Fortran90 サブルーチンを提供する. このモジュールで提供する サブルーチンは単純なインターフェースを提供するだけであり, 実際には内部で行列計算ライブラリ SSL II あるいは 1 の 固有値問題を解くサブルーチンを呼んでいる.

変数・手続き群の要約

eigen :実正方行列の固有値, 固有ベクトルを求める
indexx :並び替えのための番号順づけを行う

Methods

eigen  

Included Modules

lapack_eigen

Public Instance methods

eigen( amat, eigen_r, eigen_i, eigvec_r, eigvec_i, info, [sort], [reverse] )
Subroutine :
amat :real(8), dimension(:,:)
: 入力正方行列
eigen_r :real(8), intent(out), dimension(:)
: 固有値実数部
eigen_i :real(8), intent(out), dimension(:)
: 固有値虚数部
eigvec_r :real(8), intent(out), dimension(size(amat,1),size(eigen_r))
: 固有ベクトル実部
eigvec_i :real(8), intent(out), dimension(size(amat,1),size(eigen_i))
: 固有ベクトル虚部
info :integer, intent(out)
: ステータス
sort :character(len=2), intent(in), optional
: 並び変えの量
reverse :logical, intent(in), optional
: 並び変えスイッチ

このサブルーチンは固有値計算用共通インターフェースを与える eigmatrix モジュールの公開サブルーチン eigen として用いられる.

  * 行列 AMAT の i 番目固有値を eigen_r(i), eigen_i(i) に格納
  * 対応する固有ベクトルを eigvec_r(:,i), eigvec_i(:,i) に格納
  * 格納する固有値の数は引数 eigen_r の大きさで決まる

  * 固有値の順番は sort と order で定められる.
  * sort によって順番を定めるために用いる量を指定する.
    実部(R), 実部の絶対値(RA), 虚部(I), 虚部の絶対値(IA)
  * reverse によって小さい順(.false.), 大きい順(.true.)を指定できる.
  * デフォルトは sort='R', reverse=.false.

内部では DGEEV/LAPACK ルーチンによる実行列の固有値/固有ベクトル計算を 行っている. が, ユーザーは用いているライブラリとサブルーチンを意識 することなく使うことができる.

Original external subprogram is lapack_eigen#deigen_lapack

[Validate]