1

在 Python 中使用符号计算我有

import sympy
from cmath import *
from mpmath import arg, cplot

z = sympy.symbols('z')

fhandle='z**2'
g = lambda w: sympy.sympify(fhandle).evalf(subs={z: w})
g(1+2j)

# Returns: -3.0 + 4.0*I
# hence the next command fails, because I is expected to be 1j

cplot(g, [-3,3], [-3,3])

爬网我只发现这个可以解决print命令的问题,但不适用于 cplot。

有什么建议么?

4

1 回答 1

5

一种选择是通过调用来包装结果complex

>>> def g(w):
...     return complex(sympy.sympify(fhandle).evalf(subs={z: w}))
... 
>>> g(1+2j)
(-3+4j)

之后mpmath.cplot(g, [-3, 3], [-3, 3])产生

绘图示例

请注意,我在这里使用了一个命名函数。lambda如果您要立即给它起一个名字,那么使用 a 没有多大意义。

于 2013-05-23T14:56:26.317 回答