牛顿法成功的关键是利用了Hesse矩阵提供的曲率信息,但计算二阶导矩阵也就是Hesse矩阵工作量大,难以计算,在拟牛顿法中,我们运用目标函数值和一阶导数信息来构造函数的近似曲率

理论原理以及推导(代码在末尾)

上面的式子近似于拉格朗日展开,其中矩阵是在迭代过程中需要我们不断去校正的Hesse近似矩阵,我们需要找到矩阵的规律

上式为拉格朗日展开式,其中为一阶导数矩阵,为Hesse矩阵,我们对上式两边同时求导   可得:

进一步:

我们从上面的式子得到了Hesse矩阵的规律  ;现在我们需要一种简单快捷的计算的方式,构造;  其中a,b表示常数,u,v未知,我们需要让上面式子满足条件:当在满足拟牛顿法时,通过上述构造的等式推出的也满足拟牛顿法,显然,则类似于合并同类项也可推出,以上可以推出近似Hesse矩阵的推导公式为:

这就是所谓的DFP校正的拟牛顿法,而类似的,BFGS校正法也利用同样的构造,得出的推导公式(具体推导不在演示):

代码部分

根据上述理论原理,对于具体问题展开代码(matlab实现)

初始点为x=(1,1),精度为1e-5

% function [k,x0]=DFP(x0,ess)
clc;clear;close all;
x0=[1,1]';
ess=1e-5;
pause(1);
syms x1 x2 a;
H=[1,0;0,1];% 初始H矩阵一般为单位阵
k=1;
f=x1^2+2*x2^2-2*x1*x2-4*x1;
%求导
fx=diff(f,x1);
fy=diff(f,x2);
gk=[fx,fy]';
gk2=1;
while ((norm(gk2)>ess)&&(k<10))gk1=subs(gk,[x1,x2],x0')d=-H*gk1;xk=x0+a*d;fk1=subs(f,[x1,x2],xk');fk2=diff(fk1,a);a0=solve(fk2,a);x3=subs(xk,a,a0);gk2=subs(gk,[x1,x2],x3');s=x3-x0;y=gk2-gk1;H=H+(s*s')/(s'*y)-(H*y*y'*H)/(y'*H*y);x0=x3;k=k+1
end

BFGS校正和DFP校正的拟牛顿法相关推荐

  1. dfp matlab,MATLAB拟牛顿法之DFP与BFGS算法

    DFP算法原理 由于博主使用WPS编辑的文本,公式无法赋值粘贴,这里以截图的方法给出了推导过程.博主会上传该DOC文档. BFGS算法原理 matlab代码(DFP) syms x1 x2 f=@(x ...

  2. 黑电平校正、FPN校正、平场校正、白平衡校正

    黑电平校正.FPN校正.平场校正.白平衡校正,这四种校正,虽然形成原理和操作方式有不同,但是在实际应用中,经常是交叉的,尤其是在硬件实现时,出于速度以及资源的考虑,会融合起来做,或者使用一种暴力简单的 ...

  3. python图片矫正后对比_python库skimage 对图像进行gamma校正和log校正

    Gamma校正 Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系: 这个指数即为Gamma. Gamma校正的原理很简单,就一个很简单的表达式,如下图所示: ...

  4. 频域串联滞后校正matlab,基于MATLAB的串联超前校正、滞后校正和串联滞后-超前校正设计.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 基于MATLAB的串联超前校正.滞后校正和串联滞后 ...

  5. 【python】批量实现modis数据的辐射定标,大气校正及地形校正

    批量实现modis数据的辐射定标,大气校正及地形校正 1.定义辐射定标函数 def radiance_cal(band, gain, bias, scale_factor):rad = gain * ...

  6. 畸变校正与极线校正(具体原理+Matlab代码)

    附:相关需要的工具函数源代码(投影函数.校正矩阵计算等)见最下面 1. 畸变校正 1.1 形成原因 图像畸变一般有两种,第一种是透镜本身的形状有问题,使得图像发生径向畸变:第二种是透镜安装时与成像平面 ...

  7. pid是滞后超前校正_超前校正,滞后校正,超前滞后校正三种校正方法的比较

    展开全部 1.超前校正的目的是改善系统的动态性能,实现62616964757a686964616fe59b9ee7ad9431333431353332在系统静态性能不受损的前提下,提高系统的动态性能. ...

  8. 几何校正,正射校正,影像配准,辐射定标,辐射校正,大气校正,地形校正概念详解

    几何校正,正射校正,影像配准,辐射定标,辐射校正,大气校正,地形校正概念详解 一.几何校正 1.概念 是指消除或改正遥感影像几何误差的过程: 是为了实现对数字化数据的坐标系转换和图纸变形误差的纠正(黄 ...

  9. 应用RSD对高分6号(GF6)WFV进行一键正射校正和大气校正

    同其它一些高分辨率卫星数据一样,RSD对GF6 WFV也是一键完成正射和大气校正. 正射校正需要为RSD配置DEM数据,可以使用90m或者30m的缺省DEM,配置方法见RSD软件的安装说明或者去QQ群 ...

最新文章

  1. 如何看待机器视觉的“对抗样本”问题,其原理是什么?
  2. 聚类分析:创建,可视化以及可解释性
  3. vuejs和php的区别,VueJS全面解析
  4. ProEssentials实时三维图表控件
  5. node.js(一)基础介绍
  6. Android apk快速定位、灰色按钮克星--DroidSword
  7. 君正X1000芯片软件开发手册
  8. OCP、Avalon、Wishbone、IBM Core Connect
  9. 叮咚同城小程序问题:点击发布信息按钮自动闪退到首页的解决方法
  10. R8-1 中序和后序创建二叉树
  11. 当代大学生应该加强礼仪修养
  12. 右键新增文件/文件夹-打开方式
  13. 修改seting里面的休眠时间列表
  14. ajax提交多个form表单
  15. wps在线预览接口_金山文档在线编辑 - 快速接入 - 《WPS开放平台技术文档》 - 书栈网 · BookStack...
  16. 4.2 Ansible中的常用模块
  17. WIN10系统文件加密(纯手工技巧,非代码类)
  18. Java Android 根据银行卡号判断银行名称
  19. matlab sdm,SDM For Face Alignment 流程介绍及Matlab代码实现之预处理篇
  20. python管理系统web版_基于Python Flask的web日程管理系统

热门文章

  1. 简单易懂的“测试计划”模板
  2. [转载]三大WEB服务器软件比较(Apache ,Lighttpd,Nginx)对比分析
  3. Windows PowerShell™ 用户手册
  4. 比较好的pdf转换成txt转换器
  5. 能发出音乐的计算机软件,计算机软件在音乐教学活动中的应用研究
  6. 基于深度神经网络的图像分类与训练系统(MATLAB GUI版,代码+图文详解)
  7. 官方出的文档 - how to Compiling Shareaza
  8. 斗兽棋 java_AnimalGame 一个简单的斗兽棋代码实现,基本功能 现了,支持人人对战 JavaScript 238万源代码下载- www.pudn.com...
  9. 开源媒介软文推广智能发布系统PHP源码
  10. Oracle9i突破内存限制,9i Oracle的内存分配和使用