Unidad 3: Solución de SEL

32
1 Unidad 3: Solución de SEL Temario: Sistemas de Ecuaciones Lineales (SEL) Métodos directos vs Iterativos Eliminación de Gauss Descomposición LU por Doolittle Inversión de Matrices Método iterativo de Jacobi Método iterativo de Gauss-Seidel

Transcript of Unidad 3: Solución de SEL

Page 1: Unidad 3: Solución de SEL

1

Unidad 3: Solución de SEL

Temario:● Sistemas de Ecuaciones Lineales (SEL)

● Métodos directos vs Iterativos

● Eliminación de Gauss

● Descomposición LU por Doolittle

● Inversión de Matrices

● Método iterativo de Jacobi

● Método iterativo de Gauss-Seidel

Page 2: Unidad 3: Solución de SEL

2

Sistemas de ecuaciones lineales (SEL)

Los sistemas de ecuaciones tienen la forma de:

En notación matricial:

A11 x1+A12 x 2+…+ A1n x n=b1

A21 x1+ A22 x 2+…+ A2n x n=b2

⋮An1 x 1+ An2 x2+…+ Ann x n=bn

[A11 A12 … A1n

A21 A22 … A2n

⋮An1 An2 … Ann

]⋅(x 1

x 2

⋮x n)=(b1

b2

⋮bn)→A⋅x=b

Donde b es el vector de entrada del sistema y x es el vector de respuesta

Page 3: Unidad 3: Solución de SEL

3

Número de condición de una matriz

Para determinar que tan próxima está la matriz a la singularidad, se utiliza el número de condición.

El número de condición se define como:

Si el número es cercano a 1, la matriz está bien condicionada y el SEL tiene solución única. Si en cambio el número crece hacia infinito significa que la matriz es singular y el SEL no se puede resolver.

Los resultados obtenidos a través de matrices mal condicionadas no deben ser considerados, ya que los pequeños errores numéricos que aparecen por aritmética de punto flotante se amplifican en la solución.

cond ( A)=‖A‖‖A−1‖

Page 4: Unidad 3: Solución de SEL

4

Métodos directos vs iterativos

Existen dos clases de métodos para resolver un SEL, los directos y los iterativos.

En los directos, se transforman las ecuaciones en otras equivalentes, más simples de resolver.

En los iterativos se inicia con una suposición inicial de la solución x y se repite un proceso iterativo hasta alcanzar la convergencia. Estos métodos son menos eficientes pero son más efectivos si los problemas son de gran tamaño.

Page 5: Unidad 3: Solución de SEL

5

Matrices triangulares

Las matrices triangulares son fundamentales en álgebra lineal porque simplifican los cálculos.

L⋅x=c

[L11 0 0L21 L22 0L31 L32 L33

]⋅(x1

x 2

x 3)=(c1

c2

c3)→ L11 x1

L21 x 1+L22 x 2

L31 x1+L32 x 2+L33 x 3

=c1

c2

c3

Si se comienza por la primer ecuación se pueden ir resolviendo “progresivamente” todas las ecuaciones, de a una por vez. Este esquema se llama sustitución hacia adelante o progresiva. De igual manera se puede resolver un sistema Ux=c de forma regresiva, atribuyéndose el nombre de sustitución regresiva o hacia atrás a esta práctica.

Page 6: Unidad 3: Solución de SEL

6

Eliminación de Gauss

El método de eliminación de Gauss, es el más común para la resolución de SEL.

El método consta de dos fases, la fase de eliminación y la fase de resolución.

En la fase de eliminación se busca transformar el problema en uno de la forma Ux = c

En la fase de resolución se aplica la sustitución regresiva.

Page 7: Unidad 3: Solución de SEL

7

Eliminación de Gauss

Fase de eliminación

Se utiliza la tercer operación elemental. La ecuación que se multiplica y se resta se denomina ecuación pivote.

Se busca ir transformando la matriz A en una matriz triangular superior U equivalente.

Procedimiento:

1) Se elige la ecuación de pivote, fila i.

2) Para cada ecuación por debajo de la pivote, se multiplica la ecuación pivote por (aji/aii), siendo j la ecuación a eliminar.

3) Se resta cada ecuación j con la ecuación pivote, ya multiplicada, para eliminar el primer término no nulo i de la ecuación j.

Page 8: Unidad 3: Solución de SEL

8

Eliminación de Gauss

Ejemplo:

[ 4 −2 1−2 4 −2

1 −2 4 | 11−16

17 ] pivote

Page 9: Unidad 3: Solución de SEL

9

Eliminación de Gauss

Ejemplo:

[ 4 −2 1−2 4 −2

1 −2 4 | 11−16

17 ] [4∗(−2/4 ) −2∗(−2 /4) 1∗(−2 /4)−2 4 −2 |11∗(−2/ 4)

−16 ][0 3 −3/2|−21 /2 ]

[4∗(1/4) −2∗(1/4 ) 1∗(1/4 )1 −2 4 |11∗(1 /4)

17 ][0 −3/2 15 /4|57 /4 ]

Page 10: Unidad 3: Solución de SEL

10

Eliminación de Gauss

Ejemplo:

[ 4 −2 1−2 4 −2

1 −2 4 | 11−16

17 ] [4∗(−2/4 ) −2∗(−2 /4) 1∗(−2 /4)−2 4 −2 |11∗(−2/ 4)

−16 ][0 3 −3/2|−21 /2 ]

[4∗(1/4) −2∗(1/4 ) 1∗(1/4 )1 −2 4 |11∗(1 /4)

17 ][0 −3/2 15 /4|57 /4 ]

[4 −2 10 3 −3 /20 −3/2 15 /4 | 11

−21 /257/ 4 ]

Page 11: Unidad 3: Solución de SEL

11

Eliminación de Gauss

Ejemplo:

[0 3∗(−1 /2) −3/2∗(−1/2)0 −3 /2 15 /4 |−21 /2∗(−1 /2)

57 /4 ][0 0 3|9 ]

[4 −2 10 3 −3 /20 −3/2 15 /4 | 11

−21 /257/ 4 ]

[4 −2 10 3 −3/20 0 3 | 11

−21/ 29 ]

Page 12: Unidad 3: Solución de SEL

12

Eliminación de Gauss

[4 −2 10 3 −1,50 0 3 ]⋅( x1

x2

x 3)=( 11

−10,59 )→ x 3=9/3=3

3 x 2−1,5(3)=−10.5→ x 2=−2

4 x1−2(−2)+(3)=11→ x 1=1

Fase de resolución

Se utiliza la sustitución regresiva. Se empieza resolviendo la última ecuación y se reemplaza el resultado en la anterior. El proceso se repite hasta llegar a la primera ecuación.

Page 13: Unidad 3: Solución de SEL

13

Eliminación de Gauss

Algoritmo

Solución regresiva del sistema equivalente

Transformación a sistema triangular superior

Solución x

¿fila n+1?

i=1

i=i+1Verdadero

Transformar ecuación j usando ecuación i

como pivote

¿ fila n+1 ?

j=i+1

j=j+1

Falso

Verdadero

A,b

U,y

Transformación a sistema triangular superior

¿fila 0?

i=n

i=i-1Verdadero

Resolver incógnitalocal x

i

U,y

x

Solución regresiva

Page 14: Unidad 3: Solución de SEL

14

Eliminación de Gauss

Generalización de la fase de eliminación

Supongamos que se han transformado las primeras k líneas. La línea pivote es la k-ésima. El primer elemento no nulo es el Akk. La fila debajo del pivote es la i-ésima. Se busca eliminar el elemento Aik.

El multiplicador para la fila i-ésima será:

La transformación será:

λ i=Aik / AkkAij←( Aij−λ Akj) ,bi←(bi−λbk)

Generalización de la fase de solución

Supongamos que se han resuelto las últimas k-1 líneas. La línea a resolver es la k-ésima.

