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)

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

给个一键三连呗,至少点个赞再走吧!

  • 42
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
学习人工智能,机器学习都离不开数学基础和编程知识。无论你是数据科学的初学者还是已经从事人工智能开发的有经验人员,这门课都适合于你。为什么这么说?首先人工智能和机器学习本质上就是算法,而算法就是数学及统计学以及编程的结合。当前市场上有许多开源的软件包如SKLEARN确实可以帮助没经验的或缺乏数学或算法基础的人实现机器学习模型及预测,但这些工具无法使你真正懂得算法的本质或来源,或者无法使你在不同场合下灵活运用及改进算法。记住,在实际工作中找到适合应用场景的解决方案是最难但是最重要的。但这离不开数学基础和算法理解。比如,线性回归是一类普遍的机器学习算法,所有的机器学习软件都有现成的方法实现模型,但如果在训练数据中加入几条新数据,那么新建立的模型和原来的模型有和联系或不同?再比如,为什么深度神经网络中的Sigmoid函数一般只用到输出层?神经网络的向后传播理论如何与泰勒展开和复合函数的偏导数联系在一起?人工智能中推荐系统和文字向量如何与矩阵的奇异分解以及特征向量联系?模型中对标签进行数据变换如何影响预测值?所有这些问题的答案,你都可以从本课中找到线索。本课系统地讲述了有关人工智能,机器学习背后的数学知识。特别指出,微积分和代数知识是本课的核心。统计学基础被安排在另外的课程中。除此之外,我在每一章节或主要知识点后都安排了各类程序以解释和回顾所学到的东西。最后要提到的是,这不是一门工程项目实践课。但我会另外专门安排有关人工智能,机器学习的实践课程
可以使用NumPy库中的`linalg.eig`方法来矩阵特征值特征向量。具体步骤如下: 1. 导入NumPy库 ```python import numpy as np ``` 2. 定义矩阵 ```python A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) ``` 3. 特征值特征向量 ```python eigenvalues, eigenvectors = np.linalg.eig(A) ``` 其中,`eigenvalues`是一个包含矩阵特征值的一维数组,`eigenvectors`是一个包含特征向量的二维数组,其中每一列都是一个特征向量。 4. 找到最大特征值及其对应特征向量 ```python max_eigenvalue_index = np.argmax(eigenvalues) max_eigenvalue = eigenvalues[max_eigenvalue_index] max_eigenvector = eigenvectors[:, max_eigenvalue_index] ``` 其中,`max_eigenvalue_index`是最大特征值在`eigenvalues`数组中的索引,`max_eigenvalue`是最大特征值,`max_eigenvector`是最大特征值对应特征向量。 完整代码如下: ```python import numpy as np # 定义矩阵 A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 特征值特征向量 eigenvalues, eigenvectors = np.linalg.eig(A) # 找到最大特征值及其对应特征向量 max_eigenvalue_index = np.argmax(eigenvalues) max_eigenvalue = eigenvalues[max_eigenvalue_index] max_eigenvector = eigenvectors[:, max_eigenvalue_index] print("最大特征值为:", max_eigenvalue) print("最大特征值对应特征向量为:", max_eigenvector) ``` 输出结果: ``` 最大特征值为: 16.116843969807043 最大特征值对应特征向量为: [-0.23197069 -0.52532209 -0.8186735 ] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tony的直播间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值