问题如下:

首先定义目标函数:

function y = objfun(x)
% 目标函数
y = 3*x(1)^3 - 8*x(1) + 9;
end

接着定义一个试探函数:

此处有一个搜索方向,如果是一维函数,定义为1即可,如果是多为函数,则可以在不同方向上进行搜索。

function f = TryObjfun(a,StartOpint,SearchDirection)
% 目标函数在初始点+方向*步长处的函数值
f = objfun(StartOpint +a.*SearchDirection);
end

进退法函数:

function [LowBound,UpBound] = TryBound(x0,step0,StartOpint,SearchDirection)
%step0为步长
%StartOpint为起始点
%SearchDirection为搜索方向
step = step0;
f0 = TryObjfun(x0,StartOpint,SearchDirection);
x1 = x0 + step;
f1 = TryObjfun(x1,StartOpint,SearchDirection);
if f1 <= f0while truestep = step*2;x2 = x1 + step;f2 = TryObjfun(x2,StartOpint,SearchDirection);if f1 <= f2LowBound = x0;UpBound = x2;break;elsex0 = x1;f0 = f1;x1 = x2;f1 = f2;endend
elsewhile truestep = step*2;x2 = x0 - step;f2 = TryObjfun(x2,StartOpint,SearchDirection);if f0 <= f2LowBound = x2;UpBound = x1;break;elsex1 = x0;f1 = f0;x0 = x2;f0 = f2;endend
end

LowBound,UpBound是在此方向上距离起始点的距离的上下界,在黄金分割法中a,b为真正的单峰区间,本题从0出发,恰好相同。

黄金分割法main_program:

clc;clear;
x0 = 0;
step0 = 0.1;
StartOpint = 0;
SearchDirection = 1;%一维函数,故取1
[LowBound,UpBound] = TryBound(x0,step0,StartOpint,SearchDirection);
a = LowBound.*SearchDirection + StartOpint
b = UpBound.*SearchDirection + StartOpint
lim = 1e-4;
lamda = 0.618;
x1 = b - lamda*(b - a);
f1 = objfun(x1);
x2 = a + lamda*(b - a);
f2 = objfun(x2);
iter = 0;
while (b - a) > limif f1 > f2a = x1;x1 = x2;f1 = f2;x2 = a + lamda*(b - a);f2 = objfun(x2);elseb = x2;x2 = x1;f2 = f1;x1 = b - lamda*(b - a);f1 = objfun(x1);enditer = iter +1;
end
format long
Golden_BestPoint = 0.5*(b + a)

输出极值点,iter为迭代次数。

最优化理论与方法学习笔记01——黄金分割法与进退法求单峰区间Matlab编程实现相关推荐

  1. 最优化理论与方法学习笔记

    最优化理论与方法 参考学习资源:上海财经大学崔老师B站讲解视频 以下是个人学习笔记,并不具有很强的参考性,具体学习书籍可参考<最优化理论与方法-袁亚湘> 大致分类: 1.无约束优化/约束优 ...

  2. TRIZ创新方法#学习笔记01# | 创新与TRIZ启蒙 、技术系统进化理论

    #创新与TRIZ启蒙#(北京工业大学 高国华 副教授) 记住这句话:"乔布斯:"活着就是为了改变!" 一.创新与TRIZ启蒙 1.1 创新的概念与重要性 什么是创新(动作 ...

  3. 最优化理论基础与方法学习笔记——凸集与凸函数以及手写定理证明

    文章目录 凸集的定义 凸集的几何意义 有关凸集的定理 定理1.4.2 内点.边界点和闭包的定义 定义1.4.3 超平面的定义 定理1.4.3 投影定理 定理1.4.4 点与凸集的分离定理 定理1.4. ...

  4. 最优化基础理论与方法学习笔记——欧氏空间的定义

    要知道什么是欧氏空间,首先得理解什么是线性空间. 线性空间:其实线性空间我们先不管他的定义(其实我也不知道具体定义,可以百度),可以直接理解为一个三维空间,不用管坐标轴,唯一需要知道的是这个空间里面的 ...

  5. Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  6. 最优化理论与方法(part11)--约束优化问题

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 约束优化问题 定义 8.1.1(可行点与可行域) 全局和局部极小值点 积极与非积极 最优化理论与方法 约束优化问题 定义 8.1.1(可行点与 ...

  7. 最优化理论与方法(part8)--凸集的分离和支撑

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 凸集的分离和支撑 定理 1.3.17(凸集外一点与闭凸集的极小距离) 定理 1.3.18 定理 1.3.19 定义 1.3.20(支撑超平面) ...

  8. 最优化理论与方法(part5)--函数和微分

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 函数和微分 连续可微和Hesse矩阵 d d d的方向导数 d d

  9. 最优化理论与方法(part4)--秩一校正

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 秩一校正 定理 1.2.6(Sherman-Morrison 定理) 定理 1.2.7(Sherman-Morrison-Woodburg 定 ...

  10. 最优化理论与方法(part3)--矩阵的Rayleigh商

    学习笔记,仅供参考,有错必纠 文章目录 最优化理论与方法 矩阵的Rayleigh商 定义 1.2.4 定理 1.2.5 最优化理论与方法 矩阵的Rayleigh商 定义 1.2.4 备注: C C C ...

最新文章

  1. java加减乘除运算代码_从“位运算”炫技到“操作符”,再到逐步理解“群论”...
  2. IDEA 不能显示项目里的文件结构
  3. 【杂谈】从CV小白到人脸表情识别专栏作者,我与有三AI的故事
  4. ABAP 锁对象与加锁机制
  5. Docker 17.12.0 发布
  6. Qt for Android解决启动时黑屏(或白屏)的问题
  7. xp2003服务器怎么安装系统,UEFI里启动Windows XP/Server 2003 x86教程
  8. Zookeeper的典型应用场景(2)
  9. ???--???二进制变换
  10. x86汇编语言——基本概念
  11. 今天的你将感谢_您今天感谢系统管理员了吗?
  12. 文档流、脱离文档流分析
  13. ASP.NET Core json返回忽略某些字段,实体不与数据库映射字段
  14. 程序设计c语言作业章春芳,C语言说课PPT
  15. 怎么把word文档免费转换成pdf文件
  16. 你真的了解width这个属性吗
  17. json文件是什么?
  18. html隐藏汉堡按钮,12种汉堡包图标按钮变形动画特效
  19. 普罗旺斯的花海。薰衣草的花语,是等待爱情
  20. 停车场管理系统(C++)

热门文章

  1. 阿里巴巴Java开发规约插件全球首发
  2. 抖音上热门的六大规律
  3. 【工控老马】欧姆龙PLC FINS指令模板整理
  4. CSS雪碧图Sprite
  5. Android虚拟机使用摄像头(命令行)
  6. 电脑浏览器下载速度很慢怎么办
  7. “汇新杯”科技+文化艺术专项赛介绍
  8. nmos导通流向_技术参数详解,MOS管知识全录!
  9. JDBC-Web抽取公共的增删改方法
  10. 北京周末游周边 —— 延庆世园会