Advertisement
DMG

Fibonacci method optimization

DMG
Nov 29th, 2014
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.92 KB | None | 0 0
  1. function x = fibonacci_method_optimization(a, b, max_error, my_function)
  2.  
  3.     max_iter = -2;
  4.     fibonacci_a = 1;
  5.     fibonacci_b = 1;
  6.     condition = (b - a)/max_error;
  7.    
  8.     while fibonacci_b < condition
  9.         t = fibonacci_b;
  10.         fibonacci_b = fibonacci_b + fibonacci_a;
  11.         fibonacci_a = t;
  12.         max_iter = max_iter + 1;
  13.     end
  14.    
  15.     if fibonacci_a > condition || fibonacci_b < condition
  16.         x = NaN;
  17.         return;
  18.     end
  19.    
  20.     for i = 1:max_iter
  21.        
  22.         x_1 = a + ((fibonacci_b - fibonacci_a)/fibonacci_b)*(b - a);
  23.         x_2 = a + b - x_1;
  24.        
  25.         if feval(my_function, x_1) > feval(my_function, x_2)
  26.             a = x_1;
  27.         elseif feval(my_function, x_2) > feval(my_function, x_1)
  28.             b = x_2;
  29.         else
  30.             % Novi par tacaka ?
  31.             a = x_1;
  32.             b = x_2;
  33.         end
  34.  
  35.     end
  36.    
  37.     x = (a+b)/2;
  38.        
  39. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement