📄 fabo_it.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 + -