Как упростить условия с использованием квадратного корня в максимумах

Допустим, у нас есть такой термин, как 1/4 * x/sqrt(2) * x^2 / 2; в Maxima. На выходе (без дальнейших изменений) он дает x^3/2^(7/2). Как я могу заставить выходной формат быть похожим на x^3/(8*sqrt(2)) с использованием квадратных корней, когда это возможно?


person Nico    schedule 28.03.2017    source источник


Ответы (1)


(%i1) sq2: " "(sqrt(2))$
(%i2) matchdeclare(n, lambda([n], oddp(n) and n#1))$
(%i3) defrule(r_sq2, 2^(n/2), sq2*2^((n-1)/2))     $
(%i4) e: 1/4 * x/sqrt(2) * x^2 / 2;
                                       3
                                      x
(%o4)                                ----
                                      7/2
                                     2
(%i5) apply1(e, r_sq2);
                                             3
                                  (sqrt(2)) x
(%o5)                            -------------
                                      16

Правило может помочь вставить sqrt(2). В примере я использую «нулевую» функцию, чтобы предотвратить упрощение. Вы также можете рассмотреть функции box и rembox или оставить sq2 неопределенным.

person slitvinov    schedule 29.03.2017
comment
Отлично работает для примера с sqrt(2). Есть ли общий подход для всех sqrt (int)? - person Nico; 04.04.2017