使用 Matlab 的 PDE 工具箱求解具有可变系数的 PDE

计算科学 pde matlab
2021-12-22 00:52:41

我是 PDE 工具箱的新手Matlab从工具箱的 PDE 规范窗口看,似乎只能求解具有常数系数的 PDE。

在此处输入图像描述

如何使用MatlabPDE 工具箱来解决 PDE 之类的问题

tP(x,y,t)=xxP(x,y,t)+(y1)yP(x,y,t)+2P(x,y,t)?

2个回答

通常,PDE Toolbox 能够以本页所示的形式求解 2D PDE:

PDE 表格

任何这些系数(例如 c、a、f、d)都可以是 x、y、t、u、 ux,uy.

如果系数是相对简单的表达式,定义它们的最简单方法是在上面的文本框中键入字符串表达式(例如 1+x.^2+4*y)。该方法记录在此页面上:

用字符串表达式定义的系数

如果系数更复杂,通常更直接地将它们定义为 MATLAB 函数。该方法记录在此页面上:

用函数定义的系数

对于您的等式,f 可以定义为字符串"x.^ux+(y-1).*uy"(不带“)、a=-2、d=1 和 c=0。

然而,一个强烈的警告是有序的。PDE Toolbox 中的算法是为二阶 c 项相对于一阶导数项显着的情况而设计的。所以这个方程的成功很大程度上取决于边界和初始条件。可能还需要将 c 设置为某个较小的数字;这有时被称为添加“人工扩散”。

我不熟悉 Matlab 中的这个 PDE 工具箱,但是 COMSOL Multiphysics 软件就是从这个工具箱中开发出来的。您可以挖掘一下以找出他们的密切关系。此外,如果您查看 COMSOL,您会发现这两者看起来很相似。

至少在 COMSOL 中,我知道您的 PDE 原则上是可以求解的。