跳转至

表达式变形(functions/simplification.py)

functions/simplification.py 提供统一的表达式变形入口 simplifies,按 method 编号选择变形方式。method0–12 的整数zhuyuan / huanyuan / huanyuanshi 仅部分方式使用。函数返回单个 SymPy 表达式(经 radsimp 化简),不是字符串列表。

simplifies — 表达式变形

作用:对 in_exprmethod 指定的方式做代数变形,并返回化简后的表达式。

def simplifies(in_expr, method, zhuyuan, huanyuan, huanyuanshi, fs):
    ...
参数 类型 含义
in_expr str 待变形表达式,如 "x**2 - 1"
method int 变形方式编号 0–12(见下表);决定实际调用的 SymPy 函数
zhuyuan str 主元符号;仅 method=3(合并)与 method=12(换元)使用
huanyuan str 换元符号(目标符号);仅 method=12 使用
huanyuanshi str 换元式(用其替换 zhuyuan);仅 method=12 使用
fs dict 函数字典

返回radsimp(...) 化简得到的单一 SymPy 表达式。

method 编号对照表

method 名称 实际调用 使用的参数
0 化简 simplify
1 展开 expand
2 因式分解 factor
3 合并同类项 collect(expr, zhuyuan) zhuyuan
4 约分 cancel
5 部分分式分解 apart
6 三角函数化简 trigsimp
7 三角展开 expand_trig
8 幂次化简 powsimp
9 指数展开 expand_power_exp
10 对数展开 expand_log
11 对数合并 logcombine
12 换元展开 expand(expr.subs(zhuyuan, solve(Eq(huanyuan, huanyuanshi), zhuyuan)[0])) zhuyuan, huanyuan, huanyuanshi

Warning

除 method=3 与 method=12 外,其余方式会忽略 zhuyuan / huanyuan / huanyuanshi 的值。

Example

python simplifies("x**2-1", 2, "x", "", "", {}) # -> (x - 1)*(x + 1) (因式分解) simplifies("x**2", 12, "x", "t", "y+1", {}) # -> (y + 1)**2 (以 t=y+1 替换 x) simplifies("1/sqrt(2)", 0, "x", "", "", {}) # -> sqrt(2)/2 (化简/分母有理化)