1. 程式人生 > >特征值 與特征向量

特征值 與特征向量

int mat roo sigma name \n 9.png bubuko shape

取至:機器學習算法原理與編程實踐(鄭捷)

# -*- coding: utf-8 -*-
# Filename : matrix05.py
import operator
from numpy import *

eps = 1.0e-6 # 誤差量

# 矩陣的特征值和特征向量
A = mat([[8,1,6],[3,5,7],[4,9,2]])

evals, evecs = linalg.eig(A)
print "特征值:",evals,"\n特征向量:", evecs

技術分享圖片

# 手動計算特征值:
m,n = shape(A)
# Aeig = lambda*I-A = [[lambda-8,-1],[-6;-3,lambda-5,-7],[-4,-9,lambda-2]]
# (lambda-8)*(lambda-5)*(lambda-2)-190-24*(5-lambda)-3*(2-lambda)-63*(8-lambda)
equationA = [1,-15,-24,360] #得到系數方程矩陣
evals = roots(equationA) # 計算矩陣方程的根
print "特征值:" ,evals

技術分享圖片

# 特征值和特征向量,還原原矩陣
sigma = evals*eye(m)
print evecs*sigma*linalg.inv(evecs)

技術分享圖片

特征值 與特征向量