Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Modelagem Numérica Capítulo 1 Sistemas Lineares 1.1 - Introdução Seja o sistema: 1yx2 3yx2 A partir de procedimentos da álgebra elementar, obtém-se a solução x = y = 1. Analisando-se o sistema podemos depreender que “x” e „y” são as variáveis envolvidas, que seus coeficientes são: 2, 1, 2, e, -1 e que 3 e 1 são os termos independentes. O sistema pode ser representado na forma matricial: 1 3 y x . 12 12 Que será útil em tratamentos envolvendo sistemas de múltiplas incógnitas e resolução via algoritmo estruturado. 2 Sob este prisma seria conveniente adotar-se a convenção: x = x1 e y = x2. E, em relação aos coeficientes das variáveis, fazer-se: Assim como considerar-se y1 = 3 e y2 = 1 Resultando a forma matricial: Tratando-se de sistemas envolvendo “n” equações e “n” incógnitas ter-se-ia: nnnn22n11n 2nn2222121 1nn1212111 yxa...xaxa . . . yxa...xaxa yxa...xaxa Resultando a notação matricial: n 2 1 n 2 1 nn3n2n1n n2232221 n1131211 y . , . y y x . . . x x . a...aaa ..... . . . . . . . . . . a...aaa a...aaa , ou yx.A , desde que: nnnnn n n aaaa aaaa aaaa A ... ..... . . . . . . . . . . ... ... 321 2232221 1131211 ; n 2 1 x . . . x x x ; e, n 2 1 y . . . y y y . Um termo genérico da linha “i” e da coluna “j” da matriz dos coeficientes seria representado por aij. 3 1.2 - Cálculo de Determinantes Seja a matriz A de determinante A : nnjnnjjnnnn nijijijiiii injiijjiiii nijijijiiii njjj njjj aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa A ...... ......... ......... ......... ...... ...... ...... ............. ............. ............. ...... ...... )1()1(221 )1()1)(1()1()1)(1(3)1(2)1(1)1( )1()1(321 )1()1)(1()1()1)(1(3)1(2)1(1)1( 2)1(22)1(2232221 1)1(11)1(1131211 Omitindo-se suas i-ésima linha e j-ésima coluna ter-se-ia o determinante de ordem (n-1) ou determinante menor ijM : nnjnjnnnn nijijiiii nijijiiii njj njj ij aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa M ...... ........ ........ ........ ...... ...... ............ ............ ............ ...... ...... )1()1(221 )1()1)(1()1)(1(3)1(2)1(1)1( )1()1)(1()1)(1(3)1(2)1(1)1( 2)1(2)1(2232221 1)1(1)1(1131211 Define-se cofator do termo aij de uma matriz [A] o determinante: ij ji ij MA )( )1( 4 O determinante da matriz [A] pode ser expresso na versão: ininiiiiii AaAaAaAaA . . .332211 n k ikik Aa 1 Que representa o desenvolvimento pelos determinantes menores ao longo de sua i-ésima linha. Analogamente, poderiamos fazer o desenvolvimento por sua j-ésima coluna, na forma: n k kjkj AaA 1 Um determinante de ordem “n” é expresso em termos de um somatório envolvendo determinantes de ordem “n-1”, os quais, por sua vez, podem ser escritos a partir de determinantes de ordem “n-2” e assim por diante. Exemplo: Seja 111 311 001 A Efetuando-se o cálculo do determinante mediante o desenvolvimento pelos determinantes menores ao longo da primeira linha da matriz [A], obtém-se: 131312121111 AaAaAaA 2)11()1.(0)31()1.(0)31()1.(1 )31()21()11( A De outra forma, Efetuando-se o cálculo do determinante mediante o desenvolvimento pelos determinantes menores ao longo de sua primeira coluna, chega-se a: 313121211111 AaAaAaA Ou: 2)00()1.(1)00()1.(1)31()1.(1A )13()12()11( 5 Resultando, portanto, o mesmo valor como teria de ser. Definição: Uma matriz é triangular superior se todos os seus termos localizados abaixo da diagonal principal são nulos e é triangular inferior quando tal se dá com os seus termos acima da referida diagonal. Exemplos: 400 320 121 2543 0398 0011 0001 A primeira matriz é triangular superior e a segunda é triangular inferior. Matrizes deste tipo são particularmente convenientes, uma vez que, o grande número de termos nulos facilita significativamente o desenvolvimento dos menores determinantes. Observe-se que para uma matriz triangular [A] tem-se: nnaaaaA . ..332211 De fato se: nn3n2n1n 2221 11 a...aaa ..... . . . . . . . . . . 0...0aa 0...00a A O desenvolvimento ao longo da primeira linha seria: nn AaAaAaAaA 11131312121111 . . . , e nAAAAaA 113121111 .0. . ..0.0 0. . .001111 AaA 6 Poder-se-ia tratar 11A efetuando-se seu desenvolvimento também por sua primeira linha, obtendo-se: 0. . .00222211 BaA Sendo 22B o determinante de ordem “n-1” obtido de [A11] a partir da eliminação de sua primeira linha e de sua primeira coluna. 0...00..0. . .00 2222111111 BaaAaA Cada um dos cofatores subsequentes será matriz triangular inferior de modo que: 0. . .00333322 CaB e 0...0.0...00.. 33332211222211 CaaaBaaA E, por sua vez, 0. . .00444433 DaC De modo que: nnaaaaDaaaaA ....0...0. 3322114444332211 Exemplo: Seja encontrar o determinante da matriz: 6000 5200 3310 2235 60)6).(2).(1.(5 60 52 ).1.(5 600 520 331 .5 6000 5200 3310 2235 7 Observe-se, como esperado, que os números do produto acima indicado são, exatamente, os termos da diagonal principal da matriz. 1.3 - Eliminação Gaussiana Visa transforma uma matriz qualquer em matriz triangular superior ou inferior e assim, facilitar a abordagem de seu determinante mediante algoritmo estruturado. Propriedades: I – A adição de qualquer linha ou múltiplo dela a qualquer outra linha não altera o valor do determinante. Exemplo: seja o sistema: 5 3 y x 23 12 Cuja solução é x = y =1. O determinante da matriz dos coeficientes será: D1 = 2x2 – 3x1 = 1 Multiplicando-se a segunda equação por (-3/2), somando-se à primeira, e substituindo a primeira linha, pelo resultado de tal soma, obtém-se: 5 2/9 23 22/5 y x Este último sistemade equações apresenta a mesma solução do primeiro. Seu determinante é: D2 = (-5/2)x2-[3x(-2)] = 1 = D1 8 II – Mediante a troca de posição entre duas linhas ou duas colunas entre si, em uma matriz, o valor absoluto de seu determinante é mantido verificando-se, entretanto, mudança de sinal. Exemplo: Seja a matriz: 123 122 111 Multiplicando-se a primeira linha por -2, somando a seguir o resultado à segunda linha, e, afinal substituindo a segunda linha por este último resultado obtém-se: 123 100 111 Multiplicando-se, então, a primeira linha por -3, somando a seguir o resultado à terceira linha, e, substituindo-se a terceira linha por este último resultado, obtém-se: 210 100 111 Permutando-se, enfim, a segunda linha com a terceira obtém-se: 100 210 111 Cujo determinante é: D = -[1x(-1)x(-1)]=-1 A exatidão de tal valor para o determinante pode ser constatada a partir do emprego de procedimento alternativo, voltado para o cálculo de determinantes 9 tais como a regra de Kramer ou os desenvolvimentos pelos determinantes menores aplicados à matriz em sua forma original de apresentação. Seja aplicar as duas propriedades à matriz: nnnnn n n aaaa aaaa aaaa A ... ..... . . . . . . . . . . ... ... 321 2232221 1131211 A primeira tarefa é zerar todos os termos da coluna 1 localizados abaixo da diagonal principal. Entretanto, a11 pode ser nulo. Logo, devemos a priori, providenciar permutas de modo a nos assegurar que a11 seja não nulo. Vale ressaltar a vantagem de tal valor ser o maior possível, pois, esta particularidade contribui para minimizar erros de arredondamento. Uma vez efetuando-se as permutas oportunas para garantir valor não nulo para a11, e que tal termo seja o de maior valor da coluna, multiplique-se a primeira linha por a21/a11, subtraindo o resultado assim obtido da segunda linha e substituindo-se a segunda linha por tal valor. Ter-se-ia então para segunda linha: nn a a a aa a a aa a a a 1 11 21 212 11 21 2211 11 21 21 ... Que, como pode ser visto, facilmente, anulou o primeiro termo da segunda linha. Analogamente, multiplicando-se a primeira linha por a31/a11 subtraindo o resultado da terceira linha e substituindo-se a terceira linha por tal valor anula- se o primeiro termo da terceira linha. Os primeiros termos das linhas 4, 5, . . .,n são anulados de forma idêntica, ao final do que obtém-se a anulação de toda a primeira coluna abaixo da diagonal principal, de modo que a matriz assume a nova forma: 10 nnnn n n aaa aaa aaaa A '...''0 ..... . . . . . . . . . . '...''0 ... 32 22322 1131211 Dada a importância do termo a11 no processo em explanação ele é denominado de pivot e o procedimento em discussão, de redução ou condensação pivotal. Se: nnn n aa aa B '...' ..... ..... ..... '...' 2 222 Aplicando-se a redução pivotal a tal matriz zera-se sua primeira coluna abaixo da diagonal principal, e, portanto, todos os termos da segunda coluna da matriz [A], situados abaixo da dita diagonal. Aplicando-o, sucessivamente, o procedimento até a coluna de ordem “n-1” obtém-se a matriz triangular superior equivalente à matriz [A]: )1( 33 22322 1131211 ...000 ..... . . . . 0 '' . 0 . 0 '...''0 ... n nn n n a a aaa aaaa A cujo determinante é sn nnaaaaaA )1(.... )1(''' 44 '' 33 ' 2211 . Onde “s” é o total de permutas de linhas, efetuadas. Como exemplo para cálculo de determinantes mediante eliminação gaussiana apresenta-se o algoritmo a seguir. 11 c******************************************************************************* c******************************************************************************* c c Determinante - Eliminação Gausiana c c 19 set 12 c c******************************************************************************* c Fixação da precisão a praticar implicit double precision (a-h,o-z) c Declaração de matriz Dimension A(100,100) c Abertura de unidades de disco open( 2, file = 'gaussdat', status = 'old') open( 3, file = 'gaussout', status = 'unknown') c Leitura dos termos da matriz Read(2,*)n ! Ordem da matriz que terá o determinante calculado read(2,*)((A(i,j), j = 1, n), i = 1, n) sinal = 1.0 IRest = n - 1 ! Total de pivots c Inicio de laço segundo os (n - 1) pivots do 200 i = 1, IRest 12 c Busca do maior termo na i-ésima coluna abaixo da diagonal principal para adotar como pivot Amax = 0.0 do 50 k = i, n termo = abs(A(k,i)) dif = termo - Amax if(dif)50,50,30 30 Amax = termo L = k 50 continue c Verificação de que o termo encontrado é não nulo if(Amax)80,60,80 c na L-ésima linha o maior termo é i = L 80 Idif = L - i if(Idif)90,120,90 c i é diferente de L: Deve-se efetuar a permuta das linhas "i" e "L" 90 sinal = -sinal do 100 j = 1, n prov = A(i,j) A(i,j) = A(L,j) 100 A(L,j) = prov c Inicio da redução pivotal 120 pivot = A(i,i) 13 IProx = i + 1 c Para cada linha após a iésima do 200 j = Iprox, n c composição da constante multiplicadora da j-ésima linha const = A(j,i)/pivot c Redução de cada termo da j-ésima linha do 200 k = i, n 200 A(j,k) = A(j,k) - const*A(i,k) c Final da redução pivotal c******************************************************************************* c Impresão da matriz na versão triangularizada write(3,310) write(3, 320)((A(i,j), j = 1, n), i = 1, n) c****************************************************************************** c Cálculo do determinante det = sinal do 300 i = 1, n 300 det = det*A(i,i) c Impressão do valor do determinante c write(3,350)det c Finalização lógica do programa 60 stop 310 format(/,10x,'Matriz Triangularizada',/) 14 320 format(4f15.9,/) 350 format(/, 10x, 'Det = ',f18.9) end c Fechamento físico do algoritmo O algoritmo foi utilizado sobre a matriz: -1.0 3.0 5.0 2.0 1.0 9.0 8.0 4.0 0.0 1.0 0.0 1.0 2.0 1.0 1.0 -1.0 Obtendo-se para resultado a matriz triangular superior: 2.000000000 1.000000000 1.000000000 -1.000000000 0.000000000 8.500000000 7.500000000 4.500000000 0.000000000 0.000000000 2.411764706 -0.352941176 0.000000000 0.000000000 0.000000000 0.341463415 Cujo Determinante é igual a 14.000000000. 1.4 - Sistemas Lineares - Eliminação Gaussiana Seja o sistema:15 32476 21344 72 zyx zyx zyx Cuja forma matricial é: 32 21 7 476 344 112 z y x Sua resolução mediante a sistemática tradicional envolve algumas operações algébricas de multiplicação de toda a equação por certo número real convenientemente escolhido somas de equações com equações e substituições de valores encontrados em equações. Assim sob tal aspecto, com referência ao sistema linear acima apresentado, multiplicando-se a primeira equação por 2 e subtraindo-se o resultado assim obtido da segunda, e, também, multiplicando-se a primeira por 3 e subtraindo- se tal resultado da terceira, resulta: 114 72 72 zy zy zyx Ou, na versão matricial: 11 7 7 140 120 112 z y x Observe-se que, este conjunto de operações, anulou os termos da primeira coluna abaixo da diagonal principal da matriz dos coeficientes, alterando inclusive os termos de suas segunda e terceira colunas, e os termos da matriz dos termos independentes da segunda e terceira linhas. Multiplicando-se, então, a segunda equação por 2 e subtraindo-se este resultado da terceira obtém-se: 16 3 72 72 z zy zyx Que em linguagem matricial: 3 7 7 100 120 112 z y x Anulando-se, portanto, o termo da segunda coluna abaixo da diagonal principal da matriz dos coeficientes, alterando inclusive o termo de sua terceira linha e coluna, e o termo da matriz dos termos independentes da terceira linha. Em suma, a matriz dos coeficientes foi triangularizada. Como resultado obteve-se z = 3. A partir da retro substituição encontra-se x = 1 e y = 2. Observe-se que a sequência de procedimentos acima aplicados guarda similaridade com o processo de eliminação gaussiana, de modo que é natural cogitar-se sua extensão para o emprego na resolução de sistemas de equações lineares. Para tal tomemos o sistema de equações: nnnnnnn n n y y y x x x aaaa aaaa aaaa . , . . , . . ... ..... . . . . . . . . . . ... ... 2 1 2 1 321 2232221 1131211 Introduzindo-se na matriz dos coeficientes: 17 nnnnn n n aaaa aaaa aaaa A ... ..... . . . . . . . . . . ... ... 321 2232221 1131211 A coluna correspondente aos termos independentes: ny y y . , . 2 1 Resulta a matriz aumentada: n 2 1 nn3n2n1n n2232221 n1131211 y . . . y y a...aaa ..... . . . . . . . . . . a...aaa a...aaa Entendendo-se as operações de triangularização pertinentes, inclusive, aos termos da nova coluna, a coluna dos termos independentes, tem-se: )1()1( '' 333 ' 222322 11131211 ...000 ....... ....''00 '...''0 ... n n n nn n n ya ya yaaa yaaaa Culminando no sistema equivalente: 18 )()( . '' ' . . ... .... ''...'' '...'' ... 1 3 2 1 3 2 1 1 333 22322 1131211 000 000 00 0 n nn n nn n n n y y y y x x x x a aa aaa aaaa Donde se conclui que )1( )1( n nn n n n a y x A partir de então, deve-se proceder a retro substituição do valor de “xn” assim obtido, na linha anterior, para determinação do valor de “x(n-1)”; dos valores de “x(n-1)” e “xn”, na linha “n-2” para obtenção de “x(n-2)”; e, assim sucessivamente até a determinação de “x(n-3)”, . . . “x2”, “x1”. Apresenta-se abaixo um algoritmo estruturado destinado à resolução de sistemas de equações lineares a partir do procedimento de eliminação gaussiana. C MODULO COMPUTACIONAL PARA RESOLUCAO DE SISTEMAS DE EQUACOES LINEARES C ARQUIVO EQUACAO.FOR ELABORADO EM 29032000 c Fixação da precisão a praticar implicit double precision (a-h,o-z) c Declaração de matrizes DIMENSION A(20,20),X(20) Observe-se que no presente algoritmo a matriz é declarada para armazenar as incógnitas do sistema de equações. c Abertura de unidades de disco OPEN(2,FILE='LINDAT',STATUS='OLD') OPEN(3,FILE='LINOUT',STATUS='unknown') Leitura dos termos da matriz aumentada READ(2,*)M ! Ordem da matriz dos coeficientes N=M+1 ! Este commando inclui na matriz aumentada a coluna referente aos termos independentes do sistema READ(2,*)((A(I,J), J=1,N), I=1,M) WRITE(3,320)((A(I,J), J=1,N), I=1,M) ; Observe-se que na leitura dos termos o “j” 19 Vai até n = m + 1, incuindo-se assim a coluna referente aos termos independentes do sistema 320 FORMAT(5F12.6,/) IREST=M-1 ! Total de pivots DO 200 I=1,IREST c Busca do maior termo na i-ésima coluna abaixo da diagonal principal para adotar como pivot Amax=0.0 DO 50 K=I,M TERMO=ABS(A(K,I)) DIF=TERMO-Amax Verificação de que o termo encontrado é não nulo IF(DIF.GT.0.0)THEN Amax=TERMO L=K ENDIF 50 CONTINUE IF(Amax.EQ.0.0)THEN STOP ENDIF Idif=I-L IF(Idif.NE.0)THEN DO 100 J=1,N PROV=A(I,J) A(I,J)=A(L,J) 100 A(L,J)=PROV ENDIF Inicio da redução pivotal PIVOT=A(I,I) Iprox=I+1 Para cada linha após a iésima DO 200 J=Iprox,M c composição da constante multiplicadora da j-ésima linha CONST=A(J,I)/PIVOT 20 Observe-se que para o laço abaixo o “k” vai até “n”, incluindo, portanto, a coluna referente aos termos independentes que também são alterados na seqüência de cálculo DO 200 K=I,N 200 A(J,K)=A(J,K)-CONST*A(I,K) c Final da redução pivotal c Impresão da matriz na versão triangularizada WRITE(3,320)((A(I,J), J=1,N), I=1,M) Retrosubstituição DO 500 I=1,M IREV=M+1-I Y=A(IREV,N) IF(M.NE.IREV)THEN DO 450 J=2,I K=N+1-J 450 Y=Y-A(IREV,K)*X(K) ENDIF 500 X(IREV)=Y/A(IREV,IREV) DO 600 I=1,M WRITE(3,550)I,X(I) 550 FORMAT('X(',I2,')=',F20.6)600 CONTINUE c Finalização lógica do programa STOP END c Fechamento físico do algoritmo c Seja utilizar-se o algorítmo acima para resolver o sistema: 32 21 7 476 344 112 z y x Os resultados obtidos foram: Matriz triangulaizada: 21 6.000000 7.000000 4.000000 32.000000 0.000000 -1.333333 -0.333333 -3.666667 0.000000 0.000000 0.500000 1.500000 Solução do Sistema: X( 1) = 1.000000; X( 2) = 2.000000; e, X( 3) = 3.000000 Observe-se que a matriz triangularizada obtida mediante o algoritmo é diferente daquela obtida analiticamente. Tal diferença é devida ao fato de que, na resolução analítica, não foram realizadas as permutas para adotar como pivot, o termo de maior valor absoluto da coluna para a qual estavam sendo zerados os termos abaixo da diagonal principal. 1.5 - Deficiências Numéricas Na sistemática concernente à redução pivotal, pequenos erros propagam-se com impacto significativo no resultado final, logo há a necessidade de se avaliar a magnitude desses erros. Como alternativa tem-se a substituição dos valores encontrados no sistema para verificação do atendimento a suas equações. Seja o sistema: 3 7 25 43 2 1 x x . Cuja solução é x1 = x2 = 1. Caso erros tenham ocorrido, dos quais resultaram os valores x1 = 0,999 e x2 = 1,002, substituindo-se tais valores no sistema ter- se-ia: 99120021299905 00570021499903 ,,, ,,, xx xx 22 Podendo levar à conclusão de que o erro está afetando os resultados a partir da terceira casa decimal. Entretanto, observe-se o sistema: 012 2 1011 11 2 1 , . , x x Cuja solução é, igualmente, x1 = x2 = 1. Admitindo-se que, em razão da propagação de erros, encontrou-se x1 = 0,0 e x2 = 2,005. Substituindo-se tais valores no sistema resultaria: 0052005200011 0052005200 ,,,, ,,, x Supõe-se que o erro é de apenas 0,005, quando, na verdade, os erros na solução foram da ordem da unidade. Existem erros de outras fontes. Supondo-se que erros converteram o sistema: 012 2 1011 11 2 1 , . , x x Em: 0072 2 100011 11 2 1 , . , x x x1 = 100,0 e x2 = -98,0, também satisfaz ao sistema modificado. Têm-se um conjunto de equações, aproximadamente, satisfeitas por solução extremamente equivocada, caracterizando-se assim um sistema mal condicionado. O fator causa de tal fenômeno numérico é o valor quase nulo do determinante da matriz dos coeficientes, pois, um determinante característico nulo promove uma quantidade infinita de soluções ou nenhuma solução. Para diagnosticar o entrave de forma melhor diagramatizada, considere-se o sistema: 23 Escrevendo-se x1 em função de x2 resulta: 2 11 12 11 1 1 x a a a y x , e 2 21 22 21 2 1 x a a a y x Suas representações gráficas são retas no plano x1 - x2, que se interceptam no ponto referente à solução do sistema. Se tais retas forem quase paralelas, ou seja, se 21 22 11 12 a a a a , a identificação do ponto de intersecção é significativamente dificultada. Observe-se que: 002112221121122211 21 22 11 12 Aaaaaaaaa a a a a Ou seja, o valor do determinante característico é quase nulo. Tal raciocínio pode ser estendido para um sistema de ordem arbitrária, entretanto, sob quaisquer ordens praticadas jaz a dificuldade de se avaliar a margem da aproximação que caracteriza acuradamente o fenômeno, reduzindo a sistemática ora deduzida ao campo da abstração. Uma alternativa viável para suplantar esta celeuma seria usufruir do artifício de gerar um fator de proporcionalidade para cada linha da matriz na forma: 2/122221 ... iniii aaak E a seguir dividir cada um dos termos dessas linhas por tal fator. O teste do mal condicionamento ficaria então resumido à comparação do valor do determinante assim normalizado com a unidade. Se ele for, substancialmente, menor que a unidade então o sistema é malcondicionado. O inconveniente deste procedimento é o trabalho adicional realizado para o cálculo de tal determinante, que seria efetuado, exclusivamente, para este fim. 24 Um procedimento mais rudimentar seria promover mudanças ínfimas no valor dos termos da matriz característica, e verificar se tal operação modifica, substancialmente, a solução. Se isto ocorrer o sistema é mal condicionado. 1.6 – Método de Gauss-Seidel Trata-se de método iterativo aplicado, desde que convirja, a sistemas de ordens superiores, e, sistemas mal condicionados, em razão de ser pouco sensível às deficiências numéricas. Uma segunda desvantagem do método é que seu emprego envolve grande volume de cálculo. Ele é especialmente vantajoso quando a matriz característica apresenta muitos termos nulos, a exemplo da matriz de rigidez de problemas de análise estrutural com elevado número de graus de liberdade ou de indeterminação estática. Para sua explanação, considere-se o sistema: nnnnnnn n n y y y x x x aaaa aaaa aaaa . , . . , . . ... ..... . . . . . . . . . . ... ... 2 1 2 1 321 2232221 1131211 Para o qual todos os termos da diagonal principal da matriz característica são não nulos. Para cada equação "i" do sistema escreva-se "xi" em função das demais variáveis. Assim procedendo obtém-se: 25 )...( . , . )...( )...( )...( nnnnnn nn n nn nn nn xaxaxay a x xaxaxay a x xaxaxay a x xaxaxay a x 2211 32321313 33 3 23231212 22 2 13132121 11 1 1 1 1 1 (***) A operação é iniciada a partir da estimativa de valores para os "xi", substituindo-os no segundo membro das equações (***), e, calculando-se assim novos valores para os "xi". Tomam-se então esses novos valores dos "xi" substituindo-os nas equações (***), e daí encontram-se novos valores dos "xi". O processo é repetido inúmeras vezes até o limite em que a diferença de valores entre duas iterações consecutivas seja inferior a certa tolerância pré- estabelecida. O método em discussão é delicado uma vez que mesmo atendendo à tolerância pode não convergir para um valor correto dos "xi". E, às vezes a convergência é tão lenta que pode acontecer de a tolerância ser atendida mesmo antes de se dar a convergência. Uma solução que nas mais das vezes funciona é efetuar a iteração mediante uma ordenação diferente substituindo-se o "xi" estimado na equação de ordem "j", diferente de "i". Assim, por exemplo, seja o sistema: 3xxxx2 2xx 15x4x8x9x 10x2x5x3x 4321 42 4321 4321 IV III II - I 26 Em uma primeira decisão podemos tirar o valor de “x1” e “x2” da primeira e dasegunda equações, respectivamente, “x3” da quarta equação e “x4” da terceira equação, e, realizar o procedimento iterativo sobre a série de equações: 24 4213 4312 4321 xx xxx23x 9/x4x8xx 10x2x5x3x -2 III IV -15 II - I Em não logrando êxito, podemos mudar a sequência e tirar o valor de “x1” da quarta equação, o de “x2” da segunda, o de “x3” da primeira e o de “x4” da terceira equação, e, realizar o procedimento iterativo sobre a série de equações: 24 43213 4312 4321 xx x2x5x3x10x 9/x4x8xx 2/xxx3x -2 III I -15 II IV Critério de convergência: O método de Gauss-Seidel converge se o valor absoluto de cada termo da diagonal principal da matriz característica for maior que a soma dos valores absolutos dos demais termos da mesma linha ou da mesma coluna. Seja resolver o sistema: 3 2 15 10 1112 1010 4891 2531 4 3 2 1 x x x x . Utilizando-se o algoritmo: C MODULO COMPUTACIONAL PARA RESOLUCAO DE SISTEMAS DE EQUACOES LINEARES 27 c Método de Gauss-Seidel c Unidade de disco: open( 3, file = 'soluout', status = 'unknown') c Estimativa Inicial: x1 = 0.0 x2 = 0.0 x3 = 0.0 x4 = 0.0 c Iteração na ordem natural: DO 100 i = 1, 100 x1 = (10.0 - 3.0*x2 - 5.0*x3 – 2.0*x4)/(-1.) x2 = (15.0 - x1 - 8.0*x3 - 4.0*x4)/9.0 x3 = (-3.0 - 2.0*x1 - x2 + x4)/1.0 x4 = (2.0 - x2)/1.0 100 continue c Resultados write(3,*)"Resultados da iteração na ordem natural:" write(3,300)x1,x2,x3,x4 c Nova estimativa: x1 = 0.0 x2 = 0.0 x3 = 0.0 x4 = 0.0 28 c Iteração em ordem alternativa: DO 200 i = 1, 100 x1 = (-3.0 - x2 - x3 + x4)/(2.) x2 = (15.0 - x1 - 8.0*x3 - 4.0*x4)/9.0 x3 = (10.0 + x1 - 3.0*x2 - 2.0*x4)/5.0 x4 = (2.0 - x2)/1.0 200 continue c Resultados write(3,*)"Resultados da iteração na ordem alternativa:" write(3,300)x1,x2,x3,x4 STOP 300 FORMAT(4F12.6,/) END Os resultados obtidos serão: Resultados da iteração na ordem natural: NaN NaN NaN NaN NaN significa valor excessivamente pequeno o que quer dizer que as iterações não convergiram. 29 Resultados da iteração na ordem alternativa: -1.000000 0.000000 1.000000 2.000000 Neste caso houve a convergência, e, esta é a solução do sistema.
Compartilhar