Guest User

Untitled

a guest
Jul 12th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.02 KB | None | 0 0
  1. function [r] = intfel2(f,a,b,N,eps_step,eps_abs)
  2.     if ( f(a) == 0 )
  3.     r = a;
  4.     return;
  5.     elseif ( f(b) == 0 )
  6.     r = b;
  7.     return;
  8.     elseif ( f(a) * f(b) > 0 )
  9.         error('f(a) és f(b) előjelei nem különböznek!' );
  10.     end
  11.  
  12.     % Iteráció n lépésben
  13.     for k = 1:N
  14.         % Középpont megkeresése
  15.         c = (a + b)/2;
  16.  
  17.         % Gyökkeresés, attól függően, hogy találunk-e, használjuk:
  18.         % [a,c]-t ha f(a) és f(c) nem azonos előjelűek, vagy
  19.         % [c,b]-t ha f(c) és f(b) -,,- .
  20.  
  21.         if ( f(c) == 0 )
  22.             r = c;
  23.             return;
  24.         elseif ( f(c)*f(a) < 0 )
  25.             b = c;
  26.         else
  27.             a = c;
  28.         end
  29.  
  30.         if ( b - a < eps_step )
  31.             if ( abs( f(a) ) < abs( f(b) ) && abs( f(a) ) < eps_abs )
  32.                 r = a;
  33.                 return;
  34.             elseif ( abs( f(b) ) < eps_abs )
  35.                 r = b;
  36.                 return;
  37.             end
  38.         end
  39.     end
  40.  
  41.     error( 'a metódus nem konvergál' );
  42. end
Add Comment
Please, Sign In to add comment