métodos numéricos. grado en ingeniería en informática tema...

Post on 02-Jun-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ULPGCLogo

Métodos Numéricos.Grado en Ingeniería en Informática

Tema 4. Análisis Numérico Matricial I

Luis Alvarez León

Univ. de Las Palmas de G.C.

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 1 / 29

ULPGCLogo

Contenido

1 Introducción a los sistemas de ecuaciones

2 Resolución de un sistema triangular de ecuaciones

3 El método de Gauss para resolver sistemas de ecuaciones

4 El método de Cholesky para resolver sistemas de ecuaciones

5 Factorización LU de una matriz

6 Estimación del error numérico al resolver un sistema

7 Manejo de matrices y ficheros en C

8 Práctica 4. Implementación del método de Cholesky

9 Método de Crout para sistemas tridiagonales

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 2 / 29

ULPGCLogo

Contenido

1 Introducción a los sistemas de ecuaciones

2 Resolución de un sistema triangular de ecuaciones

3 El método de Gauss para resolver sistemas de ecuaciones

4 El método de Cholesky para resolver sistemas de ecuaciones

5 Factorización LU de una matriz

6 Estimación del error numérico al resolver un sistema

7 Manejo de matrices y ficheros en C

8 Práctica 4. Implementación del método de Cholesky

9 Método de Crout para sistemas tridiagonales

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 3 / 29

ULPGCLogo

Análisis Numérico Matricial IIntroducción

Un sistema lineal de ecuaciones viene dado por la igualdad

Au = b

donde A = (aij) es una matriz de NxN, b = (bi) es un vector de tamaño Nque determina los términos independientes, y u = (ui) es el vector soluciónbuscado.

Ejemplo ⎛⎝ −2 −2 06 18 123 11 7

⎞⎠⎛⎝ u1u2u3

⎞⎠ =

⎛⎝ 0248

⎞⎠⎛⎝ 6 18 12

0 4 40 0 −1

⎞⎠⎛⎝ u1u2u3

⎞⎠ =

⎛⎝ 248−8

⎞⎠Para que el sistema tenga una única solución debe cumplirse : ∣ A ∣∕= 0 ( ∣ A ∣es el determinante.)

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 4 / 29

ULPGCLogo

Análisis Numérico Matricial ICálculo del determinante de A

∣A∣ =1 2 34 5 67 8 9

= 15 68 9

− 24 67 9

+ 34 57 8

Algoritmo recursivo para calcular el determinante de una matriz A de dimensión N:

determinante(A,N)SI N > 1

construimos N matrices A1,A2, .......AN de dimensión N − 1∣A∣ = a1,1⋅ determinante(A1,N − 1) - a1,2⋅ determinante(A2,N − 1) + ..... a1,N ⋅

determinante(AN ,N − 1)ELSE

determinante=A(1,1)END

No de operaciones del algoritmo recursivo determinante(A,N) = N multiplicaciones, N−1sumas y N llamadas a determinantes de dimensión N − 1

Complejidad total del algoritmo recursivo determinante(A,N) = N! operaciones

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 5 / 29

ULPGCLogo

Análisis Numérico Matricial ICálculo del determinante de A

10! = 3 ⋅ 106 50! = 3 ⋅ 1064 100! = 9 ⋅ 10157

Uno de los super-ordenadores más rápidos que existen en la actualidades el BlueGene/L System desarrollado por IBM. Es capaz de realizardel orden de 1021operaciones en coma flotante por segundo. Este or-denador, para calcular un determinante de una matriz de dimensión100 tardaría del orden de 10129 años.

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 6 / 29

ULPGCLogo

Contenido

1 Introducción a los sistemas de ecuaciones

2 Resolución de un sistema triangular de ecuaciones

3 El método de Gauss para resolver sistemas de ecuaciones

4 El método de Cholesky para resolver sistemas de ecuaciones

5 Factorización LU de una matriz

6 Estimación del error numérico al resolver un sistema

7 Manejo de matrices y ficheros en C

8 Práctica 4. Implementación del método de Cholesky

9 Método de Crout para sistemas tridiagonales

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 7 / 29

ULPGCLogo

Análisis Numérico Matricial IResolución de un sistema triangular de ecuaciones

⎛⎜⎜⎜⎜⎝a1,1 a1,2 a1,3 . a1,N0 a2,2 a1,3 . a2,N0 0 . . .. . . aN−1,N−1 aN−1,N0 0 0 . aN,N

⎞⎟⎟⎟⎟⎠⎛⎜⎜⎜⎜⎝

u1u2.

uN−1uN

⎞⎟⎟⎟⎟⎠ =

⎛⎜⎜⎜⎜⎝b1b2.

bN−1bN

⎞⎟⎟⎟⎟⎠

Solución Número de OperacionesuN = bN

aN,N1 división

uN−1 =bN−1−aN−1,NuN

aN−1,N−11 división + 1 suma + 1 multiplicación

uk =bk−

∑Nl=k+1 ak,l ulak,k

k = N − 1, ..,1 1 división + (N-k) sumas + (N-k) multiplicacionesNúmero total de operaciones N divis. + (1+2+..+N-1) sumas y multiplic.

1 + 2 + .....+ N − 1 =N2(N − 1) = O(N2)

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 8 / 29

ULPGCLogo

Análisis Numérico Matricial IResolución de un sistema triangular de ecuaciones

⎛⎜⎜⎜⎜⎝a1,1 0 0 . 0a2,1 a2,2 0 . 0. . . . .

aN−1,1 . . aN−1,N−1 0aN,1 aN,2 aN,3 . aN,N

⎞⎟⎟⎟⎟⎠⎛⎜⎜⎜⎜⎝

u1u2u3.

uN

⎞⎟⎟⎟⎟⎠ =

⎛⎜⎜⎜⎜⎝b1b2b3.

bN

⎞⎟⎟⎟⎟⎠Solución:

u1 = b1a1,1

u2 =b2−a2,1u1

a2,2

uk =bk−

∑k−1l=1 ak,l ul

ak,kk = 2, ..,N

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 9 / 29

ULPGCLogo

Contenido

1 Introducción a los sistemas de ecuaciones

2 Resolución de un sistema triangular de ecuaciones

3 El método de Gauss para resolver sistemas de ecuaciones

4 El método de Cholesky para resolver sistemas de ecuaciones

5 Factorización LU de una matriz

6 Estimación del error numérico al resolver un sistema

7 Manejo de matrices y ficheros en C

8 Práctica 4. Implementación del método de Cholesky

9 Método de Crout para sistemas tridiagonales

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 10 / 29

ULPGCLogo

Análisis Numérico Matricial IMétodo de Gauss.Objetivo: Convertir el sistema en un sistema triangular

⎛⎝ −2 −2 06 18 123 11 7

⎞⎠⎛⎝ u1u2u3

⎞⎠ =

⎛⎝ 0248

⎞⎠La descomposición de la matriz A se divide en las siguientes fases:⎛⎝ −2 −2 0

6 18 123 11 7

⎞⎠⎛⎝ u1u2u3

⎞⎠ =

⎛⎝ 0248

⎞⎠ −−−−−→pivoteo

⎛⎝ 6 18 12−2 −2 03 11 7

⎞⎠⎛⎝ u1u2u3

⎞⎠ =

⎛⎝ 2408

⎞⎠⎛⎝ 6 18 12−2 −2 03 11 7

⎞⎠⎛⎝ u1u2u3

⎞⎠ =

⎛⎝ 2408

⎞⎠ −−−−−−−−−→ceros 1a col .

⎛⎝ 6 18 120 4 40 2 1

⎞⎠⎛⎝ u1u2u3

⎞⎠ =

⎛⎝ 248− 4

⎞⎠⎛⎝ 6 18 12

0 4 40 2 1

⎞⎠⎛⎝ u1u2u3

⎞⎠ =

⎛⎝ 248−4

⎞⎠ −−−−−−−−−→ceros 2a col .

⎛⎝ 6 18 120 4 40 0 − 1

⎞⎠⎛⎝ u1u2u3

⎞⎠ =

⎛⎝ 248− 8

⎞⎠

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 11 / 29

ULPGCLogo

Análisis Numérico Matricial IMétodo de Gauss. Recuento de operaciones

⎛⎜⎜⎜⎜⎝a1,1 a1,2 a1,3 . a1,N

a2,10 a2,2 a1,3 . a2,N.0 .0 . . ..0 . . aN−1,N−1 aN−1,N

aN,10 aN,20 . aN,N−10 aN,N

⎞⎟⎟⎟⎟⎠⎛⎜⎜⎜⎜⎝

u1u2u3.

uN

⎞⎟⎟⎟⎟⎠ =

⎛⎜⎜⎜⎜⎝b1b2b3.

bN

⎞⎟⎟⎟⎟⎠Recuento de Operaciones

Convertir en 0 el elemento a2,1 1 división + N multiplicaciones y sumasConvertir en cero a2,1,a3,1, ...aN,1 N-1 divisiones + N(N-1) multiplicaciones y sumasConvertir en cero a3,2,a4,2, ...aN,2 N-2 divisiones + (N-1)(N-2) multiplicaciones y sumasConvertir en cero aN,N−1 1 divisiones + 2 multiplicaciones y sumasTotal Operaciones : (1+2+..+N-1) divisiones

+ (2+6+...+N(N-1)) multiplicaciones y sumas

2 + 6 + ...+ N(N − 1) =N3 − N

3= O(N3)

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 12 / 29

ULPGCLogo

Contenido

1 Introducción a los sistemas de ecuaciones

2 Resolución de un sistema triangular de ecuaciones

3 El método de Gauss para resolver sistemas de ecuaciones

4 El método de Cholesky para resolver sistemas de ecuaciones

5 Factorización LU de una matriz

6 Estimación del error numérico al resolver un sistema

7 Manejo de matrices y ficheros en C

8 Práctica 4. Implementación del método de Cholesky

9 Método de Crout para sistemas tridiagonales

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 13 / 29

ULPGCLogo

Análisis Numérico Matricial IMétodo de Cholesky. Ejemplo descomposición de matriz

A =

⎛⎝ 1 1 41 5 64 6 26

⎞⎠ =

⎛⎝ b11 0 0b21 b22 0b31 b32 b33

⎞⎠⎛⎝ b11 b21 b310 b22 b320 0 b33

⎞⎠⎛⎝ 1 1 4

1 5 64 6 26

⎞⎠ =

⎛⎝ b211 b11b21 b11b31

b11b21 b221 + b2

22 b21b31 + b22b32b11b31 b21b31 + b22b32 b2

31 + b232 + b2

33

⎞⎠

b211 = 1 −→ b11 = 1 b11b21 = 1 −→ b21 = 1

b11= 1

b11b31 = 4 −→ b31 = 4b11

= 4 b221 + b2

22 = 5 −→ b22 = ±√(

5− b221

)=√

(4) = 2

b21b31 + b22b32=6 −→ b32 = 6−b21b31b22

= 6−42 = 1

b231 + b2

32 + b233 = 26 −→ b33 =

√(26− b2

31 − b232

)=√(

26− 16− 12)= 3

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 14 / 29

ULPGCLogo

Análisis Numérico Matricial IMétodo de Cholesky. Algoritmo general

El algoritmo para descomponer A = B ⋅ Bt es el siguiente

Para i = 0, ...,N − 1

bi,i =

√(ai,i −

∑i−1k=0 b2

i,k

)Para j = i + 1, ...,N − 1

bj,i =1

bi,i

(aj,i −

∑i−1k=0 bj,kbi,k

)Fin Para j

Fin Para i

Una vez calculada B, resolvemos el sistema Au = B ⋅ Btu = b descomponiéndoloen los siguientes sistemas triangulares :

Bz = b

Btu = z

Ambos sistemas se resuelvan rápidamente haciendo un remonte y un descenso.Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 15 / 29

