我正在嘗試numpy.linalg.eig,但輸出不如預期
Ax = λx 其中
- A 是一個矩陣
- λ 是特征值
- x 是特征向量
這是代碼
import numpy as np
from numpy import linalg
A = np.array([[2,3],[-1,3]])
eigenvalues,eigenvectors = linalg.eig(A)
leftside = A[0]*eigenvectors[:,0]
rightside = eigenvalues[0]*eigenvectors[:,0]
print(leftside)
print(rightside)
我希望左側等于右側,但輸出不同?
[1.73205081 0.j 0.4330127 1.43614066j]
[ 2.16506351 1.43614066j -0.4330127 1.43614066j]
為什么會出現這種情況?如何使方程式起作用?(因為左側將等于右側)
uj5u.com熱心網友回復:
要進行矩陣向量乘法,請使用A @ ...not A[0] * ...which 與向量相乘A[0]。代碼:
import numpy as np
from numpy import linalg
A = np.array([[2, 3], [-1, 3]])
eigenvalues, eigenvectors = linalg.eig(A)
leftside = A @ eigenvectors[:, 0]
rightside = eigenvalues[0] * eigenvectors[:, 0]
print(leftside)
print(rightside)
印刷:
[ 2.16506351 1.43614066j -0.4330127 1.43614066j]
[ 2.16506351 1.43614066j -0.4330127 1.43614066j]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/412185.html
標籤:
上一篇:Pyplot如何繪制數學藝術
