繁体   English   中英

SymPy 未显示微分方程解

[英]Differential equation solution not shown by SymPy

在下面的代码中,我首先求解一个微分方程,但是,当我检查它是否是一个解时,它似乎不是。 (以下代码返回 False。)我做错了什么?

import sympy as sy

t = sy.symbols('t')
y = sy.symbols('y', cls=sy.Function)

expr = y(t).diff(t, t) + 3*y(t).diff(t) + 2*y(t) - 4*t
solution = sy.dsolve(sy.Eq(expr, 0)).rhs

print(expr.subs(y(t), solution).simplify() == 0)

您需要doit()来有效地评估导数: expr.subs(y(t), solution).doit()

import sympy as sy

t = sy.symbols('t')
y = sy.symbols('y', cls=sy.Function)

expr = y(t).diff(t, t) + 3*y(t).diff(t) + 2*y(t) - 4*t
solution = sy.dsolve(sy.Eq(expr, 0)).rhs

print(expr.subs(y(t), solution).doit().simplify() == 0)

打印True

如果只想查看解法,可以使用checkodesol

>>> checkodesol(expr, solution)
(True, 0)

(它会自动处理可能使检查解决方案复杂化的简化和其他细节。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM