• Nenhum resultado encontrado

F´ısica Computacional C´ alculo Num´erico

N/A
N/A
Protected

Academic year: 2019

Share "F´ısica Computacional C´ alculo Num´erico"

Copied!
45
0
0

Texto

(1)

F´ısica Computacional

alculo Num´erico

Universidade do Estado do Rio de Janeiro

Instituto de F´ısica

Departamento de F´ısica Aplicada e Termodinˆamica

Professor Lu´ıs Fernando

Professor Anibal Leonardo

(2)
(3)

Pref´

acio

Esta nota de aula foi preparada para apoiar o curso de F´ısica Computacional. Ela tenta englobar os m´etodos de c´alculo num´erico e algoritmos mais utilizados na forma¸c˜ao dos alunos de F´ısica, seja por causa das disciplinas do curso seja pela participa¸c˜ao em projetos de pesquisa atrav´es de inicia¸c˜ao cient´ıfica.

Rio de Janeiro, 2008

(4)
(5)

Sum´

ario

1 Sistemas Lineares 1

1.1 Sistema de Equa¸c˜oes Lineares . . . 1

1.1.1 Representa¸c˜ao Matricial de um Sistema Linear . . . 2

1.1.2 Opera¸c˜oes Elementares . . . 3

1.2 M´etodos Diretos . . . 3

1.2.1 M´etodo de Gauss . . . 3

1.2.2 M´etodo de Jordan . . . 6

1.2.3 M´etodo da Matriz Inversa . . . 8

1.2.4 M´etodo de Cramer . . . 9

1.3 M´etodos Iterativos . . . 11

1.3.1 Convergˆencia para a Solu¸c˜ao . . . 12

1.3.2 M´etodo de Jacobi . . . 14

1.3.3 M´etodo de Gauss-Seidel . . . 15

(6)
(7)

Lista de C´

odigos

1.1 M´etodo de Gauss . . . 16

1.2 M´etodo de Jordan . . . 19

1.3 M´etodo da Matriz Inversa . . . 22

1.4 M´etodo de Cramer . . . 25

1.5 M´etodo de Jacobi . . . 28

(8)
(9)

Lista de Algoritmos

(10)
(11)

1

Sistemas Lineares

O prop´osito deste cap´ıtulo n˜ao ´e elaborar um curso de ´Algebra Linear, mas apresentar os m´etodos num´ericos para se resolver um sistema de equa¸c˜oes lineares. Inevitavelmente, os m´etodos que ser˜ao apresentados depender˜ao de um conhecimento pr´evio de ´algebra.

No que tange ao objetivo deste curso, para minimizar o esfor¸co do leitor, sempre que um desenvolvimento depender de um conceito matem´atico mais sofisticado, este ser´a brevemente recordado aqui.

1.1

Sistema de Equa¸

oes Lineares

Uma equa¸c˜ao ´e dita ser linear se cada termo cont´em n˜ao mais que uma vari´avel e cada vari´avel ´e apresentada na primeira potˆencia. Por exemplo

5x+ 2y−4z=−5 e −4x1+ 3x2+

x3

5 = 0 s˜ao lineares, ao passo que

5x2+ 2yxz = 3 e 4x

1x3+ 3x2+x3=−3

n˜ao s˜ao.

A forma generalizada de uma equa¸c˜ao linear deve apresentar, pois, as vari´aveis lineares associadas aos seus coeficientes:

a1x1+a2x2+. . .+aixi+. . .+aNxN =b

ondeai, 1≤i≤N, s˜ao os coeficientes,xi, 1≤i≤N s˜ao as vari´aveis lineares eb´e o termo independente. Outra forma de representa¸c˜ao, bem mais sucinta, chamada de forma compacta, ´e:

N

X

j=1

ajxj=b

Um sistema de equa¸c˜oes lineares comN equa¸c˜oes eN inc´ognitas ´e um conjunto de equa¸c˜oes do tipo:

S =

    

   

a1,1x1 + a1,2x2 +· · · + a1,NxN = b1

a2,1x1 + a2,2x2 +· · · + a2,NxN = b2

..

. ... ... ...

aN,1x1 +aN,2x2 +· · · + aN,NxN = bN

comaij, 1≤i≤N, 1≤j≤N, n´umeros reais ou complexos. Na forma compacta:

S= N

X

j=1

aijxj =bi, parai= 1, . . . , N.

(12)

1.1. SISTEMA DE EQUAC¸ ˜OES LINEARES

i. o sistema tem solu¸c˜ao ´unica formada pelo conjunto de n´umeros {x1 = k1, x2 = k2, . . . , xN = kN} que

satisfaz simultaneamente asN equa¸c˜oes; ii. o sistema tem infinitas solu¸c˜oes;

iii. o sistema n˜ao possui solu¸c˜ao.

O curso se concentrar´a nos sistemas que tem solu¸c˜ao ´unica deixando os demais casos para um momento mais apropriado no futuro.

1.1.1

Representa¸

ao Matricial de um Sistema Linear

O sistema linearS, apresentado acima, pode ser escrito na forma matricial A·X=B

ondeA´e a matriz de coeficientes,B´e a matriz dos termos independentes eX ´e a matriz de inc´ognitas ou matriz solu¸c˜ao. Cada uma das matrizes ´e representada a seguir:

A=     

a1,1 a1,2 · · · a1,N a2,1 a2,2 · · · a2,N

..

. ... ... aN,1 aN,2 · · · aN,N

     X =      x1 x2 .. . xN      B =      b1 b2 .. . bN     

Alguns dos m´etodos de solu¸c˜ao de sistemas lineares precisam manipular tanto a matriz de coeficientesAcomo a de termos independentes B. Uma maneira compacta de se representar estas duas informa¸c˜oes numa ´unica estrutura ´e a matriz ampliada (tamb´em chamada de matriz aumentada ou matriz completa) do sistema. Ela difere da matrizA apenas pela inclus˜ao dos termos independentes como ´ultima coluna da matriz:

ˆ

A= [A|B] =

   

a1,1 a1,2 · · · a1,N b1

a2,1 a2,2 · · · a2,N b2

..

. ... ... ... aN,1 aN,2 · · · aN,N bN

   

Existem dois tipos de matriz que ser˜ao muito ´uteis na solu¸c˜ao de sistemas lineares e que ser˜ao muito utilizadas ao longo das descri¸c˜oes dos m´etodos−s˜ao as matrizes triangular e escalonada.

No primeiro tipo, a matriz tem dimens˜ao N×N e os elementos abaixo ou acima da diagonal principal s˜ao identicamente nulos. Se for abaixo, a matriz ´e chamada de triangular superior; se for acima, de triangular inferior. As matrizesP eQ, a seguir, s˜ao matrizes triangulares superior e inferior respectivamente.

P =         

a1,1 a1,2 a1,3 · · · a1,N−1 a1,N 0 a2,2 a2,3 · · · a2,N−1 a2,N 0 0 a2,3 · · · a3,N−1 a3,N ..

. ... ... ... ... 0 0 0 · · · aN−1,N−1 aN−1,N 0 0 0 · · · 0 aN,N

         Q=         

a1,1 0 0 · · · 0 0

a2,1 a2,2 0 · · · 0 0

a3,1 a3,2 a3,3 · · · 0 0

..

. ... ... ... ...

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

aN,1 aN,2 aN,3 · · · aN,N−1 aN,N

        

Na matriz escalonada, a matriz n˜ao precisa ter necessariamente o n´umero de linhas igual ao n´umero de colunas, basta que ela tenha a forma de uma escada onde a parte superior ou a inferior s˜ao identicamente nulas.

Suponha o seguinte sistema linear:

S=

 

2x1 + 3x2 − x3 = 5

4x2 − 3x3 = 5

x3 = −1

(13)

1.2. M´ETODOS DIRETOS

ˆ S=

2 3 −1 5 4 −3 5 1 −1

Repare que a solu¸c˜ao do sistema linear pode ser obtido por simples substitui¸c˜ao regressiva. Primeiro calcula-se o valor dex3. Depois, aplica-se o valor dex3na equa¸c˜ao acima e determina-se o valor dex2. Por fim, aplicando-se

os valores dex3 ex2 na primeira equa¸c˜ao, calcula-se o valor dex1.

Se, atrav´es de opera¸c˜oes elementares, for poss´ıvel obter-se uma matriz escalonada de uma matriz ampliada qualquer, a solu¸c˜ao do sistema linear associado `a esta matriz ampliada estar´a garantida.

1.1.2

Opera¸

oes Elementares

S˜ao trˆes as opera¸c˜oes elementares que podem atuar sobre as linhas de uma matriz:

i. Permuta¸c˜ao entre linhas. A opera¸c˜ao de permuta¸c˜ao dai-´esima linha pelaj-´esima linha ´e descrita como: Li↔Lj

ii. Multiplica¸c˜ao de uma linha por um escalar n˜ao nulo. A opera¸c˜ao de multiplica¸c˜ao da i-´esima linha pela constantek´e:

Li ←kLi

iii. Substitui¸c˜ao de uma linha pela soma dela mesma com outra linha. A opera¸c˜ao de substitui¸c˜ao dai-´esima linha pela soma dela com a j-´esima linha multiplicada pork´e:

Li←Li+kLj

Ap´os um n´umero finito de opera¸c˜oes elementares sobre uma matrizP qualquer, obt´em-se uma outra matriz Qque ´e dita serequivalente `aP. Se a matrizP ´e uma matriz ampliada e representa um sistema linear, ent˜aoQ tamb´em ser´a uma matriz ampliada e representar´a um outro sistema dito ser equivalente ao primeiro sistema. A equivalˆencia entre sistemas implica em uma outra observa¸c˜ao:

“Se dois sistemas s˜ao equivalentes, ent˜ao as solu¸c˜oes dos dois sistemas s˜ao idˆenticas.”

Deste ponto em diante, ser˜ao apresentados os m´etodos matem´aticos e computacionais para a solu¸c˜ao de um sistema de equa¸c˜oes lineares.

1.2

etodos Diretos

1.2.1

etodo de Gauss

Descri¸c˜ao

O objetivo do m´etodo de Gauss (tamb´em chamado de elimina¸c˜ao gaussiana) ´e transformar a matriz ampliada original de um sistema linear em uma matriz escalonada atrav´es de opera¸c˜oes lineares.

Para explicar o m´etodo, considere o seguinte sistema linear:

S=

 

x1 + 3x2 + x3 = 0 −x1 + 3x2 + 3x3 = 5

x1 −2x2 + x3 = 1

A matriz ampliada deste sistema ´e:

ˆ S=

1 3 1 0

−1 3 3 5 1 −2 1 1

O primeiro passo para torn´a-la escalonada ´e anular o 2oe o 3oelementos da 1acoluna. ´E f´acil observar que, se

a 2a linha for substitu´ıda pela soma da 1a linha com a 2a, o 2o elemento da 1a coluna ser´a zero. E para obter-se zero no lugar do 3o elemento, basta substituir a 3alinha pela soma da 3a com a 1a multiplicada por1.

(14)

1.2. M´ETODOS DIRETOS

1. estabelece-se o 1o elemento da 1acoluna (elementoa

1,1= 1) comopivot(elemento chave);

2. calcula-se um multiplicador para o 2o elemento da coluna (elementoa

2,1=−1) segundo a f´ormula

m2,1=− a2,1

pivot =−

−1 1 = 1 3. substitui-se a 2alinha (L

2) pela soma da 1alinha (L1, linha dopivot) multiplicada porm2,1com a 2a(L2):

L2+m2,1L1→L2

4. calcula-se um multiplicador para o 3o elemento da coluna (elementoa

3,1= 1):

m3,1=−

a3,1

pivot =− 1 1 =−1 5. substitui-se a 3alinha (L

3) pela soma da 1alinha (L1, linha dopivot) multiplicada porm3,1com a 3a(L3):

L3+m3,1L1→L3

Matricialmente, tem-se que

ˆ S=

1 3 1 0

−1 3 3 5 1 −2 1 1

 L2+ (1)L1→L2

L3+ (−1)L1→L2

1 3 1 0

0 6 4 5

0 −5 0 1

Para completar a forma escalonada, ´e necess´ario que o 3oelemento da 2acoluna (a

3,2=-5) seja nulo. Fixando-se

o elementoa2,2comopivot, calcula-se o multiplicadorm3,2,

m3,2=−

a3,2

pivot =−

−5 6 =

5 6

Por fim, substitui-se a 3alinha pela soma da 2a (linha dopivot) multiplicada porm

3,2 com a 3a:

L3+m3,2L2→L3

O resultado ´e a matriz escalonada equivalente `a matriz ampliada original do sistema. Sistematizando, 1. estabelece-se o 2o elemento da 2acoluna (elementoa2,2= 6) comopivot;

2. calcula-se um multiplicador para o 3o elemento da coluna (elementoa

3,2=−5)

m3,2=−

a3,2

pivot =−

−5 6 =

5 6

3. substitui-se a 3a linha (L3) pela soma da 2alinha (L2, linha dopivot) multiplicada porm3,2 com a 3a(L3)

L3+m3,2L2→L3

Na representa¸c˜ao matricial:

ˆ S=

1 3 1 0

0 6 4 5

0 −5 0 1

L3+ 56

L2→L3

1 3 1 0

0 6 4 5

0 0 103 316

Retornando para a representa¸c˜ao de sistema linear a partir da matriz escalonada, o c´alculo da inc´ognita x3

torna-se imediato. E por substitui¸c˜ao regressiva, as demais inc´ognitas (x2 ex1) podem ser computadas.

ˆ S=     

x1 + 3x2 + x3 = 0

6x2 + 4x3 = 5 10

3x3 = 31 6 =⇒       

x3= 3120

x2= 16

5−4 3120=−15

(15)

1.2. M´ETODOS DIRETOS

Algoritmo e Complexidade

A partir do exemplo, o m´etodo de Gauss pode ser generalizado para um sistema deN equa¸c˜oes eN inc´ognitas. Observe que os elementos da diagonal principal da matriz de coeficientes sempre ser˜ao ospivot’s, caso contr´ario n˜ao se obter´a uma forma escalonada. Os elementos da matriz ampliada que ser˜ao “zerados” sempre est˜ao abaixo dospivot’s (dentro de suas colunas correspondentes).

SejaS um sistema de equa¸c˜oes lineares como o apresentado abaixo

S=                   

a1,1x1 + a1,2x2 + · · · + a1,jxj +· · · + a1,NxN = b1

a2,1x1 + a2,2x2 + · · · + a2,jxj +· · · + a2,NxN = b2

..

. ... · · · ... ... ... ai,1x1 + ai,2x2 + · · · + ai,jxj +· · · + ai,NxN = bi

..

. ... · · · ... ... ... aN,1x1 + aN,2x2 + · · · +aN,jxj +· · · + aN,NxN = bN

e a matriz ampliada do sistemaS

ˆ S=          

a1,1 a1,2 · · · a1,j · · · a1,N b1

a2,1 a2,2 · · · a1,j · · · a2,N b2

..

. ... ... ... ... ai,1 ai,2 · · · ai,j · · · ai,N bi

..

. ... ... ... ... aN,1 aN,2 · · · a1,j · · · aN,N bN

         

O algoritmo que descreve o procedimento de escalonamento da matriz ampliada do sistema e a substitui¸c˜ao regressiva ´e

Algoritmo 1.1:M´etodo de Gauss Dados:

: {comentario}

Entrada:

: {comentario}

Sa´ıda:

: {comentario}

{escalonar a matriz ampliada do sistema}

paraj de 1 at´eN fa¸ca pivot←aj,j

paraide j+ 1 at´eN fa¸ca mi,j← − ai,j

pivot {(N+ 1) divis~oes}

Li←Li+mi,jLj {N somas e N produtos}

fim para fim para

{aplicar substitui¸c~ao regressiva}

paraide N at´e1 passo −1 fa¸ca xi← 1

ai,i

bi−

i+1

X

j=N ai,jxj

 {N divis~oes e N

2N

2 subtra¸c~oes} fim para

A complexidade do escalonamento da matriz ampliada ´e deve ser verificada acompanhado-se o algoritmo. Sabe-se que cada opera¸c˜ao de linha para anular um elemento envolveN+ 1 divis˜oes,Nsomas eN produtos. Para cada multiplicador, opera-se uma linha inteira. Portanto, o n´umero total de opera¸c˜oes do processo de escalonamento depende da estimativa de quantos multiplicadores ser˜ao calculados. Na 1a coluna, s˜ao (N1) multiplicadores. Na 2a coluna, s˜ao (N2) multiplicadores. Na ´ultima coluna, n˜ao h´a multiplicador (0 multiplicadores). Logo, o total de multiplicadores pode ser estimado pela s´erie

N

X

j=1

(N−j) = N

2N

(16)

1.2. M´ETODOS DIRETOS

Consequentemente, o n´umero total de opera¸c˜oes ser´a N2N

2 multiplicadores ×(N+ 1 divis˜oes +N somas +N produtos) =

= N

2N

2 (3N+ 1) =

3N33N2+N2N

2 =

= 3N

32N2N

2 =O(N

3)

Faltou a complexidade da substitui¸c˜ao regressiva: s˜aoN divis˜oes mais (N2N)/2 subtra¸c˜oes para calcular

todas as N inc´ognitas. O total de opera¸c˜oes da substitui¸c˜ao regressiva ´e da ordem O(N2). Conclui-se que a

complexidade do m´etodo de Gauss ´e da ordemO(N3) pois o processo de escalonamento ´e mais “pesado” que a

substitui¸c˜ao regressiva.

1.2.2

etodo de Jordan

Descri¸c˜ao

Alguns autores apresentam o m´etodo de Gauss como sendo aquele que transforma a matriz ampliada em uma matriz escalonada equivalente. Outros v˜ao um pouco mais al´em e continuam operando sobre a matriz escalonada at´e que ela se torne uma matriz diagonal equivalente. Para o primeiro grupo de autores, este procedimento adicional caracteriza um novo m´etodo chamado de M´etodo de Jordan.

Portanto, o objetivo do m´etodo de Jordan ´e transformar a matriz ampliada em uma matriz diagonal equivalente. Esta matriz se caracteriza por ter a diagonal principal da matriz de coeficientes identicamente unit´aria, isto ´e, uma matriz identidade. Repare que se a matriz equivalente, resultado das opera¸c˜oes elementares sobre as linhas, for identidade, o passo final de substitui¸c˜ao regressiva torna-se desnecess´ario, pois os valores das inc´ognitas poderiam ser visualizados diretamente.

Resumindo, o m´etodo de Jordan apresenta diretamente a solu¸c˜ao do sistema de equa¸c˜oes lineares ap´os opera¸c˜oes elementares sobre a matriz ampliada. Matricialmente, isto significa:

ˆ A=

   

a1,1 a1,2 · · · a1,N b1

a2,1 a2,2 · · · a2,N b2

..

. ... . .. ... ... aN,1 aN,2 · · · aN,N bN

   

   

1 0 · · · 0 r1

0 1 · · · 0 r2

..

. ... . .. ... ... 0 0 · · · 1 rN

   

onderi´e a pr´opria solu¸c˜ao do sistema: x1=r1,x2=r2,. . .

Trˆes modifica¸c˜oes devem ser feitas no m´etodo de Gauss para convertˆe-lo no m´etodo de Jordan: (a) substituir a linha dopivot por ela mesma dividida pelo seupivot,

(b) anular os demais elementos da coluna dopivot (diferente do m´etodo de Gauss que s´o anulava os elemento abaixo dopivot),

(c) e eliminar a substitui¸c˜ao regressiva.

O procedimento geral para o m´etodo de Jordan ´e aplicado `a um sistema deN equa¸c˜oes eN inc´ognitas: 1. para cada coluna j= 1,2, . . . , N

2. estabelecer aj,j comopivot

3. normalizar a linha do pivot(Lj) pelopivot 4. para cada linha Li,i= 1,2, . . . , N ei6=j

5. estabelecer o multiplicador mi,j como−ai,j/pivot(diferente do m´etodo de Gauss) 6. substituirLi porLi+mi,jLj

Considere o mesmo sistema linear apresentado no m´etodo de Gauss:

S=

 

x1 + 3x2 + x3 = 0 −x1 + 3x2 + 3x3 = 5

(17)

1.2. M´ETODOS DIRETOS

A matriz ampliada deste sistema ´e:

ˆ S=

  

1 3 1 0

−1 3 3 5 1 −2 1 1

  

Primeiro, na 1a coluna, o pivota ´e unit´ario (nada a fazer). Segundo, o multiplicador da 2a linha (coluna do pivot) ´e unit´ario tamb´em, e o multiplicador da 3a linha ´e1. Ent˜ao, a 2a linha ser´a substitu´ıda pela soma dela mesma com a linha dopivot(L1). A 3a linha ser´a substitu´ıda pela subtra¸c˜ao dela mesma pela linha do pivot.

ˆ S=

  

1 3 1 0

−1 3 3 5 1 −2 1 1

 

 L2+ (+1)L1→L2

L3+ (−1)L1→L3

  

1 3 1 0

0 6 4 5

0 −5 0 1

  

Para a 2a coluna, opivot´e o elementoa

2,2= 6. NormalizandoL2, a matriz ampliada se torna

ˆ S=

 

1 3 1 0

0 6 4 5

0 −5 0 1

 

L2

pivot→L2

 

1 3 1 0

0 1 23 56 0 −5 0 1

 

Agora, diferente do m´etodo de Gauss, deve-se anular o 1o elemento da 2a coluna. O multiplicador m

1,2 vale −3. A 1a linha (L

1) ser´a substitu´ıda porL1+ (−3)L2:

ˆ S=

  

1 3 1 0

0 1 2

3 5 6

0 −5 0 1

  

L1+ (−3)L2→L1 

 

1 0 −1 −52

0 1 2

3 5 6

0 −5 0 1

  

Para anular o 3oelemento da 2a coluna (5), o procedimento ´e similar: o multiplicadorm+ 3,2 vale 5. Assim, a 3a linha (L

3) ser´a substitu´ıda porL3+ (5)L2.

ˆ S=

  

1 0 −1 −5 2

0 1 23 56 0 −5 0 1

  

L3+ (+5)L2→L3

  

1 0 −1 −5 2

0 1 23 56 0 0 10

3 31 6   

Duas colunas j´a est˜ao na forma de Jordan. A 3a coluna ser´a tratada da segundo os mesmos procedimentos: o pivot´ea3,3= 10/3.

ˆ S=

  

1 0 −1 −52

0 1 2

3 5 6

0 0 103 316

  

L3

pivot→L3

  

1 0 −1 −52

0 1 2

3 5 6

0 0 1 3120

  

O multiplicador de 1a linha ´e 1 e da 2a linha ´e2 3. A 1

a linha ser´a substitu´ıda porL

1+ (1)L3 e 2a linha por

L2+ −23

L3.

ˆ S=

 

1 0 −1 −5 2

0 1 23 56 0 0 1 31 20

 

L1+ (+1)L3→L1

L2+ −23L3→L2

 

1 0 0 −19 20

0 1 0 −15

0 0 1 31

20

 

Retornando `a representa¸c˜ao de sistema linear, ´e poss´ıvel observar a solu¸c˜ao direta obtida pelo m´etodo de Jordan. S=     

x1 + 3x2 + x3 = 0 −x1 + 3x2 + 3x3 = 5

x1 − 2x2 + x3 = 1

=⇒     

x1 =−1920

x2 = −15

(18)

1.2. M´ETODOS DIRETOS

Algoritmo e Complexidade

A complexidade do m´etodo de Jordan ´e deduzida de forma mais direta que a do m´etodo de Gauss: s˜aoN colunas; para cada coluna s˜ao (N−1) multiplicadores; cada opera¸c˜ao de linha envolveNsomas e (N+1) produtos; e, para normalizar a linha dopivot, s˜ao calculados (N+ 1) divis˜oes. Organizando tudo isso:

N colunas×[(N+ 1) divisoes + (N−1) linhas×(N somas +(N+ 1) produtos )] = =N[(N+ 1) + (N−1) (2N+ 1)] =N(N+ 1) + 2N2N1=

=N 2N2= 2N3=O N3

algoritmo Jordan

{escalonar a matriz ampliada do sistema}

paracada coluna jde 1ateN,fazer pivot←aj,j

Lj ← Lj

pivot {(N+ 1) divis˜oes} paracada linhai de1ateN, (i6=j),fazer

mi,j← −ai,j

Li←Li+mi,jLj {N somas e (N+ 1) produtos}

fim para fim para

fim Jordan

1.2.3

etodo da Matriz Inversa

Descri¸c˜ao

Duas outras formas de se resolver um sistema de equa¸c˜oes lineares est˜ao baseadas na invers˜ao de matrizes. Na representa¸c˜ao matricial, um sistema linear corresponde ao produto de matrizes:

A·X=B

Se a matrizAfor invers´ıvel, a solu¸c˜ao do sistema pode ser obtido pela equa¸c˜ao matricial X=A−1·B

O primeiro m´etodo, chamado de matriz inversa, usa um processo expl´ıcito de invers˜ao da matriz de coeficientes para depois multiplicar pela matriz de termos independentes. O segundo m´etodo, conhecido por Regra de Cramer, tamb´em est´a baseado na invers˜ao da matriz de coeficientes, mas n˜ao a produz explicitamente. Na se¸c˜ao seguinte, a regra de Cramer ser´a apresentada com mais detalhes.

O processo de invers˜ao utilizado neste m´etodo est´a baseado na rec´ıproca do seguinte teorema:

Teorema: Se a matriz de coeficientes A ´e invers´ıvel, a sua matriz equivalente ˆA mais simples ´e uma matriz identidadeI. Isto significa que a matrizA´e um produto de opera¸c˜oes matriciais elementares:

I = Ek·Ek−1· · · · ·E2·E1·A

= (Ek·Ek−1· · · · ·E2·E1·I)·A

ou seja,

Ek·Ek−1· · · · ·E2·E1·I=A−1

A rec´ıproca:

(19)

1.2. M´ETODOS DIRETOS

Na pr´atica, opera-se simultaneamente as matrizesAeIatrav´es de opera¸c˜oes elementares num formato similar ao da matriz ampliada (justapondo as matrizesAeI lado-a-lado):

(A|I)←→ I|A−1

Para exemplificar o m´etodo, assuma o sistema linear apresentado na se¸c˜ao anterior:

S=

 

x1 + 3x2 + x3 = 0 −x1 + 3x2 + 3x3 = 5

x1 − 2x2 + x3 = 1

=⇒ A=

 

1 3 1

−1 3 3 1 −2 1

 

sendoAa matriz de coeficientes. Justapondo a matrizAe a matriz identidade, obt´em-se:

1 3 1 1 0 0

−1 3 3 0 1 0 1 −2 1 0 0 1

Como resultado final do processo, onde se encontrava a matrizA, agora se encontra a matriz identidadeI, e onde se encontrava a identidade, encontra-se agora a matriz inversa A−1.

1 0 0 0,45 −0,25 0,30 0 1 0 0,20 0 −0,20 0 0 1 −0,05 0,25 0,30

Algoritmo e Complexidade

O procedimento para invers˜ao ´e idˆentico ao do m´etodo de Jordan. S´o ´e preciso acrescentar o procedimento de multiplica¸c˜ao de matriz por vetor.

algoritmo Matriz Inversa

{escalonar a matriz ampliada do sistema}

paracada coluna jde 1ateN,fazer pivot←aj,j

Lj ← Lj

pivot

paracada linhai de1ateN, (i6=j),fazer mi,j← −ai,j

Li←Li+mi,jLj {(2N−1) somas e 2N produtos}

fim para fim para

paracada linha ide1 ateN,fazer xi ←

N

X

j=1

ai,jbj {(N−1) somas eN produtos}

fim para

fim Matriz Inversa

A complexidade do m´etodo da Matriz Inversa, assim como o procedimento para invers˜ao, tamb´em ´e idˆentica ao do m´etodo de Jordan: O N3. Sugest˜ao de exerc´ıcio: demonstre a complexidade do m´etodo da Matriz Inversa

´eO N3.

1.2.4

etodo de Cramer

Descri¸c˜ao

Antes de apresetar o m´etodo de Cramer para calcular a solu¸c˜a de um sistema linear, ser´a apresentada uma BREVE recorda¸c˜ao sobre determinantes, cofatores e matrizes adjuntas.

(20)

1.2. M´ETODOS DIRETOS

det (A) =|A|=X N!

(−1)Ja1,j1a1,j2· · ·a1,jN

ondeJ ´e o n´umero de invers˜oes da permuta¸c˜ao (j1, j2,· · · , jN). Observe que o somat´orio temN! termos que ´e o

n´umero de permuta¸c˜oes poss´ıveis paraN n´umeros.

O c´alculo do determinante de uma matriz quadradaApode ser simplificada (conceitualmente, mas n˜ao com-putacinalmente) pelo uso dos cofatores. Por defini¸c˜ao, o cofator (ou complemento alg´ebrico do elemento ai,j) ´e um n´umero calculado pela express˜ao

∆i,j = (−1)i+j|Ai,j|

ondeAi,j ´e a submatriz da matrizAde onde ai-´esima linha e aj-´esima coluna foram retiradas.

A partir da defini¸c˜ao de cofator, o determinante de uma matriz quadradaAN,Npode ser simplificada `a seguinte express˜ao:

det (A) =|A|= N

X

j=1

ai,j∆i,j

Observe que o ´ındicei, referente a linha, fica livre para o leitor fixar. Esta forma ´e similar para colunas:

det (A) =|A|= N

X

i=1

ai,j∆i,j

Com estes cofatores, forma-se uma nova matriz ¯Adenominada matriz de cofatores deA:

cof (A) = ¯A= [∆i,j] =

   

∆1,1 ∆1,2 · · · ∆1,N ∆2,1 ∆2,2 · · · ∆2,N

..

. ... . .. ... ∆N,1 ∆N,2 · · · ∆N,N

   

A transposta da matriz de cofatores ´e chamada de matriz adjunta:

adj (A) = ¯At=

    

∆1,1 ∆2,1 · · · ∆N,1

∆1,2 ∆2,2 · · · ∆N,2

..

. ... . .. ... ∆1,N ∆N,2 · · · ∆N,N

    

