Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1 function [passo N] = FibonacciBusc(x, f, Direc0, x0)
- 2
- 3
- 4 %para a precisao Delta N<10ˆ(3), ou seja, apos L=N iteracoes
- 5 %Delta L=Delta N=(F (NL+1)/F (N))*Delta 1
- 6 %Como Delta 1=1, pelo enunciado, temse
- 7 %F N=(F 1)/Delta N
- 8 %F N>1000
- 9
- 10 n=[1,1]; %dois primeiros numeros da sequencia de fibonacci
- 11 y=0;
- 12 N=1; %posicao do numero na sequencia de fibonacci
- 13 while y 1000
- 14 n=[n(2) , n(2)+n(1)];
- 15 y=n(2);
- 16 N=N+1; %primeira iteracao, y=2, que e F 2 de fibonacci
- 17 end;
- 18 N=N+1;
- 19 Delta=zeros(N,1);
- 20 %alpha=Zeros(N,1);
- 21 %tamanho inicial do intervalo de incerteza
- 22 alphaBar=1;
- 23 Delta(1,1)=alphaBar;
- 24 L=2;
- 25 F=zeros(N, 1);
- 26 for i=1:+1:N
- 27 F(i, 1)=Fibonacci(i);
- 28 end
- 29
- 30 for L=2:+1:N
- 31 Delta(L,1)=(F(NL+1,1)/F(N,1))*Delta(1,1);
- 32 end
- 33
- 34
- 35 alpha min=1;
- 36 alpha max=2;
- 37
- 38 alpha1=alpha min+Delta(2,1);
- 39 alpha2=alpha maxDelta(2,1);
- 40
- 41 for i=3:N1
- 42 f1=subs(f,x,x0+(alpha1*Direc0).');
- 43 f2=subs(f,x,x0+(alpha2*Direc0).');
- 44
- 45 if f2f1
- 46 alpha max=alpha1;
- 47
- 48 alpha1=alpha2;
- 49 alpha2=alpha maxDelta(i,1);
- 50 else
- 51 alpha min=alpha2;
- 52
- 53 alpha2=alpha1;
- 54 alpha1=alpha min+Delta(i,1);
- 55 end
- 56
- 57 end
- 58
- 59 f1=subs(f,x,x0+(alpha1*Direc0).');
- 60 f2=subs(f,x,x0+(alpha2*Direc0).');
- 61
- 62 if f1f2
- 63 passo=alpha1;
- 64 else
- 65 passo=alpha2;
- 66 end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement