• 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

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

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

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

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˜

Address GPS Coordinates Zona Industrial Pintéus Manjoeira..

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˜