最优化——阻尼牛顿法
使用阻尼牛顿法求解
利用Amijio非精确线搜索
初始点x^0=(0,0),经条件1e-6或n=2000
代码:
%建立NTtest.m文件
clear all
clc
x0=[0,0]';
fun=@(x)100*(x(1)^2-x(2))^2+(x(1)-1)^2;
gfun=@(x)[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1), -200*(x(1)^2-x(2))]';
Hesse=@(x)[1200*x(1)^2-400*x(2)+2,-400*x(1);-400*x(1),200]';
[x,val,k]=minNT(fun,gfun,Hesse,x0)建立minNT.m文件
function [x,val,k]=minNT(fun,gfun,Hesse,x0)
%注意传过来的是变量,而不是函数
%功能:用阻尼牛顿法求解无约束问题:min f(x)
%输入:x0是初始点,梯度函数,Hesse阵的函数
%输出:x,val是近似最优点和最优值,k是迭代次数
maxk=2000;%给出最大迭代次数
rho=0.5;sigma=0.4;gama=0.5;
epsilon=1e-6;
k=0;
while (k<maxk)gk=feval(gfun,x0);%计算梯度Gk=feval(Hesse,x0);%计算Hesse阵dk=-Gk\gk;%计算搜索方向if(norm(gk)<epsilon) break;end%Armijio线搜索寻找最佳步长alphamk=0;while(mk<20)if(feval(fun,x0+rho*gama^mk*dk)<=feval(fun,x0)+sigma*rho*gama^mk*gk'*dk)alpha=rho*gama^mk;break;endmk=mk+1; endx0=x0+alpha*dk;k=k+1;
endx=x0;
val=feval(fun,x);
format short
end
结果:
x =
1.0000
1.0000
val =
2.1283e-15
k =
36
每天进步一点点
最优化——阻尼牛顿法相关推荐
- 最优化理论——阻尼牛顿法
最优化理论--阻尼牛顿法 算法思想 算法步骤 代码 示例 算法思想 由于实际问题的精确极小点一般是不知道的, 因此初始点的选取给算法的实际操作带来了很大的困难. 为了克服这一困难, 可引入线搜索技术以 ...
- 陈宝林《最优化理论与算法》超详细学习笔记 (一)————第十章 使用导数的最优化方法(最速下降法、牛顿法、阻尼牛顿法)
陈宝林<最优化理论与算法>超详细学习笔记 (一)----第十章 使用导数的最优化方法(最速下降法.牛顿法.阻尼牛顿法) 写在前面 第十章 使用导数的最优化方法 最速下降法 牛顿法 阻尼牛顿 ...
- 寻找最优参数解:最速下降法,牛顿下降法,阻尼牛顿法,拟牛顿法
感谢于建民的投稿,转载请注明出处:数盟社区 机器学习的一个重要组成部分是如何寻找最优参数解.本文就常见寻优方法进行总结,并给出简单python2.7实现,可能文章有点长,大家耐心些. 寻找最优参数解, ...
- 无约束优化:修正阻尼牛顿法
文章目录 无约束优化:修正阻尼牛顿法 梯度法的困难 经典牛顿法 定义 收敛性证明 修正阻尼牛顿法 考虑修正阻尼牛顿法的起因 如何构造修正矩阵M 参考文献 无约束优化:修正阻尼牛顿法 梯度法的困难 无约 ...
- L-BFGS算法/Broyden族/BFGS算法/阻尼牛顿法的Python实现代码
下面定义了三个Python语言编写的函数:函数表达式fun,梯度向量gfun,和海森矩阵hess.这三个表达式在后面各个算法的实现中会用到. # 函数表达式fun fun = lambda x:100 ...
- matlab解决阻尼牛顿,matlab阻尼牛顿法例题
<matlab阻尼牛顿法例题>由会员分享,可在线阅读,更多相关<matlab阻尼牛顿法例题(2页珍藏版)>请在人人文库网上搜索. 1.精品文档. Use damped Newt ...
- 修正牛顿法matlab,牛顿算法及其改进【阻尼牛顿法、修正牛顿法】
牛顿算法 对于优化函数\(f(x)\),\(x=(x_1;x_2;...;x_n)\),二阶连续可导 在\(x_k\)处泰勒展开,取前三项,即对于优化函数二阶拟合 \[f(x)=f(x_k)+g_k( ...
- 最优化学习 牛顿法(Newton’s method)
牛顿法(Newton's method) 牛顿法(Newton's method) 收敛性分析 ∃ η > 0 \exists \eta>0 ∃η>0 图示和例子 优点和缺陷 全部笔 ...
- 【数学与算法】牛顿法的两种应用:求根和最优化
原文链接:点击 平时总看到牛顿法怎样怎样,一直不得要领,今天下午查了一下维基百科,写写我的认识,很多地方是直观理解,并没有严谨的证明.在我看来,牛顿法至少有两个应用方向,1.求方程的根,2.最优化.牛 ...
最新文章
- tuple parameter unpacking is not supported in python3
- jquery最快速入门文档
- 生动形象的理解什么是装饰器!
- muyucms轻量级内容cms
- jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable
- 数学 - 线性代数导论 - #9 Ax=b的解:存在性、解法、解的结构、解的数量
- mysql解压版有配置文件么_3分钟安装MySQL5.7解压版
- hyperledger fabric 节点数限制 最大
- android环境混合app开发,cordova混合App开发:Cordova+Vue实现Android (环境搭建)
- oracle 中execute immediate 是什么意思?
- Unity中的资源管理-一整套简单的资源管理方案(1)
- java工资高还是web前端工资高_java工资高还是php,java工资高还是web前端工资高,php和java学费...
- shine your way
- 图神经网络(GNN)资源帖视频及必读论文
- CCF [201703-1] 分蛋糕(C++)
- html嵌入播放器,flv视频播放器 Flvplayer.swf 可自动播放参数说明
- 抖音、美团等大厂千万级用户的Android客户端架构演进之路—
- hanlp自然语言处理包的基本使用--python
- Unity学习篇之txt文本文档的多种读写方式
- ubuntu 下怎么查看内存条状况