sympy中带符号的复矩阵对角化
Diagonalization of complex matrix with symbols in sympy
我尝试通过 sympy 对带有符号的复杂矩阵进行对角化,如下所示;
from sympy import *
a, b, c = symbols('a b c', real=True)
m = Matrix([[a, I * b], [-I * b, c]])
m.eigenvects()
矩阵是 Hermitian 矩阵,因此它必须可对角化,但最后一行失败
NotInvertible: zero divisor
我检查了没有 sympy.I
或没有符号的矩阵的对角化成功。 (作为一种解决方法,似乎使用另一个非实数符号,比如 j
,而不是 sympy.I
,是可行的。)
是否不支持带有显式 sympy.I
符号的对角化,或者我的代码有问题?
我在 jupyter 上使用 sympy 及其最新的官方 docker 图像 (jupyter/datascience-notebook
)。 sympy的版本是1.8.
这是 sympy 1.8 中的错误。它已经为即将发布的 1.9 修复。事实上,您可以使用 pip install --pre -U sympy
安装 1.9rc1。然后你应该看到:
...: a, b, c = symbols('a b c', real=True)
...: m = Matrix([[a, I * b], [-I * b, c]])
...: m.eigenvects()
Out[1]:
⎡⎛ ⎡⎡ ⎛ ________________________⎞⎤⎤⎞ ⎛
⎢⎜ ________________________ ⎢⎢ ⎜ ╱ 2 2 2 ⎟⎥⎥⎟ ⎜
⎢⎜ ╱ 2 2 2 ⎢⎢ ⎜a c ╲╱ a - 2⋅a⋅c + 4⋅b + c ⎟⎥⎥⎟ ⎜
⎢⎜a c ╲╱ a - 2⋅a⋅c + 4⋅b + c ⎢⎢ ⅈ⋅⎜─ + ─ - ───────────────────────────⎟⎥⎥⎟ ⎜a
⎢⎜─ + ─ - ───────────────────────────, 1, ⎢⎢ ⅈ⋅c ⎝2 2 2 ⎠⎥⎥⎟, ⎜─
⎢⎜2 2 2 ⎢⎢- ─── + ───────────────────────────────────────⎥⎥⎟ ⎜2
⎢⎜ ⎢⎢ b b ⎥⎥⎟ ⎜
⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜
⎣⎝ ⎣⎣ 1 ⎦⎦⎠ ⎝
⎡⎡ ⎛ ________________________⎞⎤⎤⎞⎤
________________________ ⎢⎢ ⎜ ╱ 2 2 2 ⎟⎥⎥⎟⎥
╱ 2 2 2 ⎢⎢ ⎜a c ╲╱ a - 2⋅a⋅c + 4⋅b + c ⎟⎥⎥⎟⎥
c ╲╱ a - 2⋅a⋅c + 4⋅b + c ⎢⎢ ⅈ⋅⎜─ + ─ + ───────────────────────────⎟⎥⎥⎟⎥
+ ─ + ───────────────────────────, 1, ⎢⎢ ⅈ⋅c ⎝2 2 2 ⎠⎥⎥⎟⎥
2 2 ⎢⎢- ─── + ───────────────────────────────────────⎥⎥⎟⎥
⎢⎢ b b ⎥⎥⎟⎥
⎢⎢ ⎥⎥⎟⎥
⎣⎣ 1 ⎦⎦⎠⎦
我尝试通过 sympy 对带有符号的复杂矩阵进行对角化,如下所示;
from sympy import *
a, b, c = symbols('a b c', real=True)
m = Matrix([[a, I * b], [-I * b, c]])
m.eigenvects()
矩阵是 Hermitian 矩阵,因此它必须可对角化,但最后一行失败
NotInvertible: zero divisor
我检查了没有 sympy.I
或没有符号的矩阵的对角化成功。 (作为一种解决方法,似乎使用另一个非实数符号,比如 j
,而不是 sympy.I
,是可行的。)
是否不支持带有显式 sympy.I
符号的对角化,或者我的代码有问题?
我在 jupyter 上使用 sympy 及其最新的官方 docker 图像 (jupyter/datascience-notebook
)。 sympy的版本是1.8.
这是 sympy 1.8 中的错误。它已经为即将发布的 1.9 修复。事实上,您可以使用 pip install --pre -U sympy
安装 1.9rc1。然后你应该看到:
...: a, b, c = symbols('a b c', real=True)
...: m = Matrix([[a, I * b], [-I * b, c]])
...: m.eigenvects()
Out[1]:
⎡⎛ ⎡⎡ ⎛ ________________________⎞⎤⎤⎞ ⎛
⎢⎜ ________________________ ⎢⎢ ⎜ ╱ 2 2 2 ⎟⎥⎥⎟ ⎜
⎢⎜ ╱ 2 2 2 ⎢⎢ ⎜a c ╲╱ a - 2⋅a⋅c + 4⋅b + c ⎟⎥⎥⎟ ⎜
⎢⎜a c ╲╱ a - 2⋅a⋅c + 4⋅b + c ⎢⎢ ⅈ⋅⎜─ + ─ - ───────────────────────────⎟⎥⎥⎟ ⎜a
⎢⎜─ + ─ - ───────────────────────────, 1, ⎢⎢ ⅈ⋅c ⎝2 2 2 ⎠⎥⎥⎟, ⎜─
⎢⎜2 2 2 ⎢⎢- ─── + ───────────────────────────────────────⎥⎥⎟ ⎜2
⎢⎜ ⎢⎢ b b ⎥⎥⎟ ⎜
⎢⎜ ⎢⎢ ⎥⎥⎟ ⎜
⎣⎝ ⎣⎣ 1 ⎦⎦⎠ ⎝
⎡⎡ ⎛ ________________________⎞⎤⎤⎞⎤
________________________ ⎢⎢ ⎜ ╱ 2 2 2 ⎟⎥⎥⎟⎥
╱ 2 2 2 ⎢⎢ ⎜a c ╲╱ a - 2⋅a⋅c + 4⋅b + c ⎟⎥⎥⎟⎥
c ╲╱ a - 2⋅a⋅c + 4⋅b + c ⎢⎢ ⅈ⋅⎜─ + ─ + ───────────────────────────⎟⎥⎥⎟⎥
+ ─ + ───────────────────────────, 1, ⎢⎢ ⅈ⋅c ⎝2 2 2 ⎠⎥⎥⎟⎥
2 2 ⎢⎢- ─── + ───────────────────────────────────────⎥⎥⎟⎥
⎢⎢ b b ⎥⎥⎟⎥
⎢⎢ ⎥⎥⎟⎥
⎣⎣ 1 ⎦⎦⎠⎦