反问题:迭代法
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]
当入射波确定时,\(\mathcal{F}: C^1(\mathbb{S}^2) \rightarrow L^2(\mathbb{S}^2)\) 是连续的,Fréchet可微的,局部紧的。
\(\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 或者后续的文章。
标签:infty,psi,迭代,equ,问题,right,迭代法,hat From: https://www.cnblogs.com/zhang-js/p/18099927