我很难用sympy简化下一个术语
(乳胶) $\sqrt3.{8+3\sqrt{21}}+\sqrt3.{8-3\sqrt{21}}$
from sympy import (
init_printing,
sqrt,
cbrt,
nsimplify,
simplify,
)
init_printing(use_unicode=True)
value_plus = cbrt(8 + 3 * sqrt(21))
value_minus = cbrt(8 - 3 * sqrt(21))
value_both = value_plus + value_minus在这里,我分别在value_plus和value_minus两部分中区分了这个表达式。
对于第一部分,我得到了一个期望的结果。
nsimplify(value_plus)它是$1/2+\sqrt{21}/2$,可以在wolframα中看到。
但是,对于所需结果的第二部分整数($1/2-\sqrt{21}/2$),也可以在wolfram aplha中看到,形式为交替形式。
nsimplify(value_minus)最后,我得到了一个复杂的表示,这也是正确的,但并不完全是我想要的。
因此,我没有得到预期的结果,即1。
value_both = value_plus + value_minus从截图上可以看到。所以我的问题是,

发布于 2019-04-22 13:53:28
您可以使用cbrt代替根部
value_plus = real_root(8 + 3 * sqrt(21), 3)
value_minus = real_root(8 - 3 * sqrt(21), 3)
value_both = value_plus + value_minus
print(nsimplify(value_plus))
print(nsimplify(value_minus))
print(nsimplify(value_both))产出将是:
1/2 + sqrt(21)/2
1/2 - sqrt(21)/2
1https://stackoverflow.com/questions/55794641
复制相似问题