二维麦克斯韦方程组CNDG-FDTD方法的数值解误差并显示收敛精度阶数matlab
时间: 2023-06-20 09:04:06 浏览: 118
二维麦克斯韦方程组可以写成如下形式:
$$\frac{\partial \mathbf{E}}{\partial t} = c^2 \nabla \times \mathbf{H} - \frac{\sigma}{\epsilon_0} \mathbf{E}$$
$$\frac{\partial \mathbf{H}}{\partial t} = -\nabla \times \mathbf{E}$$
其中,$\mathbf{E}$ 和 $\mathbf{H}$ 分别为电场和磁场,$\sigma$ 为电导率,$c$ 为光速,$\epsilon_0$ 为真空介电常数。
CNDG-FDTD方法是一种有限差分时间域方法,可以用来求解麦克斯韦方程组的数值解。其算法流程为:
1. 将空间离散化,并给定网格尺寸和时间步长;
2. 利用中心差分格式对时间导数进行离散化;
3. 利用Curl-Curl格式对$\nabla \times \mathbf{H}$ 和 $\nabla \times \mathbf{E}$ 进行离散化;
4. 利用电场更新磁场,利用磁场更新电场;
5. 重复步骤4,直到达到指定的计算时间。
计算数值解误差的方法是将数值解与解析解进行比较,其中解析解是指符合方程组的精确解。由于二维麦克斯韦方程组并没有通解,所以通常采用模拟真实情况的边值问题来构造解析解,例如对于一个矩形波导内的电磁波问题,可以采用模式分析法求解出该波导内的电磁波模式,然后将其作为解析解进行比较。
收敛精度阶数可以通过计算不同网格尺寸下的误差来得到。常用的计算误差的方法有$L_2$误差和$L_{\infty}$误差。其中,$L_2$误差表示数值解与解析解的平方差的平均值的开方,$L_{\infty}$误差表示数值解与解析解的最大差值。对于理想的有限差分时间域方法,误差和网格尺寸的关系应该是一个幂律关系,即误差正比于网格尺寸的某个幂次方。通过计算不同网格尺寸下的误差,并对其进行线性回归,即可得到收敛精度阶数。