1. 程式人生 > >【深度學習基礎】:線性代數(一)_特徵分解及numpy、scipy實現

【深度學習基礎】:線性代數(一)_特徵分解及numpy、scipy實現

一、特徵分解的意義

        有時,我們會將現實中的某些事物抽象成矩陣的形式,例如可以將一張圖片抽象成一個畫素值組成的矩陣。此時,我們也許希望中將矩陣分解成多個組成部分,這些組成部分代表了這個矩陣的特徵,這就是特徵分解的意義。

二、 特徵值與特徵向量

三、 特徵分解

四、實對稱矩陣的特徵分解

五、 實對稱矩陣在二次方程中的應用

六、正定、半正定、負定、半負定

七、Python實現

1.      Numpy

import numpy as np
A = np.array([[1,2,3],
             [4,5,6],
             [7,8,9]])
# 計算特徵值
print(np.linalg.eigvals(A))
# 同時計算特徵值和特徵向量
eigvals,eigvectors = np.linalg.eig(A)
print(eigvals)
print(eigvectors)

2.      Scipy 

import numpy as np
import scipy as sp
A = np.array([[1,2,3],
             [4,5,6],
             [7,8,9]])
# 計算特徵值
print(sp.linalg.eigvals(A))
# 同時計算特徵值和特徵向量
eigvals,eigvectors = sp.linalg.eig(A)
print(eigvals)
print(eigvectors)