Advertisement
paulogp

Metodo de Newton

Aug 7th, 2011
1,512
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.10 KB | None | 0 0
  1. function [] = newton(funcao, a, b, erro, alpha, x0)
  2. % paulogp
  3. % Aplicacao do metodo de newton
  4. % Exemplo: met_newton('x^2+x-6', 3, 6, 10^-2, 10^-2, 1.5)
  5. % Resultado:
  6. % - Funcao derivada g = 2*x+1
  7. % - Numero de iteracoes = 1
  8. % - x = 2.00076219512195
  9.  
  10.     disp(' ');
  11.    
  12.     % condicao geral ((b - a) < (1 / alpha))
  13.     if (b-a) > (1./alpha)
  14.         disp('Falta uma condicao de aplicabilidade!');
  15.         disp(' ');
  16.         return
  17.     end
  18.    
  19.     % formato de saida
  20.     format long
  21.    
  22.     % string para funcao
  23.     f = inline(funcao);
  24.    
  25.     % derivada da funcao
  26.     syms x;
  27.     h = char(diff(f(x)));
  28.     g = inline(h);
  29.    
  30.     % formula recursiva
  31.     x1 = x0-f(x0)/g(x0);
  32.    
  33.     % numero de interacoes
  34.     nf = ceil((1/log(2))*log((log(alpha*erro))/(log(alpha*(b-a)))));
  35.    
  36.     % metodo
  37.     for n=1:nf
  38.         x0 = x1-f(x1)/g(x1);
  39.         x1 = x0;
  40.     end
  41.    
  42.     % saida de valores
  43.     disp(' ');
  44.     disp(['Funcao derivada g = ' h]);
  45.     disp(' ');
  46.     disp(['Numero de iteracoes = ' mat2str(nf)]);
  47.     disp(' ');
  48.     disp(['x = ' mat2str(x0)]);
  49.    
  50.     disp(' ');
  51. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement