⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fabo_it.m

📁 用0.618法和Fibonacci法求解函数最小值
💻 M
字号:
function [x_min,f_min,it]=fabo_it(fun,a,b,ep)
format long;
k=1;
n=1;
Fib=zeros(1000,1);
Fib(1,1)=1;
Fib(2,1)=2;
while k<=1000
    k=k+1;
    Fib(k+1,1)=Fib(k,1)+Fib(k-1,1);
    if Fib(k+1)>=1/ep
        n=k+1;
        break;
    end
end
tic
it=k;
l=a+(Fib(n-2,1)/Fib(n,1))*(b-a);
s=a+(Fib(n-1,1)/Fib(n,1))*(b-a);
for k=1:n-1
    if feval(fun,l)>feval(fun,s)
        if k==n-1
            x_min=s;
        else
            a=l;
            l=s;
            s=a+(Fib(n-k-1,1)/Fib(n-k,1))*(b-a);
            k=k+1;
        end
    else
        if k==n-1
            x_min=l;
        else
            b=s;
            s=l;
            l=a+(Fib(n-k-1,1)/Fib(n-k,1))*(a-b);
            k=k+1;
        end
    end
end
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -