首页 > 解决方案 > python - 如何使用python查找具有特征值和特征向量的整数条目的2x2矩阵?

问题描述

例如,如果我的特征值 7 和 20 具有特征向量 (2,3) 和 (1,3),我将如何计算 2x2 矩阵?我可以使用 python 来计算包含这些整数条目的数组吗?

标签: pythonpython-3.xpandasscipy

解决方案


这更像是一个数学问题而不是编程问题。要获得具有特征值 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)

推荐阅读