How to| 用导数建立微分方程

Wolfram 语言中求解微分方程的函数可用于求解多种类别的微分方程,包括常微分方程(ODE)、偏微分方程(PDE)、微分代数方程(DAE)以及边界值问题(BVP)等. 利用导数建立这些方程以在 Wolfram 语言中求解是非常重要的.

对于常微分方程,有多种方式可以表示以 为自变量的函数 的导数.

最普通的方法是使用 D

可以指定微分次序,这里为1:

使用 ' 也可以得到导数 f'[t]

符号 'Derivative 的简写符号:

FullForm 表明 'Derivative 等价:

    

D 建立常微分方程 以求解,并将该方程存为 ode

使用 TraditionalForm 将常微分方程以数学教科书或期刊中的形式显示:

常微分方程建立好后,可以使用 DSolve 对其进行符号式求解:

f[t] 用一个嵌套列表中的规则表示. 关于如何将此解从列表中提出并使用的信息,请参见 How to: 使用规则形式的解.

大多数时候,常微分方程伴随着边界及初始条件. 因此,计算函数在给定变量值时的导数将频繁用到. 这可以用多种方式完成. 此处,使用 作为一个范例.

使用 /.ReplaceAll 的简写符号)将 代入 . Wolfram 语言首先计算 D,然后执行替换:

或者,使用 ' 直接地仅计算

这也等价于 Derivative

再举一个例子,建立常微分方程 , , 用于求解:

使用 DSolve 获得符号解:

当然,您也可以不建立微分方程,直接求解:

另外,您可以将常微分方程用偏微分方程表示,并求解 f[x,t] 而不是 f[t]

这里建立了常微分方程

使用 DSolve 获得符号解:

除了使用 DSolve,您可以使用 NDSolve 得到一个数值解,对应于该常微分方程的一个系数相关的 的特定值.

下面的范例给出 时的解. NDSolve 给出的结果是 InterpolatingFunction 对象的形式:

下面的函数 F 给出相应于 各个值的数值解:

绘制 处的图形. 使用 Evaluate 以确保 FPlot 中的正确计算:

更多信息请参见 How to: 绘制 NDSolve 的结果.

    

Wolfram 语言也可以建立并求解偏微分方程.

此处使用 来说明 Wolfram 语言中偏导数的各种不同表示方式.

得到偏导数最常见的方法是使用 D

使用 D 略有不同的语法可以完成同一任务:

另一种方法是使用 Derivative

FullForm 表明这些方法是等价的:

下面,考虑一个偏微分方程的多种变形.

建立偏微分方程 用于求解:

使用 DSolve 求该偏微分方程的符号解. 结果以任意函数 C[1] 的形式给出:

该解也可以纯函数的形式得到. Function 代表 Wolfram 语言中的一个纯函数:

使用 DSolve 获得该偏微分方程的符号解 ,

使用 NDSolve 获得该偏微分方程的数值解 , , . 解存为 sol,以便日后使用:

使用 Plot3D 实现 NDSolve 结果的可视化:

    

在以上的情形中,导数与偏导数以变量的形式给出. 这里,对它们进行数值计算.

下面的两种方式都可用于表示偏导数值,如

    

除了常微分方程与偏微分方程外,Wolfram 系统还可以求解微分代数方程.

作为一个范例,请考虑该微分代数方程 , 满足

使用 DSolve 获得该微分代数方程的符号解:

要查看在 时的解,使用 /. 将这些值代入解中:

现在绘制解的图形:

同一图形也可以通过先将 代入 eqns,然后使用 NDSolve 得到:

如前所述,解的可视化通过 Plot 实现: