Sei sulla pagina 1di 52

UNIVERSIDAD NACIONAL DE INGENIERA

FACULTAD DE INGENIERA INDUSTRIAL Y DE


SISTEMAS

TEMA

SISTEMAS DE ECUACIONES LINEALES

CURSO

CALCULO NUMERICO (CB122-U)

ALUMNOS

ARHUIDE MAMANI, LUIS


EZPINOZA CARRANZA, MIGUEL
FERNNDEZ GUZMN, ALBERT
HUAMANI ROJAS, JUNIOR

PROFESOR

ANGULO PEREZ, JOSU

FECHA

18 DE NOVIEMBRE DEL 2014

LIMA PERU
2014
INDICE
INTRODUCCIN.,3
OBJETIVO.4

METODOS DIRECTOS ..5


ELIMINACION POR GAUSS SIMPLE.........5
ELIMINACION
POR
...10

GAUSS

CON

PIVOTEO

FACTORIZACIN DIRECTA DE MATRICES...17


FACTORIZACIN POR DOOLITLE...17
FACTORIZACIN POR CROUT.........22
FACTORIZACIN POR CHOLESKY.........31
MTODO ITERATIVO36
MTODO DE JACOBI...37
MTODO
DE
SEIDEL.44

GAUSS

APORTES ADICIONALES...50

INTRODUCCIN

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Al momento de aplicar las Matemticas a situaciones del mundo real se


puede encontrar a menudo con problemas que no pueden ser resueltos
analticamente o de manera exacta y cuya solucin debe ser abordada
con ayuda de algn procedimiento numrico. A continuacin
consideramos
algunos
problemas
tpicos,
ya
formulados
matemticamente, para los cuales estudiaremos tcnicas numricas de
solucin.

Por medio de este trabajo se quiere mostrar la aplicacin general de los


mtodos para hallar la solucin numrica de sistemas de ecuaciones
lineales.

El problema de los sistemas lineales de ecuaciones es uno de los ms


antiguos de la matemtica y tiene una infinidad de aplicaciones, como por
ejemplo en procesamiento digital de seales, estimacin, prediccin y en
general en la programacin lineal, as como en la aproximacin de
problemas no lineales de anlisis numrico.

Una caracterstica importante de los sistemas lineales de ecuaciones es


que admiten una forma matricial, la cual permite representar un sistema
usando tres matrices de la forma:
Ax=b

Esta representacin matricial facilita el uso de algunos mtodos de


solucin que sern expuestos a lo largo del trabajo, en ellos, mtodos
directos y mtodos iterativos; Es importante identificar las cantidades de
operaciones realizadas en cada uno de los diferentes mtodos, ya que a
mayor numero o menor cantidad de operaciones, se ver afectado por el
error de redondeo o truncamiento segn la naturaleza del mtodo.

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

OBJETIVOS

Implementar mtodos numricos en la solucin de sistemas de


ecuaciones lineales y casos de interpolacin, por medio de lenguajes de
programacin como Matlab y algunos argumentos matemticos.

Expresar los sistemas de ecuaciones lineales, de una forma


matricial, construyendo una matriz de coeficientes y un vector con
los trminos independientes.

Analizar, observar y entender el desarrollo de los diferentes


mtodos, tanto directos como iterativos.

Analizar y entender los mtodos de sustitucin regresiva y


progresiva, que permiten el hallazgo de las variables.

Comprender las ventajas y desventajas de cada mtodo y tener


claras sus diferencias.

Desarrollar el pseudocdigo para cada modelo matemtico.

Desarrollar el algoritmo correspondiente a cada modelo en la


plataforma de Matlab.

Verificar que el mtodo numrico funcione adecuadamente.

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

METODOS DIRECTOS

Un mtodo para la solucin de sistemas de ecuaciones lineales es directo


si se define como un conjunto finito de operaciones y de pasos para hallar
la solucin. El mtodo genera una solucin que sera exacta si no fuese
por los errores de redondeo.

El primer grupo de mtodos se basa fundamentalmente en que, dado un


sistema de ecuaciones de la forma Ax=b, se aplican operaciones
elementales de fila para transformar el sistema de ecuaciones en un
sistema de ecuaciones ms simple de resolver y equivalente al sistema
de ecuaciones inicial.

Los mtodos de esta seccin son:

Eliminacin gaussiana simple.


Eliminacin gaussiana con pivoteo parcial.

ELIMINACIN GAUSSIANA SIMPLE

Objetivo del mtodo


El objetivo del mtodo es encontrar una solucin a un sistema de
ecuaciones lineales, basando su solucin en un matriz triangular superior
y una sustitucin regresiva.
Generalidades
El procedimiento a seguir para la aplicacin del mtodo es el siguiente:
Se debe construir una matriz de coeficientes y el vector con los
trminos independientes, correspondientes al sistema, y se crea una
matriz llamada la matriz aumentada.
Se calculan los multiplicadores correspondientes en cada una de las
etapas.
Con los multiplicadores hallados en cada etapa, se procede al clculo
de las nuevas filas de la matriz aumentada.

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Una vez se tiene la matriz aumentada en la forma triangular superior,


se procede a realizar una sustitucin regresiva, para el clculo de las
variables.

Ejercicio:
Dadas las ecuaciones:
8 x 1+ x 2 + x 3+ 2 x 4 =30
2 x 1 +12 x 2 + x 3 + x 4=44
x 1+2 x 2+ 10 x 3 + x 4=20
2 x 1 + x 2+ 2 x 3 +8 x 4=19
Resuelva el sistema con el mtodo de eliminacin de
Gauss Simple
Matriz
8 1
2 12
1 2
2 1

aumentada:
1 2 30
1 1 44
10 1 20
2 8 19

Triangularizando la Matriz:
8 1
47
0
4
0 0
0 0

8 1
1
2 30
0 11.75 0.75
0.5 36.5
0 1.875 9.875 0.75 16.25
0 0.75 1.75
7.5 11.5

X1=3,

X2=3,

X3=1,

2 30

0.75

0.5 36.5

9.755 0.670 10.43


0
7.3512 7.3512

X4=1

Pseudocdigo mtodo

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Instrumentacin computacional del mtodo de Gauss


En esta primera versin del algoritmo se supondr que el determinante de
la matriz es diferente de cero y que no se requiere intercambiar filas. La
codificacin en MATLAB sigue directamente la formulacin matemtica
descrita anteriormente. Se usa notacin compacta para manejo de
matrices.

% ELIMINACION GAUSSIANA SIMPLE (SOLUCION POR ETAPAS)


clc %permite borrar el rea de trabajo
clear %permite borrar las variables almacenadas
format long %permite utilizar la maxima capacidad de la maquina
fprintf('ELIMINACION GAUSSIANA SIMPLE (SOLUCIN POR
ETAPAS)\n\n\n');
%fprintf me permite ingresar comentarios de manera textual que
pueden
%orientar al usuario en el uso del programa

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

%input es un comando de solicitud de entrada de datos del usuario.