ULPGCLogo

Contenido

1 Introducción a los sistemas de ecuaciones

2 Resolución de un sistema triangular de ecuaciones

3 El método de Gauss para resolver sistemas de ecuaciones

4 El método de Cholesky para resolver sistemas de ecuaciones

5 Factorización LU de una matriz

6 Estimación del error numérico al resolver un sistema

7 Manejo de matrices y ficheros en C

8 Práctica 4. Implementación del método de Cholesky

9 Método de Crout para sistemas tridiagonales

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 16 / 29

ULPGCLogo

Análisis Numérico Matricial IFactorización LU de una matriz.

La factorización LU es un método parecido al de Cholesky que sirvepara matrices no-simétricas. Busca una descompocisión de la forma :

A =

⎛⎝ 1 1 42 5 61 1 26

⎞⎠ =

⎛⎝ 1 0 0l21 1 0l31 l32 1

⎞⎠⎛⎝ u11 u21 u310 u22 u320 0 u33

⎞⎠

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 17 / 29

ULPGCLogo

Análisis Numérico Matricial IFactorización LU. Algoritmo general

El algoritmo para descomponer A = L ⋅ U es el siguiente

Inicializar a 0 todos los elementos de L y U.Para i = 0, ...,N − 1

li,i = 1ui,i = ai,i −

∑i−1k=0 li,kuk ,i

Para j = i + 1, ...,N − 1ui,j = ai,j −

∑i−1k=0 li,kuk ,j

lj,i = 1ui,i

(aj,i −

∑i−1k=0 lj,kuk ,i

)Fin Para j

Fin Para i

Una vez calculadas L,U, resolvemos el sistema Au = L⋅U ⋅u = b descomponiéndoloen los siguientes sistemas triangulares :

Lz = b

Uu = z

Ambos sistemas se resuelvan rápidamente haciendo un remonte y un descenso.

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 18 / 29

ULPGCLogo

Análisis Numérico Matricial IMétodo de Cholesly. Condiciones necesarias para poder aplicar el método

Las condiciones para poder aplicar el método de Cholesky son las siguientes :

La matriz A debe ser simétrica ai,j = aj,iLa matriz A debe ser definida positiva

x tAx > 0 para todo vector x ∕= 0todos los autovalores de A son positivosLos menores principales de la matriz son positivos

a1,1 a1,2 a1,3 . a1,Na2,1 a2,2 a2,3 . a2,Na3,1 a3,2 a3,3 . a3,N. . . . .

aN,1 aN,2 aN,3 . aN,N

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 19 / 29

ULPGCLogo

Contenido

1 Introducción a los sistemas de ecuaciones

2 Resolución de un sistema triangular de ecuaciones

3 El método de Gauss para resolver sistemas de ecuaciones

4 El método de Cholesky para resolver sistemas de ecuaciones

5 Factorización LU de una matriz

6 Estimación del error numérico al resolver un sistema

7 Manejo de matrices y ficheros en C

8 Práctica 4. Implementación del método de Cholesky

9 Método de Crout para sistemas tridiagonales

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 20 / 29

ULPGCLogo

Análisis Numérico Matricial IEstimación del error de un método para resolver sistemas.

Para estimar la fiabilidad de la solución numérica de un sistema de ecuaciones,haremos lo siguiente: dada una matriz A, un vector de términos independientesb y un vector solución u, calculado utilizando alguna técnica numérica, si lasolución es perfecta entonces Au − b = 0. Ahora bien, esto no suele suceder,porque los errores de redondeo y de cálculo producen que esta estimación nosea exacta. Para estimar el error cometido al resolver el sistema utilizaremos laexpresión siguiente, donde e es el vector e = Au − b :

ErrorSistema =1N

∑ ∣ei ∣∣bi ∣+ �

donde N es la dimensión del sistema y ErrorSistema representa el error relativomedio al resolver el sistema. En el denominador se añade � > 0 para evitarlas posibles divisiones por 0. Cuanto más pequeño sea ErrorSistema, mejoraproximada estará la solución del sistema.

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 21 / 29

