最优化方法
当我们准备好了一个函数表达式之后,如何求解该函数的最优值就会成为一个巨大的挑战。今天杰哥给大家总结一下常用的四种优化方法。

无约束优化问题
所谓无约束优化问题,就是指对一个函数求最优值,最优值可以出现在函数上任意一点,而我们不去限定查找最优值的范围。

有约束优化问题
有约束优化问题就是指给自变量的取值范围做限制,缩小优化范围,经典的约束优化算法有:

  • 内点法(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个系列)会员专享爆品课程及资源,同时获得分佣资格,可赚回自己的学费!

四种最优化方法复盘总结相关推荐

  1. DL之DNN优化技术:DNN优化器的参数优化—更新参数的四种最优化方法(SGD/Momentum/AdaGrad/Adam)的案例理解、图表可视化比较

    DL之DNN优化技术:DNN优化器的参数优化-更新参数的四种最优化方法(SGD/Momentum/AdaGrad/Adam)的案例理解.图表可视化比较 目录 四种最优化方法简介 优化器案例理解 输出结 ...

  2. 主引导区,分区表,硬盘逻辑锁,坏道四种故障修复

    下面根据主引导区修复,分区表损坏修复,硬盘逻辑锁修复,产生坏道的修复四种故障类型给大家列出解决的方法和对策: 1)主引导区修复 修复此故障最简单的方法就是使用高版本DOS的Fdisk带参数/mbr运行 ...

  3. 滴滴在测试环境探索与实践中的四种模式

    持续稳定并体验良好的测试环境,一直是影响产品迭代效率和稳定性的关键环节,也是DevOps自动化测试环节中最具挑战的一环,滴滴在测试环境上的探索从公司成立之初就从未停止,在这过程中沉淀了很多宝贵的经验和 ...

  4. 张一鸣和黄峥,为什么厉害?顶级高手都具备的四种思维模型

    点击"技术领导力"关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 01 思维模型,决定了你的人生状 ...

  5. 四种Java线程池用法解析

    四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...

  6. 字符串反转python_python字符串反转的四种方法详解

    这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用reduce函数方法 book = 'Pyt ...

  7. 地铁闸门会夹伤人吗_西安地铁率先推出分类垃圾箱 四种类型你会放吗?

    垃圾分类就是新时尚[西安地铁率先推出分类垃圾箱 四种类型你会放吗?]近日,不少上海人已被垃圾分类"逼疯",各类段子刷爆网络."你是什么垃圾?"直击灵魂深处的拷问 ...

  8. 最新开源LiDAR数据集LSOOD:四种常见的室外物体分类

    点云PCL免费知识星球,点云论文速读. 标题:最新开源LiDAR数据集LSOOD:四种常见的室外物体分类 作者:Y Tian 来源:https://github.com/Tian-Yifei/LSOO ...

  9. 函数的四种调用模式.上下文调用.call.apply

    闭包:函数就是一个闭包,一个封闭的作用域; 返回函数,要返回多个函数就用一个对象封装一下, 立即执行函数+return 回调函数 JS动态创建的DOM,不会被搜索引擎抓取,对SEO不友好. /*win ...

最新文章

  1. Http和Socket连接区别(ZT)
  2. 这位图灵奖得主大佬,你可知道?
  3. 公共基础选择题—关系代数和范式
  4. 【POJ】【2975】Nim
  5. 万亿市场下,电商代运营还需另求“第二曲线”
  6. 对抗训练浅谈:意义、方法和思考(附Keras实现)
  7. 小程序 input 换行_小程序 input双向数据绑定
  8. 前端学习(565):margin重叠意义
  9. freemaker .flt文件自动换行的问题,map循环获取key和value
  10. JWT的API鉴权,基于拦截器的token与鉴权
  11. P1364 医院设置 洛谷
  12. spss因子分析结果解读_SPSS进行问卷量表信度检验(详细操作过程及结果分析)——【杏花开生物医药统计】...
  13. Pandownload 下线了,我花了 30 分钟自己搭建了一个网盘...
  14. MATLAB如何读取文件某一行的内容,如何读取文件的某一行
  15. Python文件读取关闭和写入
  16. 核心技术及创新点怎么写
  17. c语言中char类型转int类型
  18. 【python】使用pandas快速提取腾讯问卷信息,比对未填写的人员的名单
  19. R语言统计入门第四章描述性统计和图形——4.6表格的图形显示
  20. 收藏 | 83篇文献,万字总结强化学习之路

热门文章

  1. SAA 心理素质差差的
  2. 面试被问到【期望薪资】,怎样回答最合适?
  3. UG NX 12 基准平面
  4. 2.9寸墨水屏制作互联网时钟填坑手记
  5. 【VS2019 C# Winform如何生成exe安装包】
  6. 20、蓝牙和RFID(介质访问控制子层)
  7. 手机音视频流媒体开发一些有用资料(2010.03.09更新)
  8. 新概念2 课文和单词(1)
  9. zoj 2675 Little Mammoth 圆与四边形的公共面积
  10. 实验四 基于原型的软件需求获取