How to| 求解偏微分方程

Wolfram 语言的微分方程求解函数可以用于许多不同种类的微分方程,自动选择合适的算法,而无须用户进行预处理. 其中一种类型是偏微分方程(PDE).

使用 D 来求导,以下建立 输运方程,,并把它存储为 pde

使用 DSolve 来求解方程,并且把解存储为 soln. DSolve 的第一个变量是一个方程,第二个变量是要求解的函数,而第三个变量是自变量组成的列表:

答案作为一个规则给出,并且 C[1] 是一个任意函数.

若要把解作为一个函数来使用,比方说 f[x,t],则使用 /.ReplaceAll 的简写形式)和 [[...]]Part 的简写形式):

接着,您可以计算 f[x,t] 正如您即时任何其它函数一样:

您也可以通过使得 DSolve 的第一个变量为一个列表来增加一个初始条件,比如 . 该解被存储为 sol

使用 Plot3D 来绘制解:

    

对非齐次偏微分放出 使用 DSolve,并且具有初始条件

从嵌套列表得到解:

对给定参数值计算解:

现在,使用 Plot3D 来绘制解:

    

用户也可以对具有非数值系数的偏微分方程进行操作.

使用 DSolve 来求解非齐次偏微分方程,例如,,其中初始条件为 . 其解被存储为 pdesol

定义一个函数 Fsol,对应于解 pdesol

对参数的给定值,计算解函数:

替换参数值:

对给定参数值集合,绘制解 Fsol

使用 Manipulate 来显示解 Fsol 如何随着参数 abc 而改变:

    

到目前为止的例子中都使用 DSolve 来获取偏微分方程的符号解. 当一个给定的偏微分方程不包含参数时,NDSolve 可以被用来获取数值解. NDSolve 的结果作为 InterpolatingFunction 对象给出.

以下,由 NDSolve 产生的解被存储为 nsol1

使用 Plot3D 绘制解:

InterpolatingFunction 对象可以被计算、绘图以及使用在其它操作中.

nsol1 即可获得解 InterpolatingFunction 并且把它赋给新符号 nsol2

对于 xt 的指定值计算解:

使用 Plot3D 绘制解 nsol2

    

当偏微分方程包含参数,NDSolve 可以用于每个特定的参数值. 另外,用户可以建立一个使用 NDSolve 的函数,并且采用参数值.

使用 ?NumericQ 防止函数 fsol 对非数值参数值进行计算:

求对应于参数的某个特定值的解,在这个例子中,参数值为5:

使用 Plot3D 绘制解. Evaluate 是必须的,以使得计算以正确的顺序出现:

NDSolve 也可以与其他 Mathematica 函数一起使用, 比如 Manipulate.

求解对应于参数 k 的某个特定值的偏微分方程,然后绘制所得的解: