微分方程
可以使用 Mathematica 的函数 DSolve 求常微分方程的符号解.
求解微分方程实际上是求未知函数的形式. 在 Mathematica 中,未知函数用诸如
等表达式来表示,其导数用
、
等表示.
Mathematica 函数 DSolve 返回的结果是一个函数规则列表. 问题是这些函数如何被表示. 如果令 DSolve 关于
求解,那么 DSolve 将返回
的规则. 某些情况下,这个规则正是所需要的. 但这个规则本身并不给出
或
的值. 因此,多数情况下,最好让 DSolve 关于
本身,而不是关于
求解. 这种情况下,DSolve 返回作为纯函数的
的规则,如 "纯函数"一节所讨论的那样.
| Out[1]= |  |
| Out[2]= |  |
若让
DSolve 关于

求解,它将给出关于纯函数

的规则.
| Out[3]= |  |
现在规则适用于所有的

.
| Out[4]= |  |
| Out[5]= |  |
以不同形式得到微分方程的解.
在标准数学表示法中,通常通过明确引入"哑变量"表示函数的自变量的方法来表示微分方程的解. 如果用户正需要符号形式的解,那么引入哑变量可能是方便的. 但是,如果打算将解用于其它运算中,那么最好是得到不带哑变量的纯函数形式的解. 注意这个形式,在 Mathematica 中容易表示,但在标准数学表示法中没有相应的形式.
| DSolve[{eqn1,eqn2,...},{y1,y2,...},x] |
| 求解微分方程组 |
求解联立微分方程组.
| Out[6]= |  |
Mathematica 在这种情况下返回

的两个不同的解.
| Out[7]= |  |
通过给出附加方程如
,可以给微分方程添加约束和边界条件.
这里要求解满足条件

.
| Out[8]= |  |
如果令 Mathematica 求解微分方程组,而不给出约束和边界条件,那么 Mathematica 将尽量求出通解. 这个通解将包含待定常数. 方程中的每一阶导数将引入一个常数.
缺省时这些常数命名为 C[n],其中 n 从
开始,随着调用 DSolve 的次数而递增. 通过设置选项 GeneratedParameters 可以覆盖这个选择. 所给的任何函数适用于其后的每一个 n 值从而得到每次调用 DSolve 所用的常数.
| Out[9]= |  |
| Out[10]= |  |
应该认识到,求微分方程的解的精确公式是困难的. 事实上只有少数方程能求出这样的公式解.
研究最多的是线性微分方程,即方程中的函数及其导数是线性的.
| Out[11]= |  |
| Out[12]= |  |
对单个微分方程,并且只包含一阶导数,那么通过积分总能求出方程的解.
但对于方程组或包含高阶导数,就不一定能求出解. 然而某些简单的二阶线性方程,通过使用 "特殊函数" 一节的各种特殊函数,仍然能求解. 事实上,在历史上许多特殊函数就是为了表示这种方程的解而引入的.
这是 Airy 方程,根据 Airy 函数得到解.
| Out[13]= |  |
| Out[14]= |  |
| Out[15]= |  |
| Out[16]= |  |
| Out[17]= |  |
二阶以上的方程,甚至相当简单的线性微分方程,求解是需要极端复杂的函数类型. 对三阶方程,广义 Meijer G 函数有时被使用 MeijerG 但对四阶或更高阶的方程,绝对没有适当的数学函数,除非很简单的情形.
这是一个三阶线性微分方程,它能用广义超几何函数给出解.
| Out[18]= |  |
| Out[19]= |  |
对于非线性微分方程,仅有一些特殊情形能用标准数学函数求解. 尽管如此,DSolve 包含相当通用的程序,能够处理几乎所有的其解在标准参考书中能找到的非线性微分方程.
不显含

的一阶非线性微分方程很容易求解.
| Out[20]= |  |
| Out[21]= |  |
| Out[22]= |  |
| Out[23]= |  |
| Out[24]= |  |
在实际应用中, 用分段函数来设置微分方程通常会带来方便. 可以使用 DSolve 来得到这种方程的符号解.
| Out[25]= |  |
| Out[26]= |  |
除了常微分方程, 还需考虑到微分代数方程, 这种方程是微分方程和代数方程的的组合.
| Out[27]= |  |
| DSolve[eqn,y[x1,x2,...],{x1,x2,...}] |
| 关于 求解偏微分方程 |
| DSolve[eqn,y,{x1,x2,...}] | 关于 y 求解偏微分方程 |
求解偏微分方程,
DSolve 不仅能求解仅有一个独立变量的常微分方程,也能求解有二个以上独立变量的偏微分方程.
| Out[28]= |  |
| Out[29]= |  |
在基础数学中,偏微分方程比常微分方程复杂得多. 一个特征是:常微分方程的通解仅包含任意常数,而偏微分方程的解必须包含任意函数. 实际上
元偏微分方程的解,必定包含
元的任意函数. DSolve 缺省时将这些函数命名为 C[n].
| Out[30]= |  |
| Out[31]= |  |
| Out[32]= |  |
| Out[33]= |  |
对于常微分方程,一般情况下通解都存在,通过简单地添加初始或边界条件,就能确定解中的任意常数. 当对于偏微分方程就不行了,因为只有线性的或很少一些特殊类型的偏微分方程存在通解.
其它的偏微分方程只有当特定的初始或边界条件给定才能求解,并且大多数情形不能求出用标准数学函数表示的公式解.
由于

及其导数都是线性的,其通解存在.
| Out[34]= |  |
| Out[35]= |  |
| Out[36]= |  |