Wolfram 语言的微分方程求解函数可以用于许多不同种类的微分方程,自动选择合适的算法,而无须用户进行预处理. 其中一种类型是偏微分方程(PDE).
使用 D 来求导,以下建立 输运方程, ,并把它存储为 pde :
使用 DSolve 来求解方程,并且把解存储为 soln . DSolve 的第一个变量是一个方程,第二个变量是要求解的函数,而第三个变量是自变量组成的列表:
答案作为一个规则给出,并且 C [ 1 ] 是一个任意函数.
若要把解作为一个函数来使用,比方说 f [ x , t ] ,则使用 /. ( ReplaceAll 的简写形式)和 [ [ ... ] ] ( Part 的简写形式):
接着,您可以计算 f [ x , t ] 正如您即时任何其它函数一样:
您也可以通过使得 DSolve 的第一个变量为一个列表来增加一个初始条件,比如 . 该解被存储为 sol :
使用 Plot3D 来绘制解:
到目前为止的例子中都使用 DSolve 来获取偏微分方程的符号解. 当一个给定的偏微分方程不包含参数时, NDSolve 可以被用来获取数值解. NDSolve 的结果作为 InterpolatingFunction 对象给出.
以下,由 NDSolve 产生的解被存储为 nsol1 :
使用 Plot3D 绘制解:
InterpolatingFunction 对象可以被计算、绘图以及使用在其它操作中.
从 nsol1 即可获得解 InterpolatingFunction 并且把它赋给新符号 nsol2 :
对于 x 和 t 的指定值计算解:
使用 Plot3D 绘制解 nsol2 :
当偏微分方程包含参数, NDSolve 可以用于每个特定的参数值. 另外,用户可以建立一个使用 NDSolve 的函数,并且采用参数值.
使用 ? NumericQ 防止函数 fsol 对非数值参数值进行计算:
求对应于参数的某个特定值的解,在这个例子中,参数值为5:
使用 Plot3D 绘制解. Evaluate 是必须的,以使得计算以正确的顺序出现:
NDSolve 也可以与其他 Mathematica 函数一起使用, 比如 Manipulate .
求解对应于参数 k 的某个特定值的偏微分方程,然后绘制所得的解:
DSolve NDSolve InterpolatingFunction Plot3D Manipulate Part ReplaceAll NumericQ