A matriz adjunta adj (A) da matriz quadradaAN,N est´a relacionada `a inversaA−1segundo a express˜ao

A−1= adj (A)

det (A)

Isso implica que s´o existe inversa da matrizAse, e somente se, o determinante deAfor diferente de zero. Voltando a forma matricial do sistema linear, tem-se que:

A·X =B⇒X =A−1·B =adj (A) det (A)·B

     x1 x2 .. . xN      = 1 det (A)     

∆1,1 ∆2,1 · · · ∆N,1

∆1,2 ∆2,2 · · · ∆N,2

..

. ... . .. ... ∆1,N ∆N,2 · · · ∆N,N

     ·      b1 b2 .. . bN      Ent˜ao,

x1=b1∆1,1+b2∆2,1+· · ·+bN∆N,1

(21)

1.3. M´ETODOS ITERATIVOS = 1 det (A) N X i=1

bi∆i,1=

b1 a1,2 · · · a1,N b2 a2,2 · · · a2,N

..

. ... . .. ... bN a2,N · · · aN,N

a1,1 a1,2 · · · a1,N a2,1 a2,2 · · · a2,N

..

. ... . .. ... aN,1 a2,N · · · aN,N

De forma an´aloga, as outras solu¸c˜oes podem ser obtidas colocando-se o vetor de termos independentesBna coluna correspondente ao ´ındicek da vari´avel inc´ognitaxk:

xk =b1∆1,k+b2∆2,k+· · ·+bN∆N,k

det (A) =

= 1 det (A) N X i=1 bi∆i,k=

a1,1 · · · a1,k−1 b1 a1,k+1 · · · a1,N a2,1 · · · a2,k−1 b2 a2,k+1 · · · a2,N

..

. ... ... ... ... aN,1 · · · aN,k−1 bN aN,k+1 · · · aN,N

a1,1 a1,2 · · · a1,N a2,1 a2,2 · · · a2,N

..

. ... . .. ... aN,1 a2,N · · · aN,N

Algoritmo e Complexidade

O grande complicador do m´etodo de Cramer ´e o n´umero de opera¸c˜oes envolvido na computa¸c˜ao da solu¸c˜ao do sistema de equa¸c˜oes lineares. No c´alculo do determinante de uma matriz quadradaN×N, tem-seN! produtos de N elementos cada (total deN!(N−1) produtos) e maisN!−1 somas. S´o em opera¸c˜oes elementares, s˜aoN!N−1. Se o sistema possui N inc´ognitas, ser˜ao no totalN + 1 determinantes a serem computados. Isto significa que, ao final do m´etodo, (N+ 1)(N!N−1) opera¸c˜oes teriam sido realizados. Isto ´e da ordemO N!N2. SeN for 5: (5!)52= 3000 opera¸c˜oes. SeN for 8: (8!)822,581 milh˜oes de opera¸c˜oes. “´E conta pr´a chuchu!!!”.

Por isso, o c´alculo do determinante deve ser repensado para fugir deste “gargalo”. Uma sa´ıda simples ´e utilizar uma matriz equivalente no lugar da matriz original. Se a matriz equivalente for uma matriz triangular superior, escalonada superior ou diagonal principal, o determinante ser´a simplesmente o produto dos termos da diagonal principal. Nesta sa´ıda simples, foram econimizados (N!−1)(N−1) produtos. Para gerar uma matriz equivalente na forma escalonada, pode-se usar o m´etodo de Gauss.

O algoritmo para o m´etodo de Cramer ser´a ent˜ao:

algoritmo Cramer

calcular o determinante da matriz de coeficientesA: detA paracada inc´ognitaxk parakde 1ateN,fazer

substituir ak-´esima coluna da matrizApelo vetor de termos independentesB

calcular o determinante da matriz resultante: detCk xk ← detCk

detA fim para

fim Cramer

1.3

etodos Iterativos

(22)

1.3. M´ETODOS ITERATIVOS

este pensamento `a solu¸c˜ao de sistemas de equa¸c˜oes lineares por processos iterativos, significa dizer que a cada itera¸c˜ao, o vertor solu¸c˜aoX(k)tende `a solu¸c˜ao exata do sistemaX.

Em termos pr´aticos, isto quer dizer que a solu¸c˜aoX(k+1)est´a mais pr´oxima da solu¸c˜ao exataX que a solu¸c˜ao

X(k). E que a solu¸c˜aoX(k+2) est´a mais pr´oxima de X que a solu¸c˜aoX(k+1). Neste processo iterativo, com k

tendendo ao infinito, a solu¸c˜ao exata do sistema seria atingida. lim

k→∞X

(k)=X

Obviamente, ningu´em quer implementar um m´etodo que nunca termine. Por isso, todo processo iterativo ´e desenvolvido dispondo-se de crit´erios de parada: ou um limite para o n´umero de itera¸c˜oes ou uma precis˜ao m´ınima a ser atingida.

1.3.1

Convergˆ

encia para a Solu¸

ao

Os processos iterativos de resolu¸c˜ao de sistemas de equa¸c˜oes lineares partem da seguinte formula¸c˜ao: “Seja A a matriz de coeficientes de um sistema linear, B o vetor de termos independentes deste sistema e X o vetor de inc´ognitas ou vetor solu¸c˜ao tamb´em deste sistema. Ent˜ao, o sistema linear ´e representado matricialmente por:

A·X=B

Se Apuder ser decomposta em duas outras matrizesP eQtal queA= (P−Q) eP seja invers´ıvel, ent˜ao o sistema linear pode ser reescrito como:

A·X = (P−Q)·X=P·X−Q·X =B⇒ ⇒P·X =Q·X+B⇒X =P−1·Q·X+P−1·B

Partindo-se de uma aproxima¸c˜ao inicialX(0)e renomeandoP−1·QparaF eP−1·BparaD, obt´em-se

que:

X(1) = F·X(0)+D X(2) = F·X(1)+D

.. .

X(k) = F·X(k−1)+D sendo esta ´ultima equa¸c˜ao a equa¸c˜ao de itera¸c˜ao.”

Mas para que o processo iterativo venha a convergir para uma solu¸c˜ao aproximada do sistema, a matrizF deve satisfazer uma condi¸c˜ao espec´ıfica. Antes de apresentar esta condi¸c˜ao, ´e necess´ario estabelecer algumas defini¸c˜oes e teoremas.

Defini¸c˜ao: Define-senorma da matriz AR,S, simbolizado porkAk, o n´umero n˜ao negativo

kAk= max

1≤i≤R S

X

j=1 |ai,j|

Exemplo:

A=

−3 2 4 −2

ent˜aokAk= max{|−3|+|2|,|4|+|−2|}= max{5,6}= 6

Teorema: SeA´e uma matriz quadrada tal quekAk<1, ent˜ao todos os seus autovalores tˆem m´odulo menor que 1.

Uma breve recorda¸c˜ao: numa progress˜ao geom´etrica, se|a|<1, ent˜ao

X

k=0

(23)

1.3. M´ETODOS ITERATIVOS

Teorema: SeA´e uma matriz quadrada diagonaliz´avel, ent˜aoApode ser rescrita comoA=Q·D·Q−1, ondeQ

´e a matriz de autovetores eD, a matriz de autovalores.

A=Q·

    

λ1 0 · · · 0

0 λ2 · · · 0

..

. ... . . . 0 0 0 · · · λ2

    

·Q−1

Teorema: Se A ´e uma matriz quadrada tal que todos os seus autovalores tˆem m´odulo menor que 1, ent˜ao lim

k→∞A

k= 0 (aqui,k´e expoente e n˜ao ´ındice de itera¸c˜ao).

Ak =Q·

    

λ1 0 · · · 0

0 λ2 · · · 0

..

. ... . .. ... 0 0 · · · λi

     k

·Q−1=Q·

     λk

1 0 · · · 0

0 λk

2 · · · 0

..

. ... . .. ... 0 0 · · · λk

i     

·Q−1

Se todos os autovalores λi tˆem m´odulo menor que 1, ent˜ao lim k→∞A

k = 0. Al´em disso,

X

k=0

Ak = (IA)−1

(similar `a progress˜ao geom´etrica).

Voltando ao processo iterativo, a equa¸c˜ao de itera¸c˜ao tem a forma:

X(1)=F·X(0)+D

X(2)=F·X(1)+D=F·(F·X(0)+D) +D =F2·X(0)+ (I+F)·D

X(3)=F·X(2)+D=F·(F2·X(0)+ (I+F)·D) +D=

=F3·X(0)+ (I+F+F2)·D Por indu¸c˜ao matem´atica,

X(k)=Fk−1·X(0)+ (I+F+F2+. . .+Fk−2)·D Levando este resultado ao limite dek tendendo ao infinito e lembrando que lim

k→∞X

(k)=X, onde X ´e a solu¸c˜ao

exata do sistema, tem-se que X= lim

k→∞X

(k)= lim

k→∞F

k−1

| {z }

=0

·X(0)+ (I+F+F2+. . .+Fk−2+. . .)

| {z }

=(I−F)−1

·D

assumindo que a matrizF possui autovalores com m´odulo menor que 1. E para isso, a norma deF deve ser menor que 1 (kFk<1).

Desta forma, a condi¸c˜ao necess´aria para que o processo iterativo venha a convergir para a solu¸c˜ao do sistema linear ´e encontrar as matrizesP eQtal queP seja invers´ıvel e que P−1·Q<1.

Duas combina¸c˜oes de P’s eQ’s s˜ao muito utilizadas. Na primeira, a matriz A´e decomposta em uma matriz P contentdo somente a diagonal principal e uma matrizQcom o restante dos elementos. O processo que utiliza estas matrizes ´e chamada de m´etodo de Jacobi. A segunda combina¸c˜ao ´e a decomposi¸c˜ao de A em uma matriz P que ´e triangular inferior (incluindo a diagonal principal) e em uma matrizQque ´e triangular superior (sem a diagonal). Quando o processo iterativo usa estas duas matrizes, ele ´e chamado de m´etodo de Gauss-Seidel. Obs.: como j´a foi mencionado, um dos crit´erios de parada ´e o n´umero de itera¸c˜oes. Quando o n´umero de itera¸c˜oes atinge um limite pr´e-estabelecido, o processo para e o ´ultimo vetorX´e tomado como a solu¸c˜ao do sistema. Outro crit´erio ´e a precis˜ao das aproxima¸c˜oes. Se a maior diferen¸ca em m´odulo entre duas aproxima¸c˜oes sucessivas for menor que uma tolerˆanciaǫ dada, ent˜ao o processo para. Isto pode ser apresentado como a norma da diferen¸ca de duas aproxima¸c˜oes:

X(

k+1)X(k)

= max1iN n

x

(k+1)

i −x

(k)

(24)

1.3. M´ETODOS ITERATIVOS

1.3.2

etodo de Jacobi

Descri¸c˜ao

Se

A=

  

a1,1 · · · a1,N ..

. ... aN,1 · · · aN,N

  

comai,i6= 0, i= 1, . . . , N, ent˜ao, uma decomposi¸c˜ao que atende ao quisito de uma matrizF tal quekFk<1 ´e

A=     

a1,1 0 · · · 0

0 a2,2 · · · 0

..

. ... . .. ... 0 0 · · · aN,N

     +     

0 a1,2 · · · a1,N a2,1 0 · · · a2,N

..

. ... . .. ... aN,1 aN,2 · · · 0

    

=P+ (−Q)

´

E fato que a matrizP ´e diagonal e invers´ıvel e que sua inversa ´e

P−1=

    

a1,1 0 · · · 0

0 a2,2 · · · 0

..

. ... . .. ... 0 0 · · · aN,N

     −1 =     

a−1,11 0 · · · 0

0 a−2,12 · · · 0

..

. ... . .. ... 0 0 · · · a−N,N1

    

E sendoQa matriz

Q=     

0 −a1,2 · · · −a1,N

−a2,1 0 · · · −a2,N ..

. ... . .. ...

−aN,1 −aN,2 · · · 0

    

ent˜ao, a matrizF =P−1·Qe o vetor D=P−1·B ser˜ao

F =            

0 −a1,2

a1,1

· · · −a1,N

a1,1 −a2,1

a2,2

0 · · · −a2,N

a2,2

..

. ... . .. ...

−aN,1

aN,N − aN,2

aN,N · · · 0

            D=             b1

a1,1

b2

a2,2

.. . bN aN,N            

A condi¸c˜aokFk<1 para a convergˆencia do processo iterativo ´e ent˜ao que

a1,2

a1,1

+· · ·+ −

a1,N a1,1

<1 −

a2,1

a2,2

+· · ·+ −

a2,N a2,2

<1 · · · − aN,1 aN,N +· · ·+ −

aN,N−1

aN,N

<1

(25)

1.3. M´ETODOS ITERATIVOS

Algoritmo e Complexidade

Algoritmo Jacobi fazer,

X(k+1)=F·X(k)+D {N×[N+ (N1)]}

seX(k+1)Xk< ǫouitera¸c˜oes > limiteent˜ao parar

fim se fim fazer fim Jacobi

Para os processos iterativos, a complexidade se refere apenas ao custo das opera¸c˜oes em uma itera¸c˜ao, uma vez que n˜ao ´e conhecido previamente o total itera¸c˜oes. No m´etodo de Jacobi, a principal opera¸c˜ao ´e a itera¸c˜ao propriamente dita. Cada itera¸c˜ao envolveN produtos de linha da matriz F pelo vetor de aproxima¸c˜oes X(k).

Cada produto de linha por coluna custaN produtos entre elementos e (N−1) somas. Portanto,O(N2). A norma

da diferen¸ca das aproxima¸c˜oes tem complexidade linear,O(N) e n˜ao interfere na complexidade final.

1.3.3

etodo de Gauss-Seidel

Descri¸c˜ao

A matrizApode ser decomposta de uma outra forma: duas matrizes triangulares, uma contendo a diagonal principal (matriz P) e a outra com os elementos restantes (matriz −Q):

A=

     

a1,1 0 · · · 0 0

a2,1 a2,2 · · · 0 0

..

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

aN,1 aN,2 · · · aN,N−1 aN,1

     

+

     

0 a1,2 · · · a1,N−1 a1,N 0 0 · · · a2,N−1 a1,N ..

. ... . .. ... ... 0 0 · · · 0 aN−1,N 0 0 · · · 0 0

     

=

=P+ (−Q)

O m´etodo que utiliza estas matrizes se chama Gauss-Seidel. Note que a matriz P ´e invers´ıvel pois seus elementos da diagonal n˜ao s˜ao nulos e a matriz ´e triangular inferior. Para garantir a convergˆencia do processo, a norma da matrizF =P−1·Qdeve ser menor que 1, o que implica na mesma condi¸c˜ao j´a imposta no m´etodo de

Jacobi: os elementos da diagonal em m´odulo deve ser maior que a soma dos demais valores da matriz que estejam na mesma linha (tamb´em em m´odulo).

Algoritmo e Complexidade

A complexidade do m´etodo Gauss-Seidel seria essencialmente o mesmo que a do Jacobi, ou seja,O N2se n˜ao

(26)

1.4. C ´ODIGOS-FONTE

1.4

odigos-fonte

C´odigo-fonte 1.1: M´etodo de Gauss program SolucaoGauss

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Programa SolucaoGauss

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! P r o p o s i t o : Mostra a a p l i c a c a o do metodo de Gauss ! para s o l u c a o de um s i s t e m a de e q u a c o e s l i n e a r e s . !−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Autor : L u i s Fernando de O l i v e i r a Data : 03/10/2006 ! R e v i s a o :

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

i m p l i c i t none

integer : : p , q ! c o n t a d o r e s

integer : : n ! numero de e q u a c o e s ! m a t r i z de c o e f i c i e n t e s

real,a l l o c a t a b l e ,dimension( : , : ) : : a

! v e t o r de termos i n d e p e n d e n t e s

real,a l l o c a t a b l e ,dimension( : ) : : b

! v e t o r das r a i z e s

real,a l l o c a t a b l e ,dimension( : ) : : x

! a b r i r o a r q u i v o com os dados do s i s t e m a l i n e a r

open(unit=10 ,f i l e=” s i s t e m a . t x t ” ,action=” r e a d ” ,status=” o l d ” )

! l e r numero de e q u a c o e s e i n c o g n i t a s

read(unit=10 ,fmt=∗) n

print ∗, ”Numero de e q u a c o e s : ” , n a l l o c a t e( a ( n , n ) , b ( n ) , x ( n ) )

! l e r e l e m e n t o s do s i s t e m a l i n e a r

! os dados e s t a o o r g a n i z a d o s no a r q u i v o ! como s e q u e n c i a das c o l u n a s

read(unit=10 ,fmt=∗) a read(unit=10 ,fmt=∗) b c l o s e(unit=10)

! s a i d a com as e q u a c o e s do s i s t e m a l i n e a r ! ORIGINAL

print ∗

print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” print ∗, ” Equacoes do s i s t e m a l i n e a r o r i g i n a l ” print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” do p=1,n

do q=1,n−1

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a ) ” ,advance=”no” ) a ( p , q ) , ”x ( ” , q , ” ) + ”

end do

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a , f 6 . 2 ) ” ) a ( p , q ) , ”x ( ” , q , ” ) = ” , b ( p )

end do

c a l l Gauss ( n , a , b )

! s a i d a com as e q u a c o e s do s i s t e m a l i n e a r ! ESCALONADA

(27)

1.4. C ´ODIGOS-FONTE

print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” print ∗, ” Equacoes do s i s t e m a l i n e a r e s c a l o n a d o ” print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” do p=1,n

do q=1,n−1

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a ) ” ,advance=”no” ) a ( p , q ) , ”x ( ” , q , ” ) + ”

end do

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a , f 6 . 2 ) ” ) a ( p , q ) , ”x ( ” , q , ” ) = ” , b ( p )

end do

! e x e c u t a a s u b r o t i n a de s u b s t i t u i c a o r e g r e s s i v a ! e r e s o l v e o s i s t e m a l i n e a r

c a l l S u b s t R e g r e s s i v a ( n , a , b , x )

! s a i d a com os r e s u l t a d o s e n c o n t r a d o s

print ∗

print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−” print ∗, ” S o l u c a o do s i s t e m a l i n e a r ” print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−” do p=1,n

print ∗, ”x ( ” , p , ” ) = ” , x ( p ) end do

d e a l l o c a t e( a , b , x )

!−−−−−−−

contains

!−−−−−−−

subroutine S u b s t R e g r e s s i v a ( d , a , b , x )

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! S u b r o t i n a S u b s t R e g r e s s i v a ( n , a , b , x )

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! P r o p o s i t o : R e s o l v e r o p r o c e d i m e n t o de s u b s t i t u i c a o ! r e g r e s s i v a s o b r e uma m a t r i z e s c a l o n a d a s u p e r i o r ! Entrada :

! d : numerico , numero de e q u a c o e s e i n c o g n i t a s ! a : numerico , m a t r i z de c o e f i c i e n t e s

! b : numerico , v e t o r de termos i n d e p e n d e n t e s ! S a id a :

! x : numerico , v e t o r s o l u c a o

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Autor : L u i s Fernando de O l i v e i r a Data : 03/10/2006 ! R e v i s a o :

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

integer,intent(in) : : d

real,dimension( : , : ) ,intent(in) : : a real,dimension( : ) ,intent(in) : : b real,dimension( : ) ,intent(out) : : x

! v a r i a v e i s l o c a i s

integer : : i , j ! c o n t a d o r e s

r e a l : : soma ! a u x i l i a r de s o m a t o r i o

do i =0,d−1

! s o m a t o r i o

(28)

1.4. C ´ODIGOS-FONTE

soma = soma+a ( d−i , d−j )∗x ( d−j ) end do

! equacao i t e r a t i v a para c a l c u l a r as s o l u c o e s

x ( d−i ) = ( b ( d−i )−soma ) / a ( d−i , d−i ) end do

end subroutine S u b s t R e g r e s s i v a subroutine Gauss ( d , a , b )

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! S u b r o t i n a Gauss ( d , a , b )

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! P r o p o s i t o : Transformar a m a t r i z do s i s t e m a em uma ! m a t r i z e s c a l o n a d a .

! Entrada :

! d : numerico , numero de e q u a c o e s e i n c o g n i t a s ! Entrada e Sa i da :

! a : numerico , m a t r i z de c o e f i c i e n t e s

! b : numerico , v e t o r de termos i n d e p e n d e n t e s

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Autor : L u i s Fernando de O l i v e i r a Data : 03/10/2006 ! R e v i s a o :

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

integer,intent(in) : : d

real,dimension( : , : ) ,intent(inout) : : a real,dimension( : ) ,intent(inout) : : b integer : : i , j , k ! c o n t a d o r e s

r e a l : : p i v o t ! e l e m e n t o ch ave

r e a l : : m ! m u l t i p l i c a d o r da l i n h a

