📄 gold.m
字号:
%gold.m0.618法的通用子程序,输入的参数为搜索区间的上下界[a,b]
function a1=gold(a,b)
%黄金分割点的值
t=0.618;
v=a+(1-t)*(b-a);
w=a+t*(b-a);
%两个试探点的值
m=f(v);
n=f(w);
%循环进行的标志变量
flag=0;
%循环求解最佳的步长
while flag==0
%极小点在分割的右半部分
if m>n
%满足输出条件,输出步长值
if abs(b-v)<1e-4
a1=w;
flag=1;
%不满足输出条件,继续迭代
else
a=v;
v=w;
m=n;
w=a+t*(b-a);
n=f(w);
end
%极小点在分割的左半部分
else
%满足输出条件,输出步长值
if abs(w-a)<1e-4
a1=v;
flag=1;
%不满足输出条件,继续迭代
else
b=w;
w=v;
n=m;
w=a+(1-t)*(b-a);
m=f(v);
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -