factorout ..... 多変数多項式/有理式を整理する関数

書式

factorout(式, x1, x2, ...)

で用い、指定した変数リスト(x1, x2, ...)に関する多項式/有理式 f(x1, x2, ...) を係数とする単項式の和に変形する。

(%i1) g: expand((x^2 - 2) * y^2 + (x + 1) * y + x);

                      2  2      2
(%o1)                x  y  - 2 y  + x y + y + x


(%i2) factorout(g, x);

                       2       2
(%o2)                (x  - 2) y  + (x + 1) y + x


(%i3) factorout(g, y);

                     2  2      2
(%o3)               x  y  - 2 y  + x (y + 1) + y

例えば、3 変数多項式 f(x, y, z) を x について整理したければ、関数 factorout の引数に y と z を同時に指定すればよい(≒ rat(式, x))。

(%i4) expand((y + z) * x^3 - (y - z) * x^2 + (z + 1) * x - y * z);

                      3      2            3      2
(%o4)        - y z + x  z + x  z + x z + x  y - x  y + x


(%i5) factorout(%, y, z);

               3            2
(%o5)         x  (z + y) + x  (z - y) + x (z + 1) - y z
なお、係数は可能なら因数分解される。それを嫌う場合は変数 dontfactor を併用すればよい。
(%i6) g: x * y - x / y + a;

                                   x
(%o6)                        x y - - + a
                                   y


(%i7) factorout(g, y);

                        x (y - 1) (y + 1)
(%o7)                   ----------------- + a
                                y


(%i8) factorout(g, y), dontfactor: [y];

                               2
                           x (y  - 1)
(%o8)                      ---------- + a
                               y