31、玩具MoM:用2x2矩阵串起全套流程

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的流程和这个玩具完全一样,只是每一个环节被放大万倍。

相关推荐
江畔柳前堤1 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
Navigator_Z1 小时前
LeetCode //C - 1192. Critical Connections in a Network
c语言·算法·leetcode
宅小年1 小时前
DeepSeek Harness 发布,一切皆是插件
人工智能
努力的小Qin1 小时前
梯度下降如何实现参数优化:从线性回归到 Sigmoid 分类
人工智能·python·神经网络
甲维斯1 小时前
DeepSeekPro 依旧拉跨,配上官方Harness,还不如Flash?
人工智能
听你说321 小时前
推进具身智能安全评测:丈八科技与季华实验室达成战略合作
人工智能·科技·安全
阿里云大数据AI技术1 小时前
DataWorks Data Agent 7月升级: Qwen3.8-max 加持、管住 Token、打通 IM、铺向全球
大数据·人工智能·agent
zander2581 小时前
LeetCode 739:每日温度——为什么单调栈要持续弹出
开发语言·python·算法
2601_955759881 小时前
如何降低 Claude API 批量生产返工率
大数据·人工智能·算法