Baixe o app para aproveitar ainda mais
Prévia do material em texto
Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Sistemas lineares Ricardo Biloti biloti@g.unicamp.br Ca´lculo Nume´rico – UNICAMP 2S/2018 http://goo.gl/7DZpR http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Licenc¸a Este trabalho e´ licenciado sob os termos da Licenc¸a Internacional Creative Commons Atribuic¸a˜o-Na˜oComercial-CompartilhaIgual 4.0. Para ver uma co´pia desta licenc¸a, visite http://creativecommons.org/licenses/by-nc-sa/4.0/. http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Seus direitos e deveres sa˜o: • Voceˆ e´ livre para copiar e redistribuir este material, em qualquer meio ou formato, para adapta´-lo, transforma´-lo ou utiliza´-lo para construir seu pro´prio material. • Voceˆ deve dar os cre´ditos apropriados, fornecendo link para a licenc¸a e indicando se alterac¸o˜es foram feitas. Voceˆ pode fazer isto de qualquer forma razoa´vel, pore´m sem tentar passar a ideia ou sugerir que o autor endosse suas alterac¸o˜es ou seu uso do material. • Voceˆ na˜o pode utilizar este material para fins comerciais. • Se voceˆ alterar, transformar ou construir seu pro´prio material com base neste trabalho, voceˆ devera´ distribu´ı-lo sob a mesma licenc¸a usada no original. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Sistemas lineares Considere A ∈ Rn×n e b ∈ Rn. Queremos x tal que Ax = b http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Neste curso, tratamos apenas de sistemas lineares quadrados, ou seja, sistemas lineares nos quais o nu´mero de equac¸o˜es e o nu´mero de inco´gnitas e´ o mesmo. Apesar disto, os me´todos diretos que sera˜o vistos (eliminac¸a˜o de Gauss / decomposic¸a˜o LU) prestam-se tambe´m a sistemas retangulares. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Sistemas lineares Para que matrizes A e´ fa´cil resolver o sistema linear Ax = b? I I , matriz identidade I D, matriz diagonal I T , matriz triangular http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Uma parte da dificuldade em resolver um sistema linear e´ determinada pela estrutura da matriz de coeficientes. O caso mais trivial e´ o de um sistema linear com a matriz de coeficientes sendo pro´pria matriz identidade. Outra situac¸a˜o ainda muito simples se da´ quando a matriz de coeficientes e´ diagonal. Se todas as entradas da diagonal forem na˜o-nulas, enta˜o xi = b/dii . Entretanto e´ uma hipo´tese muito forte supor que a matriz A e´ diagonal. Matrizes triangulares sa˜o um bom compromisso entre simplicidade e generalidade. Veremos que muitas vezes e´ poss´ıvel converter um sistema linear em outro equivalente cuja matriz seja triangular. Ale´m disso, resolver sistemas lineares triangulares e´ bem simples. Por sistemas lineares equivalentes queremos dizer sistemas lineares que tenham exatamente as mesmas soluc¸o˜es. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Como resolver um sistema triangular? a11 x1 + a12 x2 + a13 x3 + a14 x4 = b1 a22 x2 + a23 x3 + a24 x4 = b2 a33 x3 + a34 x4 = b3 a44 x4 = b4 x4 = (b4)/a44 x3 = (b3 − a34 x4)/a33 x2 = (b2 − a23 x3 − a24 x4)/a22 x1 = (b1 − a12 x2 − a13 x3 − a14 x4)/a11 xk = bk − ∑n j=k+1 akj xj akk , k = n, n − 1, . . . , 1 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares A u´nica hipo´tese necessa´ria para poder garantir a existeˆncia de soluc¸a˜o de um sistema triangular e´ que todos os elementos da diagonal, akk , sejam na˜o nulos. Isto e´ facilmente constatado observando-se a expressa˜o geral para o elemento xk . Entretanto, mesmo que um elemento da diagonal seja nulo, ainda pode acontecer do sistema ter soluc¸a˜o. Imagine, por exemplo, o caso em que a u´ltima equac¸a˜o e´ 0 · x4 = b4. Nesse caso, x4 esta´ livre para assumir qualquer valor se b4 = 0, e na˜o ha´ soluc¸a˜o poss´ıvel se b4 6= 0. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Algoritmo Se akk 6= 0, k = 1, 2, . . . , n: xk = bk − ∑n j=k+1 akj xj akk , k = n, n − 1, . . . , 1 I xn ← bn/ann I Para k = (n − 1), (n − 2), . . . , 1: I soma ← bk I Para j = (k + 1), (k + 2), . . . , n: I soma ← soma −akj xj I xk ← soma /akk http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares O custo de algoritmos para resoluc¸a˜o de sistemas lineares e´ tradicionalmente medido contando-se quantas operac¸o˜es de ponto flutuante sa˜o realizadas. I xn ← bn/ann 1 I Para k = (n − 1), (n − 2), . . . , 1: ∑n−1k=1 I soma ← bk I Para j = (k + 1), (k + 2), . . . , n: ∑n j=k+1 I soma ← soma −akj xj 2 I xk ← soma /akk 1 Custo total: 1 + n−1∑ k=1 n∑ j=k+1 2 + 1 = 1 + n−1∑ k=1 [2(n − k) + 1] = 1 + (2n + 1)(n − 1)− 2 n−1∑ k=1 k = 1 + 2n2 − n − 1− 2n(n − 1) 2 = n2 Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exerc´ıcio Para contar o nu´mero de operac¸o˜es de algoritmos e´ necessa´rio conhecer algumas identidades. Demonstre que: n∑ k=1 1 = n n∑ k=1 k = n(n + 1) 2 n∑ k=1 k2 = n(n + 1/2)(n + 1) 3 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Na verdade, na˜o e´ necessa´rio contar exatamente o nu´mero de operac¸o˜es que um algoritmo realiza, mas apenas ter uma boa estimativa. Para tanto, basta determinar corretamente o termo de maior ordem e o coeficiente desse termo. Uma te´cnica simples que presta-se a fornecer esta estimativa e´ aproximar as somas por integrais. n∑ k=1 1 ≈ ∫ n 0 1 dk = n n∑ k=1 k ≈ ∫ n 0 k dk = 1 2 k2 ∣∣∣∣n 0 = 1 2 n2 n∑ k=1 k2 ≈ ∫ n 0 k2 dk = 1 3 k3 ∣∣∣∣n 0 = 1 3 n3 Observe que todas as estimativas acertaram exatamente o termo de maior ordem. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Operac¸o˜es elementares 2x1 + 3x2 + x3 + x4 = 2 (×3) 4x1 + 7x2 + 4x3 + 3x4 = 1 4x1 + 7x2 + 6x3 + 4x4 = 1 6x1 + 9x2 + 9x3 + 8x4 = 3 I Multiplicar uma equac¸a˜o por um escalar na˜o-nulo I Intercambiar a posic¸a˜o de duas equac¸o˜es I Somar/Subtrair uma equac¸a˜o a` outra http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Operac¸o˜es elementares sa˜o operac¸o˜es que podem ser realizadas com as equac¸o˜es de um sistema linear sem alterar seu conjunto soluc¸a˜o. Ou seja, apesar de alterar as equac¸o˜es do sistema linear, o sistema alterado continua tendo as mesmas soluc¸o˜es do sistema original, e nenhuma outra. A primeira operac¸a˜o elementar e´ multiplicar uma das equac¸o˜es do sistema linear por uma constante na˜o nula. Claramente, a igualdade e´ preservada. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Operac¸o˜es elementares 2x1 + 3x2 + x3 + x4 = 2 4x1 + 7x2 + 4x3 + 3x4 = 1 6x1 + 9x2 + 9x3 + 8x4 = 3 4x1 + 7x2 + 6x3 + 4x4 = 1 I Multiplicar uma equac¸a˜o por um escalar na˜o-nulo I Intercambiar a posic¸a˜o de duas equac¸o˜es I Somar/Subtrair uma equac¸a˜o a` outra http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Trocar a ordem das equac¸o˜es de um sistema linear tambe´m na˜o altera suas soluc¸o˜es. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Operac¸o˜es elementares 2x1 + 3x2 + x3 + x4 = 2 4x1 + 7x2 + 4x3 + 3x4 = 1 6x1 + 9x2 + 9x3 + 8x4 = 3 4x1 + 7x2 + 6x3 + 4x4 = 1 I Multiplicar uma equac¸a˜o por um escalar na˜o-nulo I Intercambiar a posic¸a˜o de duas equac¸o˜es I Somar/Subtrair uma equac¸a˜o a` outra http://goo.gl/7DZpR Ricardo Biloti Sistemas linearesPor fim, somar ou subtrair uma equac¸a˜o de outra tambe´m na˜o alterar as soluc¸o˜es do sistemas, visto que ao fazer isso, na verdade, esta´ se somando/subtraindo uma constante nos dois lados de uma equac¸a˜o. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Operac¸o˜es elementares 2x1 + 3x2 + x3 + x4 = 2 4x1 + 7x2 + 4x3 + 3x4 = 1 6x1 + 9x2 + 9x3 + 8x4 = 3 2x1 + 2x2 + 3x3 + 4x4 = 2 ← `3 − `4 I Multiplicar uma equac¸a˜o por um escalar na˜o-nulo I Intercambiar a posic¸a˜o de duas equac¸o˜es I Somar/Subtrair uma equac¸a˜o a` outra http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Por fim, somar ou subtrair uma equac¸a˜o de outra tambe´m na˜o alterar as soluc¸o˜es do sistemas, visto que ao fazer isso, na verdade, esta´ se somando/subtraindo uma constante nos dois lados de uma equac¸a˜o. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo Ax = b 2 3 1 1 4 7 4 3 4 7 6 4 6 9 9 8 x = 3 6 4 3 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Nesse exemplo, vamos utilizar as operac¸o˜es elementares para transformar o sistema linear em outro sistema linear, equivalente ao original, mais simples. Por sistemas lineares equivalentes, queremos dizer sistemas lineares com o mesmo conjunto soluc¸a˜o. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Escalonamento `1 − 2`1 + `2 − 2`1 + `3 − 3`1 + `4 2 3 1 1 ... 3 4 7 4 3 ... 6 4 7 6 4 ... 4 6 9 9 8 ... 3 ∼ 2 3 1 1 ... 3 0 1 2 1 ... 0 0 1 4 2 ... −2 0 0 6 5 ... −6 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Ao inve´s de manipular as equac¸o˜es do sistema, e´ mais conveniente trabalhar apenas com os coeficientes e com o termo independente. Para isso, operamos na matriz extendida ou aumentada do sistema, que e´ a matriz de coeficientes acrescida de uma coluna contendo o vetor b do sistema linear. Atrave´s de operac¸o˜es elementares, vamos transformar a matriz de coeficientes do sistema linear em uma matriz triangular superior, pois ja´ vimos que sistemas com essa estrutura sa˜o simples de serem resolvidos. Por uma questa˜o de organizac¸a˜o e metodologia, vamos tentar introduzir “zeros” na ma- triz, nas posic¸o˜es abaixo da diagonal principal, de cima para baixo e da esquerda para a direita. Esquematicamente, cada a i-e´sima linha da matriz e´ representada por `i . Para zerar os elementos da primeira coluna, abaixo do elemento na diagonal, utilizando a terceira operac¸a˜o elementar descrita anteriormente. Por exemplo, para introduzir um zero na posic¸a˜o (2, 1) da matriz, somamos a` linha 2, um mu´ltiplo apropriado da linha 1. Com efeito, `2 ← −2`1 + `2. O mesmo e´ feito com as linhas 3 e 4, atrave´s das operac¸o˜es `3 ← −2`1 +`3 e `4 ← −3`1 +`4. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Escalonamento `1 `2 − 1`2 + `3 − 0`2 + `4 2 3 1 1 ... 3 0 1 2 1 ... 0 0 1 4 2 ... −2 0 0 6 5 ... −6 ∼ 2 3 1 1 ... 3 0 1 2 1 ... 0 0 0 2 1 ... −2 0 0 6 5 ... −6 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Para introduzir “zeros” nas posic¸o˜es (3, 2) e (4, 2) vamos utilizar mu´ltiplos da linhas 2. Veja que se continua´ssemos utilizando mu´ltiplos da linha 1, “estragar´ıamos” os zeros ja´ introduzidos na primeira coluna. Por uma eventualidade, alguns diriam ate´ mesmo sorte, o elemento (4, 2) ja´ e´ zero. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Escalonamento `1 `2 `3 − 3`3 + `4 2 3 1 1 ... 3 0 1 2 1 ... 0 0 0 2 1 ... −2 0 0 6 5 ... −6 ∼ 2 3 1 1 ... 3 0 1 2 1 ... 0 0 0 2 1 ... −2 0 0 0 2 ... 0 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Resta zerar o coeficiente (4, 3), o que e´ feito com a operac¸a˜o `4 ← −3`3 + `4. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Sistema triangular superior 2 3 1 1 ... 3 0 1 2 1 ... 0 0 0 2 1 ... −2 0 0 0 2 ... 0 2x1 + 3x2 + x3 + x4 = 3 x2 + 2x3 + x4 = 0 2x3 + x4 = −2 2x4 = 0 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares O sistema linear representado por essa matriz aumentada pode ser novamente escrito na forma usual. A resoluc¸a˜o deste sistema e´ simples, realizada atrave´s do algoritmo ja´ discutido para sistemas lineares triangulares superiores. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo A = 2 3 1 1 4 7 4 3 4 7 6 4 6 9 9 8 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Durante o processo de eliminac¸a˜o gaussiana para simplificar o sistema linear Ax = b, operamos na matriz aumentada do sistema, [A|b]. Todas as operac¸o˜es realizadas alteram tanto as entradas da matriz A quanto do vetor b. Entretanto, se voceˆ olhar com atenc¸a˜o o exemplo apresentado, vai reparar que apenas as entradas da matriz A foram determinantes na definic¸a˜o de cada operac¸a˜o. O vetor b, mesmo tendo sido alterado, em nenhum momento foi decisivo para a escolha da operac¸a˜o elementar a ser aplicada na matriz aumentada. Essa constatac¸a˜o nos motiva a postergar a manipulac¸a˜o do vetor b. A raza˜o para isso ficara´ evidente mais a frente. Vamos realizar as mesmas operac¸o˜es utilizadas no processo de escalonamento, pore´m sem considerar o vetor b, tomando o cuidado de guardar as operac¸o˜es realizadas na matriz A, para que possam ser posteriormente aplicadas tambe´m ao vetor b. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Escalonamento `1 −2`1 + `2 −2`1 + `3 −3`1 + `4 2 3 1 1 4 7 4 3 4 7 6 4 6 9 9 8 = 2 3 1 1 0 1 2 1 0 1 4 2 0 0 6 5 L1A = 1 0 0 0 −2 1 0 0 −2 0 1 0 −3 0 0 1 2 3 1 1 4 7 4 3 4 7 6 4 6 9 9 8 = 2 3 1 1 0 1 2 1 0 1 4 2 0 0 6 5 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Ja´ vimos quais sa˜o as operac¸o˜es que devem ser feitas para introduzir zeros na primeira coluna de A, abaixo da diagonal. A questa˜o principal aqui e´ como guardar o histo´rico dessas operac¸o˜es, de maneira que elas possam ser reaplicadas ao vetor b. Uma forma de salvar as operac¸o˜es elementares e´ perceber que o resultado produzido por elas pode ser obtido atrave´s de um produto matricial. Observe que o produto da matriz L1 pela matriz A produz exatamente o mesmo efeito de treˆs operac¸o˜es elementares utilizadas no exemplo. Perceba tambe´m que a matriz L1 tem uma estrutura peculiar. Ela e´ triangular inferior, com os elementos da diagonal todos iguais a 1. Ale´m disso cada multiplicador computado durante o processo de eliminac¸a˜o, adequado para zerar o elemento na linha i da primeira coluna, foi armazenado na matriz L1 exatamente naquela mesma posic¸a˜o. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Escalonamento `1 `2 −1`2 + `3 −0`2 + `4 2 3 1 1 0 1 2 1 0 1 4 2 0 0 6 5 = 2 3 1 1 0 1 2 1 0 0 2 1 0 0 6 5 L2L1A = 1 0 0 0 0 1 0 0 0 −1 1 0 0 −0 0 1 2 3 1 1 0 1 2 1 0 1 4 2 0 0 6 5 = 2 3 1 1 0 1 2 1 0 0 2 1 0 0 6 5 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Para zerar os dois elementos abaixo da diagonal na segunda coluna, podemos tambe´m realizar um produto matricial que tem o mesmo efeito das duas operac¸o˜es elementares necessa´rias (nesse exemplo, por sorte, de fato,apenas uma e´ necessa´ria). Essa matriz, L2 e´ multiplicada por L1A (que representa o estado parcial da matriz A depois do primeiro passo do processo de eliminac¸a˜o). Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Escalonamento `1 `2 `3 −3`3 + `4 2 3 1 1 0 1 2 1 0 0 2 1 0 0 6 5 = 2 3 1 1 0 1 2 1 0 0 2 1 0 0 0 2 L3L2L1A = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 −3 1 2 3 1 1 0 1 2 1 0 0 2 1 0 0 6 5 = 2 3 1 1 0 1 2 1 0 0 2 1 0 0 0 2 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Por fim, a u´ltima operac¸a˜o elementar necessa´ria para tornar a matriz A em triangular superior pode ser computada pelo produto L3(L2L1A). Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Escalonamento L3L2L1A = 2 3 1 1 0 1 2 1 0 0 2 1 0 0 0 2 = U A = (L3L2L1) −1U = (L−11 L −1 2 L −1 3 )U http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares A matriz triangular superior obtida, denotada por U, fica expressa como U = L3L2L1A. Como as matrizes Lj sa˜o todas na˜o singulares (Por queˆ?), podemos escrever A em func¸a˜o de L1, L2, L3 e U. Resta saber como computar L−1j . Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Invertendo Lj L1 = 1 −2 1 −2 1 −3 1 L−11 = 1 2 1 2 1 3 1 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Em geral, computar a inversa de uma matriz e´ bem mais caro que resolver um sistema linear. Mas para nossa sorte, as matrizes Lj teˆm uma estrutura especial. Se multiplicar por Lj tem o resultado de realizar algumas operac¸o˜es elementares, multiplicar por L−1j tem que desfazer essas operac¸o˜es elementares, visto que L −1 j Lj = I . Por exemplo, se `2 representa a segunda linha da matriz A e ˜`2 representa a segunda linha, apo´s a operac¸a˜o elementar, enta˜o ˜` 2 = `2 − 2`1, que na matriz L1 corresponde a` linha [−2 1 0 0]. A operac¸a˜o inversa e´ `2 = ˜`2 + 2`1, que corresponderia a` linha [2 1 0 0]. Assim, L−11 e´ obtida apenas trocando-se o sinal dos elementos abaixo da diagonal de L1. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Calculando L−11 L −1 2 L −1 3 1 2 1 2 1 3 1 1 1 1 1 0 1 1 1 1 3 1 1 2 1 2 1 3 1 1 1 1 1 0 3 1 1 2 1 2 1 1 3 0 3 1 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Nosso u´ltimo golpe de sorte e´ perceber que o produto de todas as matrizes L−1j e´ tambe´m uma matriz triangular inferior com diagonal unita´ria, contendo todos os multiplicadores computados durante o processo de eliminac¸a˜o, em suas respectivas posic¸o˜es. Essa matriz final e´ denotada por L. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Decomposic¸a˜o LU A = 2 3 1 1 4 7 4 3 4 7 6 4 6 9 9 8 = 1 2 1 2 1 1 3 0 3 1 2 3 1 1 1 2 1 2 1 2 = LU http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares A decomposic¸a˜o LU consite enta˜o de uma fatorac¸a˜o da matriz A em um produto de duas matrizes, uma triangular inferior com diagonal unita´ria e outra triangular superior. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Algoritmo I U ← A, L← I I Para j = 1, 2, . . . , n − 1 I Para i = j + 1, . . . , n I lij ← uij/ujj , se ujj 6= 0 I uij ← 0 I Para k = j + 1, . . . , n I ui ,k ← ui ,k − lijuj ,k Nu´mero de operac¸o˜es: n−1∑ j=1 n∑ i=j+1 [1 + 2(n − j)] ≈ 2 3 n3 flops http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares FLOPS (FLoating-Point operations per Second) e´ a quantidade de operac¸o˜es de ponto flutuante que seu computador pode, em tese, realizar por segundo. Essa medida e´ computada por GFLOPS = v × np × nc × oc, onde GFLOPS sa˜o bilho˜es de operac¸o˜es por segundo, v e´ a velocidade da CPU em GHz, np e´ o nu´mero de CPU’s, nc e´ o nu´mero de cores (nu´cleos) por CPU e oc e´ a quantidade de operac¸o˜es de ponto fluante capazes de serem feitas por ciclo (4 em geral). Por exemplo, um processor Intel Core i7 3.6 GHz e 4 nu´cleos, executaria, em tese, 57 GFLOPS ou 57 bilho˜es de operac¸o˜es de ponto flutuante por segundo. Dessa forma, uma matriz quadrada de ordem n = 5.000, precisa ao redor de 83 bilho˜es de operac¸o˜es e portanto teria sua decomposic¸a˜o LU computada em aproximadamente 1.4 segundos, isto se todos os nu´cleos fossem utilizados. Em um algoritmo sequeˆncial, onde apenas um nu´cleo e´ utilizado, esse tempo subiria para algo em torno de 5.8 segundos. Os dois sistemas lineares triangulares seriam resolvidos em aproximadamente 3.5 milisegundos. Ja´ uma matriz quadrada de ordem n = 20.000 levaria aproximadamente 6.24 minutos para ser decomposta em LU e os sistemas lineares triangulares seriam resolvidos em 56 milisegundos. Na pra´tica, os tempos sa˜o maiores, pois ha´ restric¸o˜es de acesso a` memo´ria, tempo gasto para trazer os dados da memo´ria para dentro do processador, tempo de acesso a disco (caso os dados sejam grandes demais), etc. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Resoluc¸a˜o de sistemas lineares Como resolver Ax = b, sabendo que A = LU? Se Ax = b, como A = LU, temos que LUx = b Definindo y = Ux , obtemos dois sistemas triangulares{ Ly = b Ux = y http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Utilizando a decomposic¸a˜o LU, o problema de resolver um sistema linear quadrado, sem qualquer outra caracter´ıstica particular, e´ convertido no problema de resolver em sequeˆncia dois sistemas lineares triangulares. A vantagem disto, como ja´ vimos anteriormente, e´ que a resoluc¸a˜o de sistemas lineares triangulares e´ simples e computacionalmente barata. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Sistemas triangulares Seja L ∈ Rn×n e´ triangular inferior e b ∈ Rn Ly = b I Para i = 1, . . . , n I yi ← 1 lii bi − i−1∑ j=1 lijyj Nu´mero de operac¸o˜es: n∑ i=1 [2 + (i − 1) + (i − 2)] ≈ n2 flops http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Inicia-se pela resoluc¸a˜o do sistema linear triangular inferior, Ly = b, a um custo computacional da ordem de n2 operac¸o˜es. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Sistemas triangulares Seja U ∈ Rn×n e´ triangular superior e y ∈ Rn Ux = y Nu´mero de operac¸o˜es: ≈ n2 flops http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Computado o vetor y , resta resolver o sistema linear triangular superior, Ux = y , novamente a um custo computacional da ordem de n2 operac¸o˜es. Ao final, obtem-se o vetor x , soluc¸a˜o do sistema linear original. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Resoluc¸a˜o de sistema linear Seja A ∈ Rn×n e b ∈ Rn, queremos x tal que Ax = b. I Compute da decomposic¸a˜o LU de A I Resolva Ly = b I Resolva Ux = y Nu´mero de operac¸o˜es: ≈ 2 3 n3 flops http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares O algoritmo completo para a resoluc¸a˜o de um sistema linear quadrado, atrave´s da decom- posic¸a˜o LU tem custo computacional da ordem de 2 3 n3 operac¸o˜es, uma vez que o custo computacional da resoluc¸a˜o dos dois sistemas triangulares e´ desprez´ıvel em comparac¸a˜o com o custo para decompor a matriz A nos fatores L e U. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos IterativosII Desempenho da decomposic¸a˜o LU 10-4 10-3 10-2 10-1 1 10 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 t(n) ≈ (7.70·10-9) · n2.26 Te m po [s ] Ordem da matriz Ajustado Experimental http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares No gra´fico (em escala logar´ıtmica) e´ poss´ıvel ver como o tempo computacional cresce quando a ordem da matriz aumenta. Para construir esse gra´fico, foram computadas no MATLAB as decomposic¸o˜es LU de 100 matrizes aleato´rias, para cada ordem. O tempo exibido e´ o tempo me´dio do ca´lculo dessas decomposic¸o˜es. Este experimento, foi conduzido em um computador com 32 processadores. Tanto o MATLAB como o Octave conseguem fazer uso de mais de um processador no ca´lculo da decomposic¸a˜o LU. A curva em vermelho representa o ajuste dos tempos medidos a uma curva do tipo t(n) = anb, onde n e´ a ordem da matriz, e a e b sa˜o constantes a determinar. O tempo na˜o e´ exatamente proporcional ao nu´mero de operac¸o˜es, pois ha´ outro fatores envolvidos, como movimentac¸a˜o de dados entre a memo´ria do computador e o processador. Mesmo assim, o ajuste foi muito bom. Na pra´tica, o desempenho foi melhor que o previsto (b = 2.26 < 3), pois de fato ha´ algoritmos mais eficientes que a versa˜o simples que apresentamos. No to´pico de Ajuste de Curvas por Quadrados Mı´nimos e´ discutido como as constantes a e b sa˜o computadas. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Decomposic¸a˜o LU Teorema Seja A uma matriz quadrada com todos os menores principais na˜o-singulares. Enta˜o A pode ser fatorada de maneira u´nica no produto A = LU, com L triangular inferior com diagonal unita´ria e U triangular superior. http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Do ponto de vista computacional, a resoluc¸a˜o de sistema lineares atrave´s do algoritmo proposto, por meio da decomposic¸a˜o LU, parecer ser muito bom. Resta a pergunta se isso sempre e´ poss´ıvel. Ou seja, sera´ que toda matriz pode ser decomposta em fatores L e U, como descrito? De fato, nem sempre isso e´ poss´ıvel. O teorema apresentado explicita qual a condic¸a˜o necessa´ria para garantir a existeˆncia da decomposic¸a˜o LU. Como devemos proceder na pra´tica, quando nos depararmos com um sistema linear para resolver? Sera´ que devemos primeiro verificar se as hipo´teses do teorema sa˜o satisfeitas, antes de tentar computar a decomposic¸a˜o LU? Na verdade, tentar verificar se as hipo´teses do teorema sa˜o ou na˜o satisfeitas seria muito mais caro do que tentar computar diretamente a decomposic¸a˜o LU. Sendo assim, aplica-se diretamente o algoritmo para o ca´lculo dos fatores L e U. Se o algoritmo na˜o encontrar empec´ılhos a` execuc¸a˜o e´ porque a matriz de fato tem decomposic¸a˜o LU. Pergunta: mas o que poderia dar errado na ca´lculo da decomposic¸a˜o LU? Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo perverso A matriz A = [ 0 1 1 1 ] na˜o tem decomposic¸a˜o LU. Entretanto A = [ 10−20 1 1 1 ] = [ 1 0 1020 1 ] [ 10−20 1 0 1− 1020 ] = LU Numericamente, como u ≈ 10−16, fl(1− 1020) = −1020. Logo, A 6= [ 10−20 1 1 0 ] = [ 1 0 1020 1 ] [ 10−20 1 0 −1020 ] = LˆUˆ http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Este exemplo e´ para mostrar que mesmo quando a matriz tem decomposic¸a˜o LU, a qualidade nume´rica dessa decomposic¸a˜o pode ser desastrosa. Perceba que por um erro muito pequeno, a troca de (1− 1020) por −1020, o produto LU ja´ ficou muito diferente de A. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo perverso [ 10−20 1 1 1 ] x = [ 1 0 ] Usando LU, x ≈ [ −1 1 ] , e usando LˆUˆ, x = [ 0 1 ] . Estabilidade Apesar dos fatores LU terem sido calculados de maneira esta´vel, a soluc¸a˜o do sistema linear utilizando LU na˜o foi esta´vel. http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Quando se computam os fatores L e U, dificilmente sera´ computado o produto deles e comparado com a matriz A original. O perigoso seria enta˜o tentar utilizar esses fatores na resoluc¸a˜o do sistema linear. Veja que o resultado obtido seria completamente errado. O problema com esse exemplo e´ que o pivoˆ, apesar de na˜o ser nulo, era muito pequeno. Como no algoritmo dividi-se pelo pivoˆ, pivoˆs pequenos da˜o origem a multiplicadores muito grandes e dai surge problemas de perda de d´ıgitos significativos. A estrate´gia para circundar este tipo de problema e´ evitar ao ma´ximo pivoˆs pequenos. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Pivoteamento × × × × × xkk × × × × × × × × × × × × × × × −→ × × × × × xkk × × × 0 × × × 0 × × × 0 × × × http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Pivoteamento × × × × × × × × × × × × × xik × × × × × × × −→ × × × × × 0 × × × 0 × × × xik × × × 0 × × × http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Pivoteamento × × × × × × × × × × × × × × xij × × × × × × −→ × × × × × × 0 × × × 0 × × × xij × × × 0 × × http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Pivoteamento parcial × × × × × × × × × × × × × xik × × × × × × × ↘ P2 |xik| = maxj |xjk| × × × × × xik × × × × × × × × × × × × × × × ↘ L2 × × × × × xik × × × 0 × × × 0 × × × 0 × × × http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo A = 2 3 1 1 4 7 4 3 4 7 6 4 6 9 9 8 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo 1 1 1 1 2 3 1 1 4 7 4 3 4 7 6 4 6 9 9 8 = 6 9 9 8 4 7 4 3 4 7 6 4 2 3 1 1 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo 1 −46 1 −46 1 −26 1 6 9 9 8 4 7 4 3 4 7 6 4 2 3 1 1 = 6 9 9 8 0 1 −2 −73 0 1 0 −43 0 0 −2 −53 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo 1 1 −1 1 0 1 6 9 9 8 0 1 −2 −73 0 1 0 −43 0 0 −2 −53 = 6 9 9 8 0 1 −2 −73 0 0 2 1 0 0 −2 −53 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo 1 1 1 1 1 6 9 9 8 0 1 −2 −73 0 0 2 1 0 0 −2 −53 = 6 9 9 8 0 1 −2 −73 0 0 2 1 0 0 0 −23 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo 1 1 1 1 2 3 1 1 4 7 4 3 4 7 6 4 6 9 9 8 = 14 6 1 4 6 1 1 2 6 0 −1 1 6 9 9 8 0 1 −2 − 7 3 0 0 2 1 0 0 0 − 2 3 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Decomposic¸a˜o LU com pivoteamento Teorema Qualquer matriz quadrada A, pode ser fatorada como PA = LU, com P uma permutac¸a˜o da matriz identidade, L uma matriz triangular inferior com diagonal unita´ria com entradas com magnitude na˜o maior que 1, e U uma matriz triangular superior. http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Diferentemente do que acontece com a decomposic¸a˜o LU sem pivoteamento, a decomposic¸a˜o LU com pivoteamento sempre existe. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Resoluc¸a˜o de sistemas lineares Como resolver Ax = b, sabendo que PA = LU? Se Ax = b, enta˜o PAx = Pb, como PA = LU, temos que LUx = Pb Definindo y = Ux , obtemos dois sistemas triangulares{ Ly = Pb Ux = y http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Para poder utilizar a decomposic¸a˜o LU com pivoteamento, na resoluc¸a˜o de sistemas lineares, basta multiplicar a esquerda os dois lados do sistema por P. Assim, no lugar de PA, usamos LU. Feito isso, novamente temos dois sistemas triangulares para resolver. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exerc´ıcios Resolva o sistema linear abaixo atrave´s da decomposic¸a˜o LU com pivoteamento. 2 3 46 1 5 4 2 2 x = −13−10 −4 . Encontre a decomposic¸a˜o LU com pivoteamento para2 1 46 1 5 4 2 2 . http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exerc´ıcio Resolva o sistema linear abaixo, com e sem pivoteamento, usando apenas 4 d´ıgitos significativos. Compare seu resultado com a soluc¸a˜o exata x1 = 10 e x2 = 1. 0.0003x1 + 1.566x2 = 1.569 0.3454x1 − 2.436x2 = 1.018 Poder´ıamos ter evitado o pivoteamento, apenas multiplicando a primeira equac¸a˜o por 105? Isso resolveria o problema? http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Sem pivoteamento: Como o pivoˆ e´ 0.0003, o multiplicador usado no primeiro passo do escalonamento e´ m = fl(0.3454/0.0003) = 1151. Com isso, na segunda linha, o primeiro coeficiente e´ definido como zero (por construc¸a˜o), enquato que os outro dois coeficientes sa˜o fl[−2.436−m(1.566)] = −1804, fl[ 1.018−m(1.569)] = −1805. Desta forma, x2 = fl[−1805/(−1804)] = 1.001. Assim x1 = fl[(1.569 − 1.566x2)/0.0003] = 3.333. Esse resultado esta´ longe de ser acurado. Com pivoteamento: Trocando a primeira com a segunda linha, o pivoˆ e´ 0.3454. O multi- plicador sera´ enta˜o m = fl(0.0003/0.3454) = 8.686e− 4. O resultado da eliminac¸a˜o aplicada na (nova) segunda linha produzira´ os coeficientes fl[1.566−m(−2.436)] = 1.568, fl[1.569−m( 1.018)] = 1.568. Desta forma, x2 = fl[1.568/1.568] = 1.000. Assim x1 = fl[(1.018 + 2.436x2)/0.3454] = 10. Agora o resultado obtido foi bem acurado. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Tudo ou nada Ja´ vimos que o custo computacional da resoluc¸a˜o de um sistema linear e´ O( 23n3). E se na˜o houver recursos suficientes? Por exemplo, se na˜o tiver... I tempo, I espac¸o, I dinheiro? http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Tudo ou nada Me´todos diretos Caso seja poss´ıvel arcar com o custo total de um me´todo direto, como eliminac¸a˜o do Gauss ou Decomposic¸a˜o LU, ao final de um nu´mero finito de passo, a soluc¸a˜o e´ conhecida, a menos de erros nume´ricos. Me´todos iterativos Me´todos iterativos obte´m aproximac¸o˜es sucessivas da soluc¸a˜o, cuja qualidade e´ proporcional a` disponibilidade de recursos. http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo pra´tico simples { −7.5x1 + 7.3x2 = −4.65 −2.8x1 + 9.0x2 = 49.80 { −7.5x1 = −4.65− 7.3x2 9.0x2 = 49.80 + 2.8x1 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Considere o sistema linear { −7.5x1 + 7.3x2 = −4.65 −2.8x1 + 9.0x2 = 49.80 Repare que isolando a inco´gnita x1 na primeira equac¸a˜o e x2 na segunda, obter´ıamos duas equac¸o˜es expl´ıcitas para x1 e x2, se soube´ssemos o valor de x2 na primeira equac¸a˜o e o de x1 na segunda. func¸a˜o desta aparoximac¸o˜es Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo pra´tico simples { −7.5x1 + 7.3x2 = −4.65 −2.8x1 + 9.0x2 = 49.80 −7.5x (k+1) 1 = −4.65− 7.3xk2 9.0x (k+1) 2 = 49.80 + 2.8x k 1 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Se tivermos uma aproximac¸a˜o para (x1, x2), digamos xk = (xk1 , x k 2 ), enta˜o podemos construir novas aproximac¸o˜es x(k+1) = (x (k+1) 1 , x (k+1) 2 ), utilizando estas equac¸o˜es expl´ıcitas. Para facilitar a interpretac¸a˜o geome´trica deste me´todo, graficar a reta associada a` primeira equac¸a˜o em vermelho e a reta associada a` segunda equac¸a˜o de azul. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo pra´tico simples { −7.5x1 + 7.3x2 = −4.65 −2.8x1 + 9.0x2 = 49.80 x (k+1) 1 = ( 4.65 + 7.3x k 2 )/7.5 x (k+1) 2 = (49.80 + 2.8x k 1 )/9.0 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Se tivermos uma aproximac¸a˜o para (x1, x2), digamos xk = (xk1 , x k 2 ), enta˜o podemos construir novas aproximac¸o˜es x(k+1) = (x (k+1) 1 , x (k+1) 2 ), utilizando estas equac¸o˜es expl´ıcitas. Para facilitar a interpretac¸a˜o geome´trica deste me´todo, graficar a reta associada a` primeira equac¸a˜o em vermelho e a reta associada a` segunda equac¸a˜o de azul. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Interpretac¸a˜o geome´trica http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares x (k+1) 1 = ( 4.65 + 7.3x k 2)/7.5 x (k+1) 2 = (49.80 + 2.8x k 1)/9.0 Seja xk a aproximac¸a˜o atual para a soluc¸a˜o do sistema linear (marcado com o ponto preto no gra´fico). A soluc¸a˜o do sistema linear e´ facilmente identificada como o ponto de intersecc¸a˜o das duas retas. Determinar x (k+1) 1 pela primeira equac¸a˜o e´ o mesmo que perguntar a coordenada x1 do ponto da reta vermelha cuja coordenada x2 e´ a mesma do ponto xk . Graficamente, x (k+1) 1 e´ a abscissa do ponto de intersecc¸a˜o da reta vermelha com uma reta paralela ao eixo x1 passando por xk . Racioc´ınio ana´logo vale para a determinac¸a˜o de x (k+1) 2 . Este sera´ o ponto de intersec¸a˜o da reta azul com uma retar paralela ao eixo x2, passando por xk . Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Interpretac¸a˜o geome´trica http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares O gra´fico acima exibe as primeiras sete iterac¸o˜es deste algoritmo. Note a convergeˆncia para a soluc¸a˜o do sistema linear. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo pra´tico simples { −7.5x1 + 7.3x2 = −4.65 −2.8x1 + 9.0x2 = 49.80 { −2.8x1 + 9.0x2 = 49.80 −7.5x1 + 7.3x2 = −4.65 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Repare que ambos os sitemas lineares sa˜o o mesmo, exceto pela troca da ordem das equac¸o˜es. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Interpretac¸a˜o geome´trica – Jacobi http://goo.gl/7DZpRRicardo Biloti Sistemas lineares Vamos partir agora de um ponto bem mais pro´ximo da soluc¸a˜o do sistema. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Interpretac¸a˜o geome´trica – Jacobi http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Vamos partir agora de um ponto bem mais pro´ximo da soluc¸a˜o do sistema. Repetindo o processo anterior (x (k+1) 1 definido pela intersecc¸a˜o de reta paralela ao eixo x1, que passa por xk , e a reta vermelha, primeira equac¸a˜o, e x (k+1) 2 definido pela intersecc¸a˜o de reta paralela ao eixo x2, que passa por xk , e a reta azul, segunda equac¸a˜o), acabamos por nos afastar da soluc¸a˜o do sistema linear. Veja que a troca da ordem das equac¸o˜es resultou em divergeˆncia. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exerc´ıcio Esboce graficamente o comportamento do me´todo de Jacobi nas seguintes situac¸o˜es no plano: I O sistema linear tem soluc¸a˜o e o me´todo converge lentamente. I O sistema linear tem soluc¸a˜o e o me´todo diverge lentamente. I O sistema linear na˜o tem soluc¸a˜o. I O sistema linear tem infinitas soluc¸o˜es. http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exerc´ıcio http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Partindo do ponto marcado, realize algumas iterac¸o˜es do me´todo de Jacobi. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Me´todo de Jacobi I Fa´cil de construir I Nem sempre converge I Convergeˆncia depende da ordem das equac¸o˜es I Mesmo quando converge, pode ser lento http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares As principais caracter´ıstica do me´todo de Jacobi (ou Gauss–Jacobi) sa˜o: • Facilidade de construc¸a˜o. Basta utilizar a j-e´sima equac¸a˜o para determinar x(k+1)j a partir de xk . • Convergeˆncia na˜o assegurada para qualquer sistema linear. Precisamos ainda tentar descobrir crite´rios que garantam a convergeˆncia pelo menos para uma classe de sistemas lineares. • Dependeˆncia da ordem das equac¸o˜es no sistema linear. • Mesmo que o me´todo convirja´, como vimos no exerc´ıcio anterior, a convergeˆncia pode ser bem lenta. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Me´todo de Gauss–Seidel x (k+1) 1 = ( 4.65 + 7.3x k 2 )/7.5 x (k+1) 2 = (49.80 + 2.8x (k+1) 1 )/9.0 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares O me´todo de Gauss–Seidel utiliza uma abordagem muito similar a` do me´todo de Jacobi, pore´m como o me´todo de Jacobi pode ter convergeˆncia lenta, a ide´ia e´ tentar modifica-lo com o propo´sito de acelerar sua convergeˆncia. A ide´ia e´ utilizar a melhor aproximac¸a˜o assim que dispon´ıvel. Logo, na segunda equac¸a˜o, por que utilizar xk1 se x (k+1) 1 e´ supostamente melhor e ja´ e´ conhecido neste ponto do algoritmo? Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Interpretac¸a˜o geome´trica – Gauss–Seidel http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Interpretac¸a˜o geome´trica – Gauss–Seidel http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Interpretac¸a˜o geome´trica – Gauss–Seidel http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Interpretac¸a˜o geome´trica – Gauss–Seidel http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Me´todo de Gauss–Seidel I Tambe´m e´ fa´cil de construir I Nem sempre converge I Convergeˆncia depende da ordem das equac¸o˜es I Quando converge, em geral e´ mais ra´pido que Jacobi http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Direto × Iterativo I Me´todos diretos I Encontram a soluc¸a˜o exata depois de um nu´mero determinado de passos I Destroem a estrutura da matriz I Precisam de memo´ria para manipular a matriz I Me´todos iterativos I Podem convergir ou na˜o I Fornencem aproximac¸o˜es sucessivas I Preservam a estrutura da matriz I Precisam de menos memo´ria http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Modelo de me´todo de iterativo I Seja x (0) uma aproximac¸a˜o inicial I x (k+1) = φ(x (k)), para k = 0, 1, 2, . . . Func¸a˜o de iterac¸a˜o e condic¸a˜o de ponto fixo Se x∗ e´ uma soluc¸a˜o do problema, φ deve ter a propriedade de que x∗ = φ(x∗) http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Um me´todo iterativo e´ dito de passo simples se para computar o iterando x(k+1) e´ utilizada informac¸a˜o apenas da iterac¸a˜o k. De forma geral, todo me´todo iterativo de passo simples pode ser representado por meio de uma func¸a˜o φ, dita func¸a˜o de iterac¸a˜o, que especifica como, a partir das informac¸o˜es do passo k, obter o novo iterando x(k+1). Um exemplo de me´todo iterativo de passo simples e´ o me´todo de Newton. A func¸a˜o de iterac¸a˜o do me´todo de Newton e´ φ(x) = x − f (x) f ′(x) . Observe que se x∗ for a soluc¸a˜o procurada, enta˜o para que o me´todo iterativo tenha chance de encontra´-la e´ necessa´rio que φ(x∗) = x∗. Isso significa que, se em algum momento um dos iterandos do me´todo for de fato a soluc¸a˜o do problema, todos os iterandos seguintes permanecera˜o sendo x∗. Essa condic¸a˜o por si so´ na˜o e´ suficiente, mas sim necessa´ria. Tal condic¸a˜o recebe o nome de condic¸a˜o de ponto fixo. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Func¸a˜o de iterac¸a˜o Splitting Escrever uma matriz como a soma de duas outras matrizes e´ dito um splitting. Por exemplo, A = M + N. Se x∗ e´ soluc¸a˜o de Ax = b e A = M + N, enta˜o Ax∗ = (M + N)x∗ = b Mx∗∗ = −Nx∗ + b x∗ = −M−1Nx∗ + M−1b Proposta: φ(x) ≡ Bx + c , B = (−M−1N), c = (M−1b) http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Para construir um me´todo iterativo para aproximar a resoluc¸a˜o do sistema linear Ax = b, e´ necessa´rio enta˜o criar uma func¸a˜o de iterac¸a˜o φ. Como ja´ vimos que a φ(x∗) = x∗, uma proposta de func¸a˜o φ que cumpre essa condic¸a˜o e´ φ(x) = Bx + c, onde B e´ constru´ıda a partir de algum splitting de A. Variando a forma com A e´ repartida na soma M + N, teremos diferentes func¸o˜es de iterac¸a˜o. B e´ dita a matriz de iterac¸a˜o do me´todo. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Me´todo de iterativo φ(x) = Bx + c , x∗ = φ(x∗) I Seja x0 uma aproximac¸a˜o inicial I x (k+1) = φ(x (k)) = Bx (k) + c , para k = 0, 1, 2, . . . Este me´todo e´ convergente? http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Apenas o fato de ter constru´ıdo uma func¸a˜o φ que satisfaz a condic¸a˜o de ponto fixo, na˜o garante que um me´todo iterativo a partir dessa func¸a˜o sera´ bem sucedido. Devemos enta˜o nos perguntar sob quais condic¸o˜es os iterandos gerados por esse me´todo convergem para a soluc¸a˜o do problema, ou seja, para x∗, soluc¸a˜o do sistema linear. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Convergeˆncia O me´todo e´ convergente se x (k) → x∗, ou seja, se ‖e(k)‖≡ ‖x (k) − x∗‖ → 0 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Dizer que x(k) converge para x∗ e´ dizer que o vetor diferenc¸a converge para o vetor nulo, o que pode ser medido pela norma do vetor. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Normas vetoriais Norma e´ uma func¸a˜o que mede o tamanho de vetores. x = (x1, x2, . . . , xn) T I Norma Euclidiana: ‖x‖2 = √ x21 + x 2 2 + · · ·+ x2n I Norma 1: ‖x‖1 = |x1|+ |x2|+ · · ·+ |xn| I Norma infinito: ‖x‖∞ = max{|x1|, |x2|, . . . , |xn|} http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares A norma Euclidiana e´ a medida utilizada para se definir o conceito de usual distaˆncia ou medir comprimento de vetores. Ou seja, a distaˆncia (em linha reta) de um ponto A a um ponto B, ou o comprimento de um vetor que parte de A e atinge B, e´ dada por ‖A−B‖2. Muitas outras normas podem ser definidas, representando noc¸o˜es distintas de comprimento. Em particular a norma 1 e a norma infinito sa˜o outras duas opc¸o˜es, inclusive mais baratas de serem computadas. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo: Araraquara http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares No caso da cidade de Araraquara, com seu planejamento cartesiano, a distaˆncia percorrida de um ponto a outro da cidade na˜o e´ medida pela distaˆncia em linha reta, ou distaˆncia Euclidiana convencional, mas sim pelo comprimento do trajeto ao longo dos eixos coordenados. Esta distaˆncia e´ justamente medida pela norma 1. Este exemplo e´ apenas para deixar claro que diferentes noc¸o˜es de como medir distaˆncias podem ser u´teis em contextos diferentes. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Normas matriciais ‖A‖1 = max{‖aj‖1}, A = ... ... ... a1 a2 · · · an ... ... ... ‖A‖1 e´ a maior norma-1 das colunas de A ‖A‖∞ = max{‖aj‖1}, A = · · · a1 · · · · · · a2 · · · ... · · · an · · · ‖A‖1 e´ a maior norma-1 das linhas de A http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Assim como definimos normas para vetores, tambe´m e´ posss´ıvel definir normas para matrizes. Dentre as mais simples, destacamos as norma 1, denotadas por ‖ · ‖1 e a norma infinito, denotada por ‖ · ‖∞. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo A = 1 0 −34 3 1 0 −1 5 → 4→ 8 → 6 ↓ ↓ ↓ 5 4 9 ‖A‖1 = 9 ‖A‖∞ = 8 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares ‖A‖1 = max{‖(1, 4, 0)‖1, ‖(0, 3,−1)‖1, ‖(−3, 1, 5)‖1} = max{5, 4, 9} = 9 ‖A‖∞ = max{‖(1, 0,−3)‖1, ‖(4, 3, 1)‖1, ‖(0,−1, 5)‖1} = max{8, 4, 6} = 8 Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Convergeˆncia O me´todo e´ convergente se x (k) → x∗, ou seja, se ‖e(k)‖ ≡ ‖x (k) − x∗‖ → 0 Como o erro varia em um passo do me´todo? e(k) = x (k) − x∗ = φ(x (k−1))− φ(x∗) = (Bx (k−1) + c)− (Bx∗ + c) = B(x (k−1) − x∗) = Be(k−1) http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Ja´ definimos que para que um me´todo seja convergente, o erro deve ir zero. Veja enta˜o como escrever o erro no passo (k) em func¸a˜o do erro no passo (k − 1). Observe que e(k) = Be(k−1). Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Convergeˆncia e(k) = Be(k−1) = B ( Be(k−2) ) = B2 ( Be(k−3) ) = · · · = Bke(0) e(k) = Bke(0) ⇒ ‖e(k)‖ ≤ ‖B‖k ‖e(0)‖ http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Se ao avanc¸ar um passo o vetor erro e´ multiplicado por B, e´ fa´cil perceber que, partindo do erro no iterando original, e(0), o erro no passo (k) sera´ e(k) = Bke(0). E´ necessa´rio agora saber duas propriedades de normas de matrizes: 1. ‖AB‖ ≤ ‖A‖‖B‖ 2. ‖Ax‖ ≤ ‖A‖‖x‖ Com essas propriedades, mostre que ‖Bke(0)‖ ≤ ‖B‖k‖e(0)‖. Logo, para que o erro va´ a zero, basta pedir que ‖B‖ < 1. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Modelo de me´todo iterativo I Seja x (0) uma aproximac¸a˜o inicial qualquer I x (k+1) = φ(x (k)), para k = 0, 1, 2, . . . com φ(x) = Bx + c , tal que x∗ = φ(x∗) ‖B‖ < 1 ⇒ x (k) → x∗ http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Assim chegamos a` forma geral de me´todo iterativo de passo simples para a resoluc¸a˜o de sistema linear. Uma pergunta recorrente e´ se ‖B‖ precisa ser menor que 1 em todas as normas. A resposta e´ na˜o. Se B tiver norma menor que 1, para alguma norma espec´ıfica, isto sera´ suficiente para garantir a convergeˆncia do me´todo iterativo, naquela norma. Pore´m, se um me´todo iterativo para sistema linear convergir em um determinada norma, o me´todo sera´ convergente em qualquer outra norma. Logo, basta demonstrar a convergeˆncia com alguma norma. Por outro lado, caso B tenha alguma norma maior que 1 ainda ha´ esperanc¸a de que o me´todo seja convergente, pois e´ poss´ıvel que em outra norma a condic¸a˜o de convergeˆncia se cumpra. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo ( 0.6 −0.2 0.4 1.3 ) x = ( 2.0 −0.1 ) Se A = I + (A− I ), enta˜o B = (I − A). B = (I − A) = ( 0.4 0.2 −0.4 −0.3 ) , ‖B‖1 = 0.8, ‖B‖∞ = 0.7 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Neste exemplo, consideramos um splitting bem simples, A = M + N, onde M = I e N = (A− I ). Esse spliting da´ origem a um me´todo conhecido como me´todo de Richardson. A matriz de iterac¸a˜o do me´todo de Richardson e´ B = −M−1N = (I − A), e o vetor c = M−1b = b. No caso do exemplo, a matriz de iterac¸a˜o tem tanto norma 1 quando norma infinito menores que 1. Portanto, o me´todo de Richardson aplicado ao sistema linear do exemplo, sera´ con- vergente. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Iterando... x (0) = b, ‖Ax (0) − b‖∞ = 0.78 x (1) = Bx (0) + b = ( 2.78 −0.87 ) ‖Ax (1) − b‖∞ = 0.16 x (2) = Bx (1) + b = ( 2.94 −0.95 ) ‖Ax (2) − b‖∞ = 0.05 · · · x (4) = Bx (3) + b = ( 3.00 −1.00 ) ‖Ax (4) − b‖∞ = 2 · 10−3 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Outro exemplo com o me´todo de Richardson ( 1.7 −0.6 −0.7 1.5 ) x = ( 2.0 −0.1 ) B = (I − A) = ( −0.7 0.6 0.7 −0.5 ) , ‖B‖1 = 1.4, ‖B‖∞ = 1.3 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Como a matriz de iterac¸a˜o tem norma maior que 1, nas duas normas que conhecemos, na˜o ha´ como garantir que o me´todo de Richardson sera´ convergente. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Outros splittings A = × × × × × × × × × × × × × × × × A = ×× × × × × + × × × × + × × × × × × A = L + D + U http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Outra maneira de separar a matriz A em somas e considerando suas porc¸o˜es diagonal e triangulares inferior e superior. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Me´todo de Jacobi Escrevendo A = D + (L + U), Ax∗ = b (L + D + U)x∗ = b Dx∗ = −(L + U)x∗ + b x∗ = −D−1(L + U)x∗ + D−1b Func¸a˜o de Iterac¸a˜o φ(x) = BJx + c , BJ = −D−1(L + U), c = D−1b http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares O me´todo de Jacobi e´ constru´ıdo resolvendo-se um sistema diagonal. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo ( 1.7 −0.6 −0.7 1.5 ) x= ( 2.0 −0.1 ) BJ = − ( 1.7 1.5 )−1( −0.6 −0.7 ) = ( 0.00 0.35 0.47 0.00 ) ‖BJ‖1 = ‖BJ‖∞ = 0.47 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Observe que a matriz de iterac¸a˜o do me´todo de Jacobi tem norma menor que 1, enquanto que ja´ hav´ıamos visto que para este mesmo sistema linear, a matriz de iterac¸a˜o do me´todo de Richardson tinham norma maior que 1. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Convergeˆncia BJ = − a−111 a−122 a−133 . . . a−1nn 0 a12 a13 a1n a21 0 a23 · · · a2n a31 a32 0 a2n ... . . . ... an1 an2 an3 · · · 0 BJ = − 0 a12/a11 a13/a11 a1n/a11 a21/a22 0 a23/a22 · · · a2n/a22 a31/a33 a32/a33 0 a3n/a33 ... . . . ... an1/ann an2/ann an3/ann · · · 0 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares De forma geral, observando a matriz de iterac¸a˜o do me´todo de Jacobi e´ poss´ıvel vislumbrar um crite´rio de convergeˆncia baseado diretamente nas entradas da matriz A original. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Crite´rio das linhas Para que ‖BJ‖∞ < 1, basta que ‖bj‖1 = |aj1|+ · · ·+ |aj(j−1)|+ |aj(j+1)|+ · · ·+ |ajn| |ajj | < 1, para j = 1, 2, . . . , n, ou seja |ajj | > n∑ k=1 k 6=j |ajk | http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares O crite´rio das linhas garante que o me´todo de Jacobi sera´ convergente se os elementos da diagonal da matriz dominarem os restantes dos elementos das linhas, ou seja, se em cada linha o elemento da diagonal em mo´dulo foi maior que a soma dos elementos fora da diagonal, todos em mo´dulo. Matrizes com essa propriedade sa˜o ditas matrizes diagonalmente dominantes por linhas. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Exemplo 4 2 −10 −3 1 −2 2 −6 5 2 −16 −3 1 −1 2 7 5 2 −12 −3 7 −1 2 0 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares A primeira matriz satisfaz o crite´rio das linhas, visto que 4 > 2 + 1, 3 > 0 + 1, e 6 > 2 + 2. Logo, seguramente o me´todo de Jacobi aplicado a um sistema linear com esta matriz de coeficientes convergira´. A segunda matriz na˜o satisfaz o crite´rio das linhas, visto que na segunda linha 3 < 6 + 1. A terceira matriz tambe´m na˜o satisfaz o crite´rio das linhas, dado que tanto a segunda como a terceira linhas violam a condic¸a˜o necessa´ria (3 < 2+7 e 0 < 2+1). Entretanto, permuntando a segunda e a terceira linhas, a nova matriz sim satisfaz o crite´rio das linhas. Portanto, e´ poss´ıvel aplicar o me´todo de Jacobi, desde que esta permutac¸a˜o seja feita antes. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Jacobi na pra´tica 5x1 − 2x2 + x3 = 6 x1 − 4x2 − 2x3 = 3 2x1 + 2x2 − 7x3 = 8 5x (k+1) 1 = 6 + 2x (k) 2 − x (k)3 −4x (k+1)2 = 3 − x (k)1 + 2x (k)3 −7x (k+1)3 = 8 − 2x (k)1 − 2x (k)2 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Observe que na pra´tica, na˜o e´ necessa´rio formar a matriz de iterac¸a˜o do Jacobi. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Jacobi na pra´tica 5x (k+1) 1 = 6 + 2x (k) 2 − x (k)3 −4x (k+1)2 = 3 − x (k)1 + 2x (k)3 −7x (k+1)3 = 8 − 2x (k)1 − 2x (k)2 x0 = 63 8 x1 = 0.80−3.25 1.43 x2 = −0.39−1.26 −1.84 ‖x1 − x0‖∞ = 6.6, ‖x2 − x1‖∞ = 3.3 ‖Ax0−b‖∞ = 46.0, ‖Ax1−b‖∞ = 22.9, ‖Ax2−b‖∞ = 7.2 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Me´todo de Gauss–Seidel Escrevendo A = (L + D) + U, Ax∗ = b (L + D + U)x∗ = b (L + D)x∗ = −Ux∗ + b x∗ = −(L + D)−1Ux∗ + (L + D)−1b Func¸a˜o de Iterac¸a˜o φ(x) = BGSx + c , BGS = −(L + D)−1U, c = (L + D)−1b http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares O me´todo de Jacobi e´ constru´ıdo resolvendo-se um sistema triangular inferior. Tambe´m e´ poss´ıvel obter um crite´rio de convergeˆncia espec´ıfico para o me´todo de Gauss– Seidel, assim como foi feito para o me´todo de Jacobi. Entretanto, a a´lgebra envolvida e´ mais tediosa e, portanto na˜o o faremos aqui. A saber, se o me´todo de Jacobi for convergente, o me´todo de Gauss–Seidel tambe´m o sera´. Logo o crite´rio das linhas tambe´m pode ser adotado aqui. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Gauss–Seidel na pra´tica 5x1 − 2x2 + x3 = 6 x1 − 4x2 − 2x3 = 3 2x1 + 2x2 − 7x3 = 8 5x (k+1) 1 = 6 + 2x (k) 2 − x (k)3 −4x (k+1)2 = 3 − x (k+1)1 + 2x (k)3 −7x (k+1)3 = 8 − 2x (k+1)1 − 2x (k+1)2 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Assim como no caso do me´todo de Jacobi, aqui tambe´m na˜o e´ necessa´rio construir a matriz de iterac¸a˜o. Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Gauss–Seidel na pra´tica 5x (k+1) 1 = 6 + 2x (k) 2 − x (k)3 −4x (k+1)2 = 3 − x (k+1)1 + 2x (k)3 −7x (k+1)3 = 8 − 2x (k+1)1 − 2x (k+1)2 x0 = 63 8 x1 = 0.80−4.55 −2.21 x2 = 0.540.32 1.39 ‖x1 − x0‖∞ = 10.2, ‖x2 − x1‖∞ = 4.9 ‖Ax0−b‖∞ = 46.0, ‖Ax1−b‖∞ = 20.4, ‖Ax2−b‖∞ = 8.6 http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Eliminac¸a˜o de Gauss Decomposic¸a˜o LU Pivoteamento Me´todos iterativos I Me´todos Iterativos II Jacobi × Gauss–Seidel Se Gauss–Seidel e´, em geral, mais ra´pido que Jacobi, e o custo computacional e´ o mesmo, ainda ha´ espac¸o para o me´todo de Jacobi? http://goo.gl/7DZpR Ricardo Biloti Sistemas lineares Sim! Pois no me´todo de Jacobi o ca´lculo de x (k+1) j depende apenas de x (k) e portanto, todos x (k+1) j podem ser calculados em paralelo. Esta caracter´ıtica pode ser aproveitada quando utilizamos computadores com processadores com va´rios nu´cleos, ou mesmo va´rios processadores, ou ainda clusters de computadores, capazes de realizar va´rias operac¸o˜es em simultaˆneo. Dito isso, e´ importante saber que ha´ outros me´todos iterativos para sistemas lineares mais modernos e velozes que Jacobi e Gauss–Seidel, como o me´todo de sobrerrelaxac¸o˜es sucessivas (SOR) ou os me´todos de Krylov, como o me´todo de gradientes conjugados ou o GMRES, por exemplo. Eliminação de Gauss Decomposição LU Pivoteamento Métodos iterativos I Métodos Iterativos II
Compartilhar