Sympy limit simplification error: TypeError: cannot add 'ImmutableDenseMatrix' and 'Zero'

Sympy limit simplification error: TypeError: cannot add 'ImmutableDenseMatrix' and 'Zero'

我正在尝试使用 Sympy 评估和简化符号限制,但我一直收到错误提示我无法添加 ImmutableDenseMatrixZero。但是,我似乎没有明确地执行任何带有 0(或另一个标量)的矩阵的添加。

如何修复这个错误并让 Sympy 简化限制?

from sympy import *

a = symbols('a')
m = Matrix([[0, -a],[a,0]])
I = Matrix([[1,0],[0,1]])

n = symbols('n', integer=True)
limit = Limit(MatPow(I + m/n, n), n, oo)

limit.doit() # The error can be triggered either by .doit()
simplify(limit) # or by running simplify() on the limit

"""
TypeError: cannot add <class 'sympy.matrices.immutable.ImmutableDenseMatrix'>
and <class 'sympy.core.numbers.Zero'>

您显示的错误看起来像是 sympy 中的错误(应该报告给 GitHub)。

虽然您可以稍微不同地计算结果:

In [1]: from sympy import *
   ...: 
   ...: a = symbols("a")
   ...: m = Matrix([[0, -a], [a, 0]])
   ...: I = Matrix([[1, 0], [0, 1]])
   ...: 
   ...: n = symbols("n", integer=True)

In [2]: M = (I + m / n) ** n

In [3]: M
Out[3]: 
⎡             n            n                   n              n⎤
⎢  ⎛  ⅈ⋅a    ⎞    ⎛ⅈ⋅a    ⎞         ⎛  ⅈ⋅a    ⎞      ⎛ⅈ⋅a    ⎞ ⎥
⎢  ⎜- ─── + 1⎟    ⎜─── + 1⎟       ⅈ⋅⎜- ─── + 1⎟    ⅈ⋅⎜─── + 1⎟ ⎥
⎢  ⎝   n     ⎠    ⎝ n     ⎠         ⎝   n     ⎠      ⎝ n     ⎠ ⎥
⎢  ──────────── + ──────────    - ────────────── + ────────────⎥
⎢       2             2                 2               2      ⎥
⎢                                                              ⎥
⎢             n              n                n            n   ⎥
⎢  ⎛  ⅈ⋅a    ⎞      ⎛ⅈ⋅a    ⎞      ⎛  ⅈ⋅a    ⎞    ⎛ⅈ⋅a    ⎞    ⎥
⎢ⅈ⋅⎜- ─── + 1⎟    ⅈ⋅⎜─── + 1⎟      ⎜- ─── + 1⎟    ⎜─── + 1⎟    ⎥
⎢  ⎝   n     ⎠      ⎝ n     ⎠      ⎝   n     ⎠    ⎝ n     ⎠    ⎥
⎢────────────── - ────────────     ──────────── + ──────────   ⎥
⎣      2               2                2             2        ⎦

In [4]: M.limit(n, oo)
Out[4]: 
⎡    ⅈ⋅a    -ⅈ⋅a        ⅈ⋅a      -ⅈ⋅a⎤
⎢   ℯ      ℯ         ⅈ⋅ℯ      ⅈ⋅ℯ    ⎥
⎢   ──── + ─────     ────── - ───────⎥
⎢    2       2         2         2   ⎥
⎢                                    ⎥
⎢     ⅈ⋅a      -ⅈ⋅a     ⅈ⋅a    -ⅈ⋅a  ⎥
⎢  ⅈ⋅ℯ      ⅈ⋅ℯ        ℯ      ℯ      ⎥
⎢- ────── + ───────    ──── + ─────  ⎥
⎣    2         2        2       2    ⎦