Advertisement
Guest User

fibonaccibusca

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