gpt4 book ai didi

python - 替换为 sympy 而不评估或简化表达式

转载 作者:行者123 更新时间:2023-12-01 09:32:30 25 4
gpt4 key购买 nike

考虑以下示例:

from sympy import *
x = Symbol('x')
f = sqrt(3*x + 2)

现在我想替换一个数字,例如 5 替换 x 并获得 LaTeX 表示,在这种情况下它应该返回

\\sqrt(3\\cdot 5 + 2)

我该怎么做?

我尝试了 latex(f.subs(x,2,evaluate=False)) 但结果只是 \\sqrt(17)

最佳答案

使用UnevaluatedExpr(5)而不是 5:

>>> latex(f.subs(x, UnevaluatedExpr(5)))
'\\sqrt{2 + 3 \\cdot 5}'

此包装器可防止其内部的表达式(“5”)与外部术语交互。引用:Prevent expression evaluation

<小时/>

替换后加数的顺序不同,因为打印机对 3*x + 23*5 + 2 进行了不同的排序。为了避免这种情况,可以使用 order='none' 来保留参数具有的任何内部顺序,而不是试图将它们置于一种人类友好的排列中。

>>> latex(f, order='none')
'\\sqrt{2 + 3 x}'
>>> latex(f.subs(x, UnevaluatedExpr(5)), order='none')
'\\sqrt{2 + 3 \\cdot 5}'

关于python - 替换为 sympy 而不评估或简化表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49842196/

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