python求矩阵的最大特征值及对应的特征向量
直接看下面的代码就行啦!import numpy as np#输入矩阵A = np.array([[1, 1/2, 4, 3, 3],[2, 1, 7, 5, 5],[1/4, 1/7, 1, 1/2, 1/3],[1/3, 1/5, 2, 1, 1],[1/3, 1/5, 3, 1, 1]])#求解特征值即特征向量lamda = np.linalg.eig(A)fo.
·
直接看下面的代码就行啦!
import numpy as np
#输入矩阵
A = np.array([[1, 1/2, 4, 3, 3],
[2, 1, 7, 5, 5],
[1/4, 1/7, 1, 1/2, 1/3],
[1/3, 1/5, 2, 1, 1],
[1/3, 1/5, 3, 1, 1]])
#求解特征值即特征向量
lamda = np.linalg.eig(A)
for i in range(len(lamda[0])):
print('特征值:{0}\n对应的特征向量:\n{1}\n'.format(lamda[0][i], np.transpose([lamda[1][:,i]])))
index = np.argmax(lamda[0])
lamda_max = np.real(lamda[0][index])
vector = lamda[1][:,index]
vector_final = np.transpose((np.real(vector)))
print('最大特征值为:{0}\n对应的特征向量:\n{1}'.format(lamda_max, vector_final))
输出如下:
特征值:(5.072084408570216+0j)
对应的特征向量:
[[-0.46582183+0.j]
[-0.84086331+0.j]
[-0.09509743+0.j]
[-0.17329948+0.j]
[-0.19204866+0.j]]
特征值:(-0.03070462349371196+0.6008274290268424j)
对应的特征向量:
[[ 0.44186009+0.27105866j]
[ 0.77734237+0.j ]
[-0.02000217-0.15570733j]
[-0.02610008+0.07828144j]
[-0.28288299+0.12469508j]]
特征值:(-0.03070462349371196-0.6008274290268424j)
对应的特征向量:
[[ 0.44186009-0.27105866j]
[ 0.77734237-0.j ]
[-0.02000217+0.15570733j]
[-0.02610008-0.07828144j]
[-0.28288299-0.12469508j]]
特征值:(-0.005337580791396011+0.05475205961539484j)
对应的特征向量:
[[-0.36716196+0.2414553j ]
[ 0.85752776+0.j ]
[-0.0190312 +0.00635723j]
[-0.07374757-0.21459801j]
[ 0.07483506+0.11850604j]]
特征值:(-0.005337580791396011-0.05475205961539484j)
对应的特征向量:
[[-0.36716196-0.2414553j ]
[ 0.85752776-0.j ]
[-0.0190312 -0.00635723j]
[-0.07374757+0.21459801j]
[ 0.07483506-0.11850604j]]
最大特征值为:5.072084408570216
对应的特征向量:
[-0.46582183 -0.84086331 -0.09509743 -0.17329948 -0.19204866]
进程已结束,退出代码为 0
给个一键三连呗,至少点个赞再走吧!
更多推荐
已为社区贡献1条内容
所有评论(0)