python scipy 科學運算

Steven Wang
3 min readNov 24, 2017

--

from scipy from linalg 線性代數

矩陣 A

B=反函數矩陣 linalg.inv(A)

單位矩陣=矩陣 A*B反函數矩陣(內積),單位矩陣對角線為1
矩陣內積 A.dot(linalg.inv(A))

因為浮點運算,正常應該是

1 0 0
0 1 0
0 0 1

A矩陣的行列式 linalg.det(A)

12
34
行列式=(1*4)-(3*2)=-2

Python扩展库numpy.linalg的eig()函数可以用来计算矩阵的特征值与特征向量,而numpy.linalg.inv()函数用来计算可逆矩阵的逆矩阵。

>>> import numpy as np

>>> x = np.matrix([[1,2,3], [4,5,6], [7,8,9]])

# 计算矩阵特征值与特征向量

>>> e, v = np.linalg.eig(x)

# 根据特征值和特征向量得到原矩阵

>>> y = v * np.diag(e) * np.linalg.inv(v)

>>> y

matrix([[ 1., 2., 3.],

[ 4., 5., 6.],

[ 7., 8., 9.]])

因為是三維陣列 有三個特征值与特征向量
v[:,0]為第一列的特徵向量
v[:,1]為第二列的徵向量
v[:,2]為第三列的特徵向量

.T 轉置

記得高中數學有學過但是一直不知道是要幹嘛的到現在,溫故知新一下

--

--

Steven Wang
Steven Wang

No responses yet