PDE优化|逆问题中偏微分方程约束优化的惩罚方法(Matlab代码实现)

简介: PDE优化|逆问题中偏微分方程约束优化的惩罚方法(Matlab代码实现)

1 概述

在逆问题中,目标是从间接观察中推断物理参数(例如密度、声速或电导率)。当基础模型由偏微分方程 (PDE)(例如,波动方程或麦克斯韦方程)描述时,观察到的数据通常是多个右手边 PDE 解的部分测量值。这些参数通常显示为 PDE 中的系数。这些问题出现在许多应用中,例如地球物理学 [1、2、3、4]、医学成像 [5、6] 和无损检测。


许多逆和参数估计问题可以写成偏微分方程约束的优化问题。因此,目标是从几个右侧偏微分方程解的部分测量中推断出参数,通常是偏微分方程的系数。这种偏微分方程约束的问题可以通过找到拉格朗日量的静止点来解决,这需要同时更新参数和(伴随)状态变量。对于大规模问题,这种一次性全部的方法不可行,因为它需要存储所有状态变量。在这种情况下,人们通常采用简化方法,其中通过求解偏微分方程来显式消除约束(在每次迭代中)。这两种方法及其变体是解决由逆问题引起的偏微分方程约束优化问题的主要主力。在本文中,我们提出了一种替代方法,旨在结合这两种方法的优点。我们的方法基于约束优化问题的二次惩罚公式。通过消除状态变量,我们开发了一种有效的算法,该算法具有与传统简化方法大致相同的计算复杂性,同时利用更大的搜索空间。数值结果表明,该方法确实降低了问题的一些非线性,并且对初始迭代的敏感性较低。


2 数学模型

对于线性偏微分方程,可以将逆问题(离散化后)表述为以下形式的约束优化问题:

                     


在实践中,通常在公式 (1) 中包含一个正则化项,以减轻问题的不适定性。然而,为了简化讨论,忽略了这些术语,因为可以在需要时添加适当的正则化术语。


在由逆问题引起的应用中,约束问题 (1) 通常使用拉格朗日乘数 [7, 8] 或顺序二次规划 (SQP) [9, 10] 的方法来解决。这需要同时优化参数、状态和拉格朗日乘数(或伴随状态变量)。虽然从优化的角度来看,这种一次性方法通常非常有吸引力,但它们通常不适用于大规模问题,因为我们无法同时存储所有 K 个实验的状态变量。相反,所谓的简化方法是基于(块)消除约束来制定参数上的无约束优化问题:

                       

如果对状态进行完整测量(即 P 是可逆的),则所述逆问题将更容易解决。在这种情况下,我们可以从数据中重建状态为 u = P−1d,然后通过求解来恢复参数:

                     


详细数学模型见第4部分。

3 算例及仿真结果


部分代码:

