Advertisement
paulogp

Metodo das Bisseccoes Sucessivas

Aug 7th, 2011
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.29 KB | None | 0 0
  1. function [] = bissuc(funcao, a, b, erro)
  2. % paulogp
  3. % metodo das bisseccoes sucessivas
  4. %
  5. % exemplo: bissuc('x^3', -3, 6, 10^-4)
  6. % a e b sao intervalos
  7.  
  8. % formato de saida
  9.     format long
  10.    
  11.     xx = (b - a)/2;
  12.    
  13.     f = inline(funcao);
  14.     fa = f(a);
  15.     fb = f(b);
  16.    
  17.     k = 0;
  18.    
  19.     if ((fa * fb) > 0)
  20.         disp('Nao existem zeros no intervalo!');
  21.     else
  22.         while (xx > erro)
  23.             c =(a + b)/2;
  24.             fc = f(c);
  25.             k = k + 1;
  26.            
  27.             % sorte a primeira
  28.             if (fc == 0)
  29.                 x = c;
  30.                 erro = 0;
  31.                
  32.                 disp(' ');
  33.                 disp('Em cheio no alvo!');
  34.                 break;
  35.             else
  36.                 % procura
  37.                 if((fa * fc) < 0)
  38.                     b = c;
  39.                     fb = fc;
  40.                 else
  41.                     a = c;
  42.                     fa = fc;
  43.                 end
  44.            
  45.                 xx =(b - a)/2;
  46.                 x =(a + b)/2;
  47.             end
  48.         end
  49.        
  50.         % saida de valores
  51.         disp(' ');
  52.         disp(['x= ' mat2str(x)]);
  53.         disp(' ');
  54.         disp(['k= ' mat2str(k)]);
  55.     end
  56.  
  57.     disp(' ')
  58.    
  59.     % apaga todas as variaveis
  60.     clear;
  61.     disp(' ');
  62. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement