Я пытаюсь упростить следующий термин с sympy
(латекс) $ \ sqrt 3 {8 + 3 \ sqrt {21}} + \ sqrt 3 {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 alpha .
Тем не менее, для второй части целого числа желаемого результата ($ 1 / 2- \ sqrt {21} / 2 $), как можно видеть и в wolfram aplha , в альтернативной форме
nsimplify(value_minus)
Я получаю сложное представление, которое также правильно, но не совсем то, что я хочу получить.
И, таким образом, я не получаю ожидаемый результат, который равен 1.
value_both = value_plus + value_minus
как видно на скриншоте.Итак, мои вопросы:
- как заставить другие представления числа?
- , как ограничить представление только действительными числами?