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

Webをクロールすると、コマンドの問題を修正するこれprintしか見つかりませんでしたが、cplotでは機能しません。

助言がありますか?

4

1 に答える 1

5

1 つのオプションは、次のように呼び出して結果をラップすること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 の例

ここでは名前付き関数を使用していることに注意してください。lambdaとにかくすぐに名前を付ける場合は、 a を使用してもあまり意味がありません。

于 2013-05-23T14:56:26.317 に答える