【问题标题】:How to find a 2x2 matrix with integer entries for eigenvalues and eigenvectors using python?python - 如何使用python查找具有特征值和特征向量的整数条目的2x2矩阵?
【发布时间】:2021-05-18 21:59:17
【问题描述】:

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

【问题讨论】:

  • 您似乎更多的是寻找algorithm,而不是特定的代码问题?如果您有解决方案的尝试,请发布它,否则这个问题是题外话。
  • 你想用你的样本特征值和特征向量解决什么问题?您的问题不清楚,请更新。

标签: python python-3.x pandas scipy


【解决方案1】:

这更像是一道数学题,而不是编程题。要获得特征值 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])。您正在寻找的矩阵是通过乘以 PDP^(-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)

【讨论】:

    猜你喜欢
    • 2017-10-21
    • 1970-01-01
    • 2022-06-14
    • 2012-08-08
    • 1970-01-01
    • 2017-09-27
    • 2018-10-31
    • 2014-05-11
    • 1970-01-01
    相关资源
    最近更新 更多