書式
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