📄 golden.m
字号:
%-------------用黄金分割法求最佳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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -