gpt4 book ai didi

python - 复数 : convert SymPy to numeric (I to 1j)

转载 作者:太空宇宙 更新时间:2023-11-04 09:09:44 25 4
gpt4 key购买 nike

我在 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])

爬网只找到this这将解决 print 命令的问题,但不适用于 cplot。

有什么建议吗?

最佳答案

一种选择是通过调用 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]) 产生

cplot example

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

关于python - 复数 : convert SymPy to numeric (I to 1j),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16716786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com