A=input('Ingrese la matriz A = \n');
b=input('\nIngrese el vector b, correspondite a los terminos
independientes b=\n');
% Las matrices A y b deben ser ingresadas entre corchetes
separando las
%columnas mediante coma ',' y las filas mediante punto y coma ';'.
%permite obtener el tamao de la matriz A
[n,m]=size(A);
C=[A,b];
% la matriz C, representa la forma de la matriz aumentada [Ab]
fprintf('\n La Matriz C, que corresponte a la matriz aumentada
[Ab] es = \n');
disp(C); % la funcion disp nos permite imprimir una variable en el
espacio de trabajo
if n==m
for k=1:(n-1)%instruccion iterativa que permite repetir pasos un
%numero determinado de veces
fprintf('\n ETAPA %g=\n\n',k)
fprintf('\nLa matriz correspondiente a esta etapa antes del
proceso:\n')
disp(C)
fprintf('\nLos Multiplicadores correspondientes a esta etapa
son:\n')
for i=(k+1):n
m(i,k)=C(i,k)/C(k,k); %formula para hallar los multiplicadores
fprintf('\nm(%g,%g)=',i,k)
disp(m(i,k));
for j=k:(n+1)
C(i,j)= C(i,j) - m(i,k)*C(k,j); %formula de la nueva fila
end
end
fprintf('\nLa matriz correspondiente a esta etapa despues del
proceso:\n')
disp(C)
end
for i=n:-1:1
suma=0;
for p=(i+1):n
suma = suma + C(i,p)*X(p);
end
X(i)=(C(i,n+1)-suma)/C(i,i);
%formula de la susticion regresiva y solucion de las variables
end
else %funcion asignada del if, en caso de que este sea falso
fprintf('\nERROR: La matriz NO es cuadrada\n');
end
fprintf('\n\n\nSOLUCIN:\n');
fprintf('\n\nLa matriz Ab final:\n');
disp(C)
fprintf('\n\nLa solucion de X1 hasta Xn es:\n');
%a continuacion de utiliza una instruccion for, para mostrar el
usuario,
%los resultados de una manera ms ordenada
for i=1:n
Xi=X(1,i);
fprintf('\nX%g=',i)
disp(Xi);
end

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Ejemplo. Desde la ventana de comandos de MATLAB, use la funcin


Gauss1 para resolver el sistema:

][ ] [ ]

8
1 1 2 x1
30
x
2 12 1 1 2 = 44
20
12 2 12 1 x 3
19
2 1 2 8 x4

Escriba en la ventana de comandos de MATLAB


Ingrese la matriz A =
[8 1 1 2;2 12 1 1;1 2 10 1;2 1 2 8]
Ingrese el vector b, correspondite a los terminos independientes b=
[30;44;20;19]
La Matriz C, que corresponte a la matriz aumentada [Ab] es =
8
1
1
2 30
2 12
1
1 44
1
2 10
1 20
2
1
2
8 19
ETAPA 1=
La matriz correspondiente a esta etapa antes del proceso:
8
1
1
2 30
2 12
1
1 44
1
2 10
1 20
2
1
2
8 19
Los Multiplicadores correspondientes a esta etapa son:
m(2,1)= 0.25
m(3,1)= 0.125
m(4,1)= 0.25
La matriz correspondiente a esta etapa despues del proceso:
8
1
1
2
30
0
11.75
0.75 0.5
36.5
0
1.875
9.875 0.75 16.25
0
0.75
1.75
7.5
11.5
ETAPA 2=
La matriz correspondiente a esta etapa antes del proceso:
8
1
1
2
30
0 11.75 0.75 0.5 36.5
0 1.875 9.875 0.75 16.25
0 0.75 1.75 7.511.5
Los Multiplicadores correspondientes a esta etapa son:
m(3,2)= 0.1596
m(4,2)= 0.0638
UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

La matriz correspondiente a esta etapa despues del proceso:


8
1
1
2
30
0 11.75
0.75
0.5
36.5
0 0
9.7553
0.670 10.43
0 0
1.70213
7.469
9.170
ETAPA 3=
La matriz correspondiente a esta etapa antes del proceso:
8
1
1
2
30
0 11.75
0.75
0.5
36.5
0
0
9.75532 0.67
10.4256
0
0
1.70213 7.4681 9.170
Los Multiplicadores correspondientes a esta etapa son:
m(4,3)= 0.1745
La matriz correspondiente a esta etapa despues del proceso:
8
1
1
2
30
0 11.75 0.75
0.5
36.5
0
0
9.7553 0.67
10.426
0
0
0
7.3512
7.35115
SOLUCIN:
La matriz Ab final:
8
1
1
2
30
0 11.75
0.75
0.5
36.5
0
0
9.755 0.670
10.43
0
0
0
7.3512 7.3512
La solucion de X1 hasta Xn es:
X1=
3
X2=
3
X3=
1
X4=
1
>

ELIMINACIN GAUSSIANA CON PIVOTEO PARCIAL

Objetivo del mtodo


El objetivo del mtodo es encontrar una solucin a un sistema de
ecuaciones lineales, basando su solucin en un matriz triangular superior,
buscando los nmeros mayores (en valor absoluto) en las columnas de la
matriz para colocarlos en la diagonal y as mejorar la calidad de la
solucin.
Generalidades
El procedimiento a seguir para la aplicacin del mtodo es el siguiente:

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Se debe construir una matriz de coeficientes y el vector con los


trminos independientes, correspondientes al sistema, y se crea una
matriz llamada la matriz aumentada.
Se busca el nmero mayor (en valor absoluto) en cada la columna
correspondiente a la etapa y se procede a un cambio de filas para ubicar
el mayor elegido en la posicin correspondiente a la etapa.
Una vez ubicado el nmero mayor, se procede al clculo de los
multiplicadores correspondientes a la etapa.
Con los multiplicadores hallados en cada etapa, se procede al clculo
de las nuevas filas de la matriz aumentada.
Una vez se tiene la matriz aumentada en la forma triangular superior,
se procede a realizar una sustitucin regresiva, para el clculo de las
variables.

Pseudocodigo mtodo

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Instrumentacin computacional del mtodo de Gauss con pivoteo


La siguiente instrumentacin en MATLAB del mtodo de eliminacin de
Gauss incluye la formulacin descrita y la estrategia de pivoteo parcial
vista anteriormente, en notacin matricial compacta de MATLAB. En esta
instrumentacin final se incluye un chequeo del divisor para prevenir el
caso de que el sistema sea singular aunque, por los errores de redondeo,
no sea exactamente igual a cero. Tambin se verifica que sea una matriz
cuadrada.

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

% ELIMINACION GAUSSIANA CON PIVOTEO PARCIAL (SOLUCION POR ETAPAS)


clc %permite borrar el area de trabajo
clear %permite borrar las variables almacenadas
format long
fprintf('ELIMINACION GAUSSIANA CON PIVOTEO PARCIAL (SOLUCION POR
ETAPAS)\n\n\n');
%fprintf me permite ingresar comentarios de manera textual que
pueden
%orientar al usuario en el uso del programa
%input es un comando de solicitud de entrada de datos del usuario.
A=input('Ingrese la matriz A = \n');
b=input('\nIngrese el vector b, correspondite a los terminos
independientes b=\n');
% Las matrices A y b deben ser ingresadas entre corchetes
separando las columnas mediante %coma ',' y las filas mediante
punto y coma ';'.
%permite obtener el tamao de la matriz A
[n,m]=size(A);
C=[A,b];
% la matriz C, representa la forma de la matriz aumentada [Ab]
fprintf('\nLa Matriz C, que corresponte a la matriz aumentada [Ab]
es = \n');
disp(C); % la funcion disp nos permite imprimir una variable en el
espacio de trabajo
if n==m %compara el numero de columnas y filas, para observar si
son iguales
for k=1:(n-1)
fprintf('\n ETAPA %g=\n\n',k)
mayor=0; %asigna como cero el numero mayor de la fila
filam=k; %asigna la fila k como la fila que tiene el numero mayor
for p=k:n
if mayor<abs(C(p,k)) %se busca el numero mayor en la fila K;
mayor=abs(C(p,k));%cambio de mayor
filam=p; %cambio de fila
end
end
if mayor ==0
fprintf('\nEl sistema tiene infinitas soluciones\n')
break %se interrumpe el programa con la instruccion break, ya que
%si mayor=o, mas adelante se obtiene una division por
%cero
else
if filam ~= k
for j=1:(n+1)
aux=C(k,j); %para poder intercambiar las filas, utilizamos una
%variable auxiliar
C(k,j)=C(filam,j);
C(filam,j)=aux;
end
end
end
fprintf('\nLa matriz correspondiente a esta etapa antes del
proceso:\n')
14
disp(C)
fprintf('\nLos Multiplicadores correpondientes a esta etapa
son:\n')

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

for i=(k+1):n
m(i,k)=C(i,k)/C(k,k); %formula multiplicadores
fprintf('\nm(%g,%g)=',i,k)
disp(m(i,k));
for j=k:(n+1)
C(i,j)= C(i,j) - m(i,k)*C(k,j);%formula nueva fila
end
end
fprintf('\nLa matriz correspondiente a esta etapa despues del
proceso:\n')
disp(C)
end
for i=n:-1:1
suma=0;
for p=(i+1):n
suma = suma + C(i,p)*X(p);
end
X(i)=(C(i,n+1)-suma)/C(i,i);
%formula de la susticion regresiva y solucion de las variables
end
else %funcion asignada del if, en caso de que este sea falso
fprintf('\nERROR: La matriz NO es cuadrada\n');
end
fprintf('\n\n SOLUCION:\n');
fprintf('\n\nLa matriz Ab final:\n');
disp(C)
fprintf('\n\nLa solucion de X1 hasta Xn es:\n');
%a continuacion de utiliza una instruccion for, para mostrar el
usuario,
%los resultados de una manera mas ordenada
for i=1:n
Xi=X(1,i);
fprintf('\nX%g=',i)
disp(Xi);
end

Uso de la funcin de eliminacin de Gauss por Pivoteo Parcial


Ejemplo. Desde la ventana de comandos de MATLAB, use la funcin
Gauss para resolver el sistema:

8
1 1 2
2 12 1 1
12 2 12 1
2 1 2 8

][ ] [ ]
x1
30
x2
= 44
20
x3
19
x4

En este caso se podr observar que el 1er elemento pivote de la 1era fila
pivote ser el 8, puesto que es el mayor valor de esa fila luego, de
acuerdo a los clculos observaremos que el procedimiento es casi
idntico al problema resuelto anteriormente.

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Escriba en la ventana de comandos de MATLAB


ELIMINACION GAUSSIANA CON PIVOTEO PARCIAL (SOLUCION POR
ETAPAS)
Ingrese la matriz A = [8 1 1 2;2 12 1 1;1 2 10 1;2 1 2 8]
Ingrese el vector b, correspondite a los terminos independientes
b=[30;44;20;19]

La Matriz C, que corresponte a la matriz aumentada [Ab] es =


8

12

1
2

30

44

10

20

19

ETAPA 1=
La matriz correspondiente a esta etapa antes del proceso:
ans =

14

12

1
2

30

44

10

20

19

Los Multiplicadores correpondientes a esta etapa son:


m(2,1)= 0.250000000000000
m(3,1)= 0.125000000000000
m(4,1)= 0.250000000000000
La matriz correspondiente a esta etapa despues del proceso:
8

0 11.75

1
0.75

2
0.5

0 1.875 9.875 0.75


0 0.75

1.75

7.5

30
36.25
16.25
11.5

ETAPA 2=
La matriz correspondiente a esta etapa antes del proceso:
UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

ans =
8

14

0 11.75

0.75

0.5

0 1.875 9.875 0.75


0 0.75

1.75

7.5

30
36.25
16.25
11.5

Los Multiplicadores correpondientes a esta etapa son:


m(3,2)= 0.159574468085106
m(4,2)= 0.063829787234043
La matriz correspondiente a esta etapa despues del proceso:
8

0 11.75

0.75

2
0.5

9.755319

1.70212

30
36.25

0.6702
7.4680

10.425
9.1702

ETAPA 3=
La matriz correspondiente a esta etapa antes del proceso:
ans =
8

14

0 11.75

1
0.75

2
0.5

9.755319

1.70212

30
36.25

0.6702
7.4680

10.425
9.1702

Los Multiplicadores correpondientes a esta etapa son:


m(4,3)= 0.174482006543075
La matriz correspondiente a esta etapa despues del proceso:
8

0 11.75

1
0.75

2
0.5

9.755319

0.6702

7.3511

30
36.25
10.425
7.3511

SOLUCION:
La matriz Ab final:

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

La solucion de X1 hasta Xn es:


X1=

X2=

X3=

X4= 1
FACTORIZACION DIRECTA DE MATRICES

Dado un sistema de ecuaciones de la forma Ax=b, los mtodos de


factorizacin directa de matrices pretenden descomponer la matriz A en el
producto de dos matrices triangulares L y U, triangular superior y
triangular inferior respectivamente, y las cuales cumplen lo siguiente:
A=LU
Y al realizar esta transformacin, el sistema de ecuaciones
Ax=b
Se transforma en el sistema
LUx=b
Ahora el producto Ux lo podemos sustituir en la expresin LUx=b por una
variable z, donde Ux=z y el sistema resultante es:
Lz=b
Una vez se tiene definido el ultimo sistema, se procede a resolver el
sistema de una manera ms sencilla y reduciendo el error.

Los mtodos de esta seccin son:

Factorizacin LU Doolittle
Factorizacin LU Crout
Factorizacin LU Cholesky

FACTORIZACIN LU DOOLITTLE

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Objetivo del mtodo


El objetivo del mtodo es encontrar una solucin a un sistema de
ecuaciones lineales, basado en la factorizacin LU de la matriz de
coeficientes relacionada al sistema.

Generalidades
Para este mtodo de factorizacin directa de matrices, se utiliza como
fundamento que los valores de la diagonal de la matriz L, son todos uno
(1).
El procedimiento a seguir para la aplicacin del mtodo es el siguiente:
Se debe construir una matriz de coeficientes y el vector con los
trminos independientes, correspondientes al sistema, y se toman como
valores iniciales para poder calcular la factorizacin.
Tomando la matriz de coeficientes, y bajo el fundamento principal del
mtodo, se procese al clculo de las matrices L y U, correspondientes a la
factorizacin de A.
Una vez realizada la factorizacin, se toma la matriz de la factorizacin
U y el vector x y se procede a calcular el vector z.
Ahora con el vector z, el vector de trminos independientes y la matriz
L de la factorizacin, se procede a resolver el sistema Lz=b
Pseudocdigo del mtodo

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Instrumentacin computacional del mtodo de Doolittle


%input es un comando de solicitud de entrada de datos del usuario.
A=input('Ingrese la matriz A = \n');
b=input('\nIngrese el vector b, correspondite a los terminos
independientes b=\n');
[n,m]=size(A);
C=[A,b];
% la matriz C, representa la forma de la matriz aumentada [Ab]
fprintf('\nLa Matriz C, que corresponte a la matriz aumentada [Ab]
es = \n');
disp(C)
if n==m
for k=1:n
%La instruccin iterativa for permite repetir estamentos a
un
%numero especfico de veces
L(k,k)=1; %princio del metodo
suma=0;
for p=1:k-1
suma=suma+L(k,p)*u(p,k);
end
u(k,k)=(A(k,k)-suma);
for i=k+1:n
suma=0;
for r=1:k-1
suma=suma+L(i,r)*u(r,k);
end
L(i,k)=(A(i,k)-suma)/u(k,k); %obtencion de la matriz L
end
for j=k+1:n
suma=0;
for s=1:k-1
suma=suma+L(k,s)*u(s,j);
end
u(k,j)=(A(k,j)-suma); %obtencion de la matriz u
end
end
memoriau=1; %calculo del determinante inicial de u
memoriaL=1;%calculo del determinante de L
for i=1:n
memoriau=memoriau*u(i,i);
end
producto=memoriaL*memoriau; %calculo del determinante total
if producto~=0
for i=1:n
suma=0;
for p=1:i-1
suma=suma+L(i,p)*z(p);
end
z(i)=(b(i)-suma)/L(i,i); %obtencion del vector Z

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

end
for i=n:-1:1
suma=0;
for p=(i+1):n
suma = suma+u(i,p)*x(p);
end
x(i)=(z(i)-suma)/u(i,i); % solcion, calculos de las
variables
end
else

fprintf('\nEl determinante es igual a cero, por lo tanto


el sistema tiene infinita o ninguna solucion\n')
end
end
fprintf('\n
disp(C)
fprintf('\n
disp(L)
fprintf('\n
disp(u)
fprintf('\n
disp(z)

Matriz Ab:\n')
Matriz L:\n')
Matriz U:\n')
El vector Z:\n')

fprintf('\n\nLa solucion de X1 hasta Xn es:\n');


%a continuacion de utiliza una instruccion for, para mostrar el
usuario,
%los resultados de una manera mas ordenada.
for i=1:n
xi=x(1,i);
fprintf('\nX%g=',i)
disp(xi);
end

Ejemplo:
Resuelva el ejemplo anterior usando el mtodo de doolittle mediante
MATLAB:
Ingrese la matriz A =
[8 1 1 2;2 12 1 1;1 2 10 1;2 1 2 8];
Ingrese el vector b, correspondite a los terminos independientes
b=
[30;44;20;19];
La Matriz C, que corresponte a la matriz aumentada [Ab] es =
8
1
1
2 30
2 12
1
1 44
1
2 10
1 20
2
1
2
8 19
Matriz Ab:
8
1
1
2 30
2 12
1
1 44
1
2 10
1 20
UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

2
1
2
8
Matriz L:
1
0
0.25
1
0.125
0.1596
0.25
0.06383
Matriz U:
8
1
0
11.75
0
0
0
0

19
0
0

0
0
0
1

1
0.17448
1
0.75
9.755
0

2
0.5
0.67
7.35

El vector Y:
[ 30 ; 36.5 ;10.4255 ;7.35115]
La solucin de X1 hasta Xn es:
X1=
3
X2=
3
X3=
1
X4=
1
FACTORIZACION LU CROUT

Objetivo del mtodo


El objetivo del mtodo es encontrar una solucin a un sistema de
ecuaciones lineales, basado en la factorizacin LU de la matriz de
coeficientes relacionada al sistema.

Generalidades
Para este mtodo de factorizacin directa de matrices, se utiliza como
fundamento que los valores de la diagonal de la matriz U, son todos uno
(1).
El procedimiento a seguir para la aplicacin del mtodo es el siguiente:
Se debe construir una matriz de coeficientes y el vector con los
trminos independientes, correspondientes al sistema, y se toman como
valores iniciales para poder calcular la factorizacin.
Tomando la matriz de coeficientes, y bajo el fundamento principal del
mtodo, se procese al clculo de las matrices L y U, correspondientes a la
factorizacin de A.

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Una vez realizada la factorizacin, se toma la matriz de la factorizacin


U y el vector x y se procede a calcular el vector z.
Ahora con el vector z, el vector de trminos independientes y la matriz
L de la factorizacin, se procede a resolver el sistema Lz=b
Pseudocdigo del mtodo

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Instrumentacin computacional del mtodo de Crout


%input es un comando de solicitud de entrada de datos del usuario.
A=input('Ingrese la matriz A = \n');
b=input('\nIngrese el vector b, correspondite a los terminos
independientes b=\n');
[n,m]=size(A);
C=[A,b];
% la matriz C, representa la forma de la matriz aumentada [Ab]
fprintf('\nLa Matriz C, que corresponte a la matriz aumentada [Ab]
es = \n');
disp(C)
if n==m
for k=1:n
%La instruccin iterativa for permite repetir estamentos a
un
%numero especfico de veces
u(k,k)=1; %princio del metodo
suma=0;
for p=1:k-1
suma=suma+L(k,p)*u(p,k);
end
L(k,k)=(A(k,k)-suma);
for i=k+1:n
suma=0;
for r=1:k-1
suma=suma+L(i,r)*u(r,k);
end
L(i,k)=(A(i,k)-suma); %obtencion de la matriz L
end
for j=k+1:n
suma=0;
for s=1:k-1
suma=suma+L(k,s)*u(s,j);
end
u(k,j)=(A(k,j)-suma)/L(k,k); %obtencion de la matriz U
end
end
memoriau=1; %calculo del determinante de u
memoriaL=1; %calculo del determinante inicial de L
for i=1:n
memoriaL=memoriaL*L(i,i);
end
producto=memoriaL*memoriau; %calculo del determinante total
if producto~=0

for i=1:n
suma=0;
for p=1:i-1
suma=suma+L(i,p)*z(p);
end
z(i)=(b(i)-suma)/L(i,i); %obtencion del vector Z

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

end
for i=n:-1:1
suma=0;
for p=(i+1):n
suma = suma+u(i,p)*x(p);
end
x(i)=(z(i)-suma)/u(i,i); % solcion, calculos de las
variables
end
else
fprintf('\nEl determinante es igual a cero, por lo tanto
el sistema tiene infinita o ninguna solucion\n')
end
end
fprintf('\n Matriz Ab:\n')
disp(C)
fprintf('\n Matriz L:\n')
disp(L)
fprintf('\n Matriz U:\n')
disp(u)
fprintf('\n El vector Z:\n')
disp(z)
fprintf('\n\nLa solucion de X1 hasta Xn es:\n');
%a continuacion de utiliza una instruccion for, para mostrar el
usuario,
%los resultados de una manera mas ordenada
for i=1:n
xi=x(1,i);
fprintf('\nX%g=',i)
disp(xi);
end

Ejemplo:
Resuelva el ejemplo anterior usando el mtodo de Crout
mediante MATLAB:
Ingrese la matriz A =
[8 1 1 2;2 12 1 1;1 2 10 1;2 1 2 8];
Ingrese el vector b, correspondite a los terminos
independientes b=
[30;44;20;19];
La Matriz C, que corresponte a la matriz aumentada [Ab]
es =
8
1
1
2 30
2 12
1
1 44
1
2 10
1 20
2
1
2
8 19
Matriz Ab:
8
1
1
2 30
2 12
1
1 44
1
2 10
1 20
2
1
2
8 19

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Matriz L:
8
0
0
0
2 11.75
0
0
1 1.875
9.755
0
2
0.75
1.702
7.35115
Matriz U:
1
0.125
0.125
0.25
0
1
0.06383
0.043
0
0
1
0.0687
0
0
0
1
El vector Y:
[3.75 ; 3.106383 ; 1.0687 ; 1]
La solucion de X1 hasta Xn es:
X1=
3
X2=
3
X3=
1
X4=
1
Ejemplo
Del siguiente sistema: (Sin usar MATLAB)

8 1 1 2
2 12 1 1
1 2 10 1
2 1 2 8

][ ] [ ]
x1
30
x2
= 44
20
x3
19
x4

a) Resolver usando el mtodo de Doolittle.


b) Resolver usando el mtodo de Crout.
Solucin
a) En el mtodo de Doolittle , se procede descomponiendo la matriz
de la siguiente forma:

][

1 0 0
8 1 1 2
2 12 1 1 = l 21 1 0
1 2 10 1
l 31 l 32 1
2 1 2 8
l 41 l 42 l 43

][

u 11 u12 u13
0
0
0 u22 u23

0
0
0 u33
1
0
0
0

u14
u24
u34
u 44

De aqu obtenemos los siguientes valores:

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

l 21=0.250

u11 =8

l 31 = 0.125

u12 =1

l 32 = 0.159

u13=1

l 41 = 0.250

u14=2

l 42=0.064

u22=11.75

l 43=0.174

u23=0.75
u24=0.5
u33=9.755
u34=0.68
u44 =7.350

Luego, sabemos que:


LY=B

1
0
0
0.250
1
0
0.125 0.159
1
0.250 0.064 0.174

][ ][ ]

y1
0
30
y
0 2 = 44
0
20
y3
1
19
y4

Se obtiene:
y 1=30
y 2=36.5
y 3=10.4465
y 4 =7.35

Finalmente:
UX=Y

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

][][ ]

x1
8
1
1
2
30
x
0 11.75 0.75
0.5 2 = 36.5
0
0
9.755 0.68
10.4465
x3
0
0
0
7.350
7.35
x4

Se obtiene:

x 1=3
x 2=3
x 3=1
x 4=1

b) En el mtodo de Crout, se procede descomponiendo la matriz de la


siguiente forma:

][

][

l 11 0 0 0
1 u12 u13 u14
8 1 1 2
2 12 1 1 = l 21 l 22 0 0 0 1 u23 u24
1 2 10 1
l 31 l 32 l 33 0
0 0
1 u34
2 1 2 8
l 41 l 42 l 43 l 44
0 0
0
1

De aqu obtenemos los siguientes valores:

l 11=8

u12=0.125

l 21 = 2

u13=0.125

l 22 =11.75

u14=0.250

l 31 = 1

u23=0.0639

l 32 = 1.875

u24=0.0425

l 33= 9.755

u34=0.0687

l 41=2

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

l 42=0.75
l 43=1.702
l 44=7.3511

Luego, sabemos que:


LY=B

][][ ]

y1
8
0
0
0
30
2 11.75
0
0 y 2 = 44
1 1.875 9.755
0
20
y3
2 0.75 1.702 7.3511
19
y4

Se obtiene:
y 1=3.75
y 2=3.106
y 3=1.0688
y 4 =1

Finalmente:
UX=Y

][][ ]

x1
1 0.125 0.125 0.250
3.75
0
1
0.0639 0.0425 x 2 = 3.106
0
0
1
0.0687
1.0688
x3
0
0
0
1
1
x4

Se obtiene:

x 1=3
x 2=3

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

x 3=1
x 4=1

FACTORIZACION LU CHOLESKY

Objetivo del mtodo


El objetivo del mtodo es encontrar una solucin a un sistema de
ecuaciones lineales, basado en la factorizacin LU de la matriz de
coeficientes relacionada al sistema.

Generalidades
Para este mtodo de factorizacin directa de matrices, se utiliza como
fundamento que los valores de la diagonal de la matriz U son iguales a los
de la matriz L, sea Ukk=Lkk.
El procedimiento a seguir para la aplicacin del mtodo es el siguiente:
Se debe construir una matriz de coeficientes y el vector con los
trminos independientes, correspondientes al sistema, y se toman como
valores iniciales para poder calcular la factorizacin.
Tomando la matriz de coeficientes, y bajo el fundamento principal del
mtodo, se procese al clculo de las matrices L y U, correspondientes a la
factorizacin de A.
Una vez realizada la factorizacin, se toma la matriz de la factorizacin
U y el vector x y se procede a calcular el vector z.
Ahora con el vector z, el vector de trminos independientes y la matriz
L de la factorizacin, se procede a resolver el sistema Lz=b
Pseudocdigo del mtodo

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Instrumentacin computacional del mtodo de Cholesky

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

%input es un comando de solicitud de entrada de datos del usuario.


A=input('Ingrese la matriz A = \n');
b=input('\nIngrese el vector b, correspondite a los terminos
independientes b=\n');
% Las matrices A y b deben ser ingresadas entre corchetes
separando las
%columnas mediante coma ',' y las filas mediante punto y coma ';'.
[n,m]=size(A);
C=[A,b];
% la matriz C, representa la forma de la matriz aumentada [Ab]
disp(C)
if n==m
for k=1:n
%La instruccin iterativa for permite repetir estamentos a
un
%numero especfico de veces
suma1=0;
for p=1:k-1
suma1=suma1+L(k,p)*u(p,k);
end
L(k,k)=sqrt(A(k,k)-suma1);
u(k,k)=L(k,k); %princio del metodo
for i=k+1:n
suma2=0;
for q=1:k-1
suma2=suma2+L(i,q)*u(q,k);
end
L(i,k)=(A(i,k)-suma2)/L(k,k); %obtencion de la matriz
L
end
for j=k+1:n
suma3=0;
for r=1:k-1
suma3=suma3+L(k,r)*u(r,j);
end
u(k,j)=(A(k,j)-suma3)/L(k,k); %obtencion de la matriz
U
end
end
producto=det(L)*det(u) %calculo del determinante
if producto~=0
for i=1:n
suma=0;
for p=1:i-1
suma=suma+L(i,p)*z(p);
end
z(i)=(b(i)-suma)/L(i,i); %obtencion del vector Z
end
for i=n:-1:1
suma=0;
for p=i+1:n
suma = suma+u(i,p)*x(p);
end
x(i)=(z(i)-suma)/u(i,i); % solcion, calculos de las
variables
end

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

else
fprintf('\nEl determinante es igual a cero, por lo tanto
el sistema tiene infinita o ninguna solucion\n')
end
end
fprintf('\n Matriz Ab:\n')
disp(C)
fprintf('\n Matriz L:\n')
disp(L)
fprintf('\n Matriz U:\n')
disp(u)
fprintf('\n El vector Z:\n')
disp(z)
fprintf('\n\nLa solucion de X1 hasta Xn es:\n');
%a continuacion de utiliza una instruccion for, para mostrar el
usuario,
%los resultados de una manera mas ordenada
for i=1:n
xi=x(1,i);
fprintf('\nX%g=',i)
disp(xi);
end

Ejemplo:
Resuelva el ejemplo anterior
Cholesky mediante MATLAB:

usando

el

mtodo

de

Ingrese la matriz A =
[8 1 1 2;2 12 1 1;1 2 10 1;2 1 2 8];
Ingrese el vector b, correspondite a los terminos
independientes b=
[30;44;20;19];
8
1
1
2 30
2 12
1
1 44
1
2 10
1 20
2
1
2
8 19
producto =
6.741000000000002e+003
Matriz Ab:
8
1
1
2 30
2 12
1
1 44
1
2 10
1 20
2
1
2
8 19
Matriz L:
2.82843
0
0
0
0.70711
3.4278
0
0
UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

0.35355
0.547
3.1234
0
0.70711
0.2188
0.545
2.7113
Matriz U:
2.82843
0.35355
0.35355
0.70711
0
3.42783
0.2188
0.14587
0
0
3.1234
0.21458
0
0
0
2.7113
El vector Z:
[ 10.6066 ; 10.648 ; 3.337932 ; 2.7113 ]
La solucion de X1 hasta Xn es:
X1= 3
X2= 3
X3= 1
X4= 1
METODOS ITERATIVOS

Estos mtodos utilizan frmulas iterativas para acercarse a la


respuesta mediante aproximaciones sucesivas.
Para usar un mtodo iterativo, se expresa el sistema AX = B en
la forma X = G(X) con el mismo fundamento descrito en el
mtodo del Punto Fijo para resolver una ecuacin no lineal.

Los mtodos iterativos para la solucin de sistemas de ecuaciones


lineales de la forma Ax=b, son muy tiles para la aproximacin de los
valores de las variables, pero se debe tener en cuenta que la matriz A es
una matriz no singular de orden nxn con elementos en la diagonal
principal no nulos.

El soporte de los argumentos de estos mtodos, es el mtodo de punto


fijo, en este sentido se debe entender que un mtodo iterativo para la
solucin de sistemas de ecuaciones se comporta que a partir de un vector
de aproximaciones iniciales, genera la solucin del problema por una
serie de iteraciones.

Los mtodos de esta seccin son:

Mtodo de Jacobi
Mtodo de Gauss Seidel
Mtodo de Gauss Seidel con Relajacin

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

METODO DE JACOBI

OBJETIVO:
Encontrar las aproximaciones de los valores de las variables de un
sistema de ecuaciones lineales, por medio de la realizacin de varios
clculos, los cuales se realizan por etapas, obteniendo as
aproximaciones por cada etapa.

GENERALIDADES:
El mtodo de Jacobi permite hallar las aproximaciones a una solucin de
sistemas de ecuaciones lineales, utilizando los valores iniciales para la
primera aproximacin, luego los de la primera para la segunda y as
sucesivamente; en este mtodo el clculo de cada variable es
independiente por lo tanto ninguna variable depende de la otra.
El procedimiento a seguir para la aplicacin del mtodo es el siguiente:
Se debe introducir unas aproximaciones iniciales, la matriz de
coeficientes, el vector de trminos independientes, una tolerancia y un
nmero total de iteraciones.
Se toman las aproximaciones iniciales para hallar las
aproximaciones, teniendo en cuenta el fundamento del mtodo.

nuevas

En cada paso, es posible calcular el error, que es este caso est definido
en normas (las cuales son infinitas).
Para la finalizacin del programas se tiene en cuenta, si el programa
sobrepasa el numero de iteraciones, o si el error es menor del propuesto
al principio; una vez ocurra alguna de estas dos situaciones, la ltima
iteracin tendr las aproximaciones a la solucin del sistema de
ecuaciones estudiado.

DEFINICION:
Dado un sistema de ecuaciones lineales
a11 x 1+ a12 x 2 ++ a1 n x n=b 1
a21 x 1 +a 22 x2 + + a2 n xn =b2

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

an 1 x1 +a n 2 x 2+ +a nn x n=b n
Expresado abreviadamente en notacin matricial: AX = B
Una forma simple para obtener la forma X=G(X) consiste en re-escribir el
x1
sistema despejando de la ecuacin i la variable
a condicin de que
aij

sea diferente de 0:

x 1=

b1a 12 x2 a1 n x n
a11

x 2=

b2a 21 x 1a2 n x n
a22

x n=

bnan 1 x 1a nn1 x n1
ann

El cual puede escribirse con la notacin de sumatoria:


i1

) (

1
1
x i=
b i a ij x j a ij x j =
b a x ; i=1,2, , n
aii
aii i j =1, j i ij j
j=1
j=i+1
El sistema est en la forma X = G(X) la cual sugiere su uso iterativo.
Utilizamos un ndice para indicar iteracin:
X (k+1)=G ( X (k )) , k =0,1,2, (iteraciones)
Frmula iterativa de Jacobi:
x i(k+1) =

1
b a x ( k ) ; i=1,2, , n; k=0,1,2,. .
aii i j=1, j i ij j

X ( 0) es el vector inicial. A partir de este vector se obtienen


sucesivamente los vectores

X ( 1) , X ( 2) ,

Si el mtodo converge, entonces

X ( k ) tiende a la solucin X a medida

que k crece:
X

( k)
k

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Ejercicio:
Dadas las ecuaciones:
8 x 1+ x 2 + x 3+ 2 x 4 =30
2 x 1 +12 x 2 + x 3 + x 4=44
x 1+2 x 2+ 10 x 3 + x 4=20
2 x 1 + x 2+ 2 x 3 +8 x 4=19
Formule el sistema con el mtodo jacobi
x 1(k+1) =1/8(30x2(k)x 3(k )2 x 4(k) )
x 2(k+1) =1/12(442 x1(k)x 3(k )x 4(k))
x 3(k+1) =1/10(20x1(k)2 x 2(k)x 4(k) )
x 4(k +1)=1/8 ( 192 x1( k )x 2(k )2 x3( k ) )

k =0,1,2,3
Realice 2 iteraciones, comenzando con los valores iniciales
0
0
0
0
x 1 =x 2 =x3 =x 4 =2
k =0 :

x 1(1)=

1
1
( 30x 2(0 )x 3(0)2 x 4( 0) )= 8 ( 30(2)(2)2 ( 2 ) ) =2.75
8

x 2(1)=

1
1
442 x 1( 0 )x 3(0)x 4(0 )) = ( 442(2)(2)(2) )=3
(
12
12

x 3(1)=

1
1
20x 1(0 )2 x 2(0 )x 4(0 ) )= ( 20(2)2(2)(2) )=1.2
(
10
10

(1)

x4 =

1
1
192 x 1(0 )x 2(0)2 x 3(0 )) = ( 192(2)(2)2(2) ) =1.125
(
8
8

k =1:
(2)

x1 =

1
1
30x 2(1 )x3( 1)2 x 4(1 )) = ( 30(3)(1.2)2 ( 1.125 ) )=2.94375
(
8
8

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

(2)

x2 =
(2)

x3 =
(2)

x4 =

1
1
(1)
442 x 1 x3( 1)x 4( 1) )= ( 442(2.75)(1.2)(1.125) )=3.0146
(
12
12
1
1
(1)
20x 1 2 x 2(1) x 4(1) ) = ( 20(2.75)2(3)(1.125) )=1.0125
(
10
10
1
1
(192 x 1(1) x 2( 1)2 x 3(1) )= 8 ( 192( 2.75)(3)2(1.2))=1.0125
8

Pseudocodigo del mtodo

Manejo computacional de la frmula de Jacobi


La siguiente funcin en MATLAB recibe un vector X y entrega un nuevo
vector X calculado en cada iteracin
function x = jacobi(a,b,x)
n=length(x);
t=x;
%t es asignado con el vector X
ingresado
for i=1:n
s=a(i,1:i-1)*t(1:i-1)+a(i,i+1:n)*t(i+1:n);
x(i)=(b(i)-s)/a(i,i);
end

Uso de la funcin jacobi para el ejemplo anterior:


>> a=[8 1 1 2;2 12 1 1;1 2 10 1;2 1 2 8];
>> b=[30;44;20;19];
>> x=[2;2;2;2];
vector inicial
>> x=jacobi(a,b,x)
repita este comando y observe
la convergencia
x=
2.7500
3.0000
1.2000
UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

1.1250
>> x=jacobi(a,b,x)
x=
2.9438
3.0146
1.0125
1.0125
>> x=jacobi(a,b,x)
x=
2.9935
3.0073
1.0015
1.0091

etc.

Instrumentacin computacional del mtodo de Jacobi


La siguiente funcin en MATLAB recibe la matriz de coeficientes a y el
vector de constantes b de un sistema lineal. Adicionalmente recibe un
vector inicial x, la estimacin del error e y el mximo de iteraciones
permitidas m. La funcin entrega el vector x calculado y el nmero de
iteraciones realizadas k. Si el mtodo no converge, x contendr un vector
nulo y el nmero de iteraciones k ser igual al mximo m.
function [x,k] = jacobim(a,b,x,e,m)
n=length(x);
for k=1:m
t=x;
for i=1:n
s=a(i,1:i-1)*t(1:i-1)+a(i,i+1:n)*t(i+1:n);
x(i)=(b(i)-s)/a(i,i);
end
if norm((x-t),inf)<e
return
end
end
x=[];
k=m;

Ejemplo
Use la funcin jacobim para encontrar el vector solucin del ejemplo
anterior con una precisin de 0.001 Determine cuantas iteraciones se
realziaron. Comenzar con el vector inicial x= [2; 2; 2; 2]
>>
>>
>>
>>

a=[8 1 1 2;2 12 1 1;1 2 10 1;2 1 2 8];


b=[30;44;20;19];
x=[2;2;2;2];
[x,k]=jacobim(a,b,x,0.001,20)

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

x=
3.0001
3.0001
1.0001
1.0002
k=
7
Forma matricial del Mtodo de Jacobi
Dado el sistema de ecuaciones lineales
AX = B
La matriz A se re-escribe como la suma de tres matrices:
A=L+D+U
D es una matriz diagonal con elementos iguales a los elementos de la
diagonal principal de A
L es una matriz triangular inferior con ceros en la diagonal principal y los
otros elementos iguales a los elementos respectivos de la matriz A
U es una matriz triangular superior con ceros en la diagonal principal y los
otros elementos iguales a los elementos respectivos de la matriz A
En forma desarrollada:

a11 a12 a1 n

A= a21 a22 a2 n =

an 1 an 2 ann

0
0
0
L+ D+ U= 0

an 1 a n 2

][

a11
0
0
0 + 0 a22

0
0
0

0 0

][

a12 a1 n

0 0 + 0 0 a2 n

0 a nn
0 0 0
0

Sustituyendo en la ecuacin:
(L + D + U)X = B
LX + DX + UX = B
X = D-1B D-1LX D-1UX, Siempre que D-1 exista
Ecuacin recurrente del mtodo de Jacobi segn el mtodo del Punto Fijo
X = G(X)
X = D-1B - D-1 (L + U)X
En donde

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

A=[aij ]nxn , D=[aii ]nxn , D =[d ii ]nxn , dii =

1
aij

Ecuacin recurrente desarrollada

[][ ][

][ ]

x1
b1 /a11
0
a 12/a 11 a13 /a11 a1 n /a11 x 1
x2
b /a
0
a23 /a22 a2 n /a 22 x 2
= 2 22 a 21/a 22

xn
b n /ann
an 1 /ann an 2 /ann a n3 /ann
0
xn

Frmula recurrente iterativa:


X(k+1)= D-1B - D-1(L+U)X(k)

k=0,1,2,..

(iteraciones)

Frmula iterativa con las matrices desarrolladas

[ ][ ][

][ ]

(k)
x1(k+1) b 1 /a11
0
a 12/ a 11 a 13 /a 11 a1 n /a11 x 1
(k)
x 2(k+1) = b 2 /a22 a 21/a 22
0
a23 /a22 a2 n /a22 x 2

(k+1)
b n /ann
an 1 /ann a n 2 / ann a n3 /a nn
0
xn
x n(k )

X(0) es el vector inicial. A partir de este vector se obtienen sucesivamente


los vectores X(1), X(2), ...
Si el mtodo converge, entonces la sucesin {X
vector solucin X

UNIVERSIDAD NACIONAL DE INGENIERA

(k)

}k=0,1,2,.. tiende al

Pgina

METODO DE GAUSS-SEIDEL

OBJETIVO:
Encontrar las aproximaciones de los valores de las variables de un
sistema de ecuaciones lineales, por medio de la realizacin de varios
clculos, los cuales se realizan por etapas, obteniendo as
aproximaciones por cada etapa.

GENERALIDADES:
El mtodo de gauss Seidel permite hallar las aproximaciones a una
solucin de sistemas de ecuaciones lineales, utilizando los valores
calculados en cada uno de los pasos, para hallar los nuevos valores, en
pocas palabras, en este mtodo un clculo siempre depende del anterior,
dependiendo las variables de otras variables.
El procedimiento a seguir para la aplicacin del mtodo es el siguiente:
Se debe introducir unas aproximaciones iniciales, la matriz de
coeficientes, el vector de trminos independientes, una tolerancia y un
nmero total de iteraciones.
Se toman las aproximaciones iniciales para hallar las
aproximaciones, teniendo en cuenta el fundamento del mtodo.

nuevas

En cada paso, es posible calcular el error, que es este caso est definido
en normas (las cuales son infinitas).
Para la finalizacin del programas se tiene en cuenta, si el programa
sobrepasa el numero de iteraciones, o si el error es menor del propuesto
al principio; una vez ocurra alguna de estas dos situaciones, la ltima
iteracin tendr las aproximaciones a la solucin del sistema de
ecuaciones estudiado.

DEFINICION:
Se diferencia del mtodo anterior al uitilizar los valores ms recientes del
vector X, es decir aquellos que ya estn calculados, en lugar de los
valores de la iteracin anterior como en el mtodo de Jacobi. Por este
motivo, podemos suponer que el mtodo de Gauss-Seidel en general
converge o diverge ms rpidamente que el mtodo de Jacobi.
Formulacin matemtica

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

La frmula de Gauss-Seidel se la obtiene directamente de la frmula de


Jacobi separando la sumatoria en dos partes: los componentes que an
no han sido calculados se los toma de la iteracin anterior k, mientras que
los que ya estn calculados, se los toma de la misma iteracin k+1:
x i(k+1) =

i1

1
b a x (k +1) aij x j(k) ; i=1,2, , n ; k =0,1,2,
aii i j=1 ij j
j=i+1

En general, el mtodo de Gauss-Seidel requiere menos iteraciones que el


mtodo de Jacobi en caso de que converja
Ejercicio:
Se desea resolver el siguiente sistema usando el mtodo
iterativo de Gauss-Seidel
8
1 1 2 x1
30
2 12 1 1 x 2 = 44
20
12 2 12 1 x 3
19
2 1 2 8 x4

][ ] [ ]

Transformando la matriz de coeficiente en un sistema de


ecuaciones
8 x 1+ x 2 + x 3+ 2 x 4 =30
2 x 1 +12 x 2 + x 3 + x 4=44
x 1+2 x 2+ 10 x 3 + x 4=20
2 x 1 + x 2+ 2 x 3 +8 x 4=19
Formule el sistema con el mtodo Gauss-Seidel
(k+1)

=1/8(30x2 x 3 2 x 4 )

(k+1)

=1/12(442 x1

(k+1)

=1/10(20x1

x1
x2

x3

(k)

(k )

(k+1)

(k+1)

(k)

(k)

(k)

x3 x 4 )
(k+ 1)

2 x 2

(k)

x 4 )

x 4(k +1)=1/8 ( 192 x1( k+1) x2( k+1)2 x 3(k +1) )

k =0,1,2,3

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

Realice 2 iteraciones, comenzando con los valores iniciales


0
0
0
0
x 1 =x 2 =x3 =x 4 =2
k =0 :

x 1(1)=

1
1
30x 2(0 )x 3(0)2 x 4( 0) ) = ( 30(2)(2)2 ( 2 ) ) =2.75
(
8
8

x 2(1)=

1
1
442 x 1( 1 )x3( 0)x 4 (0) ) = ( 442(2.75)(2)(2) )=2.875
(
12
12

x 3(1)=

1
1
20x 1(1)2 x 2(1) x 4(0 )) = ( 20(2.75)2( 2.875)(2) )=0.95
(
10
10

(1)

x4 =

1
1
(192 x 1(1 )x 2( 1)2 x 3(1) )= 8 ( 192( 2.75)(2.875)2(0.95)) =1.091
8

k =1:
(2)

x1 =

1
1
( 30x 2(1 )x3( 1)2 x 4(1 ))= 8 ( 30(2.875)(0.95)2 ( 1.091 ) )=2.9992
8

x2 =

1
1
(1)
442 x 1 x3( 1)x 4( 1) )= ( 442(2.9992)(0.95)(1.091) )=2.9967
(
12
12

x 3(2)=

1
1
( 20x 1(1)2 x 2(1) x 4(1) )= 10 ( 20(2.9992)2(2.9967)(1.091)) =0.9917
10

x 4(2) =

1
1
192 x 1(1) x 2( 1)2 x 3(1) ) = ( 192( 2.9992)2.99672( 0.9917) ) =1.0027
(
8
8

(2)

Manejo computacional de la frmula de Gauss-Seidel


La siguiente funcin en MATLAB recibe un vector X y entrega un nuevo
vector X calculado en cada iteracin
function x=gaussseidel(a,b,x)
n=length(x);
for i=1:n
s=a(i,1:i-1)*x(1:i-1)+a(i,i+1:n)*x(i+1:n);
x(i)=(b(i)-s)/a(i,i);
end

Resuelva el ejemplo anterior usando la funcin gaussseidel:


>> a=[8 1 1 2;2 12 1 1;1 2 10 1;2 1 2 8];
>> b=[30;44;20;19];
>> x=[2;2;2;2];
vector inicial

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

>> x=gaussseidel(a,b,x)
observar la convergencia
x=
2.7500
2.8750
0.9500
1.0906
>> x=gaussseidel(a,b,x)
x=
2.9992
2.9967
0.9917
1.0027
>> x=gaussseidel(a,b,x)
x=
3.0008
3.0003
0.9996
0.9999
etc.

Repetir

este

comando

En general, la convergencia es ms rpida que con el mtodo de


jacobi
Instrumentacin computacional del mtodo de Gauss-Seidel con
control de iteraciones
En la prctica, resulta laborioso realizar las iteraciones controlando desde
la ventana de comandos llamando repetidamente a la funcin. Es
preferible que las iteraciones sean controladas dentro de la funcin,
suministrando los parmetros apropiados.
La siguiente funcin en MATLAB recibe la matriz de coeficientes a y el
vector de constantes b de un sistema lineal. Adicionalmente recibe un
vector inicial x, el criterio de error e y el mximo de iteraciones permitidas
m. La funcin entrega el vector x calculado y el nmero de iteraciones
realizadas k. Si el mtodo no converge, x contendr un vector nulo y el
nmero de iteraciones k ser igual al mximo m.
function [x,k]=gaussseidelm(a,b,x,e,m)
n=length(x);
for k=1:m
t=x;
for i=1:n
s=a(i,1:i-1)*x(1:i-1)+a(i,i+1:n)*x(i+1:n);
x(i)=(b(i)-s)/a(i,i);
end
if norm((x-t),inf)<e
return
end
end
UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

x=[];
k=m;
Ejemplo
Use la funcin gaussseidelm para encontrar el vector solucin del ejemplo
anterior con una precisin de 0.001 y determine cuntas iteraciones se
realizaron si se comienza con el vector inicial x= [2; 2; 2; 2]

>> a=[8 1 1 2;2 12 1 1;1 2 10 1;2 1 2 8];


>> b=[30;44;20;19];
>> x=[2;2;2;2];
>> [x,k]=gaussseidelm(a,b,x,0.001,20)
x=
3.0000
3.0000
1.0000
1.0000
k=
4
Forma matricial del Mtodo de Gauss-Seidel
Dado el sistema de ecuaciones lineales
AX = B
La matriz A se re-escribe como la suma de tres matrices:
A=L+D+U
D es una matriz diagonal con elementos iguales a los elementos de la
diagonal principal de A
L es una matriz triangular inferior con ceros en la diagonal principal y los
otros elementos iguales a los elementos respectivos de la matriz A
U es una matriz triangular superior con ceros en la diagonal principal y los
otros elementos iguales a los elementos respectivos de la matriz A
Sustituyendo en la ecuacin:
(L + D + U)X = B
LX + DX + UX = B
X = D-1B - D-1LX - D-1UX, Siempre que D-1 exista
Ecuacin recurrente con las matrices desarrolladas

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

[][ ][

0
a21
x1
b1 /a11
x2
b /a
= 2 22 a22

an1
xn
b n /ann
ann

][ ] [ ][ ]

0 0 0
0

an 2
ann

x
0 1
x
2 0

0 xn
0

an 3
a nn

a12
a11

a13
a
1n
a 11
a11 x1
x2
a23
a
2n

a22
a22
x

n
0
0

El sistema est en la forma recurrente del punto fijo X = G(X) que sugiere
su uso iterativo. En el mtodo de Gauss-Seidel se utilizan los valores
recientemente calculados del vector X.
Frmula iterativa
X(k+1)= D-1B - D-1LX(k+1)- D-1UX(k)

k=0,1,2,..

X(0) es el vector inicial. A partir de este vector se obtienen sucesivamente


los vectores X(1), X(2), ...
Si el mtodo converge, entonces la sucesin {X
vector solucin X

(k)

}k=0,1,2,.. tiende al

Frmula matricial iterativa del mtodo de Gauss-Seidel:

[ ][ ][
(k+1)

x1
(k+1)
x2

(k+1)
xn

0
a21
b 1 /a11
b /a
= 2 22 a22

a n1
b n /ann
ann

0 0 0
0

an 2
ann

an 3
a nn

][ ] [
(k +1)

x1
0
(k +1)
x
0
2

0 x (k +1)
n
0

a 12
a11
0

][ ]

a13
a
1n
(k )
a11
a 11 x 1
(k )
a23
a 2n x 2

a22
a22
x n(k)

0
0

Contexto aplicado a la ingeniera segn el mtodo de gauss-seidel


Adems de evitar el problema de redondeo, la tcnica de Gauss-Seidel
tiene muchas otras ventajas que la hacen particularmente atractiva en el
contexto de ciertos problemas de ingeniera. Por ejemplo, cuando la
matriz en cuestin es muy grande y esparcida (es decir, cuando la
mayora de los elementos son cero), los mtodos de eliminacin
desperdician grandes cantidades de memoria de cmputo al guardar
ceros.
Al inicio de este captulo se vio cmo esta desventaja se puede evitar si la
matriz de coeficientes es bandeada. Para sistemas que no tienen la forma
de banda, generalmente no existe una forma simple para evitar los
grandes requerimientos de memoria cuando se utilizan los mtodos de
eliminacin. Como todas las computadoras tienen una cantidad de

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

memoria finita, esta ineficiencia llega a poner una limitacin al tamao de


los sistemas, para los cuales los mtodos de eliminacin resultan
prcticos.
Aunque un algoritmo general es propenso a la misma restriccin, la
estructura de las ecuaciones de Gauss-Seidel permite que se desarrollen
programas concisos para sistemas especficos. Como slo se necesita
incluir coeficientes que no sean cero en la ecuacin, es posible lograr
grandes ahorros en la memoria de la computadora. Aunque esto implica
ms inversin en el desarrollo de software, las ventajas a largo plazo son
sustanciales cuando se tiene grandes sistemas, en los cuales se ejecutan
muchas simulaciones. Tanto sistemas de variables localizadas como
distribuidas pueden dar como resultado matrices grandes y muy
esparcidas donde el mtodo de Gauss-Seidel tiene utilidad.
APORTES ADICIONALES
Cmo se usa el Matlab en la industria?
La habilidad de usar herramientas tales como Matlab se convertido
rpidamente en un requisito indispensable para muchos puesto de
ingeniera, el Matlab se usa muchsimo en muchos campos de la
ingeniera y ciencias, aplicaciones donde se usa el Matlab.
Aplicaciones de la Ingeniera Electrnica
La ingeniera electrnica es una de las ramas ms importantes de la
ingeniera por el gran nmero de especializaciones que de ella emanan. A
travs de esta subseccin pretendemos ejemplificar aplicaciones de
cuatro de estas especialidades tratando de abarcar el panorama ms
amplio posible para que el usuario conozca la mayor cantidad de
funciones que sea posible.
1.- El primer ejemplo muestra el proceso de modulacin conocido como
de Amplitud Modulada. Procedimiento mediante el cual, la seal que
contiene la informacin (conocida como moduladora) se monta sobre otra
seal de tipo portadora y se vara levemente su amplitud dependiendo de
los datos a transmitir. Una vez transmitida, el dispositivo receptor
demodular la seal y recuperar la informacin. El proceso es bastante
sencillo y se reproduce a travs de las definiciones de las seales en el
ejemplo.

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

2.- El segundo ejemplo consiste en generar lo que los especialistas


conocen como el espectro de potencia de la seal transmitida. Esto se
logra mediante la transformada rpida de Fourier, concepto que es muy
conocido dentro del rea de transmisin de seales y que posee su propia

funcin dentro de MatLab (fft).

Aplicaciones en la Estadstica
1.- Siguiendo nuestra poltica, el primer ejemplo es como siempre el ms
sencillo, de esta forma decidimos nicamente, incluir funciones de uso

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

frecuente en aplicaciones estadsticas tales como normrnd que genera


una matriz aleatoria normal, y a partir de la cual, mostramos y
comentamos funciones para determinar tanto la media por columnas (u=
mean(M)), media total de la muestra, (u2 = mean(u)), mediana por
columnas (v = median (M)) desviacin estndar por columnas
(w=std(M)), varianza por columnas (x = var(M)), covarianza de la
muestra (y=cov(M)) y por ltimo el coeficiente de correlacin de la
muestra (z=corrcoef(M)).

2.Segundo
ejemplo
corresponde ya a una aplicacin netamente estadstica como se daran en
investigaciones reales, utilizando ya, adems de las funciones ya
conocidas por el usuario, las nuevas funciones que hemos desarrollado.
En este caso el ejemplo, genera estadsticas relacionadas a ciertos datos
referentes a la presin sangunea registrada en determinada cantidad de
pacientes muestra.

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina

UNIVERSIDAD NACIONAL DE INGENIERA

Pgina