Levenberg-Marquardt method for nonlinear elliptical equation
使用 Levenberg-Marquardt 方法测试 \[u_{xx}+u^2=-sin(x)+sin(x)^2\], 初值选取 \(u(x)=cos(x)sin(x)\)
参考文献:《非线性方程组数值方法》,袁亚湘;
- 给出初值 \(x_0 \in \mathbb{R}^n; k=1,\eta \in(0,1)\)
- 若 \(\|J_k^{T} F_k\|=0\), 停;
求解 \(\displaystyle (J_k^TJ_k+\lambda_k I)d=-J_k^T F_k,\lambda_k=\|F_k\|\), 得到搜索方向 \(d_k\); - 若\(d_k\) 满足 \(\displaystyle \|F(x_k+d_k) \| \leq \eta \|F_k\|\), 则 \(x_{k+1}=x_k+d_k\);
否则: \(x_{k+1}=x_k+\alpha_k d_k\), 这里的 $\alpha_k $ 由Armijio 线搜索得到;
注:这里的Armijio 线搜索如下:
\(\alpha_k=\xi^t,\xi \in(0,1)\), \(t\in \mathbb{Z}^+\) 是满足如下不等式的最小非负整数:
\[ {\| F(x_k+\xi^t d_k) \|}^2 \leqslant {\|F(x_k) \|}^2+\beta_1 \xi^t F^T_k J_k d_k \] - \(k=k+1\), 转2.
function T69
% 全局二次收敛的 Levenberg-Marquardt
% yuewen_chen@qq.comn=300;
r=linspace(-pi*5,pi*5,n)';
h=r(2)-r(1);
rb=[r(1)-h;r;r(end)+h];
f=-sin(r)+sin(r).^2;
x0=sin(rb);
u=cos(r).*sin(r); % initial guess% ************ D2********************
cn1=-1*ones(n-1,1);
cp1=1*ones(n-1,1);
c=-2*ones(n,1);
D2=sparse((diag(c,0)+diag(cp1,1)+diag(-cn1,-1))/(h^2));
%******************************************
M=D2;
eta=0.9;for k=1:200lam=norm(F(u));L=g(u)'*g(u)+lam*speye(n,n);R=-g(u)'*F(u); %之前转置写掉了; d=L\R;if norm(F(u+d))<=norm(eta*F(u))u=u+d;elsealp=Armijo(u,d);u=u+alp*d;endplot(r,u,'b.',r,sin(r),'r')title(['res=',num2str(nF(u)), ', k=',num2str(k),' , \alpha=',num2str(norm(d))])drawnow
endfunction y=F(u)y=M*u+u.^2-f;y(1)=y(1)+x0(1)/h^2;y(end)=y(end)+x0(end)/h^2;
endfunction y=g(u)J=M+diag(2*u,0);y=J;endfunction y=nF(u)y=norm(F(u));endfunction alp=Armijo(u,d)et=1/5;bet1=0.5;t=0;while t<=500if (nF(u+et^t*d)^2<=nF(u)^2+bet1*et^t*F(u)'*g(u)*d)alp=et^t;breakelset=t+1;endalp=et^t;endend
end
转载于:https://www.cnblogs.com/yuewen-chen/p/11524458.html
Levenberg-Marquardt method for nonlinear elliptical equation相关推荐
- LM(Levenberg–Marquardt)算法原理及其python自定义实现
LM算法原理及其python自定义实现 LM(Levenberg–Marquardt)算法原理 LM算法python实现 实现步骤: 代码: 运行结果: LM(Levenberg–Marquardt) ...
- 非线性最小二乘问题与Levenberg–Marquardt算法详解
1 最小二乘问题 给定一组连续函数 f:Rn→Rm,m⩾n{\mathbf{f}}:{\mathbb{R}^n} \to {\mathbb{R}^m},{\text{ }}m \geqslant nf ...
- Levenberg–Marquardt(LM)
Levenberg–Marquardt(LM)详解 1.基础概念 1.1.信赖域法 1.2.泰勒展开 1.2.正定矩阵(positive definite matrix) 1.3.雅克比矩阵(Jaco ...
- Test 1D Degenerate Elliptical equation without Hamilton-Jacobi Part
Test 1D Degenerate Elliptical equation without Hamilton-Jacobi Parti 根据上一篇的经验:\(\frac{u_x^2}{1+u_x^2 ...
- Levenberg–Marquardt算法学习
本次是对Levenberg–Marquardt的学习总结,是为之后看懂sparse bundle ajdustment打基础.这篇笔记包含如下内容: 回顾高斯牛顿算法,引入LM算法 惩罚因子的计算(迭 ...
- 高斯牛顿算法matlab代码,matlab实现高斯牛顿法、Levenberg–Marquardt方法
高斯牛顿法: function [ x_ans ] = GaussNewton( xi, yi, ri) % input : x = the x vector of 3 points % y = th ...
- Levenberg–Marquardt algorithm
Levenberg-Marquardt又称莱文伯格-马夸特方法(Levenberg–Marquardt algorithm)能提供数非线性最小化(局部最小)的数值解. 此算法能借由执行时修改参数达到结 ...
- Levenberger-Marquardt for nonlinear elliptical system
考虑如下的方程组,测试Levenberger-Marquardt 方法: \[ \begin{align*} \varphi_{rr}+\frac{2}{r}\varphi_{,r}+\frac{1} ...
- 【论文翻译】(第二部分)The Fourier decomposition method for nonlinear and non-stationary time series analysis
Brief overview of the analytic signal and empirical mode decomposition algorithm 2.简要概述了解析信号和经验模态分解算 ...
最新文章
- C# Math类简介
- 程序员面试题精选100题(31)-从尾到头输出链表[数据结构]
- 关于字符串指针不可修改的问题
- [性能] SAP销售订单取数逻辑优化---索引表
- 一文详解神经网络与激活函数的基本原理
- mysql创建存储函数报错:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL...
- NSMutableDictionary中 setValue和setObject的区别
- 和 jQuery 说再见!Bootstrap 5 将移除对其依赖
- 为什么家里pm25比外面高_夫妻感情很好,男人为什么还会找情人?这是我听过最好的答案...
- php系统变量有哪些,php预定义系统变量
- Unity基础——List的用法
- USRP X310 Windows烧录
- 一年级abb式词语并造句_abb词语造句,用ABB词语造句
- 星巴克季节限定星怡杯樱花味拿铁升级回归
- Excel个人学习笔记
- Windows10系统Qt调试ffmpeg.c
- linux shell ifs,Shell 的 IFS 变量
- python---爬虫
- 市场调研—2021-2027中国鳍式场效应晶体管(FinFET)市场现状及未来发展趋势
- emlog发布文章自动变草稿修复方法