Está en la página 1de 17

Análisis Numérico

Grupo: 35
UNAM / FI / DCB / DIE
Semestre 2021-2

Tarea 1
Bisección, Regla falsa y Punto fijo
Ascencio Pérez Gallardo Jesús Gabriel, Pineda Chavarria Fabiola, Robles Ortiz
Mariela Itzel

1. Resultados
x
1. Sea la ecuación: x2 + e 2 = 5
Los resultados obtenidos en cada método son:

Tabla 1: Comparación de los métodos


Método Raíz Iteraciones
Bisección 1.6490 13
Regla falsa 1.6490 5
Punto fijo 1.6490 7

Resultados por cada iteración:

Tabla 2: Comparación evolutiva por iteración de cada método


Iteración Bisección Regla falsa Punto fijo
1 1.5 1.5778 1.6572
2 1.75 1.6423 1.6462
3 1.625 1.6484 1.65
4 − − 1.6486
5 − 1.6490 −
- − − −
7 − − 1.6490
- − − −
13 1.6490 − −

Para los tres métodos  = 0.0001, y en el caso del método de punto fijo, el valor de nuestro
punto inicial, x1 = 1.625, ya que es un valor cercano a la raíz de acuerdo con los resultados de
los otros dos métodos.
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

2. Sea la ecuación: xex = cos x


Los resultados obtenidos en cada método son:

Tabla 3: Comparación de los métodos


Método Raíz Iteraciones
Bisección 0.5177 13
Regla falsa 0.5177 9
Punto fijo 0.5178 44

Resultados por cada iteración

Tabla 4: Comparación evolutiva por iteración de cada método


Iteración Bisección Regla falsa Punto fijo
1 0.5 0.3679 0.5945
2 0.75 0.5033 0.5518
3 0.625 0.5474 0.5758
- − − −
9 − 0.5177 −
- − −−− ...
13 0.5177 − −
- − − −
44 − − 0.5178

Para los tres métodos  = 0.0001, y en el caso del método de punto fijo, el valor de nuestro
punto inicial, x1 = 0.52 ya que es un valor cercano a la raíz de acuerdo con los resultados de
los otros dos métodos.

2. Descripción del trabajo en equipo


Primero los tres nos reunimos mediante Google Meet para comenzar a abordar la resolución de los
problemas, específicamente con MATLAB. Durante la sesión los tres tratamos de ejecutar el código
que habíamos elaborado de Bisección previamente en clase, sin embargo, ninguno de los tres lo pudo
correr bien a la primera por lo que comenzamos a discutir qué podría estar mal. Después de alrededor
de una hora intentando ver qué era lo que estaba mal, terminamos la llamada y cada uno intentó
arreglarlo; al final Mariela logró corregir el código. Por otro lado, la llamada también nos sirvió
para ponernos de acuerdo en cuanto a qué hacer cada uno. Fabiola se encargó de la elaboración y
verificación de los códigos en MATLAB, los revisó y los ejecutó con los dos ejercicios, así mismo,
elaboró a mano las tres primeras iteraciones de ambos ejercicios con el método de Bisección. Por
otro lado, Mariela desarrolló a mano las iteraciones con los métodos de regla falsa y punto fijo con el
ejercicio 1, y Jesús desarrolló a mano las iteraciones con los mismos dos métodos pero para el ejercicio
2. Finalmente, los tres editamos el documento en LaTex y plasmamos en él nuestros resultados.

2
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

3. Desarrollo
Ejercicio 1

Utilizando el método de bisección:

3
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

Utilizando el método de regla falsa

4
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

Utilizando el método de punto fijo:

5
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

6
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

Ejercicio 2

Utilizando el método de bisección:

7
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

Utilizando el método de regla falsa:

8
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

Utilizando el método de punto fijo:

9
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

4. Códigos de los programas de MATLAB


Los códidos realizados para obtener la raíz de la siguiente función fueron

f (x) = x2 + ex/2 − 5 (1)

Método Bisección
1 clc; % Limpia Command Window
2 clear; % Limpiar variables de Workspace
3
4 %Definir constantes
5 aBis= 1; % Límite inferior del intervalo de interés
6 bBis= 2; % Límite superior del intervalo de interés
7 epsilonBis=0.0001;
8 kmaxBis = 1; %iteraciones
9
10 %Funciones
11 eBis = @(x) x.^2 + exp(x/2)-5; %función de la que se obtendran las raíces
12
13 % Metodo de biseccion
14 [raizBis,itermaxBis]= biseccion(aBis,bBis,eBis,epsilonBis,kmaxBis)

Codigo prueba
1 clc; % Limpia Command Window
2 clear; % Limpiar variables de Workspace
3
4 %Definir constantes
5 aBis= 1; % Límite inferior del intervalo de interés
6 bBis= 2; % Límite superior del intervalo de interés
7 epsilonBis=0.0001;
8 kmaxBis = 1; %iteraciones
9
10 %Funciones
11 eBis = @(x) x.^2 + exp(x/2)-5; %función de la que se obtendran las raíces
12
13 % Metodo de biseccion
14 [raizBis,itermaxBis]= biseccion(aBis,bBis,eBis,epsilonBis,kmaxBis)
15
16
17
18
19

Método Regla falsa


1 %REGLA FALSA
2 clc; %permite borrar el area de trabajo
3

10
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

4 clear; %permite borrar las variables almacenadas


