Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Introdução aos Métodos Numéricos
Instituto de Computação UFFDepartamento de Ciência da Computação
Otton Teixeira da Silveira Filho
Conteúdo específico
● Sistemas de Equações Lineares. Métodos Iterativos
Conteúdo temático
● Método de Gauss-Seidel
Gauss-Seidel
Método de Gauss-Seidel
Partiremos novamente do sistema original usando a decomposição aditiva que apresentamos, ou seja,
e reescrevendo como
A x⃗=b⃗⇒ ( D+M+N ) x⃗=b⃗
( D+N ) x⃗=−M x⃗+b⃗
Gauss-Seidel
Suporemos que a matriz associada ao sistema está arrumada de tal forma que a matriz D + N tenha inversa. Então podemos escrever
A matriz é denominada Matriz de Gauss-Seidel
x⃗=−( D+N )−1 M x⃗+( D+N )
−1 b⃗
−( D+N )−1 M
Gauss-Seidel
Podemos escrever este método como
mas não o faremos pois há uma maneira mais interessante de escrevê-lo.
x⃗ i+1=−( D+N )−1 M x⃗ i+ ( D+N )
−1 b⃗
Gauss-Seidel
Podemos escrever este método como
mas não o faremos pois há uma maneira mais interessante de escrevê-lo.
Retornemos uma pouco...
x⃗ i+1=−( D+N )−1 M x⃗ i+ ( D+N )
−1 b⃗
Gauss-Seidel
Partiremos novamente do sistema original usando a decomposição aditiva que apresentamos, ou seja,
e reescrevendo:
A x⃗=b⃗⇒ ( D+M+N ) x⃗=b⃗
( D+N ) x⃗=−M x⃗+b⃗
Gauss-Seidel
Aplicaremos a fórmula iterativa diretamente aqui, ou seja,
e daí ( D+N ) x⃗i+1=−M x⃗ i+b⃗
D x⃗ i+1=−N x⃗ i+1−M x⃗i+ b⃗
Gauss-Seidel
Supondo novamente existir uma ordenação do sistema tal que D tenha inversa, teremos
que descreve a iteração que define o Gauss-Seidel
x⃗ i+1=−D−1 N x⃗ i+1−D−1 M x⃗i+D−1 b⃗
Gauss-Seidel
Gauss-Seidel
dado . x⃗0
x⃗ i+1=−D−1 N x⃗ i+1−D−1 M x⃗i+D−1 b⃗
Métodos iterativos
Compare as fórmulas de
Gauss-Jacobi
Gauss-Seidel
Observe que a matriz e o vetor operadores são “os mesmos“ mas usados de forma diferente
x⃗ i+1=−D−1 N x⃗ i+1−D−1 M x⃗i+D−1 b⃗
x⃗ i+1=−D−1 ( M+N ) x⃗ i+D−1 b⃗
Métodos iterativos
Assim, podemos usar o mesmo algoritmo de construção de montagem mas dividindo a matriz resultante em sua parte triangular estritamente superior e estritamente inferior
Gauss-Seidel
Vamos ao pseudocódigo de Gauss-Seidel
Gauss-Seidel
“Arrumação“ da matriz
para i←1até ndiag←aii
para j ←1até naij←−aij /diag
bi←bi /diagaii←0
Gauss-Seidel
Laço de repetição do Método de Gauss-Seidel
para k←1até niteracoespara i ←1até n
s←0para j ←1até n
s← s+aij x j
x i←s+bi
Gauss-Seidel
Laço de repetição do Método de Gauss-Seidel
Observe que não temos a necessidade de um vetor auxiliar
para k←1até niteracoespara i ←1até n
s←0para j ←1até n
s← s+aij x j
x i←s+bi
Gauss-Seidel
No cálculo manual usaremos um esquema mais “humano“
É apenas um esquema, nem o melhor, nem o pior
Gauss-Seidel – Um Exemplo
Partiremos para a construção do método
(8 1 0 −11 9 1 0
−1 2 10 00 1 1 12
) x⃗=(13/2−8−35
)
Gauss-Seidel – Um Exemplo
Dividamos todo o sistema pelos valores da diagonal
(8/8 1 /8 0 /8 −1 /81/9 9 /9 1/9 0/9
−1 /10 2/10 10 /10 0 /100 /12 1/12 1/12 12/12
) ; ((13 /2)/8−8 /9−3 /10
5 /12)
Gauss-Seidel – Um Exemplo
Zere a diagonal da matriz
(0 1 /8 0 −1/8
1/9 0 1/9 0−1 /10 1 /5 0 0
0 1 /12 1 /12 0) ; (
13 /16−8 /9−3 /10
5/12)
Gauss-Seidel – Um Exemplo
Troque o sinal dos valores da matriz
(0 −1/8 0 1/8
−1 /9 0 −1/9 01/10 −1 /5 0 00 −1 /12 −1 /12 0
) ; (13 /16−8 /9−3 /10
5 /12)
Gauss-Seidel – Um Exemplo
Método de Gauss-Seidel
x⃗i+1=(0 0 0 0
−1 /9 0 0 01/10 −1 /5 0 0
0 −1/12 −1/12 0) x⃗i+1+(
0 −1/8 0 1/80 0 −1/9 00 0 0 00 0 0 0
) x⃗i+(13 /16−8/9−3 /10
5 /12)
x⃗ i+1=−D−1 N x⃗ i+1−D−1 M x⃗i+D−1 b⃗
Gauss-Seidel – Um Exemplo
Usaremos o mesmo vetor que usamos no exemplo de Gauss-Jacobi, mesmo sabendo que é bem ruim como inicialização
x⃗0= (14
−35
)
Gauss-Seidel – Um Exemplo
Usaremos o mesmo vetor que usamos no exemplo de Gauss-Jacobi, mesmo sabendo que é bem ruim como inicialização
Para facilitar a compreenção, trabalharemos a passos de tartaruga calculando uma componente por vez
x⃗0= (14
−35
)
ATENÇÃO!
Como é uma “versão em passos de tartaruga“ não é a que se usará em exercícios ou na prova nem é usado num cálculo real
É apenas usada para compreender alguns passos do algoritmo
Gauss-Seidel – Um Exemplo
Ao multiplicarmos a primeira linha da primeira matriz multiplicarmos a primeira matriz pelo vetor teremos um valor nulo e a segunda matriz por se faz diretamente
x⃗1=(0 0 0 0
−1 /9 0 0 01/10 −1 /5 0 0
0 −1/12 −1/12 0) x⃗1+(
0 −1/8 0 1/80 0 −1/9 00 0 0 00 0 0 0
) x⃗0+(13 /16−8 /9−3 /10
5/12)
x⃗1
x⃗0
x⃗0=(14
−35
)
Gauss-Seidel – Um Exemplo
Ao multiplicarmos a primeira linha da primeira matriz multiplicarmos a primeira matriz pelo vetor teremos um valor nulo e a segunda matriz por se faz diretamente
Deixando um pouco mais claro...
x⃗1=(0 0 0 0
−1 /9 0 0 01/10 −1 /5 0 0
0 −1/12 −1/12 0) x⃗1+(
0 −1/8 0 1/80 0 −1/9 00 0 0 00 0 0 0
) x⃗0+(13 /16−8 /9−3 /10
5/12)
x⃗1
x⃗0
x⃗0=(14
−35
)
Gauss-Seidel – Um Exemplo
x⃗1=(0 0 0 0
−1 /9 0 0 01/10 −1 /5 0 0
0 −1/12 −1/12 0) x⃗1+(
0 −1/8 0 1/80 0 −1/9 00 0 0 00 0 0 0
) x⃗0+(13 /16−8/9−3 /105/12
)x⃗1=(
[0]+[−1/8×4+0×(−3)+1 /8×5]+13/16...
)=(15 /16
.
.
.)=(
0,9375...
)
x⃗0=(14
−35
)
Gauss-Seidel – Um Exemplo
O primeiro par de colchetes indica o valor resultante do cálculo da primeira linha da primeira matriz pelo vetor x⃗1
Gauss-Seidel – Um Exemplo
O primeiro par de colchetes indica o valor resultante do cálculo da primeira linha da primeira matriz pelo vetor
Claro que este cálculo sempre dará zero em todas as iterações
x⃗1
Gauss-Seidel – Um Exemplo
O primeiro par de colchetes indica o valor resultante do cálculo da primeira linha da primeira matriz pelo vetor
Claro que este cálculo sempre dará zero em todas as iterações
O segundo colchete indica os cálculos para a segunda matriz
x⃗1
Gauss-Seidel – Um Exemplo
O resultado deste cálculo nos dá a primeira componente de que marcaremos em negrito
Então podemos escrever
x⃗1
Gauss-Seidel – Um Exemplo
x⃗1=(0 0 0 0
−1 /9 0 0 01/10 −1 /5 0 0
0 −1/12 −1/12 0) x⃗1+(
0 −1/8 0 1/80 0 −1/9 00 0 0 00 0 0 0
) x⃗0+(13 /16−8/9−3 /105/12
)x⃗1=(
[0]+[−1 /8×4+0×(−3)+1/8×5]+13 /16[−1/9×15 /16 ]+[−1/9×(−3)+0×5]−8 /9
.
.)=(
15 /16−95 /144
.
.)=(
0,9375−0,659722
.
.)
x⃗0=(14
−35
)
Métodos iterativos
Temos agora a primeira e a segunda componentes de
Da mesma forma que escreveremos antes
x⃗1
Gauss-Seidel – Um Exemplo
x⃗1=(0 0 0 0
−1 /9 0 0 01/10 −1 /5 0 0
0 −1/12 −1/12 0) x⃗1+(
0 −1/8 0 1/80 0 −1/9 00 0 0 00 0 0 0
) x⃗0+(13 /16−8/9−3 /105/12
)x⃗1=(
[0]+[−1/8×4+0×(−3)+1/8×5 ]+13 /16[−1 /9×15 /16 ]+[−1/9×(−3)+0×5 ]−8 /9
[1 /10×15 /16−1/5×(−95 /144)]+[0×5 ]−3 /10.
)=(15 /16
−95 /144−107 /1440
.)=(
0,9375−0,6597 22−0,07430 55
.)
x⃗0=(14
−35
)
Gauss-Seidel – Um Exemplo
x⃗1=(0 0 0 0
−1 /9 0 0 01/10 −1 /5 0 0
0 −1/12 −1/12 0) x⃗1+(
0 −1/8 0 1/80 0 −1/9 00 0 0 00 0 0 0
) x⃗0+(13 /16−8/9−3 /105/12
)x⃗1=(
[0 ]+[−1 /8×4+0×(−3)+1 /8×5 ]+13 /16[−1 /9×15 /16 ]+[−1 /9×(−3)+0×5 ]−8 /9
[1/10×15 /16−1 /5×(−95 /144)]+[0×5 ]−3 /10[0×15 /16−1 /12×(−95 /144)−1 /12×(−107 /1440)]+[0 ]+5 /12
)=(15 /16
−95 /144−107 /14408257 /17280
)=(0,9375
−0,6597 22−0,0743055
0,477835)
x⃗0=(14
−35
)
Gauss-Seidel – Um Exemplo
Sim, concordo, exagerei nas frações...
Gauss-Seidel – Um Exemplo
Repare que você pode compreender este algoritmo como algo da forma
“se eu tenho (uma componente nova) eu uso“
Gauss-Seidel – Um Exemplo
Façamos o próximo passo
Gauss-Seidel – Um Exemplo
x⃗2=(0 0 0 0
−1 /9 0 0 01 /10 −1 /5 0 0
0 −1/12 −1 /12 0) x⃗2+(
0 −1 /8 0 1 /80 0 −1 /9 00 0 0 00 0 0 0
) x⃗1+ (13 /16−8 /9−3 /105 /12
)x⃗2=(
[0]+[−1/8×(−95 /144)+0×(−0,07430 22)+1 /8×0,477835 ]+13 /16...
)=(0,954694
.
.
.)
x⃗1=(15 /16
−95 /144−0,07430 22
0,477835)
Gauss-Seidel – Um Exemplo
x⃗2=(0 0 0 0
−1 /9 0 0 01 /10 −1 /5 0 0
0 −1/12 −1 /12 0) x⃗2+(
0 −1 /8 0 1 /80 0 −1 /9 00 0 0 00 0 0 0
) x⃗1+ (13 /16−8 /9−3 /105 /12
)x⃗2=(
[0 ]+[−1 /8×(−95 /144)+0×(−0,07430 22)+1 /8×0,477835 ]+13/16[−1 /9×0,954694 ]+[−1/9×(−0,074305)+0×0,477835 ]−8 /9
.
.)=(
0,954694−0,986709
.
.)
x⃗1=(15 /16
−95 /144−0,07430 22
0,477835)
Gauss-Seidel – Um Exemplo
x⃗2=(0 0 0 0
−1 /9 0 0 01 /10 −1 /5 0 0
0 −1/12 −1 /12 0) x⃗2+(
0 −1 /8 0 1 /80 0 −1 /9 00 0 0 00 0 0 0
) x⃗1+ (13 /16−8 /9−3 /105 /12
)x⃗2=(
[0 ]+[−1 /8×(−95 /144)+0×(−0,07430 22)+1 /8×0,477835 ]+13 /16[−1 /9×0,954694 ]+[−1/9×(−0,074305)+0×0,477835 ]−8 /9[1 /10×0,954694−1/5×(−0,986709)+0×0,477835−3 /10 ]
.)=(
0,954694−0,986709−0,007188
.)
x⃗1=(15 /16
−95 /144−0,07430 22
0,477835)
Gauss-Seidel – Um Exemplo
x⃗2=(0 0 0 0
−1 /9 0 0 01 /10 −1 /5 0 0
0 −1/12 −1 /12 0) x⃗2+(
0 −1 /8 0 1 /80 0 −1 /9 00 0 0 00 0 0 0
) x⃗1+ (13 /16−8 /9−3 /105 /12
)x⃗2=(
[0 ]+[−1 /8×(−95 /144)+0×(−0,07430 22)+1 /8×0,477835 ]+13 /16[−1 /9×0,954694 ]+[−1/9×(−0,074305)+0×0,477835 ]−8 /9[1 /10×0,954694−1 /5×(−0,986709)+0×0,477835 ]−3 /10
[0×0,954694−1 /12×(−0,986709)−1 /12×(−0,007188)]+[0 ]+5 /12)=(
0,954694−0,986709−0,0071880,499491
)
x⃗1=(15 /16
−95 /144−0,07430 22
0,477835)
Gauss-Seidel – Um Exemplo
Avaliemos a evolução dos vetores obtidos
x⃗2− x⃗1=(0,954694
−0,986709 22−0,0071880,499491
)−(0,9375
−0,6597 22−0,0743050,477835
)≈(0,017194−0,21520,0671170,021656
)⇒‖x⃗2− x⃗1‖max≈0,2152
‖x⃗1‖max=0,9375⇒
‖x⃗2− x⃗1‖max
‖x⃗1‖max
≈0,2295
Gauss-Seidel – Um Exemplo
Observe que o valor obtido aqui é bem menor que no mesmo passo de aplicação de Gauss-Jacobi
Gauss-Seidel – Um Exemplo
Façamos mais um passo do método de Gauss-Seidel
Gauss-Seidel – Um Exemplo
x⃗3=(0 0 0 0
−1 /9 0 0 01 /10 −1 /5 0 0
0 −1/12 −1 /12 0) x⃗3+(
0 −1 /8 0 1 /80 0 −1 /9 00 0 0 00 0 0 0
) x⃗2+(13 /16−8/9−3 /105 /12
)x⃗3=(
[0 ]+[−1 /8×(−0,954694)+0×(−0,007188)+1/8×0,499491 ]+13 /16...
)=(0,998275
.
.
.)
x⃗2=(0,954694
−0,986709−0,0071880,499491
)
Gauss-Seidel – Um Exemplo
x⃗3=(0 0 0 0
−1 /9 0 0 01 /10 −1 /5 0 0
0 −1/12 −1 /12 0) x⃗3+(
0 −1 /8 0 1 /80 0 −1 /9 00 0 0 00 0 0 0
) x⃗2+(13 /16−8/9−3 /105 /12
)x⃗3=(
[0 ]+[−1 /8×(−0,954694)+0×(−0,007188)+1/8×0,499491 ]+13 /16[−1/9×0,998275 ]+[−1/9×(−0,007188)+0×0,499491]−8 /9
.
.)=(
0,998275−0,999009
.
.)
x⃗2=(0,954694
−0,986709−0,0071880,499491
)
Gauss-Seidel – Um Exemplo
x⃗3=(0 0 0 0
−1 /9 0 0 01 /10 −1 /5 0 0
0 −1/12 −1 /12 0) x⃗3+(
0 −1 /8 0 1 /80 0 −1 /9 00 0 0 00 0 0 0
) x⃗2+(13 /16−8/9−3 /105 /12
)x⃗3=(
[0 ]+[−1 /8×(−0,954694)+0×(−0,007188)+1/8×0,499491 ]+13 /16[−1/9×0,998275 ]+[−1/9×(−0,007188)+0×0,499491]−8 /9[1 /10×0,998275−1/5×(−0,999009)+0×0,499491]−3 /10
.)=(
0,998275−0,999009−0,000370
.)
x⃗2=(0,954694
−0,986709−0,0071880,499491
)
Gauss-Seidel – Um Exemplo
x⃗3=(0 0 0 0
−1 /9 0 0 01 /10 −1 /5 0 0
0 −1/12 −1 /12 0) x⃗3+(
0 −1 /8 0 1 /80 0 −1 /9 00 0 0 00 0 0 0
) x⃗2+(13 /16−8/9−3 /105 /12
)x⃗3=(
[0 ]+[−1 /8×(−0,954694)+0×(−0,007188)+1 /8×0,499491]+13 /16[−1 /9×0,998275 ]+[−1/9×(−0,007188)+0×0,499491]−8 /9[1/10×0,998275−1/5×(−0,999009)+0×0,499491 ]−3 /10
[0×0,998275−1/12×(−0,999009)−1 /12×(−0,000370)]+[0 ]+5 /12)=(
0,998275−0,999009−0,0003700,499948
)
x⃗2=(0,954694
−0,986709−0,0071880,499491
)
Gauss-Seidel – Um Exemplo
Avaliemos a evolução dos vetores
x⃗3− x⃗2=(0,998275
−0,999009−0,0003700,499948
)−(0,954694
−0,986709−0,0071880,499491
)≈ (0,0435
−0,01230,0068
0,000457)⇒‖x⃗3− x⃗2‖max≈0,0435
‖x⃗2‖max=0,986709⇒
‖x⃗3− x⃗2‖max
‖x⃗2‖max
≈0,0440
Gauss-Seidel – Um Exemplo
Novamente observe que o valor obtido aqui é bem menor que no mesmo passo de aplicação de Gauss-Jacobi
Gauss-Seidel – Um Exemplo
Vamos a mais uma iteração sem passo de tartaruga
Gauss-Seidel – Um Exemplo
x⃗ 4=([0 ]+[−1/8×(−0,999009)+0×(−0,000370)+1 /8×0,499948 ]+13 /16
[−1 /9×0,999869 ]+[−1 /9×(−0,000370)+0×0,499948 ]−8 /9[1 /10×0,999869−1 /5×(−0,999944)+0×0,499948 ]−3 /10
[0×0,999869−1 /12×(−0,999944)−1/12×(−0,000024)]+[0]+5 /12)=(
0,999869−0,999944−0,0000240,4999973
)
x⃗3=(0,998275
−0,999009−0,0003700,499948
)x⃗ 4=(
0 0 0 0−1 /9 0 0 01/10 −1 /5 0 0
0 −1 /12 −1 /12 0) x⃗ 4+(
0 −1 /8 0 1 /80 0 −1/9 00 0 0 00 0 0 0
) x⃗3+ (13 /16−8 /9−3 /105 /12
)
Gauss-Seidel – Um Exemplo
Avaliemos a evolução dos vetores
x⃗4− x⃗3=(0,999869
−0,999944−0,0000240,4999973
)−(0,998275
−0,999009−0,0003700,499948
)≈ (0,0015
−0,0004−0,00030,00004
)⇒‖x⃗4− x⃗3‖max≈0,0015
‖x⃗3‖max≈0,999009⇒
‖x⃗ 4− x⃗3‖max
‖x⃗3‖max
≈0,0015
Gauss-Seidel – Um Exemplo
A solução exata do sistema é
e observem a sequência de vetores
x⃗=(1
−10
1/2)
x⃗1=(0,9375
−0,6597 22−0,0743050,477835
) ; x⃗2=(0,954694
−0,986709−0,0071880,499491
) ; x⃗3= (0,998275
−0,999009−0,0003700,499948
) ; x⃗4= (0,999869
−0,999944−0,0000240,4999973
)
Gauss-Seidel – Um Exemplo
e os valores da avaliação se aproximam de zero mais rapidamente
‖x⃗2− x⃗1‖max
‖x⃗1‖max
≈0,2295 ;‖x⃗3− x⃗2‖max
‖x⃗2‖max
≈0,0440 ;‖x⃗4− x⃗3‖max
‖x⃗3‖max
≈0,0015
Gauss-Seidel – Um Exemplo
Repare que cada componente de cada não pode ser calculada independentemente uma das outras como em Gauss-Jacobi portanto,
o algoritmo de Gauss-Seidel não é facilmente paralelizável.
Isto gera implicações que devem ser levadas em consideração quando da construção de códigos eficientes.
x i+1
Métodos iterativos
Em todos os exercícios até agora feito o custo computacional execedeu o custo computacional usando, por exemplo, fatoração LU
Porque então usar estes métodos iterativos?
Métodos iterativos
Um motivo já foi dito:
● Estes métodos são, quando convergem, numericamente estáveis
Outro motivo:
● Existem sistemas de interesse (em geral de ordem grande) que tem efetivamente custo computacional menor quando usados com métodos iterativos
Gauss-Seidel – Um Exemplo
Mais um exercício sem ser em passo de tartaruga...
Gauss-Seidel – Outro exemplo
Aplique no sistema abaixo o método de Gauss-Seidel até o critério de parada for menor que 0,01.
Temos a informação que a solução é próxima do vetor
(6 2 31 −4 21 2 4 ) x⃗=(
457 )
(002 )
Gauss-Seidel – Outro exemplo
Construindo a matriz e o vetor para Gauss-Seidel...
...e montando a fórmula
(6 2 31 −4 21 2 4 ) ; (
457 )⇒ (
0 2 /6 3/61 /−4 0 2 /−41 /4 2 /4 0 ) ; (
4 /65/−47 /4 )⇒ (
0 −1/3 −1/21/4 0 1/2
−1/4 −1/2 0 ) ; (2/3
−5/47 /4 )
x⃗i+1=(0 0 0
1 /4 0 0−1 /4 −1 /2 0 ) x⃗i+1+ (
0 −1/3 −1 /20 0 1 /20 0 0 ) x⃗i+ (
2 /3−5 /47 /4 )
Gauss-Seidel – Outro exemplo
Tendo
x⃗ i+1=(0 0 0
1/4 0 0−1 /4 −1/2 0 ) x⃗ i+1+(
0 −1 /3 −1 /20 0 1 /20 0 0 ) x⃗ i+ (
2/3−5 /47 /4 )
x0=(002 )
x⃗1=([0]+[−1 /3×0−1/2×2]+2/3[1/4×(−1 /3)]+[1/2×2]−5 /4
[−1/4×(−1 /3)−1/2×(−1 /3)]+[0 ]+7 /4 )=(−1/3−1/3
2 )=(−0, 33−0, 33
2 )
Gauss-Seidel – Outro exemplo
Qual o significado das primeiras componentes darem iguais e a última repetir o chute?
Gauss-Seidel – Outro exemplo
Qual o significado das primeiras componentes darem iguais e a última repetir o chute?
Nenhum...
Gauss-Seidel – Outro exemplo
Tendo
x⃗ i+1=(0 0 0
1/4 0 0−1 /4 −1/2 0 ) x⃗ i+1+(
0 −1 /3 −1 /20 0 1 /20 0 0 ) x⃗ i+ (
2/3−5 /47 /4 )
x1=(−1 /3−1 /3
2 )
x⃗2=([0]+[−1/3×(−1 /3)−1/2×(2)]+2/3
[1/4×(−2 /9)]+[1 /2×2]−5/4[−1 /4×(−2/9)−1/2×(−11/36)]+[0 ]+7 /4 )=(
−2 /9−11/3647 /24 )=(
−0,22−0,30 551,958 33 )
Gauss-Seidel – Outro exemplo
Avaliemos a evolução dos vetores
x⃗2− x⃗1=(−0, 22
−0,30 551,958 33 )−(
−0, 33−0, 33
2 )≈(0,11
0,0277−0,04166 )⇒‖x⃗2− x⃗1‖max≈0,1111
‖x⃗1‖max=2⇒
‖x⃗2− x⃗1‖max
‖x⃗1‖max
≈0,0555
Gauss-Seidel – Outro exemplo
Tendo
x⃗ i+1=(0 0 0
1/4 0 0−1 /4 −1/2 0 ) x⃗ i+1+(
0 −1 /3 −1 /20 0 1 /20 0 0 ) x⃗ i+ (
2/3−5 /47 /4 )
x2=(−2 /9
−11/3647 /24 )
x⃗3=([0 ]+[−1 /3×(−11 /36)−1/2×47 /24 ]+2 /3[1/4×(−91 /432)]+[1/2×47 /24 ]−5 /4
[−1 /4×(−91 /432)−1/2×(−559 /1728)]+[0]+7 /4 )=(−91/432
−559/17282263/1152 )≈ (
−0,210648−0,3234951,964409 )
Gauss-Seidel – Outro exemplo
Avaliemos a evolução dos vetores
x⃗3− x⃗2=(
−0,210648−0,3234951,964409 )−(
−0, 22−0,30 551,958 33 )≈ (
0,011574−0,0179390,006075 )⇒‖x⃗3− x⃗2‖max≈0,0179
‖x⃗2‖max=1,958333⇒
‖x⃗3− x⃗2‖max
‖x⃗2‖max
≈0,0091
Gauss-Seidel – Outro exemplo
Já atingimos o solicitado mas vamos a mais um passo só para treinar...
Gauss-Seidel – Outro exemplo
Tendo
x⃗ x+1=(0 0 0
1 /4 0 0−1 /4 −1 /2 0 ) x⃗ i+1+(
0 −1 /3 −1 /20 0 1 /20 0 0 ) x⃗i+(
2 /3−5 /47 /4 )
x⃗3=(−0,210648−0,3234951,964409 )
x⃗4=([0]+[−1/3×(−0,323495)−1 /2×1,964409 ]+2 /3
[1/4×(−0,207706)]+[1 /2×1,964409 ]−5 /4[−1/4×(−0,207706)−1/2×(−0,319721)]+[0 ]+7 /4 )≈(
−0,207706−0,3197211,961787 )
Gauss-Seidel – Outro exemplo
Avaliemos a evolução dos vetores
x⃗4− x⃗3=(−0,207706−0,3197211,961787 )−(
−0,210648−0,3234951,964409 )≈(
0,0029420,003774
−0,002622 )⇒‖x⃗4− x⃗3‖max≈0,0037
‖x⃗3‖max=1,964409⇒
‖x⃗4− x⃗3‖max
‖x⃗3‖max
≈0,0018