小编Idi*_*ieh的帖子

sympy 如何处理 0.5 次方的指数?

((gamma-(gamma**2-omega**2)**0.5)*(gamma+(gamma**2-omega**2)**0.5)).simplify()
Run Code Online (Sandbox Code Playgroud)

输出为:gamma^2 - (gamma^2 -omega^2)^{1.0} $

然而,我预计结果是 omega^2。我知道在 sympy 文档中,它警告要小心浮点数,但我的印象是整数和 2 的小数次幂(可以精确表示)都很好。

以下代码正确地再现了 omega^2:

((gamma-(gamma**2-omega**2)**sym.Rational(1,2))*(gamma+(gamma**2-omega**2)**sym.Rational(1,2))).simplify()
Run Code Online (Sandbox Code Playgroud)

为什么第一个代码没有产生预期的结果?

python floating-point sympy

3
推荐指数
1
解决办法
68
查看次数

标签 统计

floating-point ×1

python ×1

sympy ×1