• 【MATLAB与机械设计】一维优化黄金分割算法


    黄金分割算法是一种特殊的序列消去算法,黄金分割法的基本思想是:计算并比较插入的值的函数值,并且不断舍弃函数峰值旁边的一部分,进行对原有区间的消去,使其区间按等比例(0.618)等速缩短 ,(感觉是不是可以按更高的比例进行缩短,这样是不是更快)

    1,黄金分割法迭代过程
    在这里插入图片描述
    2,黄金分割法的程序框图
    在这里插入图片描述
    3,MATLAB可运行程序

    function [x,fx] = Golden_Section(f,a,b,exp)
    %% 说明
    %{
    本函数用于黄金分割法精确函数极值的区间
    其中f为输入的目标函数
    a,b分别为初始区间的左右端点
    exp为精度
    
    调用方法:
    clear; clc;
    fun = @(x) ((1/4)*x^4-(2/3)*x^3-2*x^2-7*x+8);
    [x,fx]=HJ(fun,3,4,0.05);
    disp('函数的极小值点为:');
    x
    disp('函数的极小值为:');
    fx
    
    %}
    %% 函数主体
    rbd=0.618;
    d=a+rbd*(b-a);
    c=a+(1-rbd)*(b-a);
    fc=f(c);
    fd=f(d);
    while abs(b-a)>=exp 
        if fc<fd
            b=d;
            d=c;
            fd=fc;
            c=a+(1-rbd)*(b-a);
            fc=f(c);
        end
        if fc>fd
            a=c;
            c=d;
            fc=fd;
            d=a+rbd*(b-a);
            fd=f(d);
        end
    end
    x=(a+b)/2;
    fx=f(x);
    end
    
  • 相关阅读:
    redis+Keepalived实现Redis主从复制
    Python基础之【第一篇】
    Django之常用命令以及问题汇总
    Django之ORM数据库
    牛掰的python与unix
    Django配置Bootstrap, js
    Django基础教程
    Django安装
    前端学习之jQuery
    centos7安装python3 以及tab补全功能
  • 原文地址:https://www.cnblogs.com/mach-pupil/p/12535332.html
Copyright © 2020-2023  润新知