5
6 fprintf(’ METODO REGLA FALSA\n\n\n’);
7
8 %fprintf me permite ingresar comentarios de manera textual que pueden
9
10 %orientar al usuario en el uso del programa
11
12 format long;
13
14 %format long permite utilizar la máxima capacidad del computadorXi=input (’Ingr
15
16 Xs=input (’\nIngrese el limite superior del intervalo\n’);
17
18 Tol=input (’\nIngrese la tolerancia deseada\n’);
19
20 Iter=input (’\nIngrese el número de iteraciones\n’);
21
22 %input es un comando de solicitud de entrada de datos del usuario.
23
24 %fun = LA FUNCION SE LLAMA DESDE UN ARCHIVO .m
25
26 Yi=fun(Xi); %aca se llama el archivo .m
27
28 Ys=fun(Xs); %aca se llama el archivo .m
29
30 %La sentencia if tiene como función evaluar condiciones, que en caso
31 %de ser verdadera se procede a realizar ciertos pasos, de lo contrario
32 %se procede a realizar otros, por medio de la funcion else.
33
34 if Yi==0fprintf(’\n\nSOLUCION:\n’)
35
36 fprintf(’Xi es raiz\n\n’);else
37
38 if Ys==0fprintf(’\n\nSOLUCION:\n’)
39
40 fprintf(’Xs es raiz\n\n’);else
41
42 if Yi*Ys<0Xm=(Xi)-((fun(Xi)*(Xi-Xs))/(fun(Xi)-fun(Xs)));
43
44 Ym=fun(Xm); %Se llama el archivo .m
45
46 Error=Tol+1;Cont=1;
47
48 Z=[Cont,Xi,Xs,Xm,Ym,Error];
49
50 %Z es una matriz la cual permitira observar lo datos como una tabla a
51 %la finalizacion del programa

11
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

52 %La sentencia While ejecuta todas las órdenes mientras la expresión


53 %sea verdadera.
54 while Ym~=0 & Error>Tol & Cont<Iterif Yi*Ym<0
55
56 Xs=Xm;
57
58 Ys=Ym;
59
60 else
61
62 Xi=Xm;
63
64 Yi=Ym;
65
66 end
67
68 Xaux=Xm;

Codigo prueba
1 clc; % Limpia Command Window
2 clear; % Limpiar variables de Workspace
3
4 %Definir constantes
5 aRegF= 1; % Límite inferior del intervalo de interés
6 bRegF= 2; % Límite superior del intervalo de interés
7 epsilonRegF=0.0001;
8 kmaxRegF=20; %numero de iteraciones
9
10 %Funciones
11 fRegF= @(x) x.^2 + exp(x/2)-5; %función de la cual se obtendran las raíces
12
13 % Metodo de biseccion
14 [raizRegF,itermaxRegF]=reglafalsa(aRegF,bRegF,fRegF,epsilonRegF,kmaxRegF)
15

Método Punto fijo


1 function [raiz, iteraciones] = puntofijo(g,x1,epsilon,kmax)
2 x(1) = x1; % x es un vector que guarda los puntos fijos
3 for n=1:kmax
4 x(n+1) = g(x(n));
5 if abs(x(n+1)-x(n))<epsilon % Verifica que se cumpla la tolerancia
6 raiz = x(n+1); % Regresa el valor de la raíz
7 iteraciones = n; % Número de iteraciones requeridas
8 return
9 end
10 end

12
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

11 raiz = x(n+1);
12 iteraciones = n;
13 end

Codigo prueba
1 clc; % Limpiar comand window
2 clear; % Limipa variables (workspace)
3 format short
4
5 %% METODO PUNTO FIJO
6 %% Definición de constantes
7 x1PunF = 1.625;
8 epsilonPunF=0.0001;
9 kmaxPunF=4;
10 %% Definición de funciones
11 fPunF= @(x) x.^2 + exp(x/2)-5; % Función de la que se obtendra la raiz
12 gPunF= @(x) sqrt(5-exp(x/2)); % Función de iteración
13 %% Operaciones
14 [raizPunF, iterPunF] = puntofijo(gPunF,x1PunF,epsilonPunF,kmaxPunF)
15 fPunF(raizPunF)
16
17

Los códidos realizados para obtener la raíz de la siguiente función fueron

f (x) = xex − cos x (2)

Método Bisección
1 function [raiz, numiter] = biseccion(a,b,f,eps,kmax)
2 for i = 1:kmax
3 if f(a)*f(b) < 0
4 c = (a+b)/2;
5 if f(c) == 0
6 raiz = c;
7 numiter = i;
8 return
9 else
10 if f(a)*f(c) < 0
11 b = c;
12 else
13 a = c;
14 end
15 if (b-a)/2 <= eps
16 raiz = c;
17 numiter = i;
18 return
19 end

13
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

20 end
21 else
22 return
23 end
24 end
25 % La raíz no se encuentra en el número de interaciones establecidas
26 raiz = c;
27 numiter = i; % Regresa el número de iteraciones
28 end

Codigo prueba
1 clc; % Limpia Command Window
2 clear; % Limpiar variables de Workspace
3
4 %Definir constantes
5 aBis= 0; % Límite inferior del intervalo de interés
6 bBis= 1; % Límite superior del intervalo de interés
7 epsilonBis=0.0001;
8 kmaxBis = 1; %iteraciones
9
10 %Funciones
11 eBis = @(x) x*exp(x)-cos(x); %función de la que se obtendran las raíces
12
13 % Metodo de biseccion
14 [raizBis,itermaxBis]= biseccion(aBis,bBis,eBis,epsilonBis,kmaxBis)

Método Regla falsa


1 %REGLA FALSA
2 clc; %permite borrar el area de trabajo
3
4 clear; %permite borrar las variables almacenadas
5
6 fprintf(’ METODO REGLA FALSA\n\n\n’);
7
8 %fprintf me permite ingresar comentarios de manera textual que pueden
9
10 %orientar al usuario en el uso del programa
11
12 format long;
13
14 %format long permite utilizar la máxima capacidad del computadorXi=input (’Ingr
15
16 Xs=input (’\nIngrese el limite superior del intervalo\n’);
17
18 Tol=input (’\nIngrese la tolerancia deseada\n’);
19

14
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

20 Iter=input (’\nIngrese el número de iteraciones\n’);


21
22 %input es un comando de solicitud de entrada de datos del usuario.
23
24 %fun = LA FUNCION SE LLAMA DESDE UN ARCHIVO .m
25
26 Yi=fun(Xi); %aca se llama el archivo .m
27
28 Ys=fun(Xs); %aca se llama el archivo .m
29
30 %La sentencia if tiene como función evaluar condiciones, que en caso
31 %de ser verdadera se procede a realizar ciertos pasos, de lo contrario
32 %se procede a realizar otros, por medio de la funcion else.
33
34 if Yi==0fprintf(’\n\nSOLUCION:\n’)
35
36 fprintf(’Xi es raiz\n\n’);else
37
38 if Ys==0fprintf(’\n\nSOLUCION:\n’)
39
40 fprintf(’Xs es raiz\n\n’);else
41
42 if Yi*Ys<0Xm=(Xi)-((fun(Xi)*(Xi-Xs))/(fun(Xi)-fun(Xs)));
43
44 Ym=fun(Xm); %Se llama el archivo .m
45
46 Error=Tol+1;Cont=1;
47
48 Z=[Cont,Xi,Xs,Xm,Ym,Error];
49
50 %Z es una matriz la cual permitira observar lo datos como una tabla a
51 %la finalizacion del programa
52 %La sentencia While ejecuta todas las órdenes mientras la expresión
53 %sea verdadera.
54 while Ym~=0 & Error>Tol & Cont<Iterif Yi*Ym<0
55
56 Xs=Xm;
57
58 Ys=Ym;
59
60 else
61
62 Xi=Xm;
63
64 Yi=Ym;
65
66 end
67

15
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

68 Xaux=Xm;

Codigo prueba
1 clc; % Limpia Command Window
2 clear; % Limpiar variables de Workspace
3
4 %Definir constantes
5 aRegF= 0; % Límite inferior del intervalo de interés
6 bRegF= 1; % Límite superior del intervalo de interés
7 epsilonRegF=0.0001;
8 kmaxRegF=20; %numero de iteraciones
9
10 %Funciones
11 fRegF= @(x) x*exp(x)-cos(x); %función de la cual se obtendran las raíces
12
13 % Metodo de biseccion
14 [raizRegF,itermaxRegF]=reglafalsa(aRegF,bRegF,fRegF,epsilonRegF,kmaxRegF)
15

Método Punto fijo


1 function [raiz, iteraciones] = puntofijo(g,x1,epsilon,kmax)
2 x(1) = x1; % x es un vector que guarda los puntos fijos
3 for n=1:kmax
4 x(n+1) = g(x(n));
5 if abs(x(n+1)-x(n))<epsilon % Verifica que se cumpla la tolerancia
6 raiz = x(n+1); % Regresa el valor de la raíz
7 iteraciones = n; % Número de iteraciones requeridas
8 return
9 end
10 end
11 raiz = x(n+1);
12 iteraciones = n;
13 end

Codigo prueba
1 clc; % Limpiar comand window
2 clear; % Limipa variables (workspace)
3 format short
4
5 %% METODO PUNTO FIJO
6 %% Definición de constantes
7 x1PunF = 1.625;
8 epsilonPunF=0.0001;
9 kmaxPunF=4;
10 %% Definición de funciones
11 fPunF= @(x) x*exp(x)-cos(x); % Función de la que se obtendra la raiz

16
AN21-2x35: Tarea 1 Ascencio, Pineda, Robles

12 gPunF= @(x) cos(x)/exp(x); % Función de iteración


13 %% Operaciones
14 [raizPunF, iterPunF] = puntofijo(gPunF,x1PunF,epsilonPunF,kmaxPunF)
15 fPunF(raizPunF)
16

17

También podría gustarte