do j =1,d

! f i x a r o p i v o t

p i v o t = a ( j , j ) do i=j +1,d

! c a l c u l a r o m u l t i p l i c a d o r da l i n h a

m = −a ( i , j ) / p i v o t

! s u b s t i t u i r a l i n h a por e l a v e z e s o ! m u l t i p l i c a d o r mais a l i n h a do p i v o t

a ( i , : ) = a ( i , : ) + m∗a ( j , : )

! p r o c e s s a r o termo i n d e p e n d e n t e da ! mesma forma

b ( i ) = b ( i ) + m∗b ( j ) end do

end do

(29)

1.4. C ´ODIGOS-FONTE

C´odigo-fonte 1.2: M´etodo de Jordan program S o l u c a o J o r d a n

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Programa S o l u c a o Jo r d a n

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! P r o p o s i t o : Mostra a a p l i c a c a o do metodo de Jordan ! para s o l u c a o de um s i s t e m a de e q u a c o e s l i n e a r e s . !−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Autor : L u i s Fernando de O l i v e i r a Data : 03/10/2006 ! R e v i s a o :

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

i m p l i c i t none

integer : : p , q ! c o n t a d o r e s

integer : : n ! numero de e q u a c o e s ! m a t r i z de c o e f i c i e n t e s

real,a l l o c a t a b l e ,dimension( : , : ) : : a

! v e t o r de termos i n d e p e n d e n t e s

real,a l l o c a t a b l e ,dimension( : ) : : b

! v e t o r das r a´ız e s

real,a l l o c a t a b l e ,dimension( : ) : : x

! a b r i r o a r q u i v o com os dados do s i s t e m a l i n e a r

open(unit=10 ,f i l e=” s i s t e m a . t x t ” ,action=” r e a d ” ,status=” o l d ” )

! l e r numero de e q u a c o e s e i n c o g n i t a s

read(unit=10 ,fmt=∗) n

print ∗, ”Numero de e q u a c o e s : ” , n a l l o c a t e( a ( n , n ) , b ( n ) , x ( n ) )

! l e r e l e m e n t o s do s i s t e m a l i n e a r

! os dados e s t a o o r g a n i z a d o s no a r q u i v o ! como s e q u e n c i a das c o l u n a s

read(unit=10 ,fmt=∗) a read(unit=10 ,fmt=∗) b c l o s e(unit=10)

! s a i d a com as e q u a c o e s do s i s t e m a l i n e a r ! ORIGINAL

print ∗

print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” print ∗, ” Equacoes do s i s t e m a l i n e a r o r i g i n a l ” print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” do p=1,n

do q=1,n−1

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a ) ” ,advance=”no” ) a ( p , q ) , ”x ( ” , q , ” ) + ”

end do

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a , f 6 . 2 ) ” ) a ( p , q ) , ”x ( ” , q , ” ) = ” , b ( p )

end do

c a l l Jordan ( n , a , b , x )

! s a i d a com as e q u a c o e s do s i s t e m a l i n e a r ! IDENTIDADE

print ∗

(30)

1.4. C ´ODIGOS-FONTE

do p=1,n

do q=1,n−1

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a ) ” ,advance=”no” ) a ( p , q ) , ”x ( ” , q , ” ) + ”

end do

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a , f 6 . 2 ) ” ) a ( p , q ) , ”x ( ” , q , ” ) = ” , b ( p )

end do

! s a i d a com os r e s u l t a d o s e n c o n t r a d o s

print ∗

print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−” print ∗, ” S o l u c a o do s i s t e m a l i n e a r ” print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−” do p=1,n

print ∗, ”x ( ” , p , ” ) = ” , x ( p ) end do

d e a l l o c a t e( a , b , x )

!−−−−−−−

contains

!−−−−−−−

subroutine Jordan ( d , a , b , x )

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! S u b r o t i n a Jordan ( d , a , b , x )

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! P r o p o s i t o : Transformar a m a t r i z do s i s t e m a em uma ! m a t r i z e s c a l o n a d a .

! Entrada :

! d : numerico , numero de e q u a c o e s e i n c o g n i t a s ! Entrada e Sa i da :

! a : numerico , m a t r i z de c o e f i c i e n t e s

! b : numerico , v e t o r de termos i n d e p e n d e n t e s ! x : numerico , v e t o r s o l u c a o

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Autor : L u i s Fernando de O l i v e i r a Data : 03/10/2006 ! R e v i s a o :

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

integer,intent(in) : : d

real,dimension( : , : ) ,intent(inout) : : a real,dimension( : ) ,intent(inout) : : b real,dimension( : ) ,intent(inout) : : x

! v a r i a v e i s l o c a i s

integer : : i , j ! c o n t a d o r e s

r e a l : : p i v o t ! e l e m e n t o ch ave

r e a l : : m ! m u l t i p l i c a d o r da l i n h a

do j =1,d

! f i x a r o p i v o t

p i v o t = a ( j , j )

! n o r m a l i z a r a l i n h a do p i v o t

a ( j , : ) = a ( j , : ) / p i v o t b ( j ) = b ( j ) / p i v o t

! z e r a r os e l e m e n t o f o r a da d i a g o n a l

do i =1,d

i f ( i /= j ) then

(31)

1.4. C ´ODIGOS-FONTE

m = −a ( i , j )

! s u b s t i t u i r a l i n h a por e l a mais ! a l i n h a do p i v o t v e z e s o

! m u l t i p l i c a d o r

a ( i , : ) = a ( i , : ) + m∗a ( j , : )

! p r o c e s s a r o termo i n d e p e n d e n t e da ! mesma forma

b ( i ) = b ( i ) + m∗b ( j ) end i f

end do end do

! c o p i a a s o l u c a o do s i s t e m a l i n e a r para o ! v e t o r s o l u c a o

x = b

(32)

1.4. C ´ODIGOS-FONTE

C´odigo-fonte 1.3: M´etodo da Matriz Inversa program S o l u c a o M a t r i z I n v e r s a

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Programa S o l u c a o M a t r i z I n v e r s a

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! P r o p o s i t o : Mostra a a p l i c a c a o do metodo da i n v e r s a o ! de m a t r i z e s para s o l u c a o de um s i s t e m a de e q u a c o e s ! l i n e a r e s .

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Autor : L u i s Fernando de O l i v e i r a Data : 03/10/2006 ! R e v i s a o :

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

i m p l i c i t none

integer : : p , q ! c o n t a d o r e s

integer : : n ! numero de e q u a c o e s ! m a t r i z de c o e f i c i e n t e s

real,a l l o c a t a b l e ,dimension( : , : ) : : a

! v e t o r de termos i n d e p e n d e n t e s

real,a l l o c a t a b l e ,dimension( : ) : : b

! v e t o r das r a´ız e s

real,a l l o c a t a b l e ,dimension( : ) : : x

! a b r i r a r q u i v o com os dados do s i s t e m a l i n e a r

open(unit=10 ,f i l e=” s i s t e m a . t x t ” ,action=” r e a d ” ,status=” o l d ” )

! l e r numero de e q u a c o e s e i n c o g n i t a s

read(unit=10 ,fmt=∗) n

print ∗, ”Numero de e q u a c o e s : ” , n a l l o c a t e( a ( n , n ) , b ( n ) , x ( n ) )

! l e r e l e m e n t o s do s i s t e m a l i n e a r

! os dados e s t a o o r g a n i z a d o s no a r q u i v o ! como s e q u e n c i a das c o l u n a s

read(unit=10 ,fmt=∗) a read(unit=10 ,fmt=∗) b c l o s e(unit=10)

! s a i d a com as e q u a c o e s do s i s t e m a l i n e a r ! ORIGINAL

print ∗

print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” print ∗, ” Equacoes do s i s t e m a l i n e a r o r i g i n a l ” print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” do p=1,n

do q=1,n−1

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a ) ” ,advance=”no” ) a ( p , q ) , ”x ( ” , q , ” ) + ”

end do

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a , f 6 . 2 ) ” ) a ( p , q ) , ”x ( ” , q , ” ) = ” , b ( p )

end do

c a l l I n v e r s a o ( n , a , b , x )

! s a i d a da m a t r i z i n v e r s a

print ∗

(33)

1.4. C ´ODIGOS-FONTE

do p=1,n

do q=1,n−1

write(unit=∗,fmt=” ( f 6 . 2 ) ” ,advance=”no” ) a ( p , q ) end do

write(unit=∗,fmt=” ( f 6 . 2 ) ” ) a ( p , q ) end do

! s a i d a com os r e s u l t a d o s e n c o n t r a d o s

print ∗

