取至:機器學習演算法原理與程式設計實踐(鄭捷)
# -*- 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
# 特徵值和特徵向量,還原原矩陣
機器學習4 特徵向量與特徵值
a為n階矩陣,若數 和n維非0列向量x滿足ax x,那麼數 稱為a的特徵值,x稱為a的對應於特徵值 的特徵向量。式ax x也可寫成 a e x 0,並且 e a 叫做a 的特徵多項式。當特徵多項式等於0的時候,稱為a的特徵方程,特徵方程是乙個齊次線性方程組,求解特徵值的過程其實就是求解特徵方程的解。...
特徵向量與特徵值
在看線性代數這一部分的時候,真是一頭霧水。雖然明白了特徵值和特徵向量的求法,但總覺得沒有用。在 理解矩陣 一文中,雖然提到了這與矩陣的本質有關,但並未詳細提及,但我知道了一定具有一定的幾何意義。後來,檢視了 特徵向量的幾何意義 一文,才明白了。特別是wikipedia中關於 特徵向量 的文章,終於對...
特徵值與特徵向量
我們知道,矩陣乘法對應了乙個變換,是把任意乙個向量變成另乙個方向或長度都大多不同的新向量。在這個變換的過程中,原向量主要發生旋轉 伸縮的變化。如果矩陣對某乙個向量或某些向量只發生伸縮變換,不對這些向量產生旋轉的效果,那麼這些向量就稱為這個矩陣的特徵向量,伸縮的比例就是特徵值。實際上,上述的一段話既講...