gpt4 book ai didi

python - 当需要符号表达式时,SymPy 输出数值结果

转载 作者:行者123 更新时间:2023-12-01 11:11:56 27 4
gpt4 key购买 nike

我希望我的 SymPy 结果显示为精确结果而不是小数结果。我查看了 SymPy 文档,但找不到任何有用的信息。

为了说明问题,这里是一些示例代码:

from sympy import *
u = symbols("u")
integrate((1+u)**(1/2), (u, 0, 1))

输出:
1.21895141649746

预期结果:
(4/3)*sqrt(2)-(2/3)

最佳答案

问题是 SymPy 将简化包含浮点数的表达式,因此删除了那些符号表达式。尽管表达式看起来不像浮点数,但除法 1/2使用标准 Python 完成,内部表示为 0.5 .

解决方案是首先将分数的一部分转换为 SymPy 对象。最简单的方法是使用函数 S ,如:

from sympy import *
u = symbols("u")
print(integrate((1+u)**(S(1)/2), (u, 0, 1)))

输出所需的 -2/3 + 4*sqrt(2)/3 .

gotcha section的文档试图解释这种行为。

关于python - 当需要符号表达式时,SymPy 输出数值结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59250127/

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