优化方法与实践-进退法(matlab实现)

作用:是一种确定单变量函数的的搜索区间的数值方法

算法:

代码:

%Author:风君子
%Date:2022.9.25
%Course:Optimization
%Forward-backward method
function[a,b,c] = Forward_backward(phi,alpha0,h0)
%输出:[a,b]为输出搜索区间;c为中间点
%输入:phi,函数;alpha0,起始点;h0起始位移
alpha = alpha0;
alphak = alpha0;
hk = h0;
alphak1 = alphak + hk;
phik = feval(phi,alphak);
phik1 = feval(phi,alphak1);
k=0;
while((phik1<phik)|(k==0))
    if(phik1<phik)
        hk = 2*hk;
        alpha = alphak;
        alphak = alphak1;
        phik = phik1;
        k = k + 1;
        
        alphak1 = alphak + hk;
        phik1 = feval(phi, alphak1);
    else if(k==0)
            hk = - hk;
            alpha = alphak1;
            alphak = alphak;
            phik = phik;
            k=1;
            
            alphak1 = alphak + hk;
            phik1 = feval(phi, alphak1);
        end
    end
end
    a = min(alpha,alphak1);
    b = max(alpha,alphak1);
    c = alphak;

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值