最优化理论笔记及期末复习(《数值最优化》——高立)
创始人
2024-05-26 15:50:11
0

目录

  • 一、预备知识
  • 二、无约束最优化方法的基本结构
  • 三、凸集和凸函数
  • 四、负梯度方法和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共轭梯度法,并求解如下无约束优化问题:
minf(x)=10(x13−x2)2+(x1−1)2min f(x) =10(x_1^3-x_2)^2+(x_1-1)^2minf(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
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)
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 k20v=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=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]'%分别记录【误差,函数值,迭代次数,运行时间】

请添加图片描述

九、总结

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

相关内容

热门资讯

emui 安卓系统对应关系,E... 你有没有发现,每次打开你的华为手机,那个界面看起来是不是特别顺眼?那是因为华为的EMUI系统,它就像...
永诺安卓系统相机,功能解析与使... 你有没有发现,手机拍照已经成为我们生活中不可或缺的一部分?而在这其中,永诺安卓系统的相机功能可是相当...
tinder安卓版系统错误,揭... 最近在使用Tinder安卓版的时候,你是不是也遇到了一些让人头疼的系统错误呢?别急,今天就来和你聊聊...
htc安卓系统怎么更新系统,轻... 亲爱的HTC安卓用户们,你是不是也和我一样,时不时地想给手机来个“大变身”,让它焕然一新呢?没错,今...
安卓最新发布系统,颠覆性更新与... 你知道吗?最近安卓系统又来了一次大变身,这可是科技圈里的大事哦!安卓最新发布的系统,简直就像是一个全...
华为不升级安卓系统,开启自主操... 你知道吗?最近有个大新闻在科技圈里炸开了锅,那就是华为决定不再升级安卓系统!这可不是一个小决定,它背...
安卓保护系统停止运行,紧急排查... 亲爱的手机用户们,你们有没有遇到过这样的情况:手机突然间变得不正常了,安卓保护系统竟然停止运行了?这...
安卓系统记录仪,智能行车安全守... 你有没有想过,开车的时候,那些瞬间发生的事情,就像电影里的精彩片段,一闪而过,却让人回味无穷?别急,...
安卓13系统怎样升级,全面解析... 你有没有发现,你的安卓手机最近是不是有点儿“蔫儿”了?别急,别急,我来告诉你怎么给它来个“大变身”—...
安卓手机进去系统花屏,安卓手机... 手机屏幕突然花屏了,是不是瞬间感觉整个世界都变得不美好了呢?别急,今天就来和你聊聊安卓手机进入系统时...
安卓手机 系统怎么更新,体验最... 亲爱的手机控们,你是不是也和我一样,时不时地想给安卓手机来个“美容”大变身呢?没错,说的就是系统更新...
妈妈手机推荐安卓系统,安卓系统... 亲爱的妈妈们,是不是在为给家里的宝贝挑选一款合适的手机而烦恼呢?别急,今天我就来给你详细介绍一下几款...
oppo安卓版系统设置,全面解... 亲爱的手机控们,你是不是也和我一样,对OPPO安卓版系统的设置充满了好奇?想要让你的OPPO手机更加...
安卓系统是什么cp,CP架构下... 你有没有想过,你的手机里那个默默无闻的安卓系统,其实就像是一个超级贴心的CP(情侣搭档)呢?没错,就...
系统垃圾清理大师 安卓,安卓手... 手机里的垃圾文件是不是让你头疼不已?别急,今天我要给你介绍一位安卓系统里的“清洁小能手”——系统垃圾...
安卓系统分为几层,安卓系统分层... 你知道吗?安卓系统,这个陪伴我们手机生活的“小助手”,其实它内部结构可是相当复杂的呢!今天,就让我带...
系统最像苹果的安卓,揭秘最像苹... 你有没有发现,现在的安卓手机越来越像苹果了?没错,就是那个以简洁设计和流畅体验著称的苹果。今天,就让...
安卓更新13系统游戏,性能升级... 你知道吗?最近安卓系统又来了一次大变身,那就是安卓13系统!这次更新可是带来了不少惊喜,尤其是对那些...
安卓系统开机出错了,安卓系统开... 手机突然开不了机了,这可怎么办?别急,让我来帮你分析一下安卓系统开机出错的那些事儿。一、安卓系统开机...
vovg是安卓系统吗,安卓系统... 你有没有听说过Vovg这个操作系统?最近,这个名词在数码圈里可是引起了不小的热议呢!很多人都在问,V...