Akk xk+ Ak ,k +1 xk +1+…+ Akn x n=bk→ X k=1Akk (bk− ∑

j=k +1

n

Akj x j)

Page 15: Unidad 3: Solución de SEL

15

Inversión de Matrices

Siempre que sea posible se debe evitar invertir una matriz debido al alto costo computacional involucrado.

De ser necesaria, la forma más económica de resolverla es mediante la siguiente ecuación:

A⋅X=I→(A−1 A )⋅X=(A−1 I)→ X=A− 1

[ A11 A12 … A1n

A21 A22 … A2n

⋮An1 An2 … Ann

]⋅[ X 11 X 12 … X 1n

X 21 X 22 … X 2n

⋮X n1 X n 2 … X nn

]=[1 0 … 00 1 … 0

⋮0 0 … 1

]

Page 16: Unidad 3: Solución de SEL

16

Descomposición LU

Toda matriz cuadrada se puede descomponer en el producto de una matriz L por una matriz U de modo que A = L U

El proceso por el cual se determinan las matrices L y U se llama descomposición o factorización LU.

La descomposición necesita algunas restricciones adicionales para ser única. Estas restricciones producen métodos de descomposición LU distintos, por ejemplo el de Doolittle, el de Crout y el de Choleski.

Una vez factorizada la matriz, la resolución es sencilla.A⋅x=(LU)⋅x=c→Definiendo el vector y como y=U⋅xReemplazando en la ecuación original queda L y=c

Page 17: Unidad 3: Solución de SEL

17

Descomposición de Doolittle

Se considera que la matriz L tiene 1 en la diagonal.

A=L U=[1 0 0L21 1 0L31 L32 1]⋅[U11 U12 U13

0 U 22 U 23

0 0 U 33]

[A11 A12 A13

A21 A22 A23

A31 A32 A33]=[U11 U12 U13

U11L21 U12 L21+U22 U13L21+U23

U11L31 U12 L31+U 22L32 U13L31+U23L32+U 33]

Page 18: Unidad 3: Solución de SEL

18

Descomposición de Doolittle

Se aplica la eliminación de Gauss en ambas matrices para encontrar la matriz U.

A'=[ A11 A12 A13

A21−L21 A11 A22−L21 A12 A23−L21 A13

A31−L31 A11 A32−L31 A12 A33−L31 A13]=[U11 U12 U13

0 U22 U23

0 U22 L32 U23L32+U33]

λ2=L21=A21

A11

λ3=L31=A31

A11

Cada lambda corresponde a los elementos de la matriz L!

Page 19: Unidad 3: Solución de SEL

19

Descomposición de Doolittle

Se aplica la eliminación de Gauss nuevamente.

A''=[A11 A12 A13

0 A22 ' A23 '

0 A32 '−L32 A22 ' A33 '−L32 A23 ']=[U 11 U 12 U13

0 U 22 U23

0 0 U33]

λ3=L32=A32 '

A22 '

Page 20: Unidad 3: Solución de SEL

20

Descomposición de Doolittle

Por solución regresiva se encuentran los valores de U.

Se pueden guardar las constantes de multiplicación en los ceros de la matriz U para aprovechar el espacio.

A''=[U11 U12 U13

L21 U22 U23

L31 L32 U 33]

Page 21: Unidad 3: Solución de SEL

21

Descomposición de Doolittle

Ejemplo:

4 x1−2 x2+ x3=11

−2 x 1+4 x 2−2 x 3=−16x1−2 x 2+4 x 3=17

A=[ 4 −2 1−2 4 −2

1 −2 4 ]A=[ 4 −2 1

−2 4 −21 −2 4 ]=[ U11 U12 U 13

U11L21 U12L21+U22 U13L21+U23

U11L31 U 12L31+U 22L32 U13L31+U23 L32+U 33]

Page 22: Unidad 3: Solución de SEL

22

Descomposición de Doolittle

Ejemplo:

A'=[ 4 −2 1−2−L21(4) 4−L21(−2) −2−L21(1)

1−L31(4) −2−L31(−2) 4−L31(1)]=[U11 U12 U13

0 U22 U23

0 U22L32 U23 L32+U33]

λ2=L21=A21

A11

=−24

λ3=L31=A31

A11

=14

A'=[4 −2 10 3 −1,50 −1,5 3,75]

Page 23: Unidad 3: Solución de SEL

23

Descomposición de Doolittle

Ejemplo

A''=[4 −2 10 3 −1,50 −1,5−L32 3 3,75−L32(−1,5)]=[U11 U12 U13

0 U22 U 23

0 0 U 33]

λ3=L32=A32 '

A22 '=−

1,53 A''=[4 −2 1

0 3 −1,50 0 3 ]=U

Page 24: Unidad 3: Solución de SEL

24

Descomposición de Doolittle

Finalmente

U=[4 −2 10 3 −1,50 0 3 ] ,L=[1 0 0

−1/2 1 01 /4 −1 /2 1]

Page 25: Unidad 3: Solución de SEL

25

Métodos iterativos

Los métodos directos logran resolver el SEL en una cantidad finita de pasos. En contraposición, los métodos iterativos comienzan con una solución de partida e iteran hasta que se encuentra la convergencia. Por lo tanto, son más lentos que los métodos directos. Sin embargo, poseen las siguientes ventajas:● Al ser métodos que van corrigiendo la solución, pueden reducir los

errores asociados a la aritmética de punto flontante.● Pueden almacenar solamente los valores no nulos de las matrices,

con lo cual permiten trabajar con SEL de mayor tamaño respecto a los métodos directos.

Page 26: Unidad 3: Solución de SEL

26

Soluciones iterativas de SEL

4 x− y+z4 x−8 y+z

−2 x+ y+5 z

===

7−2115

Queremos resolver el siguiente sistema de ecuaciones lineales (SEL)

En cada ecuación podemos despejar una de las incógnitas

x=(7+ y−z )/4y=(21+4 x+z )/8z=(15+2x− y )/5

Se propone la siguiente fórmula recursiva

xk +1=(7+ yk−zK )/4yk +1=(21+4 xk+zk )/8zk +1=(15+2 xk− yk )/5

Se propone una terna de valores de partida y se utiliza la fórmula recursiva para obtener una aproximación mejor. El esquema se repite hasta alcanzar una tolerancia dada.Éste es el método de Jacobi.

Si aprovechamos la actualización de las variables se puede acelerar el proceso

xk +1=(7+ yk−zK )/4yk +1=(21+4 xk +1+ zk) /8zk +1=(15+2 xk +1− yk+1)/5

El proceso es análogo al método de Jacobi.Éste es el método de Gauss-Seidel.

Page 27: Unidad 3: Solución de SEL

27

Soluciones iterativas de SEL

4 x− y+z4 x−8 y+z

−2 x+ y+5 z

===

7−2115

Volvamos a ver los métodos pero en forma matricial

[ 4 −1 14 −8 1

−2 1 5]⋅(xyz)=(

7−2115 )

A⋅x=b

[ 4 −1 14 −8 1

−2 1 5]=[4 0 00 −8 00 0 5]+[

0 −1 14 0 1

−2 1 0]A=D+R

La matriz de coeficientes se puede escribir como la suma de dos matrices (Diagonal y el Resto)

(xyz )k+1

=[1 /4 0 00 −1/8 00 0 1/5]⋅(

7−2115 )−[1 /4 0 0

0 −1 /8 00 0 1/5]⋅[

0 −1 14 0 1

−2 1 0]⋅(xyz)

k

(D+R)⋅x=b→D⋅x=b−R⋅x→x=D−1⋅b−D−1⋅R⋅x→x k+1=c+T⋅x k

Reemplazamos en la ecuación original y obtenemos la fórmula recursiva

Page 28: Unidad 3: Solución de SEL

28

Soluciones iterativas de SEL

Comparemos la ecuación matricial vs las ecuaciones originales

(xyz )k+1

=( 7 /421 /815 /5)−[ 0 −1/4 1 /4

−4 /8 0 −1 /8−2 /5 1/5 0 ]⋅(xyz)

k xk +1=(7+ yk−zK )/4yk +1=(21+4 xk+zk )/8zk +1=(15+2 xk− yk )/5

Para Gauss-Seidel, se separa la matriz T en una triangular superior más una triangular inferior

(xyz )k+1

=( 7 /421 /815 /5)−[ 0 0 0

−4 /8 0 0−2 /5 1 /5 0]⋅(

xyz)

k+1

−[0 −1/4 1/40 0 −1/80 0 0 ]⋅(xyz )

k

xk+1=D−1⋅b−D−1⋅R⋅xk=c+T⋅xk→x k+1=c+T L⋅x

k+1+T U⋅xk

Page 29: Unidad 3: Solución de SEL

29

Comparación con algoritmo iterativo de búsqueda de raíces

Vector inicialx0

FalsoActualizar x

Fórmula de recurrencia

xk+1−xk<tolerancia

VerdaderoFin

Valor inicialx

0

Falsox

i=x

i+1

x i+1=g(x i)

ε≤tolerancia

VerdaderoFin

Método iterativo para solución de SEL

Método abierto de búsqueda de raíces

Page 30: Unidad 3: Solución de SEL

30

Ejemplo con Jacobi

Ejemplo:

Iteración x y z

0 1,00000000 2,00000000 2,00000000

1 1,75000000 3,37500000 3,00000000

2 1,84375000 3,87500000 3,02500000

3 1,96250000 3,92500000 2,96250000

4 1,99062500 3,97656250 3,00000000

...

15 1,99999993 3,99999985 2,99999993

...

19 2,00000000 4,00000000 3,00000000

4 x− y+z4 x−8 y+z

−2 x+ y+5 z

===

7−2115

(xyz )k+1

=( 7 /421 /815 /5)−[ 0 −1/4 1 /4

−4 /8 0 −1 /8−2 /5 1/5 0 ]⋅(xyz)

k

Page 31: Unidad 3: Solución de SEL

31

Ejemplo con Gauss Seidel

Ejemplo:

Iteración x y z

0 1,00000000 2,00000000 2,00000000

1 1,75000000 3,75000000 2,95000000

2 1,95000000 3,96875000 2,98625000

3 1,99562500 3,99609375 2,99903125

4 1,99926563 3,99951172 2,99980391

5 1,99992695 3,99993896 2,99998299

6 1,99998899 3,99999237 2,99999712

7 1,99999881 3,99999905 2,99999972

8 1,99999983 3,99999988 2,99999996

9 1,99999998 3,99999999 3,00000000

10 2,00000000 4,00000000 3,00000000

4 x− y+z4 x−8 y+z

−2 x+ y+5 z

===

7−2115

(xyz )k+1

=( 7 /421 /815 /5)−[ 0 0 0

−4 /8 0 0−2 /5 1 /5 0]⋅(

xyz)

k+1

−[0 −1/4 1/40 0 −1/80 0 0 ]⋅(xyz )

k

Page 32: Unidad 3: Solución de SEL

32

Comandos en GNU Octave

cond(A) Número de condición de la matriz

x=A\b Solución automática* de SEL

[L, U,p] = lu (A) descomposición LU

L = chol (A) descomposición de Cholesky

*) The selection tree for how the linear equation is solved or a matrix inverse is formed is given by:1) If the matrix is upper or lower triangular sparse use a forward or backward substitution.2) If the matrix is square, Hermitian with a real positive diagonal, attempt Cholesky factorization.3) If the Cholesky factorization failed or the matrix is not Hermitian with a real positive diagonal, and the matrix is square, factorize using the LAPACK xGETRF function.4) If the matrix is not square, or any of the previous solvers flags a singular or near singular matrix, find a least squares solution