月度归档:2025年07月

Matlab 因式分解和展开

展开

expand()

分解

factor()

simplify()

collect

以下是 MATLAB 中 simplifyfactor 和 collect 三个符号运算函数的功能、用途及示例对比表:

函数核心功能典型用途示例代码输出结果(符号表达式)
simplify对符号表达式进行化简,尝试多种方法得到最简形式简化复杂表达式、消去冗余项、化简分式 / 根式等syms x; f = (x^2-1)/(x+1); simplify(f)x - 1
syms x; f = sin(x)^2 + cos(x)^2; simplify(f)1
factor将多项式分解为不可约因式的乘积因式分解、提取公因子、分析多项式根syms x; f = x^3 - 6*x^2 + 11*x - 6; factor(f)(x - 1)*(x - 2)*(x - 3)
syms x y; f = x^2*y - y^3; factor(f)y*(x - y)*(x + y)
collect按指定变量合并同类项,整理为多项式标准形式合并同类项、按变量降幂排列syms x y; f = x^2 + 3*x*y + 2*x^2 - y^2; collect(f, x)3*x^2 + 3*x*y - y^2
syms x; f = (x+1)(x+2) + (x+3)^2; collect(expand(f))2*x^2 + 10*x + 11

补充说明:

  1. simplify:没有固定化简规则,会尝试代数化简、三角恒等式、指数对数运算等多种方法,目标是使表达式更简洁,但结果可能因表达式类型不同而有差异。
  2. factor:本质是多项式的因式分解,仅对可分解的表达式有效(如整数、多项式),无法分解时返回原表达式。常用于求解方程根、简化乘积形式的表达式。
  3. collect:主要用于整理多项式结构,默认按第一个变量合并,也可指定变量(如 collect(f, y)),适合将展开后的表达式整理为标准多项式形式(按幂次排列)。

三者常结合使用,例如:先 expand 展开表达式 → 再 collect 合并同类项 → 最后用 simplify 化简,或用 factor 分解为因式形式。