直译一个sympy表达式,不进行任何简化

3

我想知道如何让sympy表现出字面意思,不进行任何降解(根号下的4)

from sympy import init_session
init_session(quiet=true)
from sympy.interactive import printing
printing.init_printing(use_latex=True)
a=sqrt(4*A**2*Z**2)
a

提供

2 * sqrt(a**2*Z**2)

我希望它最初的写法能够得以保留(在教育文本中)。那么,如何防止sympy进行任何简化或解决方案呢?

2个回答

5
使用“evaluate(False)”块来停止简化/评估规则:
(我使用的是Python 3.4,sympy 0.7)
with evaluate(False):
    print(sqrt(4*x))

sqrt(4*x)
>>>

1
目前,sympy无法实现此功能。它会解析输入的 sqrt(4*A**2*Z**2) 并存储表达式树,在此过程中按其所见整理项,将所有有理因子组合成一个等式等等。没有关于原始输入的任何信息。
参考文献:问题#3846:允许操作原始表达式树,该问题在2008年被提出。该问题似乎不太可能在短时间内得到解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接