2013/01/19

pythonを使って固有値・固有ベクトルを求める


Pythonのnumpyとscipyを使って固有値・固有ベクトルを指定した数分、作成するコードを作ってみたのでメモ書き
 
 #encoding:UTF-8

import numpy
import scipy.linalg

hi = 2
lo = 0
#行列のサイズ
w = 3
list = []
for i in range( 10 ):
    list.append(i)

def EigenValue():
    global list
    a = []
    #行列
    a = []
    for i in range(w):
        if i == w:
            break
        else:
            a.append(list[i:i+w])
    A = numpy.matrix(a)
    eigen_value,eigen_vector = scipy.linalg.eigh(A,eigvals=(lo,hi))
    eigen_id = numpy.argsort(eigen_value)[::-1]
    eigen_vector = eigen_vector[:,eigen_id]
    eigen_value = eigen_value[:,eigen_id]
    print eigen_value
    print eigen_vector

if __name__=="__main__":
    EigenValue()

0 件のコメント:

コメントを投稿