golden.m

来自「matlab 牛顿 单纯形法 最优化理论 matlab 牛顿 单纯形法 最优化」· M 代码 · 共 28 行

M
28
字号
%--------------用黄金分割法求最佳lamuda---------------%
function [f_min,xinla] = Golden(region,x,s) %region 为搜索区域
    sigma = 1/10^8;
    GoldRate = (sqrt(5)-1)/2;
    rate = GoldRate*( region(2)-region(1));
    d1 = region(2)-rate;
    f1 = funla(d1,x,s);
    d2 = region(1)+rate;
    f2 = funla(d2,x,s);
    
    while((region(2)-region(1))> sigma )
    if (f1 <= f2)
        region(2) = d2;
        d2 = d1;
        f2 = f1;
        d1 = region(1)+region(2)-d2;
        f1 = funla(d1,x,s);
    else
        region(1) = d1;
        d1 = d2;
        f1 = f2;
        d2 = region(1)+region(2)-d1;
        f2 = funla(d2,x,s);
    end
    end
    xinla = (region(1)+region(2))/2;
    f_min = funla(xinla,x,s);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?