四种最优化方法复盘总结
最优化方法
当我们准备好了一个函数表达式之后,如何求解该函数的最优值就会成为一个巨大的挑战。今天杰哥给大家总结一下常用的四种优化方法。
无约束优化问题
所谓无约束优化问题,就是指对一个函数求最优值,最优值可以出现在函数上任意一点,而我们不去限定查找最优值的范围。
有约束优化问题
有约束优化问题就是指给自变量的取值范围做限制,缩小优化范围,经典的约束优化算法有:
- 内点法(interior-point)
- 有效集法(active-set)
- SQP算法(sqp)
- 信赖域反射法(trust-region-reflective)
约束,又分线性约束与非线性约束,所谓线性约束,就是指约束条件中的自变量都是1次幂的,非线性约束即有高次幂的自变量出现。
假设有如下约束优化函数和约束:
我们首先把这个函数的图像在Matlab中给大家画出来:
%目标函数图像绘制
x1=-1:0.05:1;
x2=-1:0.05:1;
[x1,x2]=meshgrid(x1,x2);
y=-x1.*x2;
figure(1)
%使用mesh函数画图
mesh(x1,x2,y);
figure(2)
%使用surfl画图
surfl(x1,x2,y);
figure(3)
%使用surf函数画图
surf(x1,x2,y);
%约束区域部分位置
[x1,x2]=meshgrid(-1:0.05:1);
z=1-x1.^2-x2.^2;
ind=(z>=0);
h=scatter(x1(ind),x2(ind));
如图所示:
使用Matlab实现一下四种优化算法:
function [xsol, fval] = runfmincon
% 初始点
x0 = [-0.1 -0.1];% 四种优化算法,大家选一种用,杰哥这里用的是内点法
% 'active-set', 'interior-point', 'sqp', or 'trust-region-reflective'.
options = optimset('Display', 'iter-detailed', 'Algorithm', 'interior-point', 'MaxIter', 8); % 优化器参数
% fmincon参数解释
% fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options);
% fun:要优化的函数
% x0:自变量的初始值
% A:非等式(<)线性约束的约束矩阵A
% b:非等式(<)线性约束的约束条件矩阵b
% Aeq:等式约束的线性约束的约束矩阵Aeq
% beq:等式线性约束的约束条件矩阵beq
% lb,ub:自变量的下限和上限
% nonlcon:非线性约束
[xsol, fval] = fmincon(@objfun, x0, [], [], [], [], [], [], @confun, options);% 目标函数function f = objfun(x)f = - x(1) * x(2);end% 非线性约束function [c, ceq] = confun(x)% Nonlinear inequality constraintsc = [x(1)^2 + x(2)^2 - 1];% Nonlinear equality constraintsceq = [];end
end
优化结果:
%在Matlab命令行窗口输入
[xsol,fval] = runfmincon;% 迭代优化结果
[x1,x2]=[-0.7071,-0.7071]
f=-0.5
具体函数详见我的博客: 轨迹跟踪求解Fmincon函数(2)_Wechat:Jeossirey-LSJ-CSDN博客
点击下方卡片,加入会员全年无限制学习后台(MPC各矩阵的底层逻辑、MPC纵向控制、模型验证、MPC自适应巡航控制、非线性系统如何线性化及MPC动力学跟踪任何轨迹、约束添加及新求解器的求解、轨迹规划、纵向规划等80个系列)会员专享爆品课程及资源,同时获得分佣资格,可赚回自己的学费!
四种最优化方法复盘总结相关推荐
- DL之DNN优化技术:DNN优化器的参数优化—更新参数的四种最优化方法(SGD/Momentum/AdaGrad/Adam)的案例理解、图表可视化比较
DL之DNN优化技术:DNN优化器的参数优化-更新参数的四种最优化方法(SGD/Momentum/AdaGrad/Adam)的案例理解.图表可视化比较 目录 四种最优化方法简介 优化器案例理解 输出结 ...
- 主引导区,分区表,硬盘逻辑锁,坏道四种故障修复
下面根据主引导区修复,分区表损坏修复,硬盘逻辑锁修复,产生坏道的修复四种故障类型给大家列出解决的方法和对策: 1)主引导区修复 修复此故障最简单的方法就是使用高版本DOS的Fdisk带参数/mbr运行 ...
- 滴滴在测试环境探索与实践中的四种模式
持续稳定并体验良好的测试环境,一直是影响产品迭代效率和稳定性的关键环节,也是DevOps自动化测试环节中最具挑战的一环,滴滴在测试环境上的探索从公司成立之初就从未停止,在这过程中沉淀了很多宝贵的经验和 ...
- 张一鸣和黄峥,为什么厉害?顶级高手都具备的四种思维模型
点击"技术领导力"关注∆ 每天早上8:30推送 作者| Mr.K 编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 01 思维模型,决定了你的人生状 ...
- 四种Java线程池用法解析
四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...
- 字符串反转python_python字符串反转的四种方法详解
这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用reduce函数方法 book = 'Pyt ...
- 地铁闸门会夹伤人吗_西安地铁率先推出分类垃圾箱 四种类型你会放吗?
垃圾分类就是新时尚[西安地铁率先推出分类垃圾箱 四种类型你会放吗?]近日,不少上海人已被垃圾分类"逼疯",各类段子刷爆网络."你是什么垃圾?"直击灵魂深处的拷问 ...
- 最新开源LiDAR数据集LSOOD:四种常见的室外物体分类
点云PCL免费知识星球,点云论文速读. 标题:最新开源LiDAR数据集LSOOD:四种常见的室外物体分类 作者:Y Tian 来源:https://github.com/Tian-Yifei/LSOO ...
- 函数的四种调用模式.上下文调用.call.apply
闭包:函数就是一个闭包,一个封闭的作用域; 返回函数,要返回多个函数就用一个对象封装一下, 立即执行函数+return 回调函数 JS动态创建的DOM,不会被搜索引擎抓取,对SEO不友好. /*win ...
最新文章
- Http和Socket连接区别(ZT)
- 这位图灵奖得主大佬,你可知道?
- 公共基础选择题—关系代数和范式
- 【POJ】【2975】Nim
- 万亿市场下,电商代运营还需另求“第二曲线”
- 对抗训练浅谈:意义、方法和思考(附Keras实现)
- 小程序 input 换行_小程序 input双向数据绑定
- 前端学习(565):margin重叠意义
- freemaker .flt文件自动换行的问题,map循环获取key和value
- JWT的API鉴权,基于拦截器的token与鉴权
- P1364 医院设置 洛谷
- spss因子分析结果解读_SPSS进行问卷量表信度检验(详细操作过程及结果分析)——【杏花开生物医药统计】...
- Pandownload 下线了,我花了 30 分钟自己搭建了一个网盘...
- MATLAB如何读取文件某一行的内容,如何读取文件的某一行
- Python文件读取关闭和写入
- 核心技术及创新点怎么写
- c语言中char类型转int类型
- 【python】使用pandas快速提取腾讯问卷信息,比对未填写的人员的名单
- R语言统计入门第四章描述性统计和图形——4.6表格的图形显示
- 收藏 | 83篇文献,万字总结强化学习之路