How to| 验证 DSolve 的结果

尽管 DSolve 通常能够对所给的微分方程返回正确的解,它的常见用法是验证任意微分方程求解程序返回的解. 由 DSolve 给出的解可以通过多种方法验证. 最简单的方法是将解代入原方程. 如果结果为 True,则该解是正确的.

在这个例子中,解通过代入法验证.

为了以后方便,将 DSolve 的第一个参数的值赋为 eqn

当指定 DSolve 的第二个参数为 y 而不是 y[x] 时,解以纯函数的形式返回. 该形式既有利于解的验证,也为在后继工作中使用提供了方便:

使用 /.ReplaceAll 的缩略形式)将解代回原方程:

这里,使用同样的方法对解是否满足方程及初始条件进行验证:

    

有时代入的结果会过于复杂,而不能立即给出 TrueFalse 的结果. 这时可通过 Simplify 将代入结果化简来进行验证. 如果化简后的结果为 True,则解是正确的.

得到一个二阶非齐次方程的解:

将解代回原方程:

使用 Simplify 来验证解:

这里,用同样的方法来验证线性偏微分方程的解:

如果方程涉及特殊函数,可能有必要使用 FullSimplify 来验证解.

例如,这个解含有 Bessel 函数:

使用 Simplify 不能使解得到验证:

可以使用 FullSimplify

    

另一个重要的验证方法是对问题中的所有变量和参数进行数值检查. 在这种情况下,最好是对多个随机值的集合重复检查.

在这个例子中,数值验证是有效的:

尽管数值检查无法使解得到充分验证,通过使用更高的精度,或允许变量采取复值进行更严格的检查是可以的.

这里用更高的精度对前面的解进行验证:

这里使用复数随机值验证前面的解: