替换后如何在Sympy中将0设置为高于0

时间:2020-03-16 17:38:21

标签: python math sympy

我有一些带有符号等的冗长表达式。在使用.subs({...})进行评估并替换所有变量之后,我得到了值10^{-18}等,我知道它们应该等于零。

您是否可以通过某种方式将它们设置为零而无需检查每个变量并手动进行?

1 个答案:

答案 0 :(得分:2)

您可以对chop(又名evalf)使用n选项:

>>> ((pi + pi*I)**2).n()
-0.e-21 + 19.7392088021787*I
>>> ((pi + pi*I)**2).n(chop=True)
19.7392088021787*I

您也可以设置斩波级别:

>>> ((pi + pi*I)**2).n(chop=1e-23)
-0.e-21 + 19.7392088021787*I
>>> ((pi + pi*I)**2).n(chop=1e-20)
 19.7392088021787*I