25、matlab里面的10中优化方法介绍——Opt_Golden法(matlab程序)

这篇具有很好参考价值的文章主要介绍了25、matlab里面的10中优化方法介绍——Opt_Golden法(matlab程序)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.简述

      

基本思想
黄金分割法也称为 0.618 法,其基本思想是通过取试探点和进行函数值比较,使包含极小点的搜索区间不断缩短以逼近极小值点。适用于确定区间上的任何单谷函数求极小值的问题。

公式推导
设有定义在[ a , b ] [a,b][a,b]上的单谷函数
φ ( α ) = f ( x k + α d k ) \varphi \left( \alpha \right) =f\left( x_k+\alpha d_k \right)

在[ a , b ] [a,b][a,b]上取两个试探点。计算φ ( x 1 ) 
可能会出现以下两种情形:


我们要求试探点满足下列两个原则:

对称原则
λ = 新 区 间 长 度 原 区 间 长 度 = \lambda =\frac{新区间长度}{原区间长度}=λ= 
原区间长度
新区间长度

 =定值(保持缩减比)
从而可得
{ x 1 = a + ( 1 − λ ) ( b − a ) x 2 = a + λ ( b − a )

 

考虑情形1,此时新的搜索区间为[ a 1 , b 1 ] [a_1,b_1][a 
选取新的试探点x 
 

若令λ 2 = 1 − λ ( λ > 0 ) \lambda ^2=1-\lambda\left( \lambda>0 \right)λ 

则有
新的试探点x 4 x_4x 
1−λ得λ ≈ 0.618 \lambda \approx0.618λ≈0.618。

具体练习及Matlab实现
 

2.代码

主程序:

%%   用Opt_Golden()求解最优化
f1201 = inline('x-(x.*x-2).^3/2','x');
a = 0;
b = 4; 
TolX = 1e-4;%判断循环是否停止的x阈值
TolFun = 1e-4; %函数阈值
MaxIter = 100; %设定迭代次数
[xo,fo] = Opt_Golden(f1201,a,b,TolX,TolFun,MaxIter)

子程序:

function [xo,fo]=Opt_Golden(f,a,b,TolX,TolFun,k)
%%%%黄金搜索算法求在区间[a,b]上的最优化解
%f为目标函数,TolX为x阈值,TolFun为函数阈值,k为迭代次数
r =(sqrt(5)-1)/2; %r为黄金分割点值,
h = b-a;  %区间宽度
rh = r*h; 
%%%取两点c、d,并计算相应的函数值fc和fd
c = b-rh; 
d = a+rh;
fc = feval(f,c);
fd = feval(f,d);
%%%算法第二步判断是否停止迭代
if k <= 0 | (abs(h) < TolX & abs(fc - fd) < TolFun)
    if fc <= fd
        xo = c;
        fo = fc;
    else
        xo = d;
        fo = fd;
    end
    if k == 0
        fprintf('最好设定迭代次数大于0');
    end
%%%%算法第三步,进行新一轮迭代    
else
    if fc < fd
        [xo,fo] = Opt_Golden(f,a,d,TolX,TolFun,k-1);
    else
        [xo,fo] = Opt_Golden(f,c,b,TolX,TolFun,k-1);
    end
end

3.运行结果

25、matlab里面的10中优化方法介绍——Opt_Golden法(matlab程序),matlab,开发语言,数据分析,数据挖掘,机器学习,学习,算法

 25、matlab里面的10中优化方法介绍——Opt_Golden法(matlab程序),matlab,开发语言,数据分析,数据挖掘,机器学习,学习,算法

 文章来源地址https://www.toymoban.com/news/detail-605174.html

到了这里,关于25、matlab里面的10中优化方法介绍——Opt_Golden法(matlab程序)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 25.9 matlab里面的10中优化方法介绍—— 惩罚函数法求约束最优化问题(matlab程序)

    1. 简述          一、算法原理 1、问题引入 之前我们了解过的算法大部分都是无约束优化问题,其算法有:黄金分割法,牛顿法,拟牛顿法,共轭梯度法,单纯性法等。但在实际工程问题中,大多数优化问题都属于有约束优化问题。惩罚函数法就可以将约束优化问题转化为

    2024年02月15日
    浏览(37)
  • 25.8 matlab里面的10中优化方法介绍—— 拉各朗日乘子法求最优化解(matlab程序)

    1. 简述        拉格朗日乘子法(Lagrange multipliers)是一种寻找多元函数 在一组约束下 的 极值 的方法。 通过引入拉格朗日乘子,可将有 变量与 约束条件的最优化问题转化为具有变量的无约束优化问题求解 举个例子: 求 最小值,约束条件,可以用下图表示。 这是一个等

    2024年02月14日
    浏览(45)
  • 使用MATLAB将Excel里面的数据导入,并且将MATLAB数据导入到Excel里面的命令介绍

    Matlab中求解线性方程组——高斯消元法、LU分解法、QR分解法、SVD分解法、迭代法等 MATLAB迭代的三种方式以及相关案例举例 MATLAB矩阵的分解函数与案例举例 MATLAB当中线性方程组、不定方程组、奇异方程组、超定方程组的介绍 MATLAB语句实现方阵性质的验证 MATLAB绘图函数的相关

    2024年02月13日
    浏览(50)
  • 【WSN覆盖】基于麻雀搜索算法的三维混合无线传感器网络覆盖优化 三维WSN覆盖空洞修复【Matlab代码#25】

    由于节点随机抛洒,而传感器节点的分布情况会影响网络覆盖率。在三维覆盖区域中,传感器节点的覆盖区域是某一半径确定的球。在三维监测区域中随机抛洒 N N N 个传感器节点,形成节点集合 ( s 1 , s 2 , s 3 , . . . , s N ) (s_{1},s_{2},s_{3},...,s_{N}) ( s 1 ​ , s 2 ​ , s 3 ​ , ... , s

    2024年02月06日
    浏览(52)
  • 优化 Stable Diffusion --opt-sdp-attention

    CUDA 12.1 + cuDNN 8.8 以上内容引用:优化 Stable Diffusion,提高出图速度 - 鱼头的文章 - 知乎 https://zhuanlan.zhihu.com/p/621457549 以下自己的: 4090显卡可以使用这个: set PYTHON=%CD%pypython.exe set GIT=%CD%gitbingit.exe set GIT_PYTHON_GIT_EXECUTABLE=%CD%gitbingit.exe set GIT_PYTHON_REFRESH=quiet set TRANSFORMERS

    2024年02月09日
    浏览(30)
  • Python实现贝叶斯优化器(Bayes_opt)优化随机森林分类模型(RandomForestClassifier算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 贝叶斯优化器(BayesianOptimization) 是一种黑盒子优化器,用来寻找最优参数。 贝叶斯优化器是基于高斯过程的贝叶斯优化,算法的参数空间中有大

    2024年02月11日
    浏览(47)
  • Python实现贝叶斯优化器(Bayes_opt)优化极限学习机分类模型(ELMClassifier算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 贝叶斯优化(Bayesian Optimization)是一种全局优化方法,特别适用于那些目标函数昂贵、噪声大或者无法导数的黑盒优化场景。在机器学习模型参

    2024年03月19日
    浏览(61)
  • 【Matlab】在Matlab中安装优化工具yalmip的方法

    最近博主想做一些关于多目标优化的问题,因为之前对Matlab有一定经验,所以直接在网上查找了如何在Matlab上实现多目标优化的文献,看到有人提到了yamip,于是博主就试着在Matlab中安装yamip,将其中遇到的问题和一些经验和大家分享一下。 1、下载yamip 网上有朋友提到从yal

    2024年01月17日
    浏览(41)
  • 【状态估计】基于随机方法优化PMU优化配置(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 文献来源 🌈4 Matlab代码、数据、文章

    2024年02月06日
    浏览(46)
  • 10种基于MATLAB的方程组求解方法

              线性方程组的求解包括直接法和迭代法,其中迭代法包括传统的高斯消元法,最速下降法,牛顿法,雅克比迭代法,共轭梯度法,以及智能启发式算法求解法和神经网络学习算法,传统算法可以相互组合改进,智能仿生启发式算法包括粒子群算法,遗传算法,模拟

    2024年02月02日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包