尝试使用Colab查找给定矩阵的Jordan形式。但它总是失败或超时。不知道为什么会失败
import numpy as np
import sys
from sympy import Matrix
sys.set_int_max_str_digits(15000)
a = np.array([[1, 2, 4, 8], [1, 3, 9, 27], [1, 4, 16, 64], [1, 5, 25, 125]])
m = Matrix(a)
P, J = m.jordan_form()
J
我试着在Matlab和在线计算器如https://www.wolframalpha.com/input/?i=jordan+normal+form+calculator上找到Jordan形式它在这些平台上工作得很好。不知道为什么Colab和Jupyter不能计算矩阵的Jordan形式
1条答案
按热度按时间46qrfjad1#
首先,Colab和Jupyter只是可以运行Python代码的环境,这里的问题与使用Colab或Jupyter或任何IDE无关。在你的例子中你得不到结果的原因是算法上的。你使用的矩阵是病态的。在四个egne值之间有四个数量级的差异。在尝试计算Jordan形式时,底层算法会卡住。例如,如果尝试:
您将看到代码运行良好且速度很快。