展开
expand()
分解
factor()
simplify()
collect
以下是 MATLAB 中 simplify、factor 和 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 |
补充说明:
simplify:没有固定化简规则,会尝试代数化简、三角恒等式、指数对数运算等多种方法,目标是使表达式更简洁,但结果可能因表达式类型不同而有差异。factor:本质是多项式的因式分解,仅对可分解的表达式有效(如整数、多项式),无法分解时返回原表达式。常用于求解方程根、简化乘积形式的表达式。collect:主要用于整理多项式结构,默认按第一个变量合并,也可指定变量(如collect(f, y)),适合将展开后的表达式整理为标准多项式形式(按幂次排列)。
三者常结合使用,例如:先 expand 展开表达式 → 再 collect 合并同类项 → 最后用 simplify 化简,或用 factor 分解为因式形式。