对角化矩阵/求其 Jordan 形式的数值不准确

Numerical inaccuracy in diagonalizing a matrix / finding its Jordan form

提问人:pawat akara-pipattana 提问时间:11/14/2023 更新时间:11/14/2023 访问量:47

问:

我试图使用 Numpy 在 Python 中以数值方式计算矩阵的特征值和特征向量。问题在于,特征值矩阵的逆相似性变换不能准确地再现原始矩阵,因为元素误差与原始矩阵的条目顺序相同;相反,对于其他更“表现良好”的矩阵,我发现误差约为浮点精度 1e-15。原始矩阵的所有元素都具有相同的顺序。 得出矩阵是不可对角化的结论,我尝试在 Mathematica 中计算同一矩阵的 Jordan 形式,但我得到的是一个对角矩阵,其“不准确的特征值”与其对角线相同,并且特征向量集完全相同。

Numpy 和 Mathematica 的线性代数例程在应用于普通矩阵时都会给出准确的结果。我正在寻找一种数值例程或处理方法,我可以尝试将其应用于这个有问题的矩阵,以准确对角化它或准确计算其 Jordan 形式。

numpy 数学 矩阵 wolfram-mathematica 特征值

评论

0赞 Rogue 11/14/2023
对于零,您可以进行阈值检查(例如 ->视为零)。当您使用浮点数时,需要权衡取舍,精确的值/关系就是其中之一。if val < 1e12
0赞 Robert Dodier 11/14/2023
非常有趣的问题,但是,它更适合 math.stackexchange.com。在网络上搜索“特征值误差分析”或“约旦形式误差分析”可能会找到一些相关资源。一本关于数值分析的研究生教科书可能会涵盖该主题。

答: 暂无答案