Manuel José Fernández, [email protected] METODOS NUMERICOS. Curso 2020-2021 3. METODOS NUMÉRICOS PARA LA RESOLUCIÓN DE SISTEMAS LINEALES (Continuación) Si la matriz cuadrada A del sistema de ecuaciones lineales Ax = b es de orden muy grande, la propagación de los errores de redondeo cuando utilizamos un método directo puede ser también muy grande y por tanto los resultados obtenidos pueden diferir considerablemente de los auténticos. En los métodos iterativos, a partir de un vector inicial (“semilla”) y mediante un algoritmo conveniente se obtiene una sucesión de vectores que bajo determinadas condiciones converge a la solución del sistema. Dado el sistema de n ecuaciones lineales con n incógnitas Ax = b , se determina una matriz B de orden n y un vector c R n de tal manera que el sistema x = Bx + c , es decir, ( I − B) x = c sea equivalente al sistema de partida. Elegimos x ( 0 R n como vector inicial y definimos la sucesión de vectores x ( m dada por: x ( m+1 = Bx ( m + c , m0 Así, por ejemplo, x (1 = Bx (0 + c x ( 2 = Bx (1 + c Definición. Sea x ( m una sucesión de vectores de R n y una norma definida sobre R n . lim x ( m = x lim x ( m − x = 0 lim xi( m = xi m → m → m → i = 1 , . . . , n Se verifica que todas las normas definidas sobre R ( n son equivalentes respecto a la convergencia, es decir, si una sucesión de vectores converge a un vector con una norma determinada, el resultado se sigue verificando con cualquier otra norma. Por tanto la definición anterior es independiente de la norma utilizada. Convergencia de un método iterativo. Sea Ax = b el sistema a resolver y x = Bx + c un sistema equivalente. Teorema. Si B 1 para alguna norma matricial subordinada, entonces la sucesión de vectores x ( m definida por x ( m+1 = Bx ( m + c m 0 , siendo x ( 0 un vector arbitrario, converge a la solución del sistema x = Bx + c que existe y es única. Método de Jacobi. Consideremos un sistema de n ecuaciones lineales con n incógnitas Ax = b , con det(A) 0 aii 0 y i = 1,..., n , es decir, con matriz de coeficientes cuadrada e invertible y entradas diagonales no nulas. 1 Manuel José Fernández, [email protected] a a b1 a12 − x 2 − 13 x3 − ... − 1n x n a11 a11 a11 a11 a 23 a b2 a 21 x2 = − x1 − x3 − ... − 2 n x n a 22 a 22 a 22 a 22 ' x1 = a11 x1 + a12 x 2 + . . . + a1n x n = b1 a 21 x1 + a 22 x 2 + . . . a 2 n x n = b2 ' ' ' a n1 x1 + a n 2 x 2 + . . . + a nn x n = bn 0 x1 b1 / a11 x 2 b2 / a 22 − a 21 / a 22 ' ' − a /a = + 31 33 . ' ' ' ' . x b / a − a / a n n nn n1 nn ' ' a n ,n −1 bn a n1 an2 xn = − x1 − x 2 − ... − x n −1 a nn a nn a nn a nn − a12 / a11 . . . 0 . . . − a32 / a33 0 . . . . . . . . . . − a n 2 / a nn . . − a n ,n −1 / a nn − a1n / a11 − a 2 n / a 22 . . . 0 x1 x2 ' ' ' x n Por tanto, si definimos: si i = j 0 B = (bij ) / bij = aij − aii si i j c = (ci ) / , ci = bi aii resulta que el sistema x = Bx + c es equivalente al sistema Ax = b . El método iterativo de Jacobi se corresponde con esta elección de B y de c . x ( 0 R n , se construye la sucesión de vectores Elegido el vector inicial x ( m+1 = Bx (m +c x (m de la forma m 0. 0 x1 ( m +1 ( m +1 x2 − a 21 / a 22 − a /a ' = 31 33 ' . . ' x ( m +1 − a n1 / a nn n − a12 / a11 . . . 0 . . . − a32 / a33 0 . . . . . . . . . . − a n 2 / a nn . . − a n ,n −1 / a nn 2 − a1n / a11 − a 2 n / a 22 . . . 0 x1 ( m b1 / a11 (m x 2 b2 / a 22 ' + ' = ' ' ' ' x (m b / a n n nn Manuel José Fernández, [email protected] a a a (m (m (m − 12 x 2 − 13 x3 − . . . − 1n x n a11 a11 a11 a2n (m a 21 ( m a 23 ( m − a x1 − a x3 − . . . − a x n 22 22 22 ' = + ' ' a n ,n −1 a n1 ( m a n 2 ( m (m − a x1 − a x 2 − . . . − a x n −1 nn nn nn b1 / a11 b2 / a 22 ' ' ' b / a n nn A nivel de componentes: xi ( m +1 = bi − aii n j =1, j i aij aii xj (m i = 1, . . . , n Algoritmo de Jacobi. Dado el sistema Ax = b de orden n con aii 0 i = 1,..., n . Elegir un vector x ( 0 de orden n . Para m = 0 , 1 , 2, . . . xi ( m +1 = 1 bi − aii n a j =1 , j i ij (m xj i = 1 , ..., n Ejercicio. Estudiar la convergencia del algoritmo de Jacobi aplicado al sistema: 4 x1 + x 2 + x3 = 6 x1 + 2 x 2 + x3 = 5 x + x + 3x = 3 2 3 1 y realizar tres iteraciones a partir del vector nulo. Solución. 4 1 1 A = 1 2 1 1 1 3 BJ ; = max1 / 2 , 1 , 2 / 3 = 1 − 1/ 4 − 1/ 4 0 BJ = − 1 / 2 0 − 1/ 2 − 1/ 3 − 1/ 3 0 BJ ; 1 = max5 / 6 , 7 / 12 , 3 / 4 = 5 / 6 1 Por tanto, el algoritmo de Jacobi es convergente(a la única solución del sistema) independientemente del vector inicial elegido. 3 Manuel José Fernández, [email protected] Para hallar las iteraciones podemos seguir dos caminos: 1) Sin usar explícitamente la matriz de iteración B . x1 = x 6 − x 2 − x3 4 0 = 0 0 (0 ; ; x2 = 5 − x1 − x3 2 6−0−0 3 4 2 5 − 0 − 0 (1 = 5 x = 2 2 3−0−0 1 3 ; x3 = ; 3 − x1 − x 2 3 6 − (5 / 2) − 1 5 4 8 5 − (3 / 2) − 1 5 x (2 = = 4 2 3 − (3 / 2) − (5 / 2) 1 − 3 3 6 − (5 / 4) + (1 / 3) 61 4 1.27 48 5 − (5 / 8) + (1 / 3) 113 (3 2.35 x = = 48 2 0.37 3 − (5 / 8) − (5 / 4) 3 3 8 2) Usando la matriz de iteración x (0 3/ 2 0 5/8 (2 (1 (1 (0 = 0 , x = Bx + c = c = 5 / 2 ; x = Bx + c = 5 / 4 ; 1 0 − 1/ 3 Nota. La solución exacta del sistema es x1 = 1 x2 = 2 61 / 48 x = 113 / 48 3/8 (3 x3 = 0 Definición. A = (aij )nxn es estrictamente diagonal dominante por filas(e.d.f.) : aii n a ij j =1 , j i aii 1 n a ij i = 1,..., n j =1 , j i i = 1,..., n Corolario. Una condición suficiente (no necesaria) para que el algoritmo de Jacobi sea convergente, sea cual sea el vector inicial elegido, es que la matriz de coeficientes del sistema Ax = b sea estrictamente diagonal dominante por filas. Demostración. Veamos que el hecho de que A sea e.d.f. equivale a que 4 BJ 1 Manuel José Fernández, [email protected] BJ n aij n n = max bij = max bij + bii = max 1 1 i n j =1 1i n j =1 , j i 1i n j =1 , j i aii y basta con aplicar el teorema de convergencia visto. Ejemplo: 3 2 0 A = − 2 4 1 1 3 − 5 ; 0 0 − 2/3 B J = 1 / 2 0 − 1/ 4 ; 1 / 5 3 / 5 0 BJ 2 3 4 = max , , 1 3 4 5 Método de Gauss-Seidel. Modificamos el algoritmo de Jacobi de tal manera que en el cálculo de la componente x i( m +1 i = 2,..., n , se usen los valores de las componentes x1( m +1 , x 2( m +1 , . . ., xi(−m1+1 ya calculadas, (m (m (m reemplazando a x1 , x 2 , . . ., xi −1 respectivamente. a a a (m (m (m − 12 x 2 − 13 x3 − . . . − 1n x n a11 a11 a11 x1 ( m +1 a2n (m a 21 ( m +1 a 23 ( m x2 − x1 − x3 − . . . − xn a 22 a 22 a 22 ' = ' + ' ' ' ' x ( m +1 a a n,n −1 a n 2 ( m +1 ( m +1 ( m +1 n n1 − x2 − ... − x n −1 − a x1 a nn a nn nn ( m +1 b1 / a11 b2 / a 22 ' ' ' b / a n nn Algoritmo de Gauss-Seidel. Dado el sistema Ax = b de orden n con aii 0 i = 1,..., n . Elegir un vector x ( 0 de orden n . Para m = 0 , 1 , 2, . . . xi ( m +1 = i −1 1 ( m +1 − bi − aij x j aii j =1 n a j =i +1 ij (m xj i = 1 , ..., n Dado el sistema Ax = b , ¿Cómo se determina la matriz B de iteración y el vector c del método? 5 Manuel José Fernández, [email protected] a11 x1 + a12 x 2 + . . . + a1n x n = b1 a 21 x1 + a 22 x 2 + . . . a 2 n x n = b2 ' ' ' a n1 x1 + a n 2 x 2 + . . . + a nn x n = bn a11 0 a 21 a 22 ' ' a n1 a n 2 . . 0 . . . a11x1 = −a12 x2 − ... − a1n x n + b1 a 21x1 + a 22 x2 = −a 23 x3 − ... − a 2 n x n + b2 ' ' ' a n1 x1 + a n 2 x2 + ... + a nn x n = bn 0 x1 0 − a12 0 x2 0 0 ' ' =' 0 ' ' a nn x n 0 0 − a13 . − a 23 0 . . . − a1n − a2n − a n−1,n 0 x1 b1 x 2 b2 ' + ' ' ' x b n n S L Ax = b Lx = Sx + b x = L−1 Sx + L−1b Resulta: −1 BG − S = L S = a11 0 a 21 a 22 ' ' a n1 a n 2 a11 a 21 −1 c = L b = . ' ' a n1 . . 0 . . . 0 a 22 . 0 . . an2 . . 0 0 ' 0 a nn 0 0 ' 0 a nn −1 −1 0 − a12 0 0 ' ' 0 0 − a13 . − a 23 0 . . . b1 b2 ' ' b n Ejercicio. Estudiar la convergencia del algoritmo de Gauss-Seidel aplicado al sistema: 4 x1 + x 2 + x3 = 6 x1 + 2 x 2 + x3 = 5 x + x + 3x = 3 2 3 1 y realizar dos iteraciones a partir del vector nulo. 6 − a1n − a2n − a n−1,n 0 Manuel José Fernández, [email protected] Solución. 4 1 1 A = 1 2 1 1 1 3 = −1 BG − S ; 4 0 0 0 − 1 − 1 −1 = L S = 1 2 0 0 0 − 1 = 1 1 3 0 0 0 0 0 0 0 − 1 − 1 1/ 4 0 0 0 − 1 = 0 − 1/ 8 1/ 2 − 1 / 24 − 1 / 6 1 / 3 0 0 0 0 BG −S − 1/ 4 − 1/ 4 1/ 8 − 3 / 8 1 / 24 5 / 24 = max1 / 2 , 1 / 2 , 1 / 4 = 1 / 2 1 Por tanto el algoritmo de Gauss-Seidel es convergente(a la única solución del sistema) sea cual sea el vector inicial elegido. Nota. Para obtener la inversa de L , resolvemos tres sistemas por el método de sustitución progresiva. Para hallar las iteraciones podemos seguir dos caminos: 1) Sin usar explícitamente la matriz de iteración B . x1 = 6 − x 2 − x3 4 ; x2 = 5 − x1 − x3 2 ; x3 = 3 − x1 − x 2 3 6−0−0 6 − (7 / 4) + (1 / 12) 3 13 4 4 2 0 12 5 − ( 13 / 12 ) + ( 1 / 12 ) 5 − ( 3 / 2 ) − 0 7 ( 2 = 2 = ; x = = 0 ; x (1 = 1 4 2 2 0 3 − (13 / 12) − 2 − 3 − (3 / 2) − (7 / 4) 1 − 36 3 3 12 x (0 2) Usando la matriz de iteración x (0 0 0 6 3/ 2 1/ 4 13 / 12 0 0 5 = 7 / 4 ; x ( 2 = Bx (1 + c = 2 = 0 ; x (1 = c = − 1 / 8 1 / 2 − 1 / 36 − 1 / 24 − 1 / 6 1 / 3 3 − 1 / 12 0 Nota: Para estudiar la convergencia de un método iterativo, en el caso de que las normas infinito y uno de la matriz de iteración sean mayores o iguales a uno, recurrimos a los valores propios de B . 7 Manuel José Fernández, [email protected] Definición. Sean B una matriz cuadrada de orden n e I la matriz identidad del mismo orden. Si desarrollamos det(B − I ) obtenemos un polinomio de grado n , con variable , que recibe el nombre de polinomio característico de la matriz B . P( ) = det(B − I ) = b11 − b12 b21 b22 − ' ' bn1 bn 2 ' b1n b2 n ' bnn − = (−1) n n + ... Los valores propios de B son los ceros de su polinomio característico, es decir, son las raíces de su ecuación característica P( ) = 0 . Teorema. El algoritmo definido por x ( m+1 = Bx ( m + c m 0 , es convergente, independientemente del vector inicial x ( 0 elegido todos los valores propios de B son, en módulo, menores estrictamente que uno. Notas: Si R , Si C 1 (−1 , 1) y = a + bi , Si localizamos un valor propio de 1 a 2 + b 2 1 a2 + b2 1 B que verifique 1 podríamos garantizar la no convergencia del algoritmo (sin necesidad de localizar los restantes valores propios). Si P( ) es de grado impar entonces existe, al menos, un valor propio real. Los valores propios complejos (si los hay) siempre se presentan por pares. Resulta que si a + bi es valor propio entonces a − bi también lo es. Si P( ) tiene coeficientes racionales siempre podemos obtener un polinomio equivalente con coeficientes enteros. Si P( ) tiene coeficientes enteros, una condición necesaria para que P( ) = 0 tenga una raíz entera es que tal raíz sea divisor del término independiente y una condición necesaria para que tenga una raíz racional es que el numerador sea un divisor del término independiente y el denominador lo sea del coeficiente principal. 8