Sie sind auf Seite 1von 15
1. Objetivo .  Analizar, comprender y aplicar la resolución de sistemas de ecuaciones lineales

1. Objetivo.

Analizar, comprender y aplicar la resolución de sistemas de ecuaciones lineales por el método de Cholesky. Realizar el codificado de un algoritmo para resolver un sistema de ecuaciones por el método de Cholesky.

2. Fundamento Teórico.

La factorización de Cholesky toma su nombre del matemático André-Louis Cholesky, quien encontró que una matriz simétrica definida positiva puede ser descompuesta como el producto de una matriz triangular inferior y la traspuesta de la matriz triangular inferior. La matriz triangular inferior es el triangulo de Cholesky de la matriz original positiva definida. El resultado de Cholesky ha sido extendido a matrices con entradas complejas. Es una manera de resolver sistemas de ecuaciones matriciales y se deriva de la factorización LU con una pequeña variación.

Cualquier matriz cuadrada A con pivotes no nulos puede ser escrita como el producto de una matriz triangular inferior L y una matriz triangular superior U; esto es llamada la factorización LU. Sin embargo, si A es simétrica y definida positiva, se pueden escoger los factores tales que U es la transpuesta de L, y esto se llama la descomposición o factorización de Cholesky. Tanto la descomposición LU como la descomposición de Cholesky son usadas para resolver sistemas de ecuaciones lineales. Cuando es aplicable, la descomposición de Cholesky es dos veces tan eficiente como la descomposición LU.

En general, si A es Hermitiana y definida positiva, entonces A puede ser descompuesta como

positiva , entonces A puede ser descompuesta como donde L es una matriz triangular inferior con

donde L es una matriz triangular inferior con entradas diagonales estrictamente positivas, y L * representa la conjugada traspuesta de L. Esta es la descomposición de Cholesky.

La descomposición de Cholesky es única: dada una matriz Hermitiana positiva definida A, hay una única matriz triangular inferior L con entradas diagonales estrictamente positivas tales que A = LL * . El recíproco se tiene trivialmente: si A se puede escribir como LL * para alguna matriz invertible L, triangular inferior o no, entonces A es Hermitiana y definida positiva.

El requerimento de que L tenga entradas diagonales estrictamente positivas puede extenderse para el caso de la descomposición en el caso de ser semidefinida positiva. La proposición se lee ahora:

Una matriz cuadrada A tiene una descomposición de Cholesky si y sólo si A es Hermitiana y semidefinida positiva. Las factorizaciones de Cholesky para matrices semidefinidas positivas no son únicas en general.

En el caso especial que A es una matriz positiva definida simétrica con entradas reales, L se puede asumir también con entradas reales. Una Matriz D diagonal con entradas positivas en la diagonal, es factorizable como , donde es matriz cuya diagonal consiste en la raíz cuadrada de cada elemento de D, que tomamos como positivos. Así:

de cada elemento de D, que tomamos como positivos. Así: La factorización puede ser calculada directamente
de cada elemento de D, que tomamos como positivos. Así: La factorización puede ser calculada directamente
de cada elemento de D, que tomamos como positivos. Así: La factorización puede ser calculada directamente

La factorización puede ser calculada directamente a traves de las siguientes formulas:

calculada directamente a traves de las siguientes formulas: para los elementos de la diagonal principal, y:

para los elementos de la diagonal principal, y:

formulas: para los elementos de la diagonal principal, y: para el resto de los elementos. Donde

para el resto de los elementos. Donde u ij son los elementos de la matriz L.

3. Explicación del Método.

La factorización de Cholesky es una manera de resolver sistemas de ecuaciones matriciales, tenemos la matriz de coeficientes de un sistema de ecuaciones, llamada A. Una condición necesaria y suficiente para que una matriz A admita factorización de Cholesky es que sea simétrica y definida positiva. Si cumple podemos tratar de factorizarla la forma A = L*L T , cuando la tenemos factorizada ya podemos resolver el sistema de ecuaciones.

Desarrollo

Sea el sistema de ecuaciones lineales A x = b, donde A es simétrica y definida positiva, entonces el método de Cholesky para la resolución del sistema A x = b está basado en la descomposición de la matriz A como sigue:

basado en la descomposición de la matriz A como sigue: donde L es una matriz triangular

