You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已知特征值与特征向量重构矩阵结果不符,求问题原因

特征值特征向量重构矩阵出错的排查与修正

问题出在你对特征向量的提取方式上:numpy的eig函数返回的特征向量矩阵v,每一列对应一个特征向量,而非每一行。你用v[0]和v[1]取的是矩阵的行,相当于把特征向量的方向搞反了,这才导致重构矩阵的非对角线元素符号错误。

修正方案1:调整特征向量提取方式

把原代码中提取特征向量的行改为提取列,再做外积计算:

import numpy as np
from numpy.linalg import eig

a = np.array([[1,2],[2,np.pi]])
w, v = eig(a)
# 提取列向量作为对应特征值的特征向量
c0 = np.outer(v[:,0], v[:,0].T)
c1 = np.outer(v[:,1], v[:,1].T)
a_ = w[0]*c0 + w[1]*c1
print(a_)

修正方案2:利用对称矩阵特性简化重构

你的原矩阵是对称矩阵,对应的特征向量矩阵v是正交矩阵(满足v.T等于v的逆矩阵),可以直接用矩阵乘法完成重构,写法更简洁:

import numpy as np
from numpy.linalg import eig

a = np.array([[1,2],[2,np.pi]])
w, v = eig(a)
# 对称矩阵重构公式:V @ diag(w) @ V.T
a_ = v @ np.diag(w) @ v.T
print(a_)

运行上述任意一种代码,得到的重构矩阵都会与原矩阵一致,解决符号错误问题。

内容的提问来源于stack exchange,提问作者Sabina Zaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:32:12