XLPack 7.0
Python API リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ dsyev()

def dsyev ( jobz  ,
uplo  ,
,
,
 
)

固有値・固有ベクトル (対称行列)

目的
dsyevは実対称行列 A のすべての固有値, および, 必要により固有ベクトルを求める.
戻り値
info (int)
= 0: 正常終了
= -1: 入力パラメータ jobz の誤り (jobz != 'V'および'N')
= -2: 入力パラメータ uplo の誤り (uplo != 'U'および'L')
= -3: 入力パラメータ n の誤り (n < 0)
= -4: 入力パラメータ a の誤り
= -5: 入力パラメータ w の誤り
= i > 0: 収束しなかった. 中間結果の3重対角形の非対角要素のうちi個が0に収束しなかった.
引数
[in]jobz= 'N': 固有値のみ求める.
= 'V': 固有値と固有ベクトルを求める.
[in]uplo= 'U': Aの上三角部分を格納する.
= 'L': Aの下三角部分を格納する.
[in]n行列Aの行および列数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る)
[in,out]aNumpy ndarray (2次元配列, float, n x n)
[in] n×n対称行列 A. uploに従い上三角部分あるいは下三角部分を格納する.
[out] jobz = 'V': info = 0の場合, 行列Aの正規直交固有ベクトルをaに返す.
  jobz = 'N': aの下三角部分(uplo = 'L'の場合)あるいは上三角部分(uplo = 'U'の場合)は対角部分を含め壊される.
[out]wNumpy ndarray (1次元配列, float, n)
info = 0の場合, 求められた固有値(昇順).
出典
LAPACK
使用例
対称行列Aの固有値・固有ベクトルを求める.
ただし,
( 2.20 -0.11 -0.32 )
A = ( -0.11 2.93 0.81 )
( -0.32 0.81 2.37 )
とする.
def TestDsyev():
n = 3
a = np.array([
[2.2, 0.0, 0.0],
[-0.11, 2.93, 0.0],
[-0.32, 0.81, 2.37]])
w = np.empty(3)
info = dsyev('V', 'U', n, a, w)
print(w, info)
print(a)
def dsyev(jobz, uplo, n, a, w)
固有値・固有ベクトル (対称行列)
実行結果
>>> TestDsyev()
[1.70705955 2.22943643 3.56350402] 0
[[-0.39932208 0.48102644 -0.78048411]
[ 0.89452139 0.39099459 -0.21669038]
[-0.20093126 0.78468898 0.58642121]]