反问题:迭代法

反问题:迭代法

Date: 2024/03/27
Reference : Colton, D. & Kress, R. Inverse Acoustic and Electromagnetic Scattering Theory. vol. 93 (Springer International Publishing, Cham, 2019). p170-p180

使用迭代法求解反散射问题中的反障碍问题,主要想法是基于牛顿迭代。此节的主要内容为:

  • 牛顿迭代
  • 修正的牛顿迭代(有三种修正方法)

一、问题概述

反障碍问题考虑如下方程:

\[\mathcal{F}(r) = u_\infty \]

其中 \(u_\infty\) 是远场模式,\(r\) 是星型边界 \(\part D\) 的参数化函数,\(\mathcal{F}\) 是远场映射。

远场映射的性质在书中有许多讨论,重要的有以下两个:

[!IMPORTANT]

  1. 当入射波确定时,\(\mathcal{F}: C^1(\mathbb{S}^2) \rightarrow L^2(\mathbb{S}^2)\) 是连续的,Fréchet可微的,局部紧的。

  2. \(\mathcal{F}\)​​ 的Fréchet导数是单射且像空间稠。形式如下给出:

    \[\mathcal{F}'_rq =v_\infty \]

    其中 \(v_\infty\) 是如下外问题的解 \(v\) 的远场模式:

    \[\begin{cases} \Delta v + k^2 v = 0, & x\in \R^3 \backslash \bar{D} \\ v = -\nu \cdot \left( p_q \circ p_r^{-1} \right) \frac{\part u}{\part \nu}, & x\in \part D \end{cases} \]

从上面的性质中不难发现,\(\mathcal{F}\) 的计算实际是解Helmholtz正问题,\(\mathcal{F}\) 的Fréchet导数计算实际上是解两次正问题。

反障碍问题就是要在已知 \(u^i\)\(u_\infty\) 的条件下,计算 \(r\)

二、牛顿迭代

使用线性化技术,牛顿迭代考虑如下的线性方程:

\[\mathcal{F}(r)+\mathcal{F}'_rq = u_\infty \]

从上述方程中解出 \(q\) 后边界的迭代格式为 \(\tilde{r}=r+q\)。因此只需要解三次正问题即可完成一步迭代。数值实验上常使用有限维子空间的办法来取 \(r\)\(q\),从而将问题转化为最小二乘。

显然上述迭代算法的计算消耗很大,因此有如下的改进,考虑声软边界,由惠更斯原理有如下的方程:

\[u^i = \int_{\part D} \frac{\part u}{\part \nu}(y) \varPhi(x,y) ds(y), \quad x \in \part D \tag{field equ.} \]

\[u_{\infty}(\hat{x}) = -\frac{1}{4\pi} \int_{\part D} \frac{\part u}{\part \nu}(y ) e^{-ik\hat{x}\cdot y} ds(y), \quad x \in \mathbb{S}^2 \tag{data equ.} \]

为符号方便,记 \(\varphi = -\frac{\part u}{\part \nu} ,x\in \part D\).

[!note]

field equ. 是弱病态的,data equ. 是严重病态的

在迭代中,使用其中一个方程求出 \(\varphi\),而后利用线性化第二个方程求出此时的 \(q\),最后利用 \(\tilde{r}=r+q\) 更新边界。

具体而言有以下三种改进方式

  • 第一种:利用 field equ. 求 \(\varphi\),线性化 data equ. 求 \(q\)
  • 第二种:同时线性化 field equ. 和 data equ.,而后使用牛顿迭代求解
  • 第三种:利用 data equ. 求 \(\varphi\),线性化 field equ. 求 \(q\)

为方便后文讨论,将上面两个方程分别定义为算子形式,引入如下两个算子:

\[A(r, \psi)(\hat{x}):=\int_{\mathbb{S}^2} \Phi\left(p_r(\hat{x}), p_r(\hat{y})\right) \psi(\hat{y}) d s(\hat{y}), \quad \hat{x} \in \mathbb{S}^2 \]

\[A_{\infty}(r, \psi)(\hat{x}):=\frac{1}{4 \pi} \int_{\mathbb{S}^2} e^{-i k r(\hat{y}) \hat{x} \cdot \hat{y}} \psi(\hat{y}) d s(\hat{y}), \quad \hat{x} \in \mathbb{S}^2 \]

原方程变为:

\[A(r, \psi) = -u^i \circ p_r \]

\[A_\infty(r, \psi) = u_\infty \]

变量换为 \(\psi = J_r \varphi \circ p_r\) 其中 \(J_r = r\sqrt{r^2+ |\text{Grad}\ r|^2}\).

两算子用于线性化的Fréchet导数可以如下显式地给出:

\[\left(A^{\prime}(r, \psi) q\right)(\hat{x})=\int_{\mathbb{S}^2} \operatorname{grad}_x \Phi\left(p_r(\hat{x}), p_r(\hat{y})\right) \cdot\left[p_q(\hat{x})-p_q(\hat{y})\right] \psi(\hat{y}) d s(\hat{y}), \quad \hat{x} \in \mathbb{S}^2 \]

\[\left(A_{\infty}^{\prime}(r, \psi) q\right)(\hat{x})=-\frac{i k}{4 \pi} \int_{\mathbb{S}^2} e^{-i k r(\hat{y}) \hat{x} \cdot \hat{y}} \hat{x} \cdot \hat{y} q(\hat{y}) \psi(\hat{y}) d s(\hat{y}), \quad \hat{x} \in \mathbb{S}^2 \]

三、改进算法(一)

在给出 \(r,u^i,u_\infty\) 下求解 \(q\) 再使用 \(\tilde{r}=r+q\) 更新边界。

Step 1. 利用 \(A(r, \psi) = -u^i \circ p_r\) 求解 \(\psi\),实际上是解一个积分方程

Step 2. 从如下的线性方程中求解 \(q\):

\[A_\infty'(r,\psi)q = u_\infty - A_\infty(r,\psi) \]

实际上是解一个积分方程。这个积分方程是严重病态的,因此需要使用正则化方法 (如Tikhonov正则化)。

[!IMPORTANT]

这种算法同原本的牛顿法有如下关系。考虑此算法的解:

\[\mathcal{F}(r) = -A_\infty \left(r, [A(r,\cdot)]^{-1}(u^i\circ p_r) \right) \]

对其微分:

\[\begin{aligned} \mathcal{F}_r^{\prime} q= & -A_{\infty}^{\prime}\left(r,[A(r, \cdot)]^{-1}\left(u^i \circ p_r\right)\right) q \\ & +A_{\infty}\left(r,[A(r, \cdot)]^{-1} A^{\prime}\left(r,[A(r, \cdot)]^{-1}\left(u^i \circ p_r\right)\right) q\right) \\ & -A_{\infty}\left(r,[A(r, \cdot)]^{-1}\left(\operatorname{grad} u^i \circ p_r\right) \cdot p_q\right) . \end{aligned} \]

因此这种算法实际上是使用牛顿迭代中梯度的第一项,来替代完整的梯度计算,从而减少了计算量。数值实验结果表明其重建效果同完整的牛顿迭代差不多。

四、改进算法(二)

同时线性化 field equ. 和 data equ.,而后使用牛顿迭代求解。

\(\psi\) 的线性化方向设为 \(\chi\)\(r\) 的线性化方向设为 \(q\). 由于 field equ. 和 data equ. 都对 \(\psi\) 是线性的,因此这个所谓的线性化,或者说Fréchet导数就可以直接代入,从而得到如下的结果:

\[A^{\prime}(r, \psi) q+\left(\operatorname{grad} u^i \circ p_r\right) \cdot p_q+A(r, \chi)=-A(r, \psi)-u^i \circ p_r \]

\[A_{\infty}^{\prime}(r, \psi) q+A_{\infty}(q, \chi)=-A_{\infty}(r, \psi)+u_{\infty} \]

求解 \(\chi\)\(q\) 的过程实际上是解一组积分方程组,由于第二个方程是严重病态的,因此需要对两个未知数同时进行正则化。

[!important]

从第一个方程中不难看出,在该改进算法下,每一步迭代过程中 \(A(r, \psi) = -u^i \circ p_r\) 均不成立。除非 \(\psi\) 恰满足此方程。这表明这个迭代算法同牛顿迭代有较大的差异。

因此可以基于此设计一个 \(\mathcal{F}(r) = u_\infty\) 的新的迭代方法,而非牛顿迭代 \(\mathcal{F}(r)+\mathcal{F}'_rq = u_\infty\) 变种。想法也很简单,就是求出 \(q\) 后,直接求解 field equ. \(A(r+q, \tilde{\psi}) = -u^i \circ (p_r+p_q)\) 得到下一步的 \(\tilde\psi\),而不需要求 \(\chi\) 再更新 \(\psi\).

五、改进算法(三)

第三种改进方法是先求解严重病态的 data equ. 再线性化 field equ. 求 \(q\)。这种方法事实上应该划分到分解法中,关于分解法可以参考p180~p199 或者后续的文章。

posted @ 2024-03-27 18:03  自倚修行  阅读(102)  评论(0)    收藏  举报