python – SymPy虚数

我正在乱写一些SymPy代码来处理带有虚数的符号表达式.

首先,我想让它将x和y作为实数,并找到x = iy的解决方案.所以我可以这样做.

x, y = sympy.symbols("x y", real=True)  
print(sympy.solve([x-sympy.I*y]))

(SymPy求得一个值列表,所有值必须为0.所以x-iy = 0 => x = iy). SymPy会正确地告诉我

[{x: 0, y: 0}]

但是,如果我这样做(理论上相同):

x, y = sympy.symbols("x y")
print(sympy.solve([x-sympy.I*y, sympy.im(y), sympy.im(x)]))

然后现在SymPy告诉我

[{re(y): y, re(x): I*y, im(x): 0, x: I*y, im(y): 0}]

这在技术上是正确的,但并没有为我做任何事情.这只是SymPy中的限制,还是可以通过以这种方式约束复杂的x和y来让它给我x = y = 0?

解决方法:

因为SymPy在简化实数对比复数时更好,所以以下策略有助于:为实部/虚部设置实数变量,然后从中形成复变量.

from sympy import *
x1, x2, y1, y2 = symbols("x1 x2 y1 y2", real=True)  
x = x1 + I*x2
y = y1 + I*y2

现在x和y可以用作等式中的复变量

sol = solve([x-I*y, im(y), im(x)])
print(x.subs(sol[0]), y.subs(sol[0])) 

输出:0 0.

上一篇:python – 假设正数时Sympy可能不一致


下一篇:[CSS] @keyframes