Práctica de resolución de sistemas de ecuaciones lineales con ...

Práctica de resolución de sistemas de ecuaciones lineales con ... Práctica de resolución de sistemas de ecuaciones lineales con ...

aulanet.umb.edu.co
from aulanet.umb.edu.co More from this publisher
12.05.2013 Views

Algoritmo 1 Método de Doolittle Este algoritmo calcula la factorización LU, A = LU, A ∈ Rm×n , m ≥ n (suponiendo que existe) por el método de Doolittle. ENTRADA: La matriz A SALIDA: Las matrices L y U 1: para k = 1 : n hacer 2: para j = k : n hacer 3: ukj = akj − k−1 i=1 lkiuij 4: fin para 5: para i = k + 1 : m hacer 6: lik = aik − k−1 j=1 lijujk /ukk 7: fin para 8: fin para Nota: Los sumatorios de las líneas 3 y 6 son en realidad productos escalares. En el caso de la línea 3, es el producto escalar de parte de la fila k de L (los primeros k − 1 elementos) por parte de la columna j de U (los primeros k − 1 elementos). Este producto escalar puede hacerse en MATLAB con la orden L(k, 1:k-1) * U(1:k-1, j), siendo ésta la forma más eficiente de calcularla. Ejercicio 3 Comprobar el funcionamiento del programa con las siguientes matrices ⎡ ⎤ ⎡ ⎤ 3 −1 2 ⎡ ⎤ 3 −1 2 ⎢ ⎥ 4 2 −1 ⎢ ⎥ ⎢ 7 −2 1 ⎥ ⎢ ⎥ a) ⎢ ⎣ 5 7 8 ⎥ ⎦ , b) ⎢ ⎥ ⎢ ⎣ 4 5 0 ⎥ , c) ⎢ ⎣ 2 1 3 ⎥ ⎦ ⎦ −1 0 4 7 −1 0 3 −1 2 Ejercicio 4 ¿Qué ocurre al aplicar el programa a la matriz c) del ejercicio anterior? Modificar el programa para que en caso de producirse esta situación se detecte y se muestre un mensaje de error. ✍Ejercicio 5 ¿Qué matrices tienen factorización LU? (Se entiende sin realizar ninguna permutación) Ejercicio 6 Calcular mediante el método de Doolittle la factorización LU 8

de la matriz A = ⎡ ⎢ ⎣ 4 −1 3 8 5 1 −16 −44 23 aplicar el resultado para resolver el sistema Ax = b donde b = −37 Calcular la solución utilizando la factorización LU con pivotamiento parcial (es decir usando la orden lu de MATLAB) y comparar los resultados sabiendo que la solución exacta es el vector con todas las componentes iguales a 1. 3.2. La factorización de Cholesky La factorización de Cholesky de una matriz simétrica definida positiva A puede calcularse con MATLAB con la orden chol. Esta función sólo precisa un dato que es la matriz de la que quiere calcularse la factorización. Debe tenerse en cuenta que chol no comprueba si la matriz es simétrica, sólo usa su parte triangular superior, esto puede dar lugar a errores, como se ilustra en el siguiente ejemplo. Ejemplo 2 » A=[ 5 -1 2 1; 0 4 2 -1; 0 0 5 1; 0 0 0 3]; » spy(A) » R=chol(A) R = » R’*R ans = 2.2361 -0.44721 0.89443 0.44721 0 1.9494 1.2312 -0.41039 0 0 1.6384 0.67462 0 0 0 1.4753 5 -1 2 1 -1 4 2 -1 9 ⎤ ⎥ ⎦ ⎡ ⎢ ⎣ 6 14 ⎤ ⎥ ⎦ .

<strong>de</strong> la matriz<br />

A =<br />

⎡<br />

⎢<br />

⎣<br />

4 −1 3<br />

8 5 1<br />

−16 −44 23<br />

aplicar el resultado para resolver el sistema Ax = b don<strong>de</strong> b =<br />

−37<br />

Calcular la solución utilizando la factorización LU <strong>con</strong> pivotamiento parcial<br />

(es <strong>de</strong>cir usando la or<strong>de</strong>n lu <strong>de</strong> MATLAB) y comparar los resultados sabiendo<br />

que la solución exacta es el vector <strong>con</strong> todas las componentes iguales a 1.<br />

3.2. La factorización <strong>de</strong> Cholesky<br />

La factorización <strong>de</strong> Cholesky <strong>de</strong> una matriz simétrica <strong>de</strong>finida positiva A<br />

pue<strong>de</strong> calcularse <strong>con</strong> MATLAB <strong>con</strong> la or<strong>de</strong>n chol. Esta función sólo precisa<br />

un dato que es la matriz <strong>de</strong> la que quiere calcularse la factorización. Debe<br />

tenerse en cuenta que chol no comprueba si la matriz es simétrica,<br />

sólo usa su parte triangular superior, esto pue<strong>de</strong> dar lugar a errores, como<br />

se ilustra en el siguiente ejemplo.<br />

Ejemplo 2<br />

» A=[ 5 -1 2 1; 0 4 2 -1; 0 0 5 1; 0 0 0 3];<br />

» spy(A)<br />

» R=chol(A)<br />

R =<br />

» R’*R<br />

ans =<br />

2.2361 -0.44721 0.89443 0.44721<br />

0 1.9494 1.2312 -0.41039<br />

0 0 1.6384 0.67462<br />

0 0 0 1.4753<br />

5 -1 2 1<br />

-1 4 2 -1<br />

9<br />

⎤<br />

⎥<br />

⎦<br />

⎡<br />

⎢<br />

⎣<br />

6<br />

14<br />

⎤<br />

⎥<br />

⎦ .

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!