gol_it.m

来自「用0.618法和Fibonacci法求解函数最小值」· M 代码 · 共 38 行

M
38
字号
function [x_min,f_min,it]=gol_it(fun,a,b,ep);
format long;
tic
l=a+0.382*(b-a);
s=a+0.618*(b-a);
k=1;
while k<=1000000
    if feval(fun,l)>feval(fun,s)
        if b-l<=ep
            x_min=s;
            break;
        else
            a=l;
            l=s;
            s=a+0.618*(b-a);
            k=k+1;
        end
    else
        if s-a<=ep
            x_min=l;
            break;
        else
            b=s;
            s=l;
            l=a+0.382*(b-a);
            k=k+1;
        end
    end
end
it=k;
f_min=feval(fun,x_min);
toc
disp('The minmum point is:')
disp(x_min)
disp('The minmum value is:')
disp(f_min)
disp('Times of itration is:')
disp(it)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?