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

使用SymPy求解可分离微分方程y'=e^(y-x)失败问题咨询

原因说明

SymPy的dsolve依赖ODE分类器来匹配对应的求解算法,当前稳定版本的分类器对可分离变量方程的规则中,没有覆盖指数项带负系数的场景:

  • y'=e^(y+x)的指数拆分后为e^y * e^x,符合现有可分离方程的匹配规则,可正常求解
  • y'=e^(y-x)的指数拆分后为e^y * e^(-x),无法触发现有匹配规则,导致分类失败返回无结果
解决方法
  • 方法一:改写方程适配现有规则
    将原方程等价变形为左右两侧分别只含y和x的形式再传入,示例代码:
from sympy import *
x = symbols("x")
y = Function("y")
eq = Eq(Derivative(y(x), x) * exp(-y(x)), exp(-x))
print(dsolve(eq, y(x)))

运行后会输出正确解:Eq(y(x), -log(C1 + exp(-x)))

  • 方法二:强制指定求解算法
    调用dsolve时传入hint='separable'参数,跳过自动分类直接使用可分离变量解法,无需改写原方程:
from sympy import *
x = symbols("x")
y = Function("y")
eq = Eq(Derivative(y(x), x), exp(y(x)-x))
print(dsolve(eq, y(x), hint='separable'))
  • 方法三:升级SymPy版本
    该匹配漏洞已经在SymPy 1.12及后续版本中修复,升级到对应版本后可直接运行原始代码得到正确解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:18:00