asearch.m
来自「非常经典的最优化程序」· M 代码 · 共 16 行
M
16 行
%精确一维搜索
function result=Asearch(y,ar,b1)
a=0;b=b1;e=1e-5;a1=a+0.382*(b-a);f1=subs(y,{ar},{a1});a2=a+0.618*(b-a);f2=subs(y,{ar},{a2});M_count=0;S_count=0;
M_count=M_count+30;S_count=S_count+12;
while abs(b-a)>=e
if f1<f2
b=a2;a2=a1;f2=f1;a1=a+0.382*(b-a);f1=subs(y,{ar},{a1});M_count=M_count+15;S_count=S_count+6;
else
a=a1;a1=a2;f1=f2;a2=a+0.618*(b-a);f2=subs(y,{ar},{a2});M_count=M_count+15;S_count=S_count+6;
end
S_count=S_count+1;
end;
answer=0.5*(a+b);
M_count=M_count+1;S_count=S_count+1;
result=[answer,M_count,S_count];
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?