函数 > 求解和最优化 > 求解命令块函数 > 示例:求解命令块中的 PDE
示例:求解命令块中的 PDE
使用求解命令块中的偏微分方程 (PDE) 和偏微分方程求解器 numol 比较波方程的解。
PDE 求解命令块
要求解下列一维波方程:
单击可复制此表达式
使用约束:
单击可复制此表达式
要将第一个方程转换为由两个偏微分方程组成的方程组,请设置 PDE 求解命令块
单击可复制此表达式
单击可复制此表达式
单击可复制此表达式
单击可复制此表达式
以下是边界上的一个解:
单击可复制此表达式
使用上面定义的约束,创建要通过 CreateMesh 函数三维绘制的解网格:
单击可复制此表达式
单击可复制此表达式
使用 numol
可求解命令行求解器 numol。当希望在程序中包含计算时,该求解器十分有用。
定义系统中偏微分方程和代数约束的数量:
单击可复制此表达式
单击可复制此表达式
用于计算 PDE 右侧的函数是长度为 num_pde + num_pae 的矢量 (偏代数方程)。此时的函数为一方程组。类似地,边界条件被定义成长度为 num_pde + num_pae 的列矢量。
PDE 矢量的表达式:
单击可复制此表达式
如上定义,u1=vu0=w
含初始条件值的向量:
单击可复制此表达式
假设每个左侧均为未知函数矢量 u 的一阶时间导数。函数的变量为 x (空间) 和 t (时间)。解为 u,也可以是由方程组的解构成的矢量:ux (矢量中每个解 u 的一阶导数) 和 uxx (二阶空间导数)。
必须使用矢量下标来标记 u 中的各个条目,uxuxx
边界条件的矢量可具有三种类型的行。每一行由下列内容之一确定:
rhs 包含二阶空间导数:需要两个边界条件 (Dirichlet "D" 或 Neumann "N"),积分区域每侧各一个。
rhs 包含一阶空间导数:一个用于积分区域左侧或右侧的 Dirichlet 边界条件,另一个条件为 "NA"。
如果矢量不包含空间导数,则无需边界条件。
左右边界的边界条件遵循以下约定:
单击可复制此表达式
单击可复制此表达式
numol 的结果为一矩阵,该矩阵将空间中的每个点表示为行,将时间中的每个点表示为列。这样一来便可每次拾取一列,同时在单个时间点显示整个空间中的解,从而便于解的可视化。求解方程组时,会将每个未知函数的解矩阵附加到前一矩阵的一侧。
单击可复制此表达式
单击可复制此表达式
在当前示例中,每个函数有 20 个时间点,因此矩阵包括 40 个列。拾取第一个解 u0
单击可复制此表达式
单击可复制此表达式
单击可复制此表达式
单击可复制此表达式
单击可复制此表达式
比较 numol 和 Pdesolve
在点 t0 比较解 numolPdesolve
单击可复制此表达式
单击可复制此表达式
比较空间和时间值的解网格:
单击可复制此表达式
单击可复制此表达式
这对您有帮助吗?