Advertisement
Gladiatorul21

Metoda lui fibonacci

Mar 27th, 2021
1,751
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 0.97 KB | None | 0 0
  1. function fib(n)
  2.     a = b = i = 1
  3.     while (i < n)
  4.         c = a  + b
  5.         a = b
  6.         b = c        
  7.         i = i + 1
  8.     end
  9.     if (i == n)
  10.         return a
  11.     end
  12. end
  13.  
  14. function find_fib(n)
  15.     i = 1
  16.     while (fib(i) < n)
  17.         i = i + 1
  18.     end
  19.     return i
  20. end
  21.  
  22. function fibonacci_method(f, interval, epsilon)
  23.     a = first(interval)
  24.     b = last(interval)
  25.     n = find_fib((abs(b-a))/epsilon)
  26.     lambda = a + (fib(n-2)/fib(n)) * (b-a)
  27.     miu = a + (fib(n-1)/fib(n)) * (b-a)
  28.     while (abs(b-a) > epsilon)
  29.         if (f(lambda) > f(miu))
  30.             a = lambda
  31.             lambda = miu
  32.             miu = a + (fib(n-1)/fib(n)) * (b-a)
  33.         else
  34.             b = miu
  35.             lambda = a + (fib(n-2)/fib(n)) * (b-a)
  36.             miu = lambda
  37.         end
  38.     end
  39.     x_optim = (a+b)/2
  40.     return x_min
  41. end
  42.  
  43. f(x) = x^4 - 14*x^3 + 60*x^2 - 70*x
  44. interval = range(0, stop=2)
  45. epsilon = 0.3
  46. x_optim = fibonacci_method(f, interval, epsilon)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement