如何用SymPy求解可分离微分方程?求解y′=(y−4)(y−2)遇阻
解决SymPy求解可分离微分方程的问题
你的代码出错的核心原因是微分方程右侧误用了符号变量y,而非定义好的函数y_(x),导致SymPy错误地将方程解析为代数方程,而非关于y(x)的微分方程,因此得到了错误结果。
修正后的代码
import sympy as sp # 仅定义需要的符号变量 x = sp.symbols('x') # 定义未知函数 y(x) y = sp.Function('y')(x) # 正确构建微分方程:右侧使用函数 y(x) diff_eq = sp.Eq(sp.Derivative(y, x), (y - 4)*(y - 2)) # 设置初始条件 y(0)=5 ics = {y.subs(x, 0): 5} # 求解微分方程 solution = sp.dsolve(diff_eq, y, ics=ics) print(solution)
运行结果
Eq(y(x), (12*exp(2*x) - 2)/(3*exp(2*x) - 1))
代入x=0验证:(12*1 - 2)/(3*1 - 1) = 10/2 = 5,完全符合初始条件。
内容的提问来源于stack exchange,提问作者ty_743
相关产品推荐
相关产品推荐

