Practica 3

11
Integrantes del Equipo: Nombre: Luis Alberto Cisneros Pacheco Matricula: 201021801 Nombre: Juan Carlos Campos Diego Matricula: 201014732 Nombre: Daniel Ramos Rendón Matricula: 200925971 Nombre: Francisco Agustín Núñez Álvarez 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 aproximación a una raíz de la ecuación f ( x )=0. 1. El polinomio de cuarto grado f ( x )=230 x 4 +18 x 3 +9 x 2 221 x9 tiene dos ceros reales, uno en [1,0 ] y el otro en [ 0,1 ] . Aproxima estos ceros con una exactitud de 10 6 por medio de a) El algoritmo de la posición falsa Código 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);

Transcript of Practica 3

Page 1: Practica 3

Integrantes del Equipo:

Nombre: Luis Alberto Cisneros Pacheco Matricula: 201021801

Nombre: Juan Carlos Campos Diego Matricula: 201014732

Nombre: Daniel Ramos Rendón Matricula: 200925971

Nombre: Francisco Agustín Núñez Álvarez 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

aproximación a una raíz de la ecuación f ( x )=0.

1. El polinomio de cuarto grado

f ( x )=230x4+18x3+9 x2−221 x−9

tiene dos ceros reales, uno en [−1,0 ] y el otro en [0,1 ]. Aproxima estos ceros con una

exactitud de 10−6 por medio de

a) El algoritmo de la posición falsa

Código 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;

Page 2: Practica 3

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));

Page 3: Practica 3

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;

Page 4: Practica 3

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 método fallo a pesar de que se le aumentaron el número de iteraciones.

a) El algoritmo de Newton

Código 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])

Page 5: Practica 3

grid on return end i=i+1; p0=p;endh=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 recomendación de utilizar los valores intermedios de [-1,0] y [0,1], se tomó -0.5 como una aproximación inicial, teniendo como resultado -0.040659 después de 4 iteraciones.

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

Page 6: Practica 3

Finalmente se notó que al tomar como aproximación inicial a 0.6, el resultado es 0.9624 después de haber realizado 15 iteraciones.

2. La función

f ( x )=tan πx−6

Page 7: Practica 3

tiene un cero en 1πtan−16≈0.447431543. Sean p0=0 y p1=0.48, usa 10 iteraciones

de los siguientes algoritmos para aproximar esta raíz ¿Cuál de estos es más eficaz y por qué?

a) El algoritmo de la bisección

A pesar que se recomienda utilizar 10 iteraciones, el programa (como se puede observar) solo puede arrojar un resultado después 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.

Page 8: Practica 3
Page 9: Practica 3

b) El algoritmo de la secante

c) El algoritmo de la posición falsa

Se obtuvieron los siguientes resultados: