Logo Studenta

Araiza_Rincón_Sánchez_T3 - Axel

¡Este material tiene más páginas!

Vista previa del material en texto

Análisis Numérico
Grupo: 13
UNAM / FI / DCB(DIE)
Semestre 2021-1
Tarea 3
Métodos de Eliminación Gaussiana, Doolittle y Crout (factorización LU)
Carlos Rincón, Araiza Alfredo, Sánchez Axel
1. La matriz aumentada obtenida por Eliminación Gaussiana

7 6 7 9 0
0 12
7
−5 11
7
0
0 0 65
12
7
12
2
0 0 0 −147
65
−49
65

(1)
2. Matrices obtenidas por factorización Doolittle
L =

1 0 0 0
7 1 0 0
3 1 1 0
5 −1 −65
21
1
U =

1 1 6 2
0 −1 −35 −5
0 0 21 0
0 0 0 −7
 (2)
3. Matrices obtenidas por factorización Crout
L =

1 0 0 0
7 −1 0 0
3 −1 21 0
5 1 −65 −7
U =

1 1 6 2
0 1 35 5
0 0 1 0
0 0 0 1
 (3)
4. El vector solución del sistema de ecuaciones es
x =

−4
3
2
3
1
3
1
3

(4)
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
5. Descripción de trabajo en equipo
Para obtener los resultados de las raíces, nos repartimos equitativamente todo el trabajo, Alfredo
se encargó de realizar el programa del método de Crout que posteriormente explicó a los demás
integrantes, mientras que Carlos y Axel desarrollaron los ejercicios a mano sobre los métodos de
pivoteo, Dollittle y Crout y capturaron la información en LATEX, comparando los resultados con
los programas realizados. Al final realizamos una videollamada para verificar que el archivo y su
contenido sean los correctos y para aclarar las dudas que surgieron en el proceso.
2
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
6. Desarrollo
3
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
4
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
5
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
6
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
7
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
8
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
9
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
7. Códigos utilizados
’Código Principal’
1 %Matriz que representa el sistema
2 %de ecuaciones, los coeficientes de
3 %las distintas x
4 A= [1 1 6 2; 7 6 7 9; 3 2 4 1; 5 6 0 8];
5 % Los valores del lado izquierdo
6 % de las ecuaciones
7 b= [2 0 -1 0];
8
9 % Método Doolittle
10 x1=metodoDoolittle(A,b);
11 disp(’Método Doolittle:’)
12 l=length(x1);
13 for k= 1:l
14 d=sprintf(’x%d=%f’,k,x1(k));
15 disp(d)
16 end
17
18 % Método Crout
19 x2=metodoCrout(A,b);
20 disp(’Método Crout:’)
21 l=length(x2);
22 for k= 1:l
23 d=sprintf(’x%d=%f’,k,x2(k));
24 disp(d)
25 end
’Codigo Factorización Doolittle’
1 %% Factorización LU Doolittle
2 function [L,U] = factorizacionDoolittle(A)
3
4 n = size(A,1); % Tamaño de la matriz A
5 L = eye(n); % Matriz L con 1s en la diagonal principal
6 U = zeros(n); % Matriz U llena de ceros
7
8 for i=1:n % i sirve para los renglones en U, columnas en L
9 if i == 1 % ¿Es la primera pasada?
10 U(1,1) = A(1,1);
11 for j=2:n % j sirve para las columnas de U, renglones de L
12 U(1,j) = A(1,j);
13 L(j,1) = A(j,1)/U(1,1);
14 end
15 else
16 U(i,i) = A(i,i) - L(i,1:i-1)*U(1:i-1,i); % Calcula los
10
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
17 % elementos de la diagonal principal
18 for j=i+1:n
19 U(i,j) = A(i,j) - L(i,1:i-1)*U(1:i-1,j);
20 L(j,i) = (A(j,i) - L(j,1:i-1)*U(1:i-1,i) )/ U(i,i);
21 end
22 end
23 end
24 end
’Código Factorización Crout’
1 %% Factorización LU Crout
2 function [L,U]=factorizacionCrout(A)
3 n=size(A,1); % Tamaño de la matriz A
4 U=eye(n); %Matriz U con ls en la diagonal principal
5 L=zeros(n); %Matriz L llena de ceros
6
7
8 for k=1:n
9 s=0; % Valor para guardar la sumatoria
10 for p=1:k-1 % k y p para renglones y columnas de L
11 % k y p para columnas y renglones de U
12 % k siendo una constante
13
14 s=s+L(k,p)*U(p,k); % Se hace para obtener la
15 %sumatoria de l por u
16 end
17
18
19 L(k,k)=A(k,k) - s; % Se va llenando la diagonal con el
20 %el valor a(kk) valor en la diagonal
21 %menos la sumatoria
22
23 %Ciclo for para llenar valores de L debajo de la diagonal
24 for i=k+1:n
25 s2=0; % Valor para guardar la sumatoria
26 for p=1:k-1 % i y p para renglones y columnas de L
27 % i y p para columnas y renglones de U
28 % i siendo un valor constante
29
30 s2=s2+L(i,p)*U(p,k);% Se hace para obtener la
31 %sumatoria de l por u, empezando en un renglón después en L
32 %cada ciclo
33 end
34 L(i,k)=(A(i,k)-s2); % Se llena el resto de los valores
35 % de L debajo de la diagonal
36 end
11
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
37
38 %Ciclo for para llenar la matriz U
39 for j=k+1:n
40 s3=0; % Valor para guardar la sumatoria
41 for p=1:k-1 % k y p para renglones y columnas de L
42 % j y p para columnas y renglones de U
43 % j y k siendo valores constante
44 s3=s3+ L(k,p)*U(p,j); % Se hace para obtener la
45 %sumatoria de l por u empezando
46 % en una columna después en u
47 %cada ciclo
48 end
49 U(k,j) = (A(k,j)- s3)/L(k,k); % Se llena U con los valores
50 % obtenidos, arriba de la diagonal
51 end
52 end
53 end
’Método de Doolittle’
1 function x = metodoDoolittle(A,b)
2 [L,U] = factorizacionDoolittle(A); % Calcula la factorización LU
3
4 n = size(A,1); % Cuantas ecuaciones hay que resolver
5
6 % Resolviendo Ly=b
7 y = zeros(n,1); % Inicializa vector y
8 y(1) = b(1);
9 for i=2:n
10 y(i) = b(i) - L(i,1:i-1)*y(1:i-1);
11 end
12
13 % Resolviendo Ux=y
14 x = zeros(n,1); % Inicializa vector x
15 x(n) = y(n)/U(n,n);
16 for i = n-1:-1:1
17 x(i) = ( y(i) - U(i,i+1:n)*x(i+1:n) )/U(i,i);
18 end
19 end
’Método de Crout’
1 function X=metodoCrout(A,b)
2 [L,U]=factorizacionCrout(A);
3 n=size(A,1); % Cuantas ecuaciones hay que resolver
4 y=zeros(n,1); % Vector lleno de ceros
5
12
AN21-1x13: Tarea 2 Araiza Alfredo, Rincón Carlos, Sánchez Axel
6 %Resulviendo Ly=b
7 for i=1:n
8 ac=0; %Inicializar acumulador
9 for j=1:i-1
10 ac=ac+L(i,j)*y(j); % Se va haciendo un despeje de cada
11 %ecuación
12 end
13 y(i)=(b(i)-ac)/L(i,i);
14 end
15
16 %Resolviendo Ux=y
17 for i=n:-1:1
18 ac=0; %Inicializar acumulador
19 for j=i+1:n
20 ac=ac+U(i,j)*X(j);% Se va haciendo un despeje de cada
21 %ecuación
22 end
23 X(i)=(y(i)-ac)/U(i,i);
24 end
25 end
13

Otros materiales