gasaichan

dichotomy.m

Mar 13th, 2018
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.06 KB | None | 0 0
  1. function[] = dichotomy(fun, a, b)
  2.     if isa(fun, 'function_handle')
  3.         fprintf('Введенная функция соответствует необходимому формату. Ищем корень\n')
  4.     else
  5.         fprintf('Введенная функция не соответствует формату function_handle\n')
  6.         return
  7.     end
  8.    
  9.    
  10.     fplot(fun, [0.1 4])
  11.     grid on, hold on
  12.     xlabel('x')
  13.     ylabel('y')
  14.    
  15.    
  16.     if b < a
  17.         fprintf('Введенное число b больше, чем a. Меняем местами\n')
  18.         c = b;
  19.         b = a;
  20.         a = c;
  21.         fprintf('Текущее значение a: %f, текущее значение b: %d\n', a, b)
  22.     end
  23.    
  24.     %epsilon = 0.01;
  25.    
  26.     c = a;
  27.    
  28.    
  29.     for i = 1:1:15
  30.         c = (a + b) / 2;
  31.         if (fun(a) * fun(c) <= 0)
  32.             b = c;
  33.         else
  34.         if (fun(b) * fun(c) <= 0)
  35.             a = c;
  36.         end
  37.         end
  38.     end
  39.      fprintf('Найден корень: %f\n', (a + b)/2)
  40. end
Add Comment
Please, Sign In to add comment