使用python的數(shù)值計(jì)算庫(kù)numpy來計(jì)算矩陣的特征值抢韭,特征向量與標(biāo)準(zhǔn)正交向量組
import numpy as np
1.求矩陣的特征值和各特征值所對(duì)應(yīng)的特征向量
x = np.array([[-1,0,1],[1,2,0],[-4,0,3]])
a,b=np.linalg.eig(x) ##特征值賦值給a,對(duì)應(yīng)特征向量賦值給b
for i in range(len(a)):
print('特征值',a[i],'對(duì)應(yīng)特征向量為',b[:,i])
特征值 2.0 對(duì)應(yīng)特征向量為 [0. 1. 0.]
特征值 1.0 對(duì)應(yīng)特征向量為 [ 0.40824829 -0.40824829 0.81649658]
特征值 1.0 對(duì)應(yīng)特征向量為 [-0.40824829 0.40824829 -0.81649658]
2.求矩陣的特征值和各特征值所對(duì)應(yīng)的特征向量
x = np.array([[1,-2,2],[-2,-2,4],[2,4,-2]])
a,b=np.linalg.eig(x) ##特征值賦值給a喷兼,對(duì)應(yīng)特征向量賦值給b
for i in range(len(a)):
print('特征值',a[i],'對(duì)應(yīng)特征向量為',b[:,i])
特征值 2.000000000000001 對(duì)應(yīng)特征向量為 [ 0.94280904 -0.23570226 0.23570226]
特征值 -6.999999999999997 對(duì)應(yīng)特征向量為 [-0.33333333 -0.66666667 0.66666667]
特征值 1.9999999999999993 對(duì)應(yīng)特征向量為 [-0.0232036 0.7126935 0.7010917]
3.由向量組構(gòu)造一組標(biāo)準(zhǔn)正交向量組
print('循環(huán)')
a = np.array([[0,1,0],[0,-1,1],[1,-1,2]])
b = np.zeros(a.shape)
#正交化
for i in range(len(a)):
b[i] = a[i]
for j in range(0,i):
b[i] -= np.dot(a[i],b[j])/np.dot(b[j],b[j])*b[j]
#歸一化
for i in range(len(b)):
b[i] = b[i]/np.sqrt(np.dot(b[i],b[i]))
print(b)
循環(huán)
[[0. 1. 0.]
[0. 0. 1.]
[1. 0. 0.]]