donde L es una matriz triangular inferior de orden n, es decir, L tiene la siguiente forma:

Descompuesta de esta forma la matriz A, la resolución del sistema A x = b

Descompuesta de esta forma la matriz A, la resolución del sistema A x = b queda dada por la resolución de dos sistemas triangulares. En efecto,

por la resolución de dos sistemas triangulares. En efecto, Si hacemos, entonces : el cual resulta

Si hacemos,

de dos sistemas triangulares. En efecto, Si hacemos, entonces : el cual resulta un sistema triangular

entonces :

dos sistemas triangulares. En efecto, Si hacemos, entonces : el cual resulta un sistema triangular inferior

el cual resulta un sistema triangular inferior en y, con:

: el cual resulta un sistema triangular inferior en y, con: De fácil resolución con: En

De fácil resolución con:

triangular inferior en y, con: De fácil resolución con: En forma general, tenemos: Una vez que

En forma general, tenemos:

con: De fácil resolución con: En forma general, tenemos: Una vez que se resuelve (1.9), procedemos

Una vez que se resuelve (1.9), procedemos a resolver el sistema (1.8), que es un sistema triangular superior

tenemos: Una vez que se resuelve (1.9), procedemos a resolver el sistema (1.8), que es un

Es decir, los valores de

Es decir, los valores de quedan dados por: De (1.6) se obtienen las siguientes ecuaciones para

quedan dados por:

Es decir, los valores de quedan dados por: De (1.6) se obtienen las siguientes ecuaciones para
Es decir, los valores de quedan dados por: De (1.6) se obtienen las siguientes ecuaciones para

De (1.6) se obtienen las siguientes ecuaciones para el cálculo de los elementos de

matriz L (

ecuaciones para el cálculo de los elementos de matriz L ( ): la Se mencionó anteriormente

):

la

para el cálculo de los elementos de matriz L ( ): la Se mencionó anteriormente que

Se mencionó anteriormente que para la aplicación de este método la matriz A debe ser simétrica y definida positiva. A continuación se enuncian ciertos teoremas al respecto.

A continuación se enuncian ciertos teoremas al respecto. Observación : Es necesario verificar que ningún elemento

Observación: Es necesario verificar que ningún elemento de la diagonal principal sea cero.

teoremas al respecto. Observación : Es necesario verificar que ningún elemento de la diagonal principal sea
Ejemplo: Resuelva el sistema de ecuaciones lineales: 4 1 1 2 2 0 2 0

Ejemplo:

Resuelva el sistema de ecuaciones lineales:

4

1

1 2

2 0

2

0

5

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

Cuya matriz coeficiente es simétrica y positivamente definida.

Solución Factorización de A:

4

1

2

2 0

1

2

0

5

=

l

l

1,1

2,1

l 3,1

0

2,2

l

l

3,2

0

0

l

3,3

l

1,1

0

0

l

l

2,1

2,2

0

l

l

3,1

3,2

l 3,3

De la multiplicación de matrices se tiene:

2 l = a l = a = 2 1,1 1,1 1,1 1,1 l l
2
l
= a
l
=
a
= 2
1,1
1,1
1,1
1,1
l
l
= a
l
= a
/ l
=
1/ 2
=
0.5
1,1 2,1
1,2
2,1
1,2
1,1
l
l
= a
l
= a
/ l
=
2 / 2
=
1
1,1 3,1
1,3
3,1
1,3
1,1
2
2
2
l
2 + l
= a
l
=
a
l
=
2
0.5
=
1.32287
2,1
2,2
2,2
2,2
2,2
2,1

l

l

2,1 3,1

+

l

l

3,1

2

+ l

3,2

l

2,2 3,2

2

+ l

3,3

=

2

a

2,3

= a

3,3

l

Al resolver el sistema:

3,2

=

l

l

2,1 3,1

l

+ a

2,2

2,3

=

0.37796

l

3,3

=

a

2,2

 

l

2

3,1

l

3,2

2

= 1.96396

 

Lc = b

 

2

0

0

0.5

1.32287

 

0

 

1.96396

 

1

0.37796

c

c

c

1

2

3

c 1 = 0.5

c

c

=

=

(2

(4

2

3

0.5(0.5)) / 1.32287

=

1.32287

0.5

+

0.37796 (1.32287 )) / 1.96396

Al resolver el sistema:

=

2.0367

