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

使用sympy.apart()报multivariate partial fraction decomposition错误如何解决

拉普拉斯逆变换计算错误修复方案

错误原因

  • 公式定义与目标表达式不符,运算括号使用错误:目标X(s)的分母是(s+2)(s+3)(s+4),但代码中(((s*(s+1))/(s+2)*(s+3)*(s+4)))的运算优先级会将(s+3)(s+4)计算到分子部分,同时分子的(s+2)被错写为(s+1),表达式结构完全偏离目标。
  • 多余的部分分式展开调用参数错误:sympy.apart的full=True参数加上错误的表达式结构,触发了未实现的多变量部分分式分解逻辑。

修正后代码

import sympy
sympy.init_printing()

# 定义符号
s, t = sympy.symbols('s t')

# 修正X(s)的表达式,注意分母整体用括号包裹
X = (s*(s+2)) / ((s+2)*(s+3)*(s+4)) * sympy.exp(-2*s)

# 直接调用拉普拉斯逆变换即可,无需提前做部分分式展开
def invL(X_expr):
    return sympy.inverse_laplace_transform(X_expr, s, t)

# 输出结果
result = invL(X)
print(result)
# 如需进一步简化结果可添加:
# print(sympy.simplify(result))

结果说明

计算得到的结果会自动包含延迟阶跃项Heaviside(t - 2),对应约分后有理函数的时域结果为(2*exp(-4*(t - 2)) - exp(-3*(t - 2)))*Heaviside(t - 2)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:00:02