You are on page 1of 9

Integrantes del Equipo: Nombre: Nombre: Nombre: Nombre: Luis Alberto Cisneros Pacheco Juan Carlos Campos Diego

Daniel Ramos Rendn Francisco Agustn Nez lvarez Matricula: 201021801 Matricula: 201014732 Matricula: 200925971 Matricula: 200924907

Fecha: 13/09/2013

PRACTICA 3. ALGORITMO DE NEWTON. ALGORITMO DE LA SECANTE. ALGORITMO DE LA REGLA FALSA OBJETIVO: Aplicar los Algoritmos de Newton, Secante y Regla Falsa para hallar una aproximacin a una raz de la ecuacin ( ) . 1. El polinomio de cuarto grado ( ) tiene dos ceros reales, uno en [ exactitud de por medio de ] y el otro en [ ]. Aproxima estos ceros con una

a) El algoritmo de la posicin falsa Cdigo en MATLAB:


function varargout = ReglaFalsa(varargin) syms x; y=get(handles.funcion,'String'); f=inline(y); p0=str2double(get(handles.p0,'String')); p1=str2double(get(handles.p1,'String')); TOL=str2double(get(handles.tolerancia,'String')); No=str2double(get(handles.it1,'String')); i=2; q0=f(p0); q1=f(p1); ezplot(f) grid on while (i<=No) p=p1-((q1*(p1-p0))/(q1-q0)); if(abs(p-p0)<TOL) set(handles.resultado,'String',num2str(p)); set(handles.it2,'String',num2str(i)); return end i=i+1; q=f(p); if ((q*q1)<0) p0=p1;

q0=q1; p1=p; q1=q; end if((q*q0)<0) p0=p0; q0=q0; p1=p; q1=q; end end h=msgbox('El metodo fracas','Error'); set(handles.resultado,'String','El metodo fall'); set(handles.it2,'String',(i-1));

b) El algoritmo de la secante Codigo en MATLAB:


function varargout = MetodoSecante(varargin) syms x; y=get(handles.funcion,'String'); f=inline(y); p0=str2double(get(handles.p0,'String')); p1=str2double(get(handles.p1,'String')); TOL=str2double(get(handles.tolerancia,'String')); No=str2double(get(handles.it1,'String')); i=2; q0=f(p0); q1=f(p1); ezplot(f) grid on while i<=No p=p1-((q1*(p1-p0))/(q1-q0)); if(abs(p-p0)<TOL) set(handles.resultado,'String',num2str(p)); set(handles.it2,'String',num2str(i)); return end i=i+1;

p0=p1; q0=q1; p1=p; q1=f(p); end h=msgbox('El metodo fracas','Error'); set(handles.resultado,'String','El metodo fall'); set(handles.it2,'String',(i-1));

Como se puede ver en la siguiente imagen el mtodo fallo a pesar de que se le aumentaron el nmero de iteraciones.

a) El algoritmo de Newton Cdigo en MATLAB.


syms x; f=get(handles.funcion,'String'); F=inline(f); TOL=str2double(get(handles.tolerancia,'String')); p0=str2double(get(handles.aprox,'String')); No=str2double(get(handles.it1,'String')); i=1; while (1<=No) FP=F(p0); fpr=diff(f); FPR=inline(fpr); Fs=FPR(p0); p=p0-(FP/Fs); if(abs(p-p0))<TOL set(handles.res,'String',num2str(p));

set(handles.it2,'String',num2str(i)); ezplot(f,[p-1,p+1]) grid on return end i=i+1; p0=p; end h=msgbox('El metodo fracaso','Error');

Utiliza los extremos de cada intervalo como aproximaciones iniciales en a) y en b) y los intermedios como aproximaciones iniciales en c).

Tomando en cuenta la recomendacin de utilizar los valores intermedios de [-1,0] y [0,1], se tom -0.5 como una aproximacin inicial, teniendo como resultado -0.040659 despus de 4 iteraciones.

El resultado anterior se conserva usando la aproximacin inicial = 0, pero ahora con 3 iteraciones.

Finalmente se not que al tomar como aproximacin inicial a 0.6, el resultado es 0.9624 despus de haber realizado 15 iteraciones.

2. La funcin ( )

tiene un cero en

. Sean

, usa 10 iteraciones

de los siguientes algoritmos para aproximar esta raz Cul de estos es ms eficaz y por qu? a) El algoritmo de la biseccin

A pesar que se recomienda utilizar 10 iteraciones, el programa (como se puede observar) solo puede arrojar un resultado despus de 16 iteraciones. El resultado es bastante cercano al propuesto por el problema pero que se ve limitado porque el programa solo muestra hasta un FIX 4.

b) El algoritmo de la secante

c) El algoritmo de la posicin falsa Se obtuvieron los siguientes resultados:

You might also like