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

SymPy分式化简未达预期形式,如何适配学生手动计算结果?

SymPy分式解自动拆分为目标形式的解决方案
  • 问题:用solve()得到的分式$\frac{ku+pu+q}{k+p}$,无法通过simplify()/cancel()自动转为$u + \frac{q}{k+p}$,且无法提前指定collect的符号
  • 解决思路:通过多项式除法自动分离分子中可与分母约分的项,无需预设目标变量
  • 代码实现:
    from sympy import symbols, solve, div
    
    # 示例符号与方程
    k, p, q, u, m = symbols('k p q u m')
    eq = q - (k + p)*(m - u)
    sol = solve(eq, m)[0]
    
    # 拆分分子分母并执行多项式除法
    num, den = sol.as_numer_denom()
    quotient, remainder = div(num, den)
    target_expr = quotient + remainder / den
    
    print(target_expr)  # 输出:u + q/(k + p)
    
  • 关键逻辑:
    • as_numer_denom() 提取分式的分子和分母
    • div(num, den) 自动完成多项式除法,分离出能被分母整除的项(商)和剩余项(余数)
    • 组合商与余数/分母,得到手动推导的拆分形式
  • 优势:无需提前指定要合并的符号,SymPy会根据多项式结构自动处理,适配自动批改场景的不确定性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:36:25