您的位置:首页 > 编程语言 > MATLAB

最优化方法 | 【线搜索:斐波那契法Fibonacci】的Matlab实现

2020-07-25 11:55 411 查看

最优化方法 | 【线搜索:斐波那契法Fibonacci】的Matlab实现

MATLAB代码实现:

function [num,temp,alpha] = method_Fibonacci(a0,b0,L,epsilon)
% epsilon = 1e-9;
ak =a0;
bk =b0;
%%  找到 满足 >= temp的第一个 斐波那契数
temp = (bk-ak)/L;
f = [1 1];
n = 1;
while f(n)< temp
f(n+2)=f(n)+f(n+1);
n = n+1;
end
%%
k = 0;
num=1;
temp(1) = phi(0.5*(ak+bk));
i = 2;
while bk-ak>= L
lamudak = ak +(bk-ak)* (f(n-k-1)/f(n-k+1));
muk     = ak +(bk-ak)* (f(n-k)/f(n-k+1));
if phi(lamudak)<phi(muk)
ak = ak;
bk = muk;
else
ak = lamudak;
bk = bk;
end
k=k+1;
num = num+1;
temp(i) = phi(0.5*(ak+bk));
disp(['这是Fibonacci--->第', num2str(num),'次迭代,当前目标函数最优值为',num2str(temp(i))])
i=i+1;
end
alpha = (ak+bk)/2;
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: