Doolittle

August 21, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Doolittle...

Description

 

Riobamba - Ecuador  

 

Diseñar una aplicación de computadora que nos permita  obtener  la resolución de sistemas lineales de ecuaciones por el  método de DOOLITTLE. 

 

 

Programar el método de DOOLITTLE para reducir el tiempo de resolución de un sistema de ecuaciones.

 

Establecer las dificultades que se presentan al momento de implementar el método, y el programa en general.

 

Aplicar los conocimientos previamente adquiridos.



 

Riobamba - Ecuador  

En el álgebra lineal, la factorización o descomposición LU (del inglés  Lower-Upper) es una forma de factorización de una matriz como el   producto de una una matriz trian triangular gular inferior y una superi superior. or. Debido a la  inestabilidad de este método, deben tenerse en cuenta cue nta algunos casos  especiales, por ejemplo, si uno o varios elemento de la diagonal principal de la matriz a factorizar es cero, es necesario premultiplicar la matriz por  una o varias matrices elementales de permutación. Método llamado   factorización  factorizac ión PA = LU*LU con piv pivote. ote. Esta descomposición se usa en el análisis numérico para resolver sistemas  de ecuaciones (más eficientemente) o encontrar las matrices inversas.



 

Riobamba - Ecuador  

MARCO TEORICO DESCOMPOSICIÓN LU- MÉTODO DE DOOLITTLE

Otro método para resolver sistemas de ecuaciones lineales es el método de la factorización LU El problema a resolver, consiste en encontrar el vector de incógnitas X que satisface la expresión:

A.x  –  – b = 0

(1)

En la siguiente presentación se supondrá que la matriz A es de 3x3 aunque el desarrollo es de dell todo general y puede extenderse a cualquier orden del problema.

Supongamos que la ecuación (1) se puede expresar como un sistema triangular superior, esto es:

u11

u12

u13

x1

0 0

u22 0

u23 u33

x2 x3

d1   =

d2 d3  

(3)

Podrá reconocerse fácilmente que la expresión anterior coincide con el estado final de la etapa de eliminación seguida en el algoritmo de Gauss, la cual, puede resumirse en:

U.x  –  – d = 0

(4)

 Ahora bien, supóngase por un momento la existencia de una matriz triangular inferior

con

coeficientes iguales a 1 sobre su diagonal, esto es:

L=

1

0

0

l21

1

0

l31

l32

1

(5)

La cual, supóngase también, tiene la propiedad que al pre multiplicarla por la ecuación (4) su resultado es (1), es decir:

L. [U.x  –  – d] = A.x  –  – b

(6)



 

Riobamba - Ecuador  

En la cual, resulta evidente que:

L.U = A  L.d = b 

(7)  (8) 

De resultar así, el procedimiento de cálculo puede ordenarse en base a la siguiente estrategia:

a) Fase de descomposición LU: Consiste en factorizar o descomponer  A en el producto de una matriz triangular inferior, L, por una superior, U .

b) Fase de sustitución: En la cual se obtiene el vector solución. Para ello esta fase se compone de las siguientes dos etapas: 1. De la ecuación (8) se obtiene d por sustitución hacia adelante. 2. De la ecuación (4) se obtiene

x por sustitución hacia atrás.

Todo lo citado es factible de realizar a partir de la existencia de matrices U y L con las propiedades señaladas. Una forma de arribar a determinar sus coeficientes es mediante el mismo procedimiento de eliminación de Gauss ya conocido.

Esta posibilidad resulta inmediata a partir de la propia forma de la matriz U , que, como se indicara con anterioridad, puede escribirse a U de la siguiente forma:

U=

a11

a12

a13 

0

a’22 

a’23

0

0

a”33 

(9)

Donde los coeficientes señalados con apóstrofes y comillas corresponden a los obtenidos en el primer y segundo paso respectivamente del proceso de eliminación de Gauss.  Aunque nada de lo dicho lo sugiere, los coeficient coeficientes es de la Matriz Matr iz L se obtienen como c omo ““subproducto” subproducto” del proceso de generación de U . En el ejemplo siguiente se pondrá este punto en evidencia aunque la metodología seguida es de carácter absolutamente general y puede ampliarse a un sistema de cualquier número de ecuaciones. Supongamos el siguiente sistema de 3 ecuaciones con 3 incógnitas:



 

