resolução numérica de sistemas lineares parte ialirio/files/cn2012.1/selparte01.pdf · material...
TRANSCRIPT
Prof. Alirio Santos de Sá
Material adaptada dos slides da disciplina de Cálculo numérico dos professores Bruno Queiroz, José Queiroz e Marcelo Barros (UFCG).
Disponível em: http://www.dsc.ufcg.edu.br/~cnum/
Resolução Numérica de Sistemas Lineares – Parte I
Cálculo Numérico
2
Sistemas Lineares
Forma Geral
onde:
aij coeficientes
xi incógnitas
bi termos independentes
nnnn22n11n
2nn2222121
1nn1212111
bxa...xaxa
bxa...xaxa
bxa...xaxa
3
Exemplo 01
2, 4, -5, 4, 1, -5, 2, 4 e 5 coeficientes
x1, x2 e x3 incógnitas
5, 2 e -1 termos independentes
Sistemas Lineares
1x5x4x2
2x5x1x4
5x5x4x2
321
321
321
4
Sistemas Lineares
Forma Matricial
na qual:
4
Ax = b
nn3n2n1n
n22221
n112
aaaa
aaa
aaa
A
11
n
2
1
b
bb
b
n
2
1
x
xx
x
5
Sistemas Lineares
1x5x4x2
2x5x1x4
5x5x4x2
321
321
321
5
Exemplo 02
Forma Geral
Forma Matricial
125
xxx.
542514542
3
2
1
6
Sistemas Lineares
Sistemas de considerados:
Possível Possui 1 ou mais soluções
Determinado Solução única [det(A)≠0]
Exemplo 03
8xx
4xx
21
21
7
Sistemas Lineares
Caso trivial (Sistemas Homogêneos)
Possível Possui 1 ou mais soluções
Homogêneo Vetor b=0 (x=0 sempre
existe solução)
Exemplo 04
0x3x2
0xx
21
21
8
Sistemas Lineares
nn3n2n1n
333231
2221
11
aaaa
0aaa00aa000a
A
Sistemas Triangulares (Casos especiais):
Possibilidade de resolução de forma Direta
Triangular Inferior
9
Sistemas Lineares
nn
n333
n22322
n1131211
a000
aa00aaa0aaaa
A
Sistemas Triangulares (Casos especiais):
Possibilidade de resolução de forma Retroativa
Triangular Superior
10
Solução Retroativa
Exemplo 05:
Dado o sistema:
Primeiro passo para sua resolução:
2x2
3x5x41x2xx
10xx5x4x3
4
43
432
4321
12
2x4
11
Solução Retroativa
Exemplo 05:
Segundo passo:
Terceiro passo:
2x
315x4
3x5x4
3
3
43
1x
1122x
1x2xx
2
2
432
12
Solução Retroativa
Exemplo 05:
Último passo:
Como seriam os algoritmos em pseudocódigo?
Vamos fazer para a triangular inferior!!
1x
10125)1(4x3
10xx5x4x3
1
1
4321
Algoritmo Triangular Inferior
Procedimento resolverTriangInferior(A: matriz [1..n, 1..n] de real; b: vetor [1 .. n] de real)
Declare
x: vetor [1..n] de real;
i,j: inteiro;
Início
Para i = 1 até n faça
x[i] = b[i] / A[i, i];
Para j = 1 até i-1 faça
x[i] = x[i] - (A[i, j] * x[j]) / A [i, i];
Fim Para
Fim Para
Retorne x;
Fim Procedimento
13
Algoritmo Triangular Superior
Procedimento resolverTriangSuperior(A: matriz [1..n, 1..n] de real; b: vetor [1 .. n] de real)
Declare
x: vetor [1..n] de real;
i, j: inteiro;
Início
Para i = n até 1 faça (passo -1)
x[i] = b[i] / A [i, i];
Para j = i+1 até n faça
x[i] = x[i] - (A[i, j] * x[j]) / A [i,i];
Fim Para
Fim Para
Retorne x;
Fim Procedimento
14
15
Métodos Numéricos
Diretos
Solução pode ser encontrada a partir de um número finito de passos
Método de Gauss
Método da Eliminação de Jordan
Fatoração LU
16
Métodos Numéricos
Iterativos
Solução a partir de uma seqüência de aproximações para o valor do vetor solução x , até que seja obtido um valor que satisfaça à precisão pré-estabelecida
Método de Jacobi
Método de Gauss – Seidel
MÉTODOS DIRETOS
1. Método de Gauss
2. Método de Gauss com pivoteamento parcial
3. Método de Jordan
4. Fatoração LU
17
18
Método de Gauss
Propósito
Transformação do sistema linear a ser resolvido em um sistema linear triangular;
Resolução do sistema linear triangular de forma retroativa.
19
Método de Gauss
Transformação do Sistema Linear
Troca da ordem das linhas;
Multiplicação de uma das equações por um número real não nulo;
Substituição de uma das equações por uma combinação linear dela mesma com outra equação.
20
Método de Gauss
Passos do Método de Gauss
Construção da matriz aumentada Ab
20
nnn3n2n1n
2n22221
1n11211
baaaa
baaabaaa
Ab
21
Método de Gauss
Passos do Método de Gauss
Passo 1:
Eliminar os coeficientes de x1 presentes nas linhas 2,3,...,n - sendo a21 = a31, = ... = an1 = 0 - sendo a11 chamado de pivô da coluna
Substituir a linha 2, L2, pela combinação linear
11
21211212
a
am:qualna,LmL
22
Método de Gauss
11
313113133
a
am:qualna,LmLL
Passos do Método de Gauss
Substituir a linha 3, L3, pela combinação linear:
23
Método de Gauss
Passos do Método de Gauss
Continuar a substituição até a linha n;
Caso algum elemento app=0, achar outra linha k onde akp≠ 0 e trocar tais linhas. Caso a linha k não exista, o sistema linear não possui solução.
24
Método de Gauss
Passos do Método de Gauss
Eliminar os coeficientes de x2 nas linhas 3, 4, ..., n (fazer a32=a42=...=an2 = 0);
Eliminar os coeficientes de x3 nas linhas 4, 5, ..., n (fazer a43=a53=...=an3 = 0) e assim sucessivamente.
25
Método de Gauss
Exemplo 06:
Resolver o sistema:
Matriz aumentada Ab
1xx3x2
3x3x4x4
5xx3x2
321
321
321
1132
33445132
Ab
29
Método de Gauss
Exemplo 06:
Substituindo a linha 3 por:
Têm-se:
3a
am,LmLL
22
323213233
15500L
712036260L
3
3
31
Método de Gauss
Exemplo 06:
Usa-se a solução retroativa:
1x22x5362x
5xx32x
2x732x7x2x
3x155x
111
321
2232
33
32
Método de Gauss
Exemplo 07:
Resolver o sistema.
Representando o sistema pela matriz aumentada:
9,8x8,7x7,5x7,2
7,11x5,4x3,2x2,4
10x3,3x4,5x5,1
321
321
321
9,88,77,57,27,115,43,22,4
103,34,55,1]AB[
33
Método de Gauss
Exemplo 07:
Escolhendo a primeira linha como pivô, obtém-se:
9,11,864,020 L
103,35,41,5(2,7/1,5)
8,97,85,72,7LmLL
16,34,7412,820 L
103,35,41,5(4,2/1,5)
11,74,52,34,2LmLL
3
13133
2
12122
34
Método de Gauss
Exemplo 07:
Representando o sistema pela matriz aumentada:
9,11,864,020
16,34,7412,820
103,35,41,5
[AB]
35
Exemplo 07:
Escolhendo agora a segunda linha como pivô, têm-se:
Método de Gauss
3,98883,346300L
16,34,7412,82012,824,02/
9,11,864,020L
LmLL
3
3
13233
36
Exemplo 07:
Obtêm-se a seguinte matriz ampliada:
Método de Gauss
3,98883,346300
16,34,7412,820
103,35,41,5
[AB]
37
Método de Gauss
Exemplo 07:
O que termina com a triangulação:
3,9888x3,3463x0x0
16,3x4,74x12,82x0
10x3,3x5,41,5x
321
321
321
38
Método de Gauss
Exemplo 07:
Com solução:
Como seria o algoritmo para o método de Gauss em pseudocódigo?
x3 = -3,9888/3,3463=-1,1918
x2 =[ -16,3 - (-4,74)(-1,1920)]/(-12,82) = 1,7121
x1 = [10 - 5,4(1,7122) - 3,3(-1,1920)]/1,5 = 3,1251
Procedimento Gauss(A: matriz [1..n,1..n] de real; b: vetor [1 .. n] de real)
Declare
x : vetor [1 .. n] de real,
m : real;
Início
Para k = 1 até n - 1 faça
Para i = k+1 até n faça
m = A[i, k]/A[k, k];
A[i, k] = 0;
Para j = k + 1 até n faça
A[i, j] = A[i, j] - m * A[k, j];
Fim Para
b[i] = b[i] - m * b[k];
Fim Para
Fim Para
x = resolverTriangSuperior(A, b);
Retorne x;
Fim;
Fim Procedimento 39
40
Método do Pivoteamento Parcial
Semelhante ao método de Gauss;
Minimiza a amplificação de erros de arredondamento durante as eliminações;
Consiste em escolher o elemento de maior módulo em cada coluna para ser o pivô.
41
Método do Pivoteamento Parcial
Exemplo 08:
Resolver o sistema com precisão de 4 casas decimais
9,8x8,7x7,5x7,2
7,11x5,4x3,2x2,4
10x3,3x4,5x5,1
321
321
321
42
Método do Pivoteamento Parcial
Exemplo 08:
Matriz aumentada original deve ser ajustada:
9,88,77,57,27,115,43,22,4
103,34,55,1
9,88,77,57,2103,34,55,17,115,43,22,4
43
Método do Pivoteamento Parcial
Exemplo 08:
Sistema inalterado, elemento pivô 4,2.
Encontrar as novas linhas:
]1,37864,90714,22140[L
]11,74,52,34,2[(2,7/4,2)
]8,97,85,72,7[LmLL
]5,82141,69294,57860[L
]11,74,52,34,2[1,5/4,2)
]103,35,41,5[LmLL
3
13133
2
12122
(
44
Método do Pivoteamento Parcial
Exemplo 08:
A matriz ampliada fica da forma:
Como o elemento já é o pivô da 2ª
coluna, tem-se:
1,37864,90714,22140
5,82141,69294,57860
11,74,52,34,2
]3,98863,346300[L
]5,82141,69294,57860[5786)(4,2214/4,
]1,37864,90714,22140[LmLL
3
23233
4,5786
45
Método do Pivoteamento Parcial
Exemplo 08:
A matriz ampliada fica na forma:
3,9886-3,346300
5,82141,69294,57860
11,74,52,34,2
46
Método do Pivoteamento Parcial
Exemplo 08:
A solução do sistema triangular que resultou dessas operações é:
x3 = -3,9886/3,3463 = -1,1919
x2 = [5,8214-1,6929(-1,1919)]/(4,5786) = 1,7121
x1 = [11,7- 2,3(1,7121)- 4,5(-1,1919)]/4,2 = 3,1252
47
Método do Pivoteamento Parcial
Exemplo 07: Exemplo 08 (com pivoteamento):
x3 = -1,1918 x3 = -1,1919
x2 = 1,7121 x2 = 1,7121
x1 = 3,1252 x1 = 3,1251
Solução encontrada com Software (Matlab):
x1 = -1,19198135198135
x2 = 1,71216783216783
x3 = 3,12522144522145
Como seria o algoritmo para o método de Gauss em pseudocódigo?
Procedimento GaussPivoParcial(A: matriz [1..n,1..n] de real; b: vetor [1 .. n] de real)
Declare x : vetor [1 .. n] de real; m : real; k, i, j: inteiro;
Início
Para k = 1 até n -1 faça
j = k;
Para i = k + 1 até n faça
Se abs(A[j, k]) < abs(A[i, k]) então j = i; Fim Se
Fim Para
Se j <> k então Troca(A, j, k); Fim Se
Para i = k+1 até n faça
m = A[i, k]/A[k, k];
A[i, k] = 0;
Para j = k + 1 até n faça
A[i, j] = A[j, j] - m * A[k, j];
Fim Para
b[i] = b[i] - m * b[k];
Fim Para
Fim Para
x = resolverTriangSuperior(A, b);
Retorne x;
Fim;
Fim Procedimento 48
49
Método de Jordan
Consiste em efetuar operações sobre as equações do sistema, com a finalidade de obter um sistema diagonal equivalente;
Um sistema diagonal é aquele em que os elementos aij da matriz coeficiente [A] são iguais a zero, para i≠j,
i, j = 1,2,...,n.
51
Método de Jordan
Exemplo 09:
A partir do sistema:
Com matriz aumentada:
4x2x3x2
2x3x2x5
1xx5x
321
321
321
4232
1151
2325
4232
2325
1151
Ab
52
Método de Jordan
Exemplo 09:
Substituindo a linha 2 por:
Substituindo a linha 3 por :
0,21/5
a
a
m0,60,44,60L
,2325(1/5)1151LmLL
11
21
212
12122
,
0,42/5
a
a
m3,20,82,20L
2325(2/5)4232LmLL
11
31
313
13133
,
53
Método de Jordan
Exemplo 09:
A matriz ampliada resulta em:
Substituindo a linha 3 por:
3,20,82,20
0,60,44,60
2325
Ab
8, 0,472,2/4,6
a
a
m2,9130,60900L
0,60,44,60(2,2/4,6)3,20,82,20LmLL
22
32
323
23233
54
Método de Jordan
Exemplo 09:
A matriz ampliada resulta em:
Substituindo a linha 2 por
913,2609,0006,04,06,401325
Ab
1,31304,60L
2,9130,60900)(0,4/0,609
0,60,44,60LmLL
2
32322
55
Método de Jordan
Exemplo 09:
Matriz ampliada resulta em:
Substituindo a linha 1 por
913,2609,000313,106,401325
Ab
2/4,6
a
a
m,1,571305L
,1,31304,60(2/4,6)1325L
22
12
121
1
56
Método de Jordan
Exemplo 09:
Substituindo a linha 1 por:
A matriz ampliada fica da seguinte forma:
3/0,609
a
a
m12,779005L
2,9130,60900(3/0.609)
1,571305L
33
13
131
1
2,9130.60900
1,31304,60
12,779005
Ab
58
Decomposição em LU
O objetivo é fatorar a matriz dos coeficientes A em um produto de duas matrizes L e U.
Seja:
nn
n333
n22322
n1131211
3n2n1n
3231
21
u000
uu00uuu0uuuu
1lll001ll001l0001
LU
59
Decomposição em LU
E a matriz coeficiente A:
Tem-se, então:
nn3n2n1n
n22221
n11211
aaaa
aaaaaa
A
nn
n333
n22322
n1131211
3n2n1n
3231
21
nn3n2n1n
n22221
n11211
u000
uu00uuu0uuuu
1lll001ll001l0001
]LU[
aaaa
aaaaaa
A
60
Decomposição em LU
Para se obter os elementos da matriz L e da matriz U, deve-se calcular os elementos das linhas de U e os elementos da colunas de L como segue.
61
Decomposição em LU
1ª linha de U: Faze-se o produto da 1ª linha de L por todas as colunas de U e a iguala com todos os elementos da 1ª linha de A, assim:
.n,...,2,1j,au
,auau1
,auau1
,auau1
j1j1
n1n1n1n1
12121212
11111111
62
Decomposição em LU
1ª coluna de L: Faz-se o produto de todas as linhas de L, (da 2ª a até a nª), pela 1ª coluna de U e a iguala com os elementos da 1ª coluna de A, (abaixo da diagonal principal), obtendo ,
.n,...,2,1l,u
al
,u
alaul
,u
alaul
,u
alaul
11
1l1l
11
1l1l1l111l
11
3131311131
11
2121211121
63
Decomposição em LU
2ª linha de U: Faz-se o produto da 2ª linha de L por todas as colunas de U, (da 2ª até a nª), e igualando com os elementos da 2ª linha de A, (da diagonal principal em diante), obtêm-se ,
.n,...,3j,ulau
,ulauauul
,ulauauul
,ulauauul
j121j2j2
n121n2n2n2n2n121
1321232323231321
1221222222221221
64
Decomposição em LU
2ª coluna de L: Faz-se o produto de todas as linhas de L (da 3ª até a nª) pela 2ª coluna de U e a iguala com os elementos da 2ª coluna de A, (abaixo da diagonal principal), obtendo ,
.n,...,3l,u
ulal
,u
ulalaulul
,u
ulalaulul
,u
ulalaulul
22
121l2l2l
22
121l2l2l2l222l121l
22
124142424222421241
22
123132323222321231
65
Decomposição em LU
Temos a seguinte fórmula geral:
.jl,u/)ula(l
,jl,ulau
jjkjlkljlj
1l
1k
kjlkljlj
66
Decomposição em LU
Resumo de Passos:
Seja um sistema Ax = b de ordem n, onde A satisfaz as condições da fatoração LU.
Então, o sistema Ax = b pode ser escrito como:
LUx = b
67
Decomposição em LU
Resumo dos Passos:
Fazendo Ux = y, a equação acima reduz-se a Ly = b.
Resolvendo o sistema triangular inferior Ly = b, obtém-se o vetor y.
68
Decomposição em LU
Resumo dos Passos:
Substituição do valor de y no sistema Ux = y Obtenção de um sistema triangular superior cuja solução é o vetor x procurado;
Aplicação da fatoração LU na resolução de sistemas lineares Necessidade de solução de dois sistemas triangulares
69
Erros - Avaliação de Erros
No sistema Ax = b , no qual:
o erro da solução é x – x’ .
n
2
1
n
2
1
nn2n1n
n22221
n11211
b
bb
b
x
xx
x
aaa
aaaaaa
]A[
71
Erros – Resíduo
Procedimento de Determinação do Erro
Fazer:
Resíduo = b – b’
Resíduo = b – b’ = Ax - Ax’ = A(x – x’) = Aerro
72
Erros – Resíduo
Verifica-se que:
O resíduo não é o erro, apenas uma estimativa do mesmo;
Quanto menor for o resíduo, menor será o erro.
73
Exemplo 10:
Refinar a solução do sistema:
Cuja solução encontrada através pelo método de Gauss, utilizando a solução retroativa é:
1,1918]´- 1,7121 [3,1252x(0)
Erros – Resíduo
9,8x8,7x7,5x7,2
7,11x5,4x3,2x2,4
10x3,3x4,5x5,1
321
321
321
74
Exemplo 10:
O resíduo calculado é:
Vê-se pelo resíduo que a precisão
alcançada não foi satisfatória.
O vetor x(0) é chamado de vetor solução.
0.0010
0.0006
0.0002
Axbr(0)(0)
Erros – Resíduo
75
Exemplo 10:
Com o intuito de melhorar a solução, considera-se um novo vetor x(1) chamado de vetor solução melhorado.
Erros – Resíduo
76
Exemplo 10:
De forma que : x(1) = x(0) + δ(0), onde δ(0) é o vetor de correção. Assim:
)0()0(
)0()0(
)0()0(
)0()0(
)1(
rA
AxbA
bAAx
b)x(A
bAx
Erros – Resíduo
77
Exemplo 10:
Calcular o vetor de correção:
0,0010
0,0006
0,0002
δ
δ
δ
3
2
1
.9,88,77,57,27,115,43,22,4
103,34,55,1
Erros – Resíduo
79
Exemplo 10:
Desta forma, a solução melhorada será:
1920,17122,11252,3
δxx )0()0()1(
Erros – Resíduo
81
Exemplo 10:
Em exemplos onde o resíduo ainda não seja satisfeito pode-se utilizar o mesmo procedimento:
x(2)=x(1)+δ(1)
Assim, o vetor correção δ(1), será calculado por A δ(1) =r(1).
Erros – Resíduo
82
Exemplo 10:
Acha-se assim, sempre uma solução melhorada e com resíduo tendendo a zero.
Erros – Resíduo
83
Sistemas Lineares - Bibliografia
Ruggiero, M. A. Gomes & Lopes, V. L. da R. Cálculo Numérico: Aspectos teóricos e computacionais.
MAKRON Books, 1996, 2ª ed.
Asano, C. H. & Colli, E. Cálculo Numérico: Fundamentos e Aplicações. Departamento de Matemática Aplicada – IME/USP, 2007.
Sanches, I. J. & Furlan, D. C. Métodos Numéricos. DI/UFPR, 2006.
Paulino, C. D. & Soares, C. Erros e Propagação de Erros, Notas de aula, SE/ DM/ IST [Online] http://www.math.ist.utl.pt/stat/pe/qeb/semestre_1_2004-2005/PE_erros.pdf [Último acesso 07 de Junho de 2007].