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

如何按指定符号变形分式?SymPy实现a/(a+b)转1/(1+b/a)

如何用SymPy将分式a/(a+b)转换为1/(1+b/a)

factor函数的核心作用是因式分解,无法直接实现这种分子分母同除以某一变量的变形。要得到目标形式,可通过手动对分子分母进行同除操作,或结合因式分解后约分来实现,以下是两种可行方案:

方案一:直接对分子分母同除以a

通过分别提取表达式的分子和分母,各自除以a后再重新组合,最后简化即可:

import sympy as sp
a = sp.Symbol("a")
b = sp.Symbol("b")

expr = a/(a + b)
# 分子分母同时除以a
transformed_expr = (expr.numerator / a) / (expr.denominator / a)
# 简化表达式
print(sp.simplify(transformed_expr))

执行后会输出1/(1 + b/a),符合预期形式。

方案二:提取分母公因子后约分

先对分母提取公因子a,再与分子的a进行约分:

import sympy as sp
a = sp.Symbol("a")
b = sp.Symbol("b")

expr = a/(a + b)
# 对分母提取公因子a
factored_denom = sp.factor(expr.denominator, a)
# 分子除以因式分解后的分母
result = expr.numerator / factored_denom
print(sp.simplify(result))

注:SymPy默认假设符号变量不为零(如a≠0),因此无需额外声明即可完成上述变形。

内容的提问来源于stack exchange,提问作者Rémi Delaporte-Mathurin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:25:26