print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−” print ∗, ” S o l u c a o do s i s t e m a l i n e a r ” print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−” do p=1,n

print ∗, ”x ( ” , p , ” ) = ” , x ( p ) end do

d e a l l o c a t e( a , b , x )

!−−−−−−−

contains

!−−−−−−−

subroutine I n v e r s a o ( d , a , b , x )

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! S u b r o t i n a I n v e r s a o ( d , a , b , x )

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! P r o p o s i t o : I n v e r t e r a m a t r i z do s i s t e m a e armazenar ! na m a t r i z i n v

! Entrada :

! d : numerico , numero de e q u a c o e s e i n c o g n i t a s ! b : numerico , v e t o r de termos i n d e p e n d e n t e s ! Entrada e Sa i da :

! a : numerico , m a t r i z de c o e f i c i e n t e s ! x : numerico , v e t o r s o l u c a o

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Autor : L u i s Fernando de O l i v e i r a Data : 03/10/2006 ! R e v i s a o :

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

integer,intent(in) : : d

real,dimension( : , : ) ,intent(inout) : : a real,dimension( : ) ,intent(in ) : : b real,dimension( : ) ,intent(inout) : : x

! v a r i a v e i s l o c a i s

integer : : i , j ! c o n t a d o r e s

r e a l : : p i v o t ! e l e m e n t o ch ave

r e a l : : m ! m u l t i p l i c a d o r da l i n h a ! m a t r i z i n v e r s a

real,a l l o c a t a b l e ,dimension( : , : ) : : i n v

! a l o c a r e s p a c o para a m a t r i z

a l l o c a t e( i n v ( n , n ) )

! e l e m e n t o s da m a t r i z i d e n t i d a d e

i n v = 0 do i =1,d

i n v ( i , i ) = 1 end do

! para cada c o l u n a da m a t r i z , f a z e r

(34)

1.4. C ´ODIGOS-FONTE

! f i x a r o p i v o t

p i v o t = a ( j , j )

! n o r m a l i z a r a l i n h a do p i v o t

a ( j , : ) = a ( j , : ) / p i v o t i n v ( j , : ) = i n v ( j , : ) / p i v o t

! z e r a r os e l e m e n t o f o r a da d i a g o n a l

do i =1,d

i f ( i /= j ) then

! c a l c u l a r o m u l t i p l i c a d o r da l i n h a

m = −a ( i , j )

! s u b s t i t u i r a l i n h a por e l a mais ! a l i n h a do p i v o t v e z e s o

! m u l t i p l i c a d o r

a ( i , : ) = a ( i , : ) + m∗a ( j , : )

i n v ( i , : ) = i n v ( i , : ) + m∗i n v ( j , : ) end i f

end do end do

! c o p i a os dados da m a t r i z i n v e r s a em ’ a ’

a = i n v

! m u l t i p l i c a a m a t r i z i n v e r s a p e l o v e t o r de ! termos i n d e p e n d e n t e s para g e r a r a s o l u c a o

(35)

1.4. C ´ODIGOS-FONTE

C´odigo-fonte 1.4: M´etodo de Cramer program SolucaoCramer

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Programa SolucaoCramer

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! P r o p o s i t o : Mostra a a p l i c a c a o do metodo de Cramer ! para s o l u c a o de um s i s t e m a de e q u a c o e s l i n e a r e s . !−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Autor : L u i s Fernando de O l i v e i r a Data : 03/10/2006 ! R e v i s a o :

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

i m p l i c i t none

integer : : p , q ! c o n t a d o r e s

integer : : n ! numero de e q u a c o e s ! m a t r i z de c o e f i c i e n t e s

real,a l l o c a t a b l e ,dimension( : , : ) : : a

! v e t o r de termos i n d e p e n d e n t e s

real,a l l o c a t a b l e ,dimension( : ) : : b

! v e t o r das r a´ız e s

real,a l l o c a t a b l e ,dimension( : ) : : x

! a b r i r a r q u i v o com os dados do s i s t e m a l i n e a r

open(unit=10 ,f i l e=” s i s t e m a . t x t ” ,action=” r e a d ” ,status=” o l d ” )

! l e r numero de e q u a c o e s e i n c o g n i t a s

read(unit=10 ,fmt=∗) n

print ∗, ”Numero de e q u a c o e s : ” , n a l l o c a t e( a ( n , n ) , b ( n ) , x ( n ) )

! l e r e l e m e n t o s do s i s t e m a l i n e a r

! os dados e s t a o o r g a n i z a d o s no a r q u i v o ! como s e q u e n c i a das c o l u n a s

read(unit=10 ,fmt=∗) a read(unit=10 ,fmt=∗) b c l o s e(unit=10)

! s a i d a com as e q u a c o e s do s i s t e m a l i n e a r ! ORIGINAL

print ∗

print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” print ∗, ” Equacoes do s i s t e m a l i n e a r o r i g i n a l ” print ∗, ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” do p=1,n

do q=1,n−1

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a ) ” ,advance=”no” ) a ( p , q ) , ”x ( ” , q , ” ) + ”

end do

write(unit=∗,fmt=” ( f 6 . 2 , a , i 2 , a , f 6 . 2 ) ” ) a ( p , q ) , ”x ( ” , q , ” ) = ” , b ( p )

end do

c a l l Cramer ( n , a , b , x )

! s a i d a com os r e s u l t a d o s e n c o n t r a d o s

print ∗

(36)

1.4. C ´ODIGOS-FONTE

do p=1,n

print ∗, ”x ( ” , p , ” ) = ” , x ( p ) end do

d e a l l o c a t e( a , b , x )

!−−−−−−−

contains

!−−−−−−−

function Determinante ( d , a ) r e s u l t ( d e t )

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Funcao Determinante ( d , a )

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! P r o p o s i t o : C a l c u l a r o d e t e r m i n a n t e de uma m a t r i z ! quadrada usando e l i m i n a c a o de Gauss .

! Entrada :

! d : numerico , dimensao da m a t r i z ! a : numerico , m a t r i z quadrada ! S a id a :

! d e t : numerico , d e t e r m i n a n t e

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

! Autor : L u i s Fernando de O l i v e i r a Data : 03/10/2006 ! R e v i s a o :

!−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

integer,intent(in) : : d

real,dimension( : , : ) ,intent(in) : : a r e a l : : d e t

! v a r i a v e i s l o c a i s

integer : : i , j , k ! c o n t a d o r e s

r e a l : : p i v o t ! e l e m e n t o ch ave

r e a l : : m ! m u l t i p l i c a d o r da l i n h a ! m a t r i z a u x i l i a r

real,dimension( : , : ) ,a l l o c a t a b l e : : b

! a l o c a r e s p a c o para a m a t r i z

a l l o c a t e( b ( d , d ) ) b = a

do j =1,d

! f i x a r o p i v o t

p i v o t = b ( j , j ) do i=j +1,d

! c a l c u l a r o m u l t i p l i c a d o r da l i n h a

m = −b ( i , j ) / p i v o t

! s u b s t i t u i r a l i n h a por e l a v e z e s o ! m u l t i p l i c a d o r mais a l i n h a do p i v o t

b ( i , : ) = b ( i , : ) + m∗b ( j , : ) end do

end do

! c a l c u l a n d o o d e t e r m i n a n t e da m a t r i z

d e t = 1 do i =1,d

d e t = d e t∗b ( i , i ) end do

Referências

Documentos relacionados

Address GPS Coordinates Zona Industrial Pintéus Manjoeira..

3) FIGUEIREDO, D. An´ alise matem´ atica para licenciatura. M´ etodos de solu¸c˜ oes expl´ıcitas. Equa¸c˜ oes difer- enciais lineares de ordem superior. O m´ etodo da varia¸c˜

Paranoicos comportam-se como se o ar estivesse repleto de mensagens codificadas ridicularizando- -os ou conspirando sua destruição. Por décadas o Estado da África do Sul viveu em

The means of chronological age, general motor age and motor quotient of the areas evaluated by the MDS were compared between groups using the Mann-Whitney test, while the

Administração de a vos de longo prazo e inves mento de Vídeo Aulas, Leitura, Resolução de Youtube, Drive, Google Sala de Google 5 horas.. Custo de capital, estrutura

Um sistema de equa¸c˜oes lineares ´e equiva- lente a qualquer dos sistemas que resultam de realizar nele alguma das seguintes opera¸c˜oes elementares:.. • Mudar a ordem

Convencional Marcha Picada.. Classificação

Com isso, alguns objetivo foram tra¸ cados tais como: o estudo te´ orico e a implementa¸ c˜ ao num´ erica de m´ etodos aplicados ` a resolu¸ c˜ ao de Sistemas de Equa¸ c˜ oes n˜