Gauss em pascalzim

Disponível somente no TrabalhosFeitos
  • Páginas : 6 (1499 palavras )
  • Download(s) : 0
  • Publicado : 10 de abril de 2012
Ler documento completo
Amostra do texto
Universidade Federal Fluminense

Introdução aos Métodos Numéricos




Trabalho sobre

Método de Gauss – Seidel





Araken Jesse da Silva
Arturo Gómez

Turma 3as e 5as. 16 hs.

Niterói, 17/6/2008

Método de Gauss-Seidel

O método de Gauss Seidel é método iterativo para resolução de equações lineares AX=b. Neste caso, temos:


a11 x1 + a12 x2 + ... + a1nxn = b1
a21 x1 + a22 x2 + ... + a2n xn = b2
:
:
an1 x1 + an2 x2 + ... + ann xn = bn




Supondo aii ≠0 i = 1, … , n

Daí, podemos escrever:


a11 x1 = b1 – ( a12 x2 + a13 x3 + … + a1n xn )
a22 x2 = b2 – ( a21 x1 + a23 x3 + ... + a2n xn )
:
:
ann xn = bn – ( an1 x1 + an2 x2 + ... + an n-1 xn-1 )Então:


x1 = [b1 – ( a12 x2 + a12 x3 + … + a1n xn)]/a11
x2 = [b2 – ( a21 x1 + a23 x3 + ... + a2n xn)]/a22
:
:
xn = [bn – ( an1 x1 + an2 x2 + ... + an n-1 xn-1)]/ann


O sistema fica sob a forma


x = cx + g




0 -a12/a11 -a13/a11 ... –a1n/a11
-a21/a22 0 -a23/a22 ... –a2n/a22
c = ::
: :
-an1/ann -an2/ann -an3/ann ... 0









b1/a11
b2/a22
g = :
:
bn/ann


A partir de uma aproximação inicial X(0) calcularemos as seguintes aproximações: X(1), X(2), ... , X(k) . Quando essas aproximações convergem, nos dão a solução do sistema.
A diferença do método de Gauss-jacobi, quecalcula todas as componentes da k-ésima iteração em função das (k-1)–ésimas é que Gauss- Seidel usa como aproximação as componentes já calculadas da k-ésima iteração.
Então o sistema fica como:


x1(k) = 1/a11 ( b1 – a12 x2(k-1) – a13 x3(k-1) - ... - a1n xn(k-1))


x2(k) = 1/a22 ( b2 – a21 x1(k) – a23 x3(k-1) - ... – a2n xn(k-1))
:
:
xn(k) = 1/ann ( bn – an1x1(k) – an2 x2(k) - ... –an n-1 xn-1(k) )


Portanto, no processo iterativo de Gauss-Seidel, no momento de se calcular xj(k), usamos todos os valores de x1(k), ... , xj-1(k) que já foram calculados e os valores xj+1(k-1),..., xn(k-1) restantes.


Vamos implementar um algoritmo para o seguinte exemplo concreto:

GS( A, b, x0 ) := c ← 0
x ← x0
for i [pic] 0 ...rows(A) - 1


xi ← 1/Ai,i [ bi - [pic]]
while [(│A.x – b│ ≥ 0,0001 [pic] ( max(│x0 – x│) ≥ 0,0001] [pic] ( c ≤ 30)
c ← c + 1
x1← x
for i [pic] 0 ... rows(A) – 1
xi ← 1/Ai,i [ bi - [pic]]
x0 ← x1
x


Se anexa um programa em Pascal que permete aplicar Gauss Seidel à resolução de um sistema qualquer.


Análise daconvergência

Como todo processo iterativo, precisamos de critérios que nos forneçam garantia de convergência. Para este método, temos dois critérios que estabelecem condições suficientes de convergência: o critério de Sassenfield e o critério das linhas.

Critério de Sassenfeld


Vamos definir as quantidades βi dadas por:


β1 = 1/|a11| . [pic]


βi = 1/|aii|. [ [pic] + [pic]] ; i = 2, 3, ... , n
onde n é a ordem do sistema linear que queremos resolver e aij são os coeficientes das equações que compõem esse sistema.
O critério de Sassenfeld garante que o método de Gauss-Seidel convergirá para um sistema linear se a quantidade m, definida por:
M=max βi ; 1≤ i ≤ n for menor que 1


Podemos aplicar estealgoritmo para verificar a convergência:


Sassenfeld(A) := β0 ← [[pic]] / A0,0
for i [pic] 1, ... , rows(A) – 2

βi ← [[pic]]/Ai,i + [[pic]]/Ai,i

βrows(A)-1 ← [[pic]]/(Arows(A)-1 , rows(A)-1)
max(β)


Critério das Linhas


Segundo este critério, Um dado sistema irá convergir pelo método de Gauss-Seidel, se:


[pic] < |aii| ; i = 1, 2, ... , n...
tracking img