【发布时间】:2021-07-16 15:39:59
【问题描述】:
由于我正在从事一个涉及平方根的项目,因此我需要将平方根简化到最大值。但是,某些平方根表达式不会产生不想要的结果。请考虑检查此示例:
>>> from sympy import * # just an example don't tell me that import * is obsolete
>>> x1 = simplify(factor(sqrt(3 + 2*sqrt(2))))
>>> x1 # notice that factoring doesn't work
sqrt(2*sqrt(2) + 3)
>>> x2 = sqrt(2) + 1
>>> x2
sqrt(2) + 1
>>> x1 == x2
False
>>> N(x1)
2.41421356237309
>>> N(x2)
2.41421356237309
>>> N(x1) == N(x2)
True
如您所见,这些数字实际上是相等的,但 numpy 无法识别这一点,因为它无法分解和简化 x1。那么如何获得 x1 的简化形式,以便相等性正确而不必将它们转换为 float 呢?
提前致谢。
【问题讨论】:
-
simplify(x1-x2)给0 -
这只是一个例子,假设我不知道 x2 的值,我想要 x1 的简化形式
-
你要的函数是
sqrtdenest
标签: python sympy square-root factorization simplification