【NumPy】行列の固有値・固有ベクトル linalg.eig

この記事では、Python言語とNumPyを用いて、行列の固有値・固有ベクトルを求める方法をソースコード付きで解説します。

固有値・固有ベクトル

PythonとNumPyのnumpy.linalg.eigを利用することで、行列の固有値・固有ベクトルを求めることが出来ます。

書式

la, v = numpy.linalg.eig(A)

第1引数(A):固有値・固有ベクトルを求めたい行列
戻り値:固有値(la)と固有ベクトル(v)
固有値に対応する固有ベクトル(v)は、各固有値(la)に対応する位置の列にある。

※固有値は降順ソートされて戻ってきます。

ソースコード

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import numpy as np


def main():
    A = np.array([[1.,0.]    # 行列Aの生成
                 ,[0.,2.]])

    la, v = np.linalg.eig(A)    # 行列Aの固有値・固有ベクトル
    print("固有値:", la)
    print("固有ベクトル:", v)

if __name__ == '__main__':
    main()

実行結果

サンプルプログラムの実行結果です。

固有値:[ 1.  2.]
固有ベクトル:[[ 1.  0.]
 [ 0.  1.]]

おすすめ記事

Python入門 サンプル集
NumPy入門 サンプル集

コメント