MÉTODOS NUMÉRICOS PARA EQUAÇÕES DIFERENCIAIS PARCIAIS 1- Resolução de Sistemas Lineares. 1.1- Matrizes e Vetores. 1.2- Resolução de Sistemas Lineares de Equações Algébricas por Métodos Exatos (Diretos). 1.3- Resolução de Sistemas Lineares de Equações Algébricas por Métodos Iterativos. 1.4- Convergência dos Métodos Iterativos. 1.3- Sistemas Lineares de Equações Algébricas Solução de um sistema linear de m equações algébricas com n incógnitas via métodos iterativos. a11 x1 + a12 x 2 + " a1 n x n = b1 a 21 x1 + a 22 x 2 + " a 2 n x n = b2 """"""""""" a m 1 x1 + a m 2 x 2 + " a m n x n = b m ⎡ a11 ⎢a ⎢ 21 ⎢" ⎢ ⎣ am1 a12 a22 " am 2 a1n ⎤ ⎡ x1 ⎤ ⎡ b1 ⎤ ⎥ ⎢ ⎥ ⎢ ⎥ " a2n ⎥ ⎢ x2 ⎥ ⎢b2 ⎥ = ou " " ⎥⎢ # ⎥ ⎢ # ⎥ ⎥⎢ ⎥ ⎢ ⎥ " amn ⎦ ⎣ xn ⎦ ⎣bn ⎦ " Ax = b 1.3.1- Quando existe solução? No tópico anterior 1.2 foi visto o seguinte teorema. Teorema: O sistema linear Ax = b tem uma única solução (se existir) se e somente se o correspondente sistema homogêneo Ax = 0 tem somente a solução x = 0 . Pode ser mostrado que Ax = 0 tem somente a solução x = 0 se det A ≠ 0 Quando a ordem da matriz é muito grande, devido a Aritmética com Precisão Finita do computador, a solução dos métodos diretos apresenta um erro que pode ser muito grande a ponto de perder a utilidade prática. Nestes casos é conveniente o uso dos métodos iterativos. 1.3.1- Métodos iterativos para resolver Ax = b Métodos Iterativos: Produzem a solução exata do sistema após um número infinito de operações aritméticas (algoritmo infinito). Como isto é impossível de ser feito o algoritmo infinito é transformado em finito e conseqüentemente a solução é sempre aproximada. Alguns métodos: Método da Iteração, Método de Seidel, Método do Relaxamento. Estamos interessados em sistemas representados por uma matriz não singular: ⎡ a11 a12 ⎢a ⎢ 21 a22 ⎢" " ⎢ ⎢an−11 an−12 ⎢⎣ an1 an2 " a1n−1 " a2n−1 " " " an−1n−1 " ann−1 a1n ⎤ ⎡ x1 ⎤ ⎡ b1 ⎤ a2n ⎥⎥ ⎢⎢ x2 ⎥⎥ ⎢⎢ b2 ⎥⎥ " ⎥⎢ # ⎥ = ⎢ # ⎥ ⎥⎢ ⎥ ⎢ ⎥ an−1n ⎥ ⎢ xn−1 ⎥ ⎢bn−1 ⎥ ann ⎥⎦ ⎢⎣ xn ⎥⎦ ⎢⎣ bn ⎥⎦ A n×n x = b det A ≠ 0 1.3.2- Método da Iteração (Aproximações Sucessivas) Considere o sistema com matriz não singular: ⎡ a11 a12 ⎢a ⎢ 21 a22 ⎢" " ⎢ ⎢an−11 an−12 ⎢⎣ an1 an2 " a1n−1 " a2n−1 " " " an−1n−1 " ann−1 a1n ⎤ ⎡ x1 ⎤ ⎡ b1 ⎤ a2n ⎥⎥ ⎢⎢ x2 ⎥⎥ ⎢⎢ b2 ⎥⎥ " ⎥⎢ # ⎥ = ⎢ # ⎥ ⎥ ⎢ ⎥ ⎥⎢ an−1n ⎥ ⎢ xn−1 ⎥ ⎢bn−1 ⎥ ann ⎥⎦ ⎢⎣ xn ⎥⎦ ⎢⎣ bn ⎥⎦ A n×n x = b (1) , , n) podemos resolver a primeira equação Se aii ≠ 0 (i = 1" para x1, a segunda para x2 e assim sucessivamente até xn . ⎧ βi = ⎪ x1 = β 1 + 0 x1 + α 1 2 x 2 + " + α 1 n x n ⎫ ⎪ ⎪ x 2 = β 2 + a 2 1 x1 + 0 x 2 + " + α 2 n x n ⎪ ⎪ ⎬ ⎨ α ij = """"""""""""" ⎪⎪ x n = β n + a n 1 x1 + α n 2 x 2 + " + 0 x n ⎭⎪ ⎪ α ij = ⎪ ⎩ bi a ii − a ij a ii se i ≠ j 0 se i = j 1.3.2- Método da Iteração (Aproximações Sucessivas) Ou em forma matricial: ⎡ α11 α12 ⎢α ⎢ 21 α22 " α=⎢ " ⎢ ⎢αn−11 αn−12 ⎢⎣ αn1 αn2 " α1n−1 " α2n−1 " " " αn−1n−1 " αnn−1 α1n ⎤ α2n ⎥⎥ ⎡ β1 ⎤ ⎢β ⎥ ⎢ 2⎥ "⎥ e ⎢ # ⎥ ⎥ ⎢ ⎥ αn−1n ⎥ ⎢βn−1 ⎥ αnn ⎥⎦ ⎢⎣ βn ⎥⎦ x = β + α n× n x (2) n xi = β i + ∑ α ij x j j =1 i = 1," , n Podemos resolver o sistema via método das aproximações sucessivas como a seguir. Na aproximação zero escolhemos x 0 = β e substituímos no membro direito de (2), obtendo x1 = β + α n×n x 0. Na aproximação 1 substituímos x1 no membro direito de (2), obtendo x2 = β + α n×n x1 . E assim sucessivamente até chegar na aproximação k+1 x k +1 = β + α n×n x k. Desta forma obtemos uma seqüência de aproximações que se converge para um limite ( x1 → x 2 → " → x k → " ), então este limite é solução de (2) e também de (1). 1.3.2- Método da Iteração (Aproximações Sucessivas) Ou seja, se lim xk = x usando (2) e propriedades do limite segue que: k→∞ lim xk +1 = lim(β + αn×nxk ) = β + αn×n lim xk = β + αn×nx = x k →∞ k →∞ k →∞ Resumindo as formulas do Método da Iteração são: ⎧ xi0 = β i Muitas vezes ao reduzir (1) para ⎪ n ⎪ x k +1 = β + α x k , k = 0,1, 2," (2) é conveniente que α ii ≠ 0 . ∑ i ij j ⎪⎪ i Isto pode ser feito da seguinte j =1 1 2 ⎨ α = 0 = α + α forma ii ii ii . Logo as " α i n = = 0 , ( 1 , , ) ⎪ ii formulas do método serão: ⎪ 0 aij bi ⎧ x ⎪ β i = , α ij = − i = βi (3) ⎪ aii aii n ⎪⎩ ⎪ x k +1 = β + α x k , k = 0,1, 2," (3´) ∑ ij j ⎪ i i Método da Iteração j =1 ⎨ ⎪ 2 b a ⎪ β = i , α = − ii , α = − aij ij ⎪⎩ i ai1i ii aii1 aii1 i = (1," , n) 1.3.2- Método da Iteração (Aproximações Sucessivas) Este processo iterativo converge rapidamente (poucas iterações) se os elementos da matriz α n × n são pequenos em valor absoluto. Ou seja, se a ii > a ij i , j = 1, " , n . O valor de b não influencia na convergência do método. Como a convergência do método depende unicamente das propriedades da matriz α n × n a escolha do vetor x 0 pode ser feita de forma arbitrária. Isto é, a escolha de x 0 ≠ β não influencia na convergência do método. A convergência do processo iterativo é auto-corretora. Ou seja, erros devidos a Aritmética com Precisão Finita do computador não afetarão o resultado final, já que estes erros podem ser considerados como um novo vetor x k em cada passo de aproximação. 1.3.2- Método da Iteração (Aproximações Sucessivas) Critério de parada do processo iterativo: considere a diferença da solução entre duas iterações sucessivas ⎧⎪Δx k +1 = x k +1 − x k ⎨ k +1 k +1 k Δ x = x − x ⎪ e escolha a precisão desejada como ε > 0 . ⎩ i i i k +1 k k +1 Um possível critério de parada pode ser xi − xi = Δxi ≤ ε ∀i Condição suficiente para a convergência do processo iterativo. Teorema: Se para o sistema (2) se verifica pelo menos uma das seguintes condições: A n×n x = b (1) ⎧ x = β 0 i n i) ∑α ij < 1 (i = 1," , n) j n ii ) ∑α i ij < 1 (j = 1," , n) i ⎪ n ⎪ x k +1 = β + α x k , k = 0,1, 2," ∑ x = β + α n× n x (2) ⎪ i i ij j j =1 ⎪ n ⎨ ⎪α ii = 0, i = (1," , n) xi = β i + α ij x j ⎪ j =1 a b ⎪ β i = i , α ij = − ij (3) aii aii ⎪⎩ i = 1," , n ∑ então o processo iterativo (3) converge para a única solução de (1) independentemente da escolha da aproximação inicial. 1.3.2- Método da Iteração (Aproximações Sucessivas) Como conseqüência do teorema anterior segue. n Corolário: Para o sistema ∑a j =1 ij x j =b i ( i = 1, " , n ) o método da iteração converge se for verificada a desigualdade a ii > n ∑ j≠i n i) ∑α ij a ij ( i = 1, " , n ) < 1 (i = 1, " , n ) α i1 + α i 2 + " + α ii = 0 + " + α in < 1 j n ii ) ∑α i α ij = − ij a ij a ii < 1 (j = 1, " , n ) ai1 ai 2 ain − +− + " + α ii = 0 + " + − <1 aii aii aii , α ii = 0 ai1 + ai 2 + " + ain < aii n aii > ∑ aij j =1 j ≠i 1.3.3- Método de Seidel O Método de Seidel pode ser entendido como uma modificação do Método da Iteração. A idéia principal é que ao calcular xi no passo de aproximação (k+1) sejam consideradas as x1, x2 ," , xi −1 calculadas neste passo e não as do passo anterior k como é feito no Método da Iteração. Isto é, seja o sistema (2) n x = β + α n×n x (i = 1," , n) ou xi = β i + ∑ α ij x j j =1 Escolha arbitrariamente a aproximação inicial (passo 0) para obter a seguinte aproximação (passo 1) e assim até a aproximação k ( x10 , x20 ," , xn0 ) → ( x11, x21 ," , x1n ) → " → ( x1k , x2k ," , xnk ) . Seidel propõe construir a aproximação (k+1) como segue: 1.3.3- Método de Seidel Seidel propõe construir a aproximação (k+1) como segue: n ⎧ k +1 O teorema que garante a k = + x β α x ∑ 1 1j j ⎪ 1 convergência do método da j =1 ⎪ n iteração também é valido para o ⎪ k +1 k +1 k ⎪ x2 = β 2 + α 21x1 + ∑ α 2 j x j Método de Seidel. j =2 ⎪ ⎪⎪"""""""""""" Em geral, o Método de Seidel ⎨ i −1 n converge melhor que o Método + + 1 1 k k k ⎪x = β + α x + α x ∑ ∑ i ij j ij j da Iteração. Inclusive existem ⎪ i j =1 j =i casos em que o Método da ⎪ ⎪"""""""""""" Iteração diverge e o Método de ⎪ n −1 Seidel converge. Mas o contrário k +1 ⎪ xn = β n + ∑ α nj x kj +1 + α nn xnk também acontece. Convergência ⎪⎩ j =1 mais lenta do Método de Seidel e divergência quando comparado com o Método da Iteração. 1.3.4- Método do Relaxamento Seja o sistema linear de equações: ⎡ a11 a12 ⎢a ⎢ 21 a22 ⎢" " ⎢ ⎢an−11 an−12 ⎢⎣ an1 an2 " a1n−1 " a2n−1 " " " an−1n−1 " ann−1 a1n ⎤ ⎡ x1 ⎤ ⎡ b1 ⎤ a2n ⎥⎥ ⎢⎢ x2 ⎥⎥ ⎢⎢ b2 ⎥⎥ " ⎥⎢ # ⎥ = ⎢ # ⎥ ⎥ ⎢ ⎥ ⎥⎢ an−1n ⎥ ⎢ xn−1 ⎥ ⎢bn−1 ⎥ ann ⎥⎦ ⎢⎣ xn ⎥⎦ ⎢⎣ bn ⎥⎦ que dividindo cada equação pelo respectivo −aii (elemento da diagonal) pode ser transformado em ⎡ −1 c12 ⎢c ⎢ 21 −1 ⎢" " ⎢ ⎢cn−11 cn−12 ⎢⎣ cn1 cn2 c1n−1 c1n ⎤⎡ x1 ⎤ ⎡ d1 ⎤ ⎡0⎤ aij ⎧ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥ c2n−1 c2n ⎥⎢ x2 ⎥ ⎢ d2 ⎥ 0 = − ( ≠ ) c i j ij ⎪ ⎢ ⎥ aii ⎪ " " ⎥⎢ # ⎥ + ⎢ # ⎥ = ⎢# ⎥ com ⎨ bi ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎪ di = −1 cn−1n ⎥⎢xn−1⎥ ⎢dn−1⎥ ⎢0⎥ ⎪⎩ aii " cnn−1 −1 ⎥⎢ ⎦⎣ xn ⎥⎦ ⎢⎣ dn ⎥⎦ ⎢⎣0⎥⎦ " " " " 1.3.4- Método do Relaxamento 0 0 0 ( x , x , " , x Escolha arbitrariamente a aproximação inicial 1 2 n) e substitua neste sistema: ⎡ −1 c12 " c1n−1 c1n ⎤ ⎡ x1 ⎤ ⎡ d1 ⎤ ⎡0⎤ aij ⎧ ⎢c ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ (i ≠ j) ⎪cij = − ⎢ 21 −1 " c2n−1 c2n ⎥ ⎢ x2 ⎥ ⎢ d2 ⎥ ⎢0⎥ aii ⎪ ⎢ " " " " " ⎥ ⎢ # ⎥ + ⎢ # ⎥ = ⎢ # ⎥ com ⎨ bi ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎪ di = ⎢cn−11 cn−12 " −1 cn−1n ⎥ ⎢ xn−1 ⎥ ⎢dn−1 ⎥ ⎢0⎥ ⎪⎩ aii ⎢⎣ cn1 cn2 " cnn−1 −1 ⎥⎦ ⎢⎣ xn ⎥⎦ ⎢⎣ dn ⎥⎦ ⎢⎣0⎥⎦ Diferente de zero (Resíduo). Igual a zero apenas com a solução exata. c12 ⎡ R10 ⎤ ⎡ −1 ⎢ 0⎥ ⎢ −1 ⎢ R2 ⎥ ⎢ c21 ⎢ # ⎥=⎢ " " ⎢ 0 ⎥ ⎢ ⎢ Rn −1 ⎥ ⎢ cn −11 cn −12 ⎢ R 0 ⎥ ⎢ cn1 cn 2 ⎣ n ⎦ ⎣ " c1n −1 c1n ⎤ ⎡ x10 ⎤ ⎡ d1 ⎤ ⎡ 0⎤ ⎢ ⎥ " c2n −1 c2n ⎥⎥ ⎢ x20 ⎥ ⎢⎢ d 2 ⎥⎥ ⎢ 0⎥ ⎢ ⎥ " " " ⎥ ⎢ # ⎥ + ⎢ # ⎥ ≠ ⎢# ⎥ ⎥⎢ 0 ⎥ ⎢ ⎥ ⎢ ⎥ " −1 cn −1n ⎥ ⎢ xn −1 ⎥ ⎢ d n −1 ⎥ ⎢ 0⎥ " cnn −1 −1 ⎥⎦ ⎢⎣ xn0 ⎥⎦ ⎢⎣ d n ⎥⎦ ⎢⎣ 0⎥⎦ 1.3.4- Método do Relaxamento Ou seja, depois da primeira aproximação obtemos os resíduos: 0 0 n Δ x x Se incrementamos em s a incógnita s ⎧ 0 0 0 ⎪ R1 = d1 − x1 + ∑ c1 j x j o correspondente resíduo Rs0 será j =2 ⎪ diminuído pela quantidade Δxs0 n ⎪ 0 0 0 enquanto que todos os outros R 0 (i ≠ s ) i ⎪ R2 = d 2 − x2 + ∑ c2 j x j resíduos serão incrementado pela j =1 ⎪ 0 j ≠2 c Δ x quantidade is s . Assim, para zerar o ⎪ ⎪""""""""" resíduo Rs1 na próxima aproximação ⎨ n basta incrementar xs0 em Δxs0 = Rs0 . ⎪R0 = d − x0 + c x0 n ∑ i i i ij j ⎪ Rs1 = ds − (xs0 + Δxs0 ) + ∑csj x0j = Rs0 − Δxs0 j =1 j ≠i ⎪ j =1 j ≠s ⎪""""""""" n ⎪ 1 0 0 0 0 0 n −1 R = d − x c ( x x )= R c x + + Δ δ + Δ ∑ i i i ij j s js i is s ∀i ≠ j ⎪ 0 0 0 j =1 ⎪ Rn = d n − xn + ∑ cnj x j j ≠i j =1 ⎩ Desta forma obtermos: 1.3.4- Método do Relaxamento ⎫ R = ds − x + ∑ c x ⎪ j =1 ⎪⎪ j≠s ⎬ n Ri1 = di − xi0 + cis x1s + ∑ cij x 0j ∀i ≠ j ⎪ ⎪ j =1 ⎪⎭ j ≠i , j ≠ s n 1 s 1 s 1 sj j ⎧⎪ x1s = xs0 + Δxs0 ⎨ 0 0 ⎪⎩se Δxs = Rs segue ⎧⎪ Rs1 = Rs0 − Δxs0 = 0 ⎨ 1 0 0 R R c x = + Δ ⎪⎩ i s ∀i ≠ s i is O Método do Relaxamento consiste em reduzir a zero em cada passo o maior resíduo, modificando o valor de sua componente da incógnita. O processo é concluído quando todos os resíduos da aproximação k são iguais a zero dentro da precisão exigida ε . As incógnitas são obtidas somando todos os incrementos: k { } x = x + ∑ Δxsl , Δxsl = max Ril −1 k s 0 s l =0 i Rsl = Rsl −1 − Δxsl , Ril = Ril −1 + cis Δxsl ∀i ≠ s com l = k tal que todo Rsl < ε 1.3.4- Método do Relaxamento Exemplo (Demidovich, pag 315) Resolva pelo método do relaxamento. ⎧ 10 x 1 − 2 x 2 − 2 x 3 = 6 ⎧ x1 = 1 ⎪ ⎪ ⎨ − x 1 + 10 x 2 − 2 x 3 = 7 Solução Exata ⎨ x 2 = 1 ⎪ − x − x + 10 x = 8 ⎪x = 1 1 2 3 ⎩ 3 ⎩ ⎧− x1 + 0.2x2 + 0.2x3 + 0.6 = 0 1 ⎪ ⎨0.1x1 − x2 + 0.2x3 + 0.7 = 0 Sistema Reduzido *(- ) aii ⎪0.1x + 0.1x − x + 0.8 = 0 1 2 3 ⎩ k { } x = x + ∑ Δxsl , Δxsl = max Ril −1 k s 0 s l =0 i Precisão ε = 0.01 Rsl = Rsl −1 − Δxsl , Ril = Ril −1 + cis Δxsl ∀i ≠ s com l = k tal que todo Rsl < ε Resolvido no Excel 2003 Frase do Dia “Eu queria certeza da mesma maneira que as pessoas querem fé religiosa. Eu pensava que a certeza é mais provável de ser encontrada na matemática do que em qualquer outra coisa. Mas descobri que muitas demonstrações matemáticas, que meus professores esperavam que eu aceitasse, estavam cheias de falácias, e que, se a certeza pudesse realmente ser descoberta na matemática, seria em um novo campo da matemática, com fundamentos mais sólidos do que os que tinham até então sido considerados seguros. Mas enquanto o trabalho prosseguia, eu me lembrava constantemente da fábula sobre o elefante e a tartaruga. Tendo construído um elefante sobre o qual poderia repousar o mundo matemático, vi que o elefante cambaleava, e passei a construir uma tartaruga, para evitar que ele caísse. Mas a tartaruga não estava mais segura que o elefante, e após uns vinte anos de trabalho muito árduo, cheguei à conclusão de que não havia mais nada que eu pudesse fazer a fim de tornar o conhecimento matemático indubitável.” Bertrand Russell, “Portraits from Memory”