📄 goldmethod2.m
字号:
function alpha=goldmethod2(x01,x02,d,h0)
% 输入分割比gama
gama=0.618;
% 确定搜索区间[a,b]
[a,b]=search2(x01,x02,d,h0);
%计算a1,a2和函数值y1,y2, 确定最优步长 alpha
a1=b-gama*(b-a);y1=ff(x01+d(1)*a1,x02+d(2)*a1);
a2=a+gama*(b-a);y2=ff(x01+d(1)*a2,x02+d(2)*a2);
for n=1:100
if y1>=y2
x1(n)=a1;x2(n)=a2;yp1(n)=y1;yp2(n)=y2;
a=a1;a1=a2;y1=y2;
a2=a+gama*(b-a);y2=ff(x01+d(1)*a2,x02+d(2)*a2);
else
x1(n)=a1;x2(n)=a2;yp1(n)=y1;yp2(n)=y2;
b=a2;a2=a1;y2=y1;
a1=b-gama*(b-a);y1=ff(x01+d(1)*a1,x02+d(2)*a1);
end
aa(n)=(a+b)/2; %输出极值点
y(n)=ff(x01+d(1)*aa(n),x02+d(2)*aa(n)); %输出极值点函数值
e(n)=abs(b-a);
alpha=(a+b)/2;
if abs(b-a)<1e-5
break;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -