You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在SymPy中如何添加自定义恒等式简化多项式方程组?

有两种常用的方案可以实现自定义恒等式自动简化:

方法1:预定义替换规则字典批量应用

这是最简便的实现方式,你可以提前把所有自定义恒等式整理为替换字典,需要简化时统一传入subs方法即可,还支持同时定义多条规则。

import sympy
sympy.vars("x a b c")

# 提前预存所有自定义恒等式,键为待匹配表达式,值为替换后的值
custom_rules = {
    a + b + c: 1,
    # 可继续添加其他规则,例如:d + e: 2
}

expr = x * (a + b + c)
# 批量应用所有规则,simultaneous=True参数可避免替换顺序干扰结果
print(expr.subs(custom_rules, simultaneous=True))
# 输出结果:x

如果需要处理深层嵌套的表达式匹配,可以用replace方法替代subs,它会递归遍历整个表达式树完成匹配替换。

方法2:封装自定义简化逻辑,接入SymPy原生简化流程

如果希望调用SymPy的simplify方法时自动应用你的自定义规则,可以配合custom_simplify封装专属简化函数:

import sympy
from sympy import custom_simplify, simplify

sympy.vars("x a b c")

# 提前定义规则字典
custom_rules = {a + b + c: 1}

def custom_transform(expr):
    # 匹配规则字典中的表达式并返回替换结果
    return custom_rules.get(expr, expr)

# 自定义简化函数,先应用自定义规则,再执行SymPy原生简化
def auto_simplify(expr):
    expr = custom_simplify(expr, custom_transform)
    return simplify(expr)

# 测试效果
expr = x * (a + b + c)
print(auto_simplify(expr))
# 输出结果:x

内容的提问来源于stack exchange,提问作者Alan Cristhian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:57:02