Riobamba - Ecuador  

A.x = b

 

a11

a12

a13

x1

a21

a22

a23

x2

a31

a32

a33

x3

b1  =

b2  b3 

Paso 1 m21= a21/a11

m31 = a31/a11

a’21= a21 – m21*a11 = 0

a’31= a31 – m31*a11 = 0

a’22= a22 – m21*a12

a’32= a32 – m31*a12

a’23= a23 – m21*a13

a’33= a33 – m31*a13

 



a11

a12

a13 

0

a’22 

a’23 

0

a’32 

a’33 

Paso 2 m’32= a’32/a’22 a”32= a’32 –  – m’32*a’22 = 0 a”33= a’33 –  – m’32*a’23

 



a11

a12

a13 

0

a’22 

a’23 

0

0

a”33 

Evidentemente, para no modificar el sistema de ecuaciones original, las mismas transformaciones realizadas sobre la matriz de coeficientes deberían realizarse sobre el vector de términos independientes. Sin embargo, supongamos que existe la posibilidad de armar una “tabla de memoria” en la cual se registren todas las operaciones a realizar sobre los coeficientes del término independiente. De esta forma, no sería necesario ir operando sobre el vector  b  en forma simultánea con las transformaciones sobre A, sino que las mismas podrían ser ejecutadas con posterioridad. Un posible formato para confeccionar esa “tabla de memoria” se representa a continuación:  continuación:  

m’21  m’31  m”32 

En la misma se almacenan todos los “pivote” de cada una de las transformaciones de fila realizadas. Un punto fácilmente verificable es el hecho que, la matriz siguiente formada a partir de la “tabla de memoria”,  memoria”,  



 

Riobamba - Ecuador  

L=

1

0

0

m’21

1

0

m’31  m”32

1

 Al premultiplicar a la matriz m atriz U dada por (9), genera como resultado la matriz A original, es decir: L.U = A

Que es la base del procedimiento de descomposición comentado anteriormente. Una vez obtenidas las matrices indicadas, se procede a resolver los siguientes sistemas de resolución directa:   L.d = b 

mediante sustitución hacia adelante  

  U.x = d por

sustitución hacia atrás

El ejemplo siguiente ilustra el procedimiento completo sobre un sistema de 3x3, aunque la metodología es enteramente aplicable a sistemas de cualquier orden:

A.x = b

 

3

-1

-2

x1

1

7

-3

x2

3

-2

10

x3

+7 =

-19 +4

a) Fase de Descomposición Paso 1 m21= 1/3 = 0.333

m31 = 3/3 = 1

a’21= 1 – 0.333*3 = 0

a’31= 3 – 1*3 = 0

a’22= 7 – 0.333*(-1) = +7.333

a’32= -2 -2 –  – 1*(-1)= -1

a’23= -3 – -3  – 0.333*(-2)= -2.333

a’33= 10 – 1*(-2)= 12

3  



0 0

-1

-2

7.33 -2.33 -1

12



 

Riobamba - Ecuador  

Paso 2 m’32= -1/7.33 = -0.136

3

a”32= -1 +0.136*7.33 = 0

 



a”33= 12 + 0.136*(-2.33) 0.136*(-2.33)

L=

0 0

1

0

0

0.333

1

0

1

-0.136

1

-1

-2

7.33 -2.33 0

11.68

;

U=

3

-1

-2

0

7.33

-2.33

0

0

11.68

Puede verificarse que L.U = A, excepto pequeñas diferencias producto de errores de redondeo.

b) Fase de Sustitución Como se indicó, el proceso de sustitución comprende dos etapas de resolución inmediata:

1) 

L.d = b ,

sustitución hacia adelante

d1 = b1/L11 = +7 d2 = (b2-L21*d1)/L22 = (-19-0.333*7)/1 = -21.33 d3 = (b3-L31*d1-L32*d2)/L33 = (+4-1*7 +0.136*(-21.33))/1 =-5.90

2)  U.x = d , sustitución hacia atrás x3 = d3/U33 = -0.51 x2 = (d2-U23*x3)/U22 = -3.07 x1 = (d1-U12*x2-U13*x3)/U11 = +0.97

El procedimiento detallado puede especificarse en forma de seudo-código a fin de facilitar su implementación en un computador:



 

Riobamba - Ecuador  

Descomposición LU Repetir k=1,... n-1 Repetir i=k+1,... n aik = aik/akk  Repetir j=k+1,..., n aij = aij  – – aik. akj Fin j Fin i Fin k

Sustitución hacia adelante d1 = b1  Repetir i=2,.... n s=0 Repetir j=1,... i-1 i-1   s = s + a ij.d j Fin j  j  di = bi-s Fin i

Sustitución hacia atrás xn = dn/ann  Repetir i=n-1,.... 1 s=0 Repetir j=i+1,... n n   s = s + a ij.x j Fin j  j  xi = (di-s)/aii  Fin i

Si el algoritmo detallado se implementa para la matriz A del problema anterior, se observa que, luego de finalizada la etapa de descomposición, los coeficientes de la matriz A resultan:



 

Riobamba - Ecuador  

3

-1

-2

0.333

7.33

-2.33

1

-0.136 11.68

Como se advierte, en el mismo arreglo se almacenaron los coeficientes de la matriz U  (triángulo superior) y de la matriz L (triángulo inferior). En este último caso, el almacenamiento de la diagonal es un asunto trivial toda vez que todos los coeficientes ubicados sobre la misma resultan iguales a 1. Se ha optimizado así el manejo de memoria, limitando el área de trabajo a aquella necesaria solamente para el almacenamiento de la matriz de coeficientes ( A).

Una segunda optimización puede realizarse realmacenando los coeficientes del vector  d  en el proceso de sustitución hacia adelante en el mismo espacio que el vector  b , cuyos coeficientes ya no resulta necesario almacenar en esa etapa del cálculo. Finalmente, un punto de interés reside en la determinación del número de operaciones realizadas por el algoritmo anteriormente desarrollado. Como puede verificarse, el número total de operaciones a realizar en el proceso de descomposición y sustitución es idéntico a aquel realizado en el algoritmo de eliminación de Gauss. Evidentemente, la gran ventaja de LU surge en el caso de tener que resolver en forma reiterada el mismo sistema pero para términos independientes 2

diferentes. En este caso, cada nuevo sistema requiere realizar solamente un orden de n   operaciones.



 

Riobamba - Ecuador  

10 

 

Riobamba - Ecuador  

CONCLUSIONES: 

El uso de la descomposición de matrices LU es de gran utilidad ya que permite alivianar la cantidad de operaciones para resolver un sistema.



Proporciona un medio eficiente para calcular matrices inversas, y éstas poseen un importante número de aplicaciones en la práctica de la ingeniería, sin dejar de lado que dichas inversas proporcionan un medio para evaluar la condición de un sistema.



La descomposición LU, es un proceso más abreviado, que nos provee una ganancia de tiempo para un programador a la hora de elaborar un programa.

RECOMENDACIÓN: 

Existen maneras de programar el algoritmo anterior de forma tal que la matriz U y la matriz L queden en una misma matriz cuadrada. Un truco radica en que siendo todos los elementos de la diagonal de U unos, no se requiere el espacio para almacenarlos. También hay forma de programar el algoritmo para que la matriz de permutaciones P se represente por un solo vector  con n valores, con números de 1 a n, que indican cómo deben permutarse los renglones de la 2

identidad. Esto es muy conveniente pues la matriz P es tal que de sus n valores todos son cero excepto n que son 1. Usando estas ideas el almacenamiento requerido por el algoritmo de 2

2

factorización LU puede reducirse de 3n a n + n números de punto flotante. Significando un ahorro de espacio aproximadamente 66%.

REFERENCIAS: 

http://personal.redestb.es/ztt/tem/t6_matrices.htm



http://www.ditutor.com/matrices/suma_matrices.html



http://www.monografias.com/trabajos72/resolucion-sistemas-metodo-gauss-jordan/resolucionsistemas-metodo-gauss-jordan.shtml

ANEXOS:

11 

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF