表达式变形(functions/simplification.py)
functions/simplification.py 提供统一的表达式变形入口 simplifies,按 method 编号选择变形方式。method 为 0–12 的整数;zhuyuan / huanyuan / huanyuanshi 仅部分方式使用。函数返回单个 SymPy 表达式(经 radsimp 化简),不是字符串列表。
simplifies — 表达式变形
作用:对 in_expr 按 method 指定的方式做代数变形,并返回化简后的表达式。
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 (化简/分母有理化)