求解命令块中的偏微分方程
pdesolve(u, x, xrange, t, trange, [xpts], [tpts]) - 返回一个函数或矢量函数 u(x,t),对一维非线性偏微分方程 (PDE) 或 PDE 方程组进行求解,其中 n 阶微分方程有 n 个独立等式约束。值是对方程解矩阵的插值,这些解是使用线性数值方法计算的。
自变量
• 出现在求解命令块中时,u 为标量函数名,或矢量函数名 (不包含变量名)。例如,如果求解函数 f(x,t) 和 g(x,t),则 u 将为:
为适应下标偏微分表示法,命名函数时不能使用
文字下标。
• x 为空间变量名。
• xrange 是包含 x 实数边界值的两元素列矢量。
• t 为时间变量名。
• trange 是包含 t 实数边界值的两元素列矢量。
• xpts (可选) 是空间离散化点的整数个数。
• tpts (可选) 是时间离散化点的整数个数。
未知函数
函数必须依据其变量进行定义。例如,使用 u(x,t),而非 u。要在求解命令块中指示偏导数,请使用以下方式之一:
• 下标符号。例如,uxx(x,t) 是 u 对 x 的二阶偏导数。
| 下标符号只能用于求解命令块中的 pdesolve,而不能用于工作表的其他区域。 |
PDE 方程
必须使用
布尔型等号定义方程。方程左侧不允许使用二阶偏导数,必须将方程转换为仅具有一阶导数的方程组。
边界条件
每个未知函数都必须具有初始条件 u(x,0) 和 n 边界条件,其中 n 是 PDE 的阶数。边界条件的类型可以是 Dirichlet (u(0,t) = f(t)) 或 Neumann (ux(0,t)=g(t)),且可在空间积分范围的任一端点指定。边界条件中使用的端点必须与 ode/pdesolve 命令中指定的端点相匹配。Mathcad 检查约束类型和数量是否正确,并通过错误消息来标记错误。
约束
允许 u(x,t)+v(x,t)+w(x,t)=0 形式的代数约束。这将向系统添加一个额外的未知函数 w,必须将该函数指定为 ode/pdesolve 调用中的输出函数之一。不允许使用不等式约束。
• 将函数 pdesolve 的输出分配给函数名或矢量函数名。
• 要更改用于偏导数的近似方法,请右键单击 pdesolve 函数并选取其他方法。这可能会影响计算时间。
• 线性数值方法仅适用于求解双曲线和抛物线 PDE 以及偏代数方程。要求解程序循环中的方程,请使用
numol。要求解椭圆 PDE,例如泊松方程,请使用
松弛函数或多重网格。
以下是使用 pdesolve 时可能出现的错误和解决方案的列表。
• 错误:该函数需要至少 5 个自变量,但却用了 4 个。
示例:
解决方案:添加缺少的自变量,在本例中为 trange。
• 错误:该函数最多接受 7 个自变量,但却用了 8 个。
示例:
解决方案:移除多余的自变量。有关详细信息,请参阅
自变量• 错误:时间变量的边界矢量格式不正确。
示例:
解决方案:
trange 未正确定义。有关详细信息,请参阅
自变量• 错误:空间变量的边界矢量格式不正确。
示例:
解决方案:
xrange 未正确定义。有关详细信息,请参阅
自变量• 错误:指定的未知函数名称不正确。
示例:
解决方案:函数不得带自变量。
• 错误:必须为大于 4 的整数。
示例:
或
解决方案:离散化点的数量必须为大于 4 的整数。