ULPGCLogo

Contenido

1 Introducción a los sistemas de ecuaciones

2 Resolución de un sistema triangular de ecuaciones

3 El método de Gauss para resolver sistemas de ecuaciones

4 El método de Cholesky para resolver sistemas de ecuaciones

5 Factorización LU de una matriz

6 Estimación del error numérico al resolver un sistema

7 Manejo de matrices y ficheros en C

8 Práctica 4. Implementación del método de Cholesky

9 Método de Crout para sistemas tridiagonales

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 22 / 29

ULPGCLogo

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 23 / 29

ULPGCLogo

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 24 / 29

ULPGCLogo

Contenido

1 Introducción a los sistemas de ecuaciones

2 Resolución de un sistema triangular de ecuaciones

3 El método de Gauss para resolver sistemas de ecuaciones

4 El método de Cholesky para resolver sistemas de ecuaciones

5 Factorización LU de una matriz

6 Estimación del error numérico al resolver un sistema

7 Manejo de matrices y ficheros en C

8 Práctica 4. Implementación del método de Cholesky

9 Método de Crout para sistemas tridiagonales

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 25 / 29

ULPGCLogo

Análisis Numérico Matricial IPráctica 4. Método de Cholesky

Hay que analizar los resultados obtenidos cambiando la precisión de la aritmética. Hayque resolver los sistemas que figuran en los apuntes y los sistemas de mayor dimensiónque se generan utilizando el proyecto an_generacion_datos.dev⎛⎝ 1 1 4

1 5 64 6 26

⎞⎠⎛⎝ xyz

⎞⎠ =

⎛⎝ 61236

⎞⎠ ⎛⎝ 1 1 41 1 44 4 17

⎞⎠⎛⎝ xyz

⎞⎠ =

⎛⎝ 61236

⎞⎠⎛⎝ 1 1 4

1 5 64 6 17

⎞⎠⎛⎝ xyz

⎞⎠ =

⎛⎝ 61236

⎞⎠ ⎛⎝ 2 −1 0−1 2 −10 −1 −4

⎞⎠⎛⎝ xyz

⎞⎠ =

⎛⎝ 10−5

⎞⎠

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 26 / 29

ULPGCLogo

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 27 / 29

ULPGCLogo

Contenido

1 Introducción a los sistemas de ecuaciones

2 Resolución de un sistema triangular de ecuaciones

3 El método de Gauss para resolver sistemas de ecuaciones

4 El método de Cholesky para resolver sistemas de ecuaciones

5 Factorización LU de una matriz

6 Estimación del error numérico al resolver un sistema

7 Manejo de matrices y ficheros en C

8 Práctica 4. Implementación del método de Cholesky

9 Método de Crout para sistemas tridiagonales

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 28 / 29

ULPGCLogo

Análisis Numérico Matricial IMétodo de Crout para matrices tridiagonales

Si A es una matriz tridiagonal se puede descomponer de la forma siguiente:⎛⎜⎜⎝a0 b0 . 0c0 a1 . 00 . . bN−20 . cN−2 aN−1

⎞⎟⎟⎠ =

⎛⎜⎜⎝l0 0 . 0

m0 l1 . 00 . . 00 . mN−2 lN−1

⎞⎟⎟⎠⎛⎜⎜⎝

1 u0 . 00 1 . 00 . . uN−20 . 0 1

⎞⎟⎟⎠Los vectores mi , li, y ui se calculan utilizando el esquema:

l0 = a0u0 = b0/l0Para i = 1, ..,N − 2

mi−1 = ci−1 La complejidad del método de Crout es O(N1)li = ai −mi−1ui−1ui = bi/li

Fin ParamN−2 = cN−2lN−1 = aN−1 −mN−2uN−2

A partir de la descomposición se resuelven los 2 sistemas triangulares asocia-dos como en Cholesky mediante un descenso y un remonte

Luis Alvarez León () Métodos Numéricos Univ. de Las Palmas de G.C. 29 / 29

top related