python - python - 如何使用python查找具有特征值和特征向量的整数条目的2x2矩阵?
问题描述
例如,如果我的特征值 7 和 20 具有特征向量 (2,3) 和 (1,3),我将如何计算 2x2 矩阵?我可以使用 python 来计算包含这些整数条目的数组吗?
解决方案
这更像是一个数学问题而不是编程问题。要获得具有特征值 7 和 20 以及特征向量 [2, 3] 和 [1, 3] 的矩阵,您需要创建一个矩阵P
,该矩阵具有特征向量作为列和一个对角矩阵D
,其特征值在主对角线上。使用 numpy 这将是:
import numpy as np
P = np.array([[2, 3], [1, 3]]).T
D = np.diag([7, 20])
(这里假设 7 是对应 [2, 3] 的特征值,20 对应 [1, 3])。您要查找的矩阵是通过乘以 P D P^(-1) 获得的。使用 numpy:
A = P@D@np.linalg.inv(P)
由于 numpy 使用浮点数,因此在计算 P 的逆矩阵时会损失一些精度。如果您想避免它并获得A
以分数表示的条目,您可以使用 sympy 代替:
from sympy import Matrix, diag
P = Matrix([[2, 3], [1, 3]]).T
D = diag(7, 20)
A = P*D*P**(-1)
推荐阅读
- python - 在 Python 中打包 GUI 小部件?(苹果电脑)
- django - 验证 Django 运行时生成的表单字段信息
- amazon-s3 - 将数据导出到本地是否有任何性能方面比通过 s3 卸载 Redshift 更好的选择?
- django - 为什么 celery,rabbitmq 在 django-channel 中需要它可以完成他们的工作?
- python - Keras predict(..) 输出解释
- visual-studio - 是否可以删除 Visual Studio IDE,但保留构建工具?
- python - 肘部法不同实施方式的比较
- php - PHP dns_get_record 速率限制?
- class - 决定班级责任
- mysql - SQL,对一列进行分组并计算其属性