python - 在 Python/NumPy 中计算矩阵的 Jordan 范式

标签 python numpy matrix scipy linear-algebra

在 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/

相关文章:

python - Django 我想在数据存在时中断

python - 如何转换Python字符串

python - 清晰显示高密度区域和低密度区域的热图(python)

python - 在Python中使用有限差分

python - matplotlib 中带有颜色的 3d 散点图

python - 在pyqt4中打开新窗口

python - Python中的曲线拟合指数增长函数

matlab - 我如何在 Matlab 中标记两个向量?

arrays - 随机排列矩阵

matlab - 用给定索引置换矩阵