Está en la página 1de 18

MÉTODOS NUMÉRICOS (Octave)

Prof. María Zegarra Garay e -mail: maria_zegarra@hotmail.com


Prof. Elizabeth Puelles Bulnes e -mail: eliza_bulnes@hotmail.com

CONTENIDO:
Método de Newton. Método de la Secante. Método de Regula Falsi.
Análisis de error para Métodos Iterativos y Técnicas de Aceleración.
Convergencia acelerada. Raíces complejas de polinomios. Método de Bairstow.
• MÉTODO DE NEWTON

2
El Algoritmo de Newton:

4
5
Ejercicio
1. Hallar la raíz por el método de Newton –Raphson
f(x): X2-5X+4=0

6
Ejercicio

7
Interpretación Geométrica :

8
Convergencia del Método

9
10
11
Usando este gráfico, podemos
elegir un valor inicial adecuado x0
como dato de entrada del
programa computacional a seguir.

12
La Implementación Computacional
A diferencia de los métodos anteriores, presentamos a seguir el programa
computacional del Método de Newton sin usar los comandos directos del
Matlab , sino en un contexto mas general , dado como un archivo de tipo
function y archivos de entrada para la función y su derivada..
%Método de Newton (o Newton Raphson)
%Calcula las raíces de una función f(x)
%fn1 es la función a calcular sus raíces
%dfn1 es la derivada de fn1
%x0 es el valor inicial
%E es el error cometido a cada iteración
%maxit es número máximo de iteraciones que estamos dispuestos
a tolerar

function [xa,iter] = prog_newton(fn1,dfn1,x0,E,maxit)


format long
n=0;
disp('n xa Error');
13
disp('n xa Error');
for k=1:maxit
xa=x0-feval(fn1,x0)/feval(dfn1,x0);
fprintf('%d \t%1.9f \t\t%6.9f\n',n, xa, E)
n = n+1;
if(abs(xa-x0)<= E)
iter=k;
disp('El Metodo es convergente y la solucion
aproximada es:')
return;
end
x0=xa;
end
disp('Se ha excedido el maximo numero de iteraciones')
iter=maxit;
disp('El Metodo no es convergente')
end

14
function [y] = fn1(x)
y=(1-cos(x))^2 + (sin(x))^2 -0.25;
return;

function [y] = dfn1(x) %derivada de la funcion fn1(x)


y=2*(1-cos(x))*sin(x) + 2*sin(x)*cos(x);
return;

Luego, ejecutando la función en la ventana del command windows , tenemos,

15
•MÉTODO DE LA SECANTE
Este método es una derivación del método del punto fijo.
Consideremos la siguiente aproximación para la derivada :

Por otra parte, el método del punto fijo establece el siguiente algoritmo:

Luego de estas dos expresiones se tiene:

Algoritmo del Método de la secante


Donde el Criterio de Parada será cuando para alguna iteración , se
verifique:

o una vez que


%Método de la secante
f(x) = X3 + 2X + 10X -20
cf=input('Ingrese funcion:')
f=inline(cf);
xo=input('Ingrese primer valor:');
x1=input('Ingrese segundo valor:');
tol=input('Ingrese la tolerancia:');
error=100;
n=0;
fprintf('n xo x1 x2 error\n');
fprintf('%i %4.4f %4.4f ------- ------- \n',n,xo,x1);
while(error>tol)
n=n+1;
x2=x1-(x1-xo)*f(x1)/(f(x1)-f(xo));
error=abs(f(x2));
fprintf(' %i %4.4f %4.4f %4.4f
%4.4f\n',n,xo,x1,x2,error);
xo=x1;
x1=x2;
end

También podría gustarte