目录

  • 一、预备知识
  • 二、无约束最优化方法的基本结构
  • 三、凸集和凸函数
  • 四、负梯度方法和Newton型方法
  • 五、共轭梯度法
  • 六、约束最优化问题的最优性理论
  • 七、罚函数方法
  • 八、期末复习
    • 8.1 知识点复习
    • 8.2 习题复习
    • 8.3 大实验代码
      • 8.3.1实验内容
      • 8.3.2实验目的
      • 8.3.3算法描述
      • 8.3.4程序中的参数设置、终止准则、关键技术(语句)等说明
        • 8.3.5实验代码
          • 8.3.5.1 目标函数
          • 8.3.5.2 计算梯度
          • 8.3.5.3 Armijo准则更新步长
          • 8.3.5.4最速下降法
          • 8.3.5.5 BFGS法
          • 8.3.5.6 FR共轭梯度法
          • 8.3.5.7 主程序
  • 九、总结

一、预备知识



二、无约束最优化方法的基本结构





三、凸集和凸函数

四、负梯度方法和Newton型方法






五、共轭梯度法





六、约束最优化问题的最优性理论






七、罚函数方法


八、期末复习

8.1 知识点复习




8.2 习题复习









8.3 大实验代码

8.3.1实验内容

利用Matlab编程,实现采用简单Armijo非精确线搜索求步长的三种方法:负梯度法、BFGS法及FR共轭梯度法,并求解如下无约束优化问题:
m i n f ( x ) = 10 ( x 1 3 − x 2 ) 2 + ( x 1 − 1 ) 2 min f(x) =10(x_1^3-x_2)^2+(x_1-1)^2 minf(x)=10(x13​−x2​)2+(x1​−1)2
通过实验过程进一步理解三种方法的原理和步骤,并对实验结果进行分析比较。

8.3.2实验目的

掌握无约束最优化算法的基本架构,并能熟练使用Matlab软件实现一些基本实用的算法并进行数值试验分析。

8.3.3算法描述


8.3.4程序中的参数设置、终止准则、关键技术(语句)等说明


8.3.5实验代码

8.3.5.1 目标函数
%%计算函数值
function f=func(X)
f=10.*(X(1).^3-X(2)).^2+(X(1)-1).^2;
end
8.3.5.2 计算梯度
%计算梯度值
function g=grd(X)
%计算梯度表达式
% syms x1 x2;
% f=10*(x1^3-x2)^2+(x1-1)^2;
% diff(f,x1)
% diff(f,x2)
% ans = 2*x1 - 60*x1^2*(- x1^3 + x2) - 2
% ans = - 20*x1^3 + 20*x2
g=[2*X(1) - 60*X(1).^2*(- X(1).^3 + X(2)) - 2;- 20*X(1).^3 + 20*X(2)];
end
8.3.5.3 Armijo准则更新步长
function x=armijo(func,xk,dk,gk)
m=0;max_m=1000;
rho=0.001;alpha=1;belta=0.618;
gd=gk'*dk;
fk=feval(func,xk);%初始化条件
while m<max_mx=xk+alpha*dk;%试探点f=feval(func,x);%试探点的函数值if f<=fk+alpha*rho*gd%终止条件break;endalpha=alpha*belta;%修改alpha的值m=m+1;
end
8.3.5.4最速下降法
function [x1 fval1 k1]=fd(x0,func,gfunc,eps,kmax)
k1 = 0;
x1 = x0;%设置初始条件
while k1 < kmaxg = feval(gfunc,x1);%计算梯度,x改变时更新梯度if norm(g)<eps%迭代终止条件break;endd=-g;%更新方向x1=armijo(func,x1,d,g);%采用Armijo搜索计算当前点x,最终找到近似最优解k1=k1+1;
end
fval1=feval(func,x1);%计算目标函数值
8.3.5.5 BFGS法
function [x2,fval2,k2]=bfgs(x0,func,grd,H0,eps,kmax)
k2=0;
H=H0;
x2=x0;
g=feval(grd,x2);%设置初始条件
while k2<kmaxif norm(g)<eps%终止条件break;endd=-H*g;%更新方向x_=x2;%原来的xx2=armijo(func,x2,d,g);%更新后的xg_=g;%原来的gg=feval(grd, x2);%更新后的梯度s=x2-x_;y=g-g_;if s'*y>0v=y'*s;H=H+(1+(y'*H*y)/v)*(s*s')/v-(s*y'*H+H*y*s')/v;%采用BFGS方法更新Hendk2=k2+1;
end
fval2=feval(func,x2);%计算目标函数值
8.3.5.6 FR共轭梯度法
function [x3,fval3,k3]=FR(x0,func,gfunc,eps,kmax)
n=9;k3=0;x3=x0;%设置初始条件
while k3<kmaxg=feval(gfunc,x3);%更新gm=g'*g;%更新后的g*gif norm(g)<eps%终止条件break;endif mod(k3,n)==0%n步重新开始策略d=-g;elsebelta=m/q;%belta的计算d=-g+belta*d;%更新d的值if g'*d>=0d=-g;endendx3=armijo(func,x3,d,g);%采用Armijo搜索计算当前点,最终找到近似最优解q=g'*g;%更新前的g*gk3=k3+1;
end
fval3=feval(func,x3);%计算目标函数值
8.3.5.7 主程序
clear;clc
x0=unifrnd(-5,5,2,1);%产生满足[-5, 5]均匀分布的初始点
%x0=[3.4913;-1.0777];%[-5,5]均匀分布产生的初始点
...x0=[0.2753;-0.1224];x0=[0.1232;1.1167];x0=[-1.1955;0.6782];x0=[-3.7301;4.1338];x0=[1.3236;-4.0246];
...x0=[2.9221;4.3399];x0=[4.5949;1.7874];x0=[1.5574;2.5774];x0=[-4.6429;2.4313];x0=[3.4913;-1.0777]
eps=1.e-8;%设置精度1.e-4,1.e-5;1.e-6;1.e-7;1.e-8;
kmax=100000;%设置迭代上限
H0=eye(2);%H初始为一个2×2的单位矩阵
%%采用Armijo搜索的负梯度法程序
tic
[x1,fval1,k1]=fd(x0,'func','grd',eps,kmax);
t1=toc;
%%采用Armijo搜索的BFGS法程序
tic
[x2,fval2,k2]=bfgs(x0,'func','grd',H0,eps,kmax)
t2=toc;
%%采用Armijo搜索的FR共轭梯度法程序
tic
[x3,fval3,k3]=FR(x0,'func','grd',eps,kmax);
t3=toc;SSE1=sqrt(sum((x1-[1;1]).^2,1));%负梯度法下近似解与精确解的2范数下的误差
SSE2=sqrt(sum((x2-[1;1]).^2,1));%BFGS法下近似解与精确解的2范数下的误差
SSE3=sqrt(sum((x3-[1;1]).^2,1));%FR共轭梯度法下近似解与精确解的2范数下的误差
A=[SSE1 fval1 k1 t1;SSE2 fval2 k2 t2;SSE3 fval3 k3 t3]'%分别记录【误差,函数值,迭代次数,运行时间】

九、总结

本篇文章详细的讲解最优化理论的一些常见方法,有了这些基础的最优化知识,方便我们以后深入学习最优化理论以及人工智能方面的知识。

最优化理论笔记及期末复习(《数值最优化》——高立)相关推荐

  1. 抽样调查理论与方法期末复习笔记

    第3章 简单随机抽样 均方误差=方差+偏倚的平方 ​ 3.5某林场共有1000公顷林地,随机布设了50块面积为0.06公顷的方形样地,测得这50块样本地的平均木材蓄积量为9m3,标准差为1.63m3. ...

  2. (最优化理论与方法)第一章最优化简介-第三节:最优化基本概念

    文章目录 一:最优化研究基本过程 二:全局最优解和局部最优解 三:优化算法 (1)迭代算法 (2)收敛问题 (3)算法的渐进收敛速度 (4)算法复杂度 一:最优化研究基本过程 最优化研究基本过程:一般 ...

  3. R语言期末复习资料----助力高绩点

    多元统计分析及R语言建模(第四版) R语言期末复习资料 第一章 多元统计分析概述 1.列出常用的统计软件,说明其使用范围和各自的优缺点 解: (1)SAS:组合软件系统,入门比较困难 (2)SPSS: ...

  4. 最优化课堂笔记01: 第一章 最优化的基本概念

    第一章  最优化的基本概念 1.最优化求解的数学模型建立 2.例题(考试第一大题:数学模型建立) 解析:优化变量.目标函数(一般取最小化).约束条件 注意: 1)约束条件一般形式为:左边为含决策变量的 ...

  5. (最优化理论与方法)第一章最优化简介-第一节:最优化问题概括

    文章目录 一:最优化问题的一般形式 二:一个简单例子 三:最优化问题分类 (1)有约束和无约束 (2)连续优化和离散优化 (3)随机性优化和确定性优化 (4)线性规划和非线性规划 (5)凸优化和非凸优 ...

  6. 数据结构笔记(期末复习,持续更新)

    目录 一.绪论 1.数据结构基本概念 2.算法定义与特征 二.线性表 1.线性表的定义 2.顺序表的存储结构 3.链式存储结构 三.栈和队列 1.栈的基本概念 2.队列的基本概念 3.循环队列 四.字 ...

  7. 软件工程笔记之期末复习(简答)

    软件工程笔记 一.问题定义 1. 软件的定义(产品): 2. 软件的分类: 3. 软件工程方法学: 4. 软件危机: 5. 产生软件危机的原因: 6. 消除软件危机的途径: 7. 软件工程的定义: 8 ...

  8. (最优化理论与方法)第二章最优化所需基础知识-第七节:保凸的运算和共轭函数

    文章目录 一:保凸的运算 (1)非负加权和 (2)与仿射函数的复合 (3)逐点取最大值 (4)逐点取上界 (5)与标量函数复合 (6)与向量函数复合 (7)取下确界 (6)透视函数 二:共轭函数 (1 ...

  9. 最优化理论c语言代码,《统计学习导论基于R应用》PDF代码导图+《最优化理论与算法第2版》PDF习题指导...

    要想深入理解机器学习,或者对人工智能的某个领域有所研究,都必须掌握统计学.最优化.矩阵及其应用等知识. 推荐<统计学习导论:基于R应用>,适合运用统计学习前沿技术分析数据的人士.读起来不费 ...

最新文章

  1. Swift 面向对象
  2. html5--5-15 绘制阴影
  3. NeurIPS 2021 | 通过动态图评分匹配预测分子构象
  4. PHP基础知识(三)
  5. asp.net 导入excel显示进度
  6. java tar 安装程序_linux下jdk的安装(tar包)
  7. asp.net core 系列 20 EF基于数据模型创建数据库
  8. django模板的使用方法
  9. php如何判断是否为json数据(格式)
  10. 软件工程专业学python_笨办法学Python(0)
  11. 计算机应用基础五笔试题,2016全新计算机应用基础试题及答案
  12. python编程实践-Python编程实践(1)
  13. oracle rac 数据同步原理,从HDS VSP G1000的ORACLE RAC双活测试报告了解其实现原理
  14. html5 bdi 不起作用,html bdi标签的使用详解
  15. day03链表基础_移除链表元素_设计链表_反转链表
  16. C/C++ 自制一个基于zlib的文件的(解)压缩系统
  17. NC/ncat的使用
  18. 网盘直链下载插件纯净版
  19. 谷粒商城P44的Vue模板
  20. 人脸识别技术在COVID-19抗疫中的应用:发热病人的筛查及密切接触者追踪

热门文章

  1. MySQL数据库报错汇总(持续更新中)
  2. 360浏览器兼容模式下站点显示不正常,极速模式正常
  3. 获取微信公众号图文封面图的方法
  4. 腾讯焦虑了,一向温文尔雅的马化腾也发脾气了
  5. 【Flume】Flume入门
  6. 如何简单快速的获取到页面上的svg图标?
  7. 夏侯王朝 - (王室族谱)
  8. 香港理工大学智能计算实验室招收PhD/博士后/研究助理
  9. 23、动画及视野拓展
  10. ubuntu 18.04 使用intel核显画面撕裂解决办法