Основы Maxima
2.7.6 Преобразование рациональных выражений
Для выделения числителя и знаменателя дробных выражений используются функции и
:
(%i1) expr:(x^2+1)/(x^3-1);
![\frac{{x}^{2}+1}{{x}^{3}-1}\leqno{(\%o1) }](/sites/default/files/tex_cache/e6b74b1895c7878f851ded76e91241a8.png)
(%i2) num(expr);
![{x}^{2}+1\leqno{(\%o2) }](/sites/default/files/tex_cache/269ca33a7eccf30613d6d594d74be79e.png)
(%i3) denom(expr);
![{x}^{3}-1\leqno{(\%o3) }](/sites/default/files/tex_cache/8f5bde582d32675f601f0c1888871fe1.png)
Функция приводит выражение к каноническому представлению. Она упрощает любое выражение, рассматривая его как дробнорациональную функцию, т.е. работает с операциями "+", "-", "*", "/" и с возведением в целую степень.
Синтаксис вызова:
Переменные упорядочиваются в соответствии со списком . При этом вид ответа зависит от способа упорядочивания переменных Изначально переменные упорядочены в алфавитном порядке.
Пример использования :
(%i1) ((x - 2*y)^4/(x^2 - 4*y^2)^2 + 1)*(y + a)*(2*y + x) / (4*y^2 + x^2);
![\frac{\left( y+a\right) \,\left( 2\,y+x\right) \,\left( \frac{{\left( x-2\,y\right) }^{4}}{{\left( {x}^{2}-4\,{y}^{2}\right) }^{2}}+1\right) }{4\,{y}^{2}+{x}^{2}}\leqno{(\%o1) }](/sites/default/files/tex_cache/8fb176b1e02b4968664e87e565dd9a1f.png)
(%i2) rat(%);
![\frac{2\,y+2\,a}{2\,y+x}\leqno{(\%o2) }](/sites/default/files/tex_cache/0a3fb8fc47dcda61c0d838460f911f79.png)
После указания порядка использования переменных получаем следующее выражение:
(%i3) rat(%o1,y,a,x);
![\frac{2\,a+2\,y}{x+2\,y}\leqno{(\%o3) }](/sites/default/files/tex_cache/24ebb70cbf6cd05799bef6651e9623e7.png)
Функция позволяет изменить алфавитный порядок предпочтения переменных, принятый по умолчанию. Вызов
меняет порядок предпочтения в точности на обратный, а вызов
упорядочивает переменные
в порядке возрастания приоритета.
Флаг включает или выключает частичную факторизацию выражений при сведении их к стандартной форме (CRE). Изначально установлено значение
. Если установить значение
, то будет производиться частичная факторизация.
Функция приводит все части (в том числе аргументы функций) выражения, которое не является дробно-рациональной функцией, к каноническому представлению, производя упрощения, которые не выполняет функция
. Повторный вызов функции в общем случае может изменить результат, т.е. не обязательно упрощение проводится до конца. Применением упрощения к экспоненциальным выражениям управляет флаг
, по умолчанию равный
, если его установить в
, упрощение применяется и к показателям степени или экспоненты.
(%i1) sin (x/(x^2 + x)) = exp ((log(x) + 1)^2 - log(x)^2);
![sin\left( \frac{x}{{x}^{2}+x}\right) ={e}^{{\left( log\left( x\right) +1\right) }^{2}-{log\left( x\right) }^{2}}\leqno{(\%o1) }](/sites/default/files/tex_cache/801cdb4b0bca8626eaf48552e3a1511f.png)
(%i2) ratsimp(%);
![sin\left( \frac{1}{x+1}\right) =e\,{x}^{2}\leqno{(\%o2) }](/sites/default/files/tex_cache/e1d0c7bb4b0ae2aa5a54b857ad3627a4.png)
(%i3) ((x - 1)^(3/2) - (x + 1)*sqrt(x - 1))/sqrt((x - 1)*(x + 1));
![\frac{{\left( x-1\right) }^{\frac{3}{2}}-\sqrt{x-1}\,\left( x+1\right) }{\sqrt{\left( x-1\right) \,\left( x+1\right) }}\leqno{(\%o3) }](/sites/default/files/tex_cache/206ab04c07276640f14af491f7a2a094.png)
(%i4) ratsimp(%);
![-\frac{2\,\sqrt{x-1}}{\sqrt{{x}^{2}-1}}\leqno{(\%o4) }](/sites/default/files/tex_cache/17193f5b27ade27d3cb3e5a34ff019fc.png)
(%i5) x^(a + 1/a), ratsimpexpons: true;
![{x}^{\frac{{a}^{2}+1}{a}}\leqno{(\%o5) }](/sites/default/files/tex_cache/a28467b89c572772196b703c878751fa.png)
Функция вызывает функцию
до тех пор, пока выражение не перестанет меняться.
Пример:
(%i1) expr: (x^(a/2) + 1)^2*(x^(a/2) - 1)^2/(x^a - 1);
![\frac{{\left( {x}^{\frac{a}{2}}-1\right) }^{2}\,{\left( {x}^{\frac{a}{2}}+1\right) }^{2}}{{x}^{a}-1}\leqno{(\%o1) }](/sites/default/files/tex_cache/f4bfe757f9a92c3fc70f3f22e9983e2e.png)
(%i2) ratsimp(expr);
![\frac{{x}^{2\,a}-2\,{x}^{a}+1}{{x}^{a}-1}\leqno{(\%o2) }](/sites/default/files/tex_cache/1a0cf92ce6ef3a05b4823c754d2a068e.png)
(%i3) fullratsimp(expr);
![{x}^{a}-1\leqno{(\%o3) }](/sites/default/files/tex_cache/c34a5da853a704c376b31a53acd3a019.png)
(%i4) rat(expr);
![\frac{{\left( {x}^{\frac{a}{2}}\right) }^{4}-2\,{\left( {x}^{\frac{a}{2}}\right) }^{2}+1}{{x}^{a}-1}\leqno{(\%o4) }](/sites/default/files/tex_cache/d4a7cb5f20ce93bde6366f9ffbd15e3f.png)
Пример влияния флага на результат вычислений:
(%i1) fullratsimp( exp((x^(a/2)-1)^2 *(x^(a/2)+1)^2 / (x^a-1) ) );
![{e}^{\frac{{x}^{2\,a}}{{x}^{a}-1}-\frac{2\,{x}^{a}}{{x}^{a}-1}+\frac{1}{{x}^{a}-1}}\leqno{(\%o1) }](/sites/default/files/tex_cache/12044066fde29707137c5b8f522970b4.png)
(%i2) ratsimpexpons:true;
![true\leqno{(\%o2) }](/sites/default/files/tex_cache/e1ab2ae21ea089328a4572781925054d.png)
(%i3) fullratsimp( exp((x^(a/2)-1)^2 *(x^(a/2)+1)^2 / (x^a-1) ) );
![{e}^{{x}^{a}-1}\leqno{(\%o3) }](/sites/default/files/tex_cache/b274160d82c596856a14a003fcbcb6b2.png)
Функция раскрывает скобки в выражении. Отличается от функции
тем, что приводит выражение к канонической форме, поэтому ответ может отличаться от результата применения функции
:
(%i1) ratexpand ((2*x - 3*y)^3);
![-27\,{y}^{3}+54\,x\,{y}^{2}-36\,{x}^{2}\,y+8\,{x}^{3}\leqno{(\%o1) }](/sites/default/files/tex_cache/a5a78aeec855fbda22ff174d4ac3c040.png)
(%i2) expr: (x - 1)/(x + 1)^2 + 1/(x - 1);
![\frac{x-1}{{\left( x+1\right) }^{2}}+\frac{1}{x-1}\leqno{(\%o2) }](/sites/default/files/tex_cache/46889d30627bdf661fc097c8c1778013.png)
(%i3) expand(expr);
![\frac{x}{{x}^{2}+2\,x+1}-\frac{1}{{x}^{2}+2\,x+1}+\frac{1}{x-1}\leqno{(\%o3) }](/sites/default/files/tex_cache/d000ae9a8a21d736b083a8f11c8a370a.png)
(%i4) ratexpand(expr);
![\frac{2\,{x}^{2}}{{x}^{3}+{x}^{2}-x-1}+\frac{2}{{x}^{3}+{x}^{2}-x-1}\leqno{(\%o4) }](/sites/default/files/tex_cache/3429156d2a743e962fad3b90b3140704.png)
Подстановка в рациональных выражениях осуществляется функцией . Синтаксис вызова:
Выражение
подставляется вместо выражения
в выражении
(
может быть суммой, произведением, степенью и т.п.).
Пример использования :
(%i1) ratsubst (a, x*y^2, x^4*y^3 + x^4*y^8);
![a\,{x}^{3}\,y+{a}^{4}\leqno{(\%o1) }](/sites/default/files/tex_cache/0d391321ec5c94f2dab1aed33a7d1619.png)
(%i2) cos(x)^4 + cos(x)^3 + cos(x)^2 + cos(x) + 1;
![{cos\left( x\right) }^{4}+{cos\left( x\right) }^{3}+{cos\left( x\right) }^{2}+cos\left( x\right) +1\leqno{(\%o2) }](/sites/default/files/tex_cache/7c6eba9fe416868c7f1f353670c924a0.png)
(%i3) ratsubst (1 –- sin(x)^2, cos(x)^2, %);
![{sin\left( x\right) }^{4}-3\,{sin\left( x\right) }^{2}+cos\left( x\right) \,\left( 2-{sin\left( x\right) }^{2}\right) +3\leqno{(\%o3) }](/sites/default/files/tex_cache/a36fdce8d466d331000e46316a2b6f08.png)