L T x = c

2

0

0

0.5

1.32287

0

1

x

1

0.37796

x

2

=

1.96396

x

3

x

x

x

3

2

3

=

2.0367

/ 1.96396

=

1.037

 

=

(1.32287

+

0.37796 (1.037 )) / 1.32287

=

1.29629

=

(0.5

0.5(1.29629 )

 

1.037 ) / 2

=

0.59259

=

1 4

2

0.5

1.32287

2.0367

El vector solución es:

x

1

x

x

=

2

3

0.59259

1.29629

1.037

4. Algoritmo y codificación.

Codificado del método de Cholesky en Turbo Pascal 7.0:

PROGRAM CHOLESKY; USES CRT; TYPE

VECTOR=ARRAY [1 MATRIZ=ARRAY [1

VAR B,E,G:VECTOR; X:REAL; A,L,U,D,H:MATRIZ; N,I,J,K,C,F,R,S:INTEGER; BEGIN clrscr; TEXTCOLOR(GREEN); WRITELN('UNIVERSIDAD TECNICA DE ORURO'); WRITELN('FACULTAD NACIONAL DE INGENIERIA'); WRITELN('DEPARTAMENTO DE MATEMATICAS'); TEXTCOLOR(WHITE);

GOTOXY(27,5);WRITELN('SISTEMAS DE ECUACIONES LINEALES AX=B'); GOTOXY(35,6);WRITELN('METODO CHOLESKY');

GOTOXY(3,10);WRITE('Numero

');TEXTCOLOR(YELLOW);READLN(N); GOTOXY(3,11);TEXTCOLOR(WHITE);WRITELN('Matriz de coeficientes [A]= '); FOR I:=1 TO N DO BEGIN FOR J:=1 TO N DO BEGIN TEXTCOLOR(YELLOW);

GOTOXY(6*J,I+11);READLN(A[I,J]);

END; END; TEXTCOLOR(WHITE); GOTOXY(3,I+12);WRITE('Vector de coeficientes [B]= '); FOR I:=1 TO N DO BEGIN

26]OF REAL;

26,1

26]OF REAL;

de

incognitas

=

TEXTCOLOR(YELLOW);

GOTOXY(3,J+I+12);READLN(B[I]);

END;

L[1,1]:=SQRT(A[1,1]);

FOR I:=2 TO N DO BEGIN FOR J:=1 TO (I-1) DO BEGIN

L[I,J]:=(A[I,J]-(L[I,1]*L[J,1]))/L[J,J];

END;

L[I,I]:=SQRT(A[I,I]-(L[I,I-1]*L[I,I-1]))

END; FOR I:=1 TO N DO BEGIN FOR J:=1 TO N DO BEGIN U[J,I]:=L[I,J]; END; END; clrscr; TEXTCOLOR(WHITE);

GOTOXY(35,1);WRITELN('RESULTADOS');

GOTOXY(1,3);WRITELN('MatrIz de Cholesky');

K:=1;

FOR J:=1 TO N DO BEGIN FOR I:=1 TO N DO BEGIN TEXTCOLOR(YELLOW);

GOTOXY(K,I+4);WRITELN(L[I,J]:5:3);

END;

K:=K+8;

R:=I+4;

END; TEXTCOLOR(WHITE); GOTOXY(1,I+6);WRITE('Vector Y= (L^-1)*B'); {INVERSA} FOR F:=1 TO N DO BEGIN FOR C:=N+1 TO N*2 DO BEGIN

L[F,C]:=0;

IF N+F=C THEN BEGIN

L[F,C]:=1;

END;

END;

END;

FOR C:=1 TO N DO BEGIN FOR F:=1 TO N DO BEGIN FOR I:=2 TO N DO BEGIN IF L[C,C]=0 THEN BEGIN IF L[I,C]<>0 THEN BEGIN FOR J:=1 TO N*2 DO BEGIN L[C,J]:=L[I,J]+L[C,J]; END; END; END; END; IF C<>F THEN BEGIN IF L[F,C]<>0 THEN BEGIN X:=L[F,C]; FOR I:=1 TO N*2 DO BEGIN L[F,I]:=(X*L[C,I])-(L[F,I]*L[C,C]); END; END; END; END; END; FOR F:=1 TO N DO BEGIN X:=L[F,F]; FOR C:=1 TO N*2 DO BEGIN L[F,C]:=L[F,C]/X; END; END; FOR F:=1 TO N DO BEGIN FOR C:=N+1 TO N*2 DO BEGIN D[F,C-N]:=L[F,C]; END; END;

{MULTIPLICACION DE MATRIZ,VECTOR}

FOR F:=1 TO N DO BEGIN

E[F]:=0;

FOR J:=1 TO N DO BEGIN E[F]:=E[F]+D[F,J]*B[J]; END; END;

FOR F:=1 TO N DO BEGIN TEXTCOLOR(YELLOW);

GOTOXY(1,F+R+2);WRITELN(E[F]:10:10);

S:=F+R+2;

END;

TEXTCOLOR(WHITE); GOTOXY(1,S+2);WRITE('Vector X= (U^-1)*Y'); {INVERSA} FOR F:=1 TO N DO BEGIN FOR C:=N+1 TO N*2 DO BEGIN

U[F,C]:=0;

IF N+F=C THEN BEGIN

U[F,C]:=1;

END; END; END; FOR C:=1 TO N DO BEGIN FOR F:=1 TO N DO BEGIN FOR I:=2 TO N DO BEGIN IF U[C,C]=0 THEN BEGIN IF U[I,C]<>0 THEN BEGIN FOR J:=1 TO N*2 DO BEGIN U[C,J]:=U[I,J]+U[C,J]; END; END; END;

END;

IF C<>F THEN BEGIN IF U[F,C]<>0 THEN BEGIN X:=U[F,C]; FOR I:=1 TO N*2 DO BEGIN U[F,I]:=(X*U[C,I])-(U[F,I]*U[C,C]); END; END; END; END; END; FOR F:=1 TO N DO BEGIN X:=U[F,F]; FOR C:=1 TO N*2 DO BEGIN U[F,C]:=U[F,C]/X; END; END; FOR F:=1 TO N DO BEGIN FOR C:=N+1 TO N*2 DO BEGIN H[F,C-N]:=U[F,C]; END; END; {MULTIPLICACION DE MATRIZ,VECTOR} FOR F:=1 TO N DO BEGIN

G[F]:=0;

FOR J:=1 TO N DO BEGIN G[F]:=G[F]+H[F,J]*E[J]; END; END; FOR F:=1 TO N DO BEGIN TEXTCOLOR(YELLOW);

GOTOXY(1,F+S+2);WRITELN(G[F]:10:10);

END;

TEXTCOLOR(25);

GOTOXY(25,F+S+4);WRITELN('presione ENTER para terminar'); READKEY; END.

5. Ejercicio y Aplicación.

Aplicando a la carrera correspondiente que pertenece a la:

Facultad nacional de ingeniería Ingenieria industrial

Balanceo de Reacciones Químicas

Una aplicación sencilla de los sistemas de ecuaciones se da en el balanceo de reacciones químicas. La problemática consiste en determinar el número entero de moléculas que intervienen en una reacción química Cuidando siempre que el número de átomos de cada sustancia se preserve.

Ejemplo 2

Balancee la reacción química:

aCH

4

+

bO

2

CO

2

+ 2

2

a

8

 

=

3

b

8

Se forma el siguiente sistema de ecuaciones:

4

2

H O

2

Resolv. por el método de Cholesky nos da como resultados:

a 1 = b 2
a
1
=
b
2

Con los cuál queda balanceada nuestra ecuación:

CH

4

+ 2

O

2

CO

2

+ 2

H O

2

6. Impresión y Análisis de resultados.

Ejemplo 1.

Ejemplo 2.
Ejemplo 2.

Como se puede observar la solución hecha de forma manual es la misma que se obtiene del programa.

7. Conclusiones y recomendaciones.

Para resolver un sistema de ecuaciones por el método de Cholesky es necesario que se cumplan estas condiciones: la matriz de coeficientes debe ser simétrica y definida positivamente, ningun elemento de la diagonal principal debe ser cero.

Se entendió que este método esta basado en la descomposición LU pero para casos especiales en los que la matriz de coeficientes es simétrica.

Se realizó el codificado en el Turbo Pascal y se pudo comprobar que los resultados del sistema de ecuaciones son iguales.

8. Bibliografía.

Métodos Numéricos aplicados a la Ingeniería, Antonio Nieves y Federico C. Domínguez.