【问题标题】:Render a sympy expression literally, with no simplification从字面上渲染一个 sympy 表达式,没有简化
【发布时间】:2015-12-18 12:10:22
【问题描述】:

我想知道如何使 sympy 表现得使得表达式按字面意思呈现并且不发生分解(在 sqrt 下为 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 进行任何简化或解决呢?

【问题讨论】:

    标签: python math latex ipython sympy


    【解决方案1】:

    使用“evaluate(False)”块来停止简化/评估规则:

    (我使用的是 Python 3.4,sympy 0.7)

    with evaluate(False):
        print(sqrt(4*x))
    
    sqrt(4*x)
    >>>
    

    【讨论】:

      【解决方案2】:

      到目前为止,sympy 无法做到这一点。它解析输入sqrt(4*A**2*Z**2) 并存储表达式树,同时按照它认为合适的方式对术语进行排序,将所有有理因素合二为一,等等。没有关于原始输入的信息。

      参考:Issue #3846: Allow manipulation of raw expression trees,于 2008 年开放。该问题似乎不太可能很快得到解决。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多