0、前面已经掌握
- 矩阵和向量
- 如何解线性方程组Ax=bAx=bAx=b
- 复向量的内积和投影
- 如何把连续方程投影到子空间、装配成矩阵方程
- 特征值、条件数、判断解稳不稳
这些知识点下面还是散开的,这篇文章的任务是:用一个最小的、最简单的例子,把这些知识点全部串成一条完整的MoM计算链。
我们用一个只有2个未知数的"玩具问题"------矩阵2×22\times 22×2的,所有计算都可以手算。整个过程和真实MoM在逻辑上完全一样,只是规模缩小了上万倍。
1、设定:一个虚构的电磁问题
真实MoM要解的方程是:
L(J)=Einc \mathcal{L}(\mathbf{J})=\mathbf{E}_{inc} L(J)=Einc
- L\mathcal{L}L:是电场积分算子(很复杂,包含Green函数和多重积分)
- J\mathbf{J}J:是未知的表面电流
- Einc\mathbf{E}_{inc}Einc:是已知的入射电场
这个方程太复杂,一适合手算,所以在这里我们虚构一个形式相同但极其简单的版本 :
Lf=g\boxed{ \mathcal{L}f=g }Lf=g
- L\mathcal{L}L:某个线性算子(具体形式不重要,我们直接给最终数字)
- fff:待求的未知函数,定义在区间0,10,10,1上
- ggg:已知的激励函数
我们的目标 :用Galerkin方法求出fff的近似解。
2、第一步:选基函数,展开未知数
2.1基函数的选择
我们只选2个最简单的基函数:
f1(x)=1, f2(x)=x\boxed{ f_1(x)=1, \ \ \ \ \ \ f_2(x)=x }f1(x)=1, f2(x)=x
它们定义在0,10,10,1上。
这两个基函数张成一个2维的子空间V2V_2V2,里面的函数都是线性函数:
V2={I1⋅1+I2⋅x∣I1,I2∈C} V_2=\{ I_1\cdot 1+I_2\cdot x | I_1, I_2 \in \mathbb{C}\} V2={I1⋅1+I2⋅x∣I1,I2∈C}
2.2展开近似
我们假设未知数fff可以在这个子空间里近似:
f(x)≈f^(x)=I1f1(x)+I2f2(x)=I1+I2x\boxed{ f(x)\approx \hat{f}(x)=I_1f_1(x)+I_2f_2(x)=I_1+I_2x }f(x)≈f^(x)=I1f1(x)+I2f2(x)=I1+I2x
降维发生 :原来我们要找的是一个函数f(x)f(x)f(x)(无穷维------需要知道它在0,10,10,1上每个点的值)。现在只需要找2个数 :I1I_1I1和I2I_2I2。
未知数向量记作:
I=(I1I2) \mathbf{I}=\begin{pmatrix} I_1\\ I_2 \end{pmatrix} I=(I1I2)
3、第二步:用Galerkin条件装配ZZZ和VVV
3.1函数空间的内积
我们需要一个内积来衡量函数之间的"相似度"。这里采用最简单的函数内积:
⟨f,g⟩=∫01f(x)g(x)dx \langle f, g\rangle=\int_0^1 f(x)g(x)dx ⟨f,g⟩=∫01f(x)g(x)dx
(注意:在真正的MoM中,内积通常带有复共轭∫f‾gdx\int \overline{f}gdx∫fgdx,并且对矢量基函数还有点积。这里为了手算方便,用实数简化版。逻辑完全一致。)
3.2阻抗矩阵ZZZ的装配
Galerkin条件告诉我们:
Zmn=⟨fm,Lfn⟩ Z_{mn}=\langle f_m, \mathcal{L}f_n\rangle Zmn=⟨fm,Lfn⟩
即:基函数fnf_nfn被算子作用后,再和基函数fmf_mfm做内积。
在真实的MoM中,这涉及Green函数和四重积分------计算极其昂贵。但在玩具版中,我们假设已经算好了这些积分的数值(假装我们做了数值积分),直接给出结果:
Z11=⟨f1,Lf1⟩=2Z12=⟨f1,Lf2⟩=1Z21=⟨f2,Lf1⟩=1Z22=⟨f2,Lf2⟩=2\begin{aligned} Z_{11} = \langle f_1, \mathcal{L}f_1 \rangle=2 \\ Z_{12} = \langle f_1, \mathcal{L}f_2 \rangle=1 \\ Z_{21} = \langle f_2, \mathcal{L}f_1 \rangle=1 \\ Z_{22} = \langle f_2, \mathcal{L}f_2 \rangle=2 \end{aligned} Z11=⟨f1,Lf1⟩=2Z12=⟨f1,Lf2⟩=1Z21=⟨f2,Lf1⟩=1Z22=⟨f2,Lf2⟩=2
把矩阵写出来:
Z=(2112)Z=\begin{pmatrix} 2&1\\ 1&2 \end{pmatrix} Z=(2112)
它是对称的,这是Galerkin方法+自伴算子的性质,也符合电磁互易定理的数学体现。
3.3、激励向量VVV的装配
Galerkin条件还给出了右边的向量:
Vm=⟨fm,g⟩ V_m=\langle f_m, g \rangle Vm=⟨fm,g⟩
即:已知激励ggg和每个基函数的内积。
同样,我们假设已经算好了:
V1=⟨f1,g⟩=5V2=⟨f2,g⟩=7 V_1=\langle f_1,g\rangle = 5 \\ V_2=\langle f_2, g\rangle = 7 V1=⟨f1,g⟩=5V2=⟨f2,g⟩=7
V=(57)\boxed{ \mathbf{V}=\begin{pmatrix} 5\\7 \end{pmatrix} }V=(57)
4、第三步:写出MoM核心方程ZI=VZ\mathbf{I}=\mathbf{V}ZI=V
把ZZZ和V\mathbf{V}V拼起来:
(2112)(I1I2)=(57)\boxed{ \begin{pmatrix} 2&1\\1&2 \end{pmatrix}\begin{pmatrix} I_1\\ I_2 \end{pmatrix} = \begin{pmatrix} 5\\7 \end{pmatrix} }(2112)(I1I2)=(57)
这就是我们这个玩具MoM的核心方程。
5、第四步:解方程组:
这是一个2×22\times22×2的线性方程组,展开就是:
{2I1+I2=5I1+2I2=7\begin{cases} 2I_1+I_2=5 \\ I_1+2I_2=7 \end{cases} {2I1+I2=5I1+2I2=7
解得:
I=(13) \mathbf{I}=\begin{pmatrix} 1\\3 \end{pmatrix} I=(13)
6、第五步:重建近似解
把求出的系数代回展开式:
f^(x)=I1+I2x=1+3x \hat{f}(x)=I_1+I_2x=1+3x f^(x)=I1+I2x=1+3x
这就是我们求出的近似电流分布 (在真实的MoM中,它就是表面电流J\mathbf{J}J的近似)。
7、第六步:验证Galerkin正交条件
Galerkin方法的核心要求是:残差和每个基函数正交 。
残差定义:
r=L(f^)−g=L(1+3x)−g r=\mathcal{L}(\hat{f})-g=\mathcal{L}(1+3x)-g r=L(f^)−g=L(1+3x)−g
Galerkin条件要求:
⟨f1,r⟩=0, ⟨f2,r⟩=0 \langle f_1,r \rangle=0, \ \ \ \ \ \langle f_2,r\rangle =0 ⟨f1,r⟩=0, ⟨f2,r⟩=0
注意:我们在装配ZZZ和VVV的时候,正是用这两个正交条件导出了方程 。所以一旦我们解出I\mathbf{I}I满足ZI=VZ\mathbf{I}=\mathbf{V}ZI=V,它就自动满足正交条件。这是Galerkin投影的"自洽性"------不需要额外验证,解的存在本身就保证了残差正交。
在真实MoM中也是如此 :你只需要装配ZZZ和VVV,解方程,得到电流系数就自动满足Galerkin正交条件。
8、第七步:用条件数判断结果可不可信
我们已经知道Z=(2112)Z=\begin{pmatrix}2&1\\1&2 \end{pmatrix}Z=(2112)的特征值:
λ1=1, λ2=3 \lambda_1=1, \ \ \ \ \lambda_2=3 λ1=1, λ2=3
条件数:
κ(Z)=31=3 \kappa(Z)=\frac{3}{1}=3 κ(Z)=13=3
κ=3\kappa=3κ=3非常小,矩阵是良性的。
这告诉我们什么?
- 如果这是真实的MoM,这个频率下解出的电流是可信的。
- 如果在某频率下κ\kappaκ突然飙升到10610^6106甚至更高,我们就要警惕内部谐振,考虑改用CFIE\mathrm{CFIE}CFIE。
9、玩具MoM vs 真实MoM:一张对比表
| 步骤 | 玩具MoM | 真实MoM |
|---|---|---|
| 方程 | Lf=g\mathcal{L}f=gLf=g(虚构) | L(J)=Einc\mathcal{L}(\mathbf{J})=\mathbf{E}_{inc}L(J)=Einc(EFIE) |
| 基函数 | f1=1,f2=xf_1=1, f_2=xf1=1,f2=x(2个) | RWG基函数(几万~几十万个) |
| 内积 | ∫01fgdx\int_0^1fgdx∫01fgdx(一重积分) | ∬fm⋅fndS\iint\mathbf{f}_m\cdot\mathbf{f}_ndS∬fm⋅fndS(四重积分) |
| 阻抗矩阵ZZZ | 2×22\times22×2,手算 | N×NN\times NN×N,密集矩阵 |
| 激励向量VVV | 2个数 | NNN个数,由入射场积分得到 |
| 求解 | 手算Gauss消元 | 迭代法(GMRES)+预条件 |
| 条件数检查 | κ=3\kappa=3κ=3(良性) | 每个频率都检查,防范内部谐振 |
核心信息:真实MoM的流程和这个玩具完全一样,只是每一个环节被放大万倍。