在 MATLAB 中,您可以使用函数 jordan
计算矩阵的 Jordan 范式。
NumPy 和 SciPy 中是否有可用的等效函数?
最佳答案
MATLAB jordan function来自 Symbolic Math Toolbox,因此从 SymPy 中获取其 Python 替代品似乎并不合理图书馆。具体来说,Matrix
类具有方法 jordan_form
。创建 sympy 矩阵时,可以将 numpy 数组作为参数传递。例如,以下内容来自 wikipedia article on the Jordan normal form :
In [1]: import numpy as np
In [2]: from sympy import Matrix
In [3]: a = np.array([[5, 4, 2, 1], [0, 1, -1, -1], [-1, -1, 3, 0], [1, 1, -1, 2]])
In [4]: m = Matrix(a)
In [5]: m
Out[5]:
Matrix([
[ 5, 4, 2, 1],
[ 0, 1, -1, -1],
[-1, -1, 3, 0],
[ 1, 1, -1, 2]])
In [6]: P, J = m.jordan_form()
In [7]: J
Out[7]:
Matrix([
[1, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 4, 1],
[0, 0, 0, 4]])
关于python - 在 Python/NumPy 中计算矩阵的 Jordan 范式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20312216/