n  = 51;
f  = 5;
x  = linspace(0,1,n-1);
h  = x(2) - x(1);
mt = ones(n-1,1);
omega = 2*pi*f;
D  = spdiags(ones(n,1)*[-1 1]/h,[0:1],n-1,n);
w  = ones(n,1); w([1 end]) = .5;
At = (1i*omega)*diags(w) + D'*diags(mt)*D;
[Vr,Dr] = eig(full(At'*At)); [Dr,Ir] = sort(diag(Dr),'descend'); Vr = Vr(:,Ir);
kappar  = Dr(1)/Dr(end);
a  = [1e-1 1 1e1];
L  = [1 10 20];
ls = {'ro','bx','g^'};
P{1} = speye(n);
P{2} = fft(eye(n))/sqrt(n);
for k = 1:1
    for l = 1:length(L)  
        %I = randperm(n); I  = I(1:L(l));
        I = round(linspace(1,n,L(l)));
        Pl = P{k}(:,I);
        mu = eigmax(@(x)At'\(Pl*Pl'*(At\x)),n);
        figure;semilogy(1:n,Dr,'k*','markersize',10);hold on;
        xlabel('n');ylabel('特征值');xlim([1 n]);
        for i = 1:length(a)
            lambda = a(i)*real(mu);
            B = (At'*At) + (1/lambda)*(Pl*Pl');
            %[Vp,Dp] = eig(full(diags(1./Dr)*ex(Vr'*B*Vr))); [Dp,Ip] = sort(diag(Dp),'descend'); Vp = Vp(:,Ip);
            [Vp,Dp] = eig(full(B)); [Dp,Ip] = sort(diag(Dp),'descend'); Vp = Vp(:,Ip);
            kappap(l,i) = Dp(1)/Dp(end);
            lower = 1/(1+L(l)/(lambda*Dr(end)));
            upper =   (1+L(l)/(lambda*Dr(1)));
            semilogy(1:n,abs(Dp),ls{i},'markersize',10);hold on;
        end
        legend('reduced',['\lambda = 0.1'],['\lambda = 1.0'],['\lambda = 10'],'location','SouthWest');
    end
    kappa{k} = kappap/kappar;
end
savefig(1:3,'../../doc/figs/example2');
latextable(kappa{1},'Horiz',{'$\lambda = 0.1$','$\lambda = 1$','$\lambda = 10$'},'Vert',{['L = ' num2str(L(1))],['L = ' num2str(L(2))],['L = ' num2str(L(3))] },'Hline',[1 NaN],'format','%1.2e','name','../../doc/figs/example2.tex');


4 结论

本文提出了一种使用线性 PDE 进行 PDE 约束优化的惩罚方法,并应用于逆问题。该方法基于约束问题的二次惩罚公式。这种重新表述导致参数和状态变量中的无约束优化问题。为了避免在优化过程中必须存储和更新状态变量,我们通过求解超定线性系统来显式消除状态变量。所提出的方法结合了同时更新状态和参数的 all-at-once 方法和显式消除 PDE 约束的传统简化方法的特征。虽然具有与传统简化方法相似的计算复杂度,但惩罚方法通过不完全满足 PDE 约束来探索更大的搜索空间。我们表明,只要惩罚参数 λ 选择得足够大,我们就可以(理论上)在给定的容差内找到约束问题的拉格朗日的驻点。虽然理论上我们需要 λ ↑∞,但我们可以解决有限 λ 在有限精度内到达静止点的问题。与传统简化方法的主要算法差异是从问题中消除状态的方式。我们没有求解 PDE,而是制定了一个由离散 PDE 和测量值组成的超定方程组。我们讨论了这个增强系统的性质,并用几个数值例子表明,与原始 PDE 相比,系统的结构和特征值都没有发生显着变化。因此,使用与原始 PDE 相同的方法可以有效地求解增强系统是合理的。数值示例表明,即使使用单个相对较小的 λ 值,也可以获得非常好的结果。 ad-hoc 延续策略进一步表明,逐渐增加 λ 以达到所需的容差是可行的。


5 Matlab代码实现


相关文章
|
5天前
|
机器学习/深度学习 算法 数据挖掘
基于PSO优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
该文档介绍了使用MATLAB2022A中PSO优化算法提升时间序列预测模型性能的过程。PSO优化前后对比显示了优化效果。算法基于CNN、LSTM和Attention机制构建CNN-LSTM-Attention模型,利用PSO调整模型超参数。代码示例展示了PSO的迭代优化过程及训练、预测和误差分析环节。最终,模型的预测结果以图形形式展示,并保存了相关数据。
|
11天前
|
机器学习/深度学习 算法 网络架构
matlab使用贝叶斯优化的深度学习
matlab使用贝叶斯优化的深度学习
18 0
|
19天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
1月前
|
机器学习/深度学习 算法 数据可视化
基于GA优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
该内容描述了一个使用CNN-LSTM-Attention模型优化时间序列预测的过程。在优化前后,算法的预测效果有明显提升,软件版本为matlab2022a。理论部分介绍了CNN用于特征提取,LSTM处理序列依赖,Attention关注重要信息,以及遗传算法(GA)优化超参数。提供的核心代码展示了GA的优化迭代和模型训练,以及预测结果的可视化比较。
|
1月前
|
算法 搜索推荐
基于遗传优化的协同过滤推荐算法matlab仿真
该内容是关于推荐系统和算法的描述。使用Matlab2022a执行的算法生成了推荐商品ID列表,显示了协同过滤在个性化推荐中的应用。用户兴趣模型通过获取用户信息并建立数学模型来提高推荐性能。程序片段展示了遗传算法(GA)的迭代过程,确定支持度阈值,并基于关联规则生成推荐商品ID。最终结果是推荐的商品ID列表,显示了算法的收敛和支持值。
|
2月前
|
机器学习/深度学习 算法 计算机视觉
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
30 2
|
2月前
|
算法
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
40 0
|
2月前
|
算法
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
82 0
|
2月前
|
算法
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
43 0
|
2月前
|
算法
MATLAB | 插值算法 | 一维Lagrange插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维Lagrange插值法 | 附数据和出图代码 | 直接上手
25 0

热门文章

最新文章