Buscar

livro-py-53

Prévia do material em texto

94 Cálculo Numérico
Fixamos, agora, na segunda linha. Dividimos esta linha pelo valor do elemento
em sua diagonal, isto nos fornece

1 1 0 0
0 1 0 −1
0 0 1 1
 (4.15)
Por fim, subtraímos da primeira linha a segunda, obtendo a matriz escalonada
reduzida 
1 0 0 1
0 1 0 −1
0 0 1 1
 (4.16)
Desta matriz escalonada reduzida temos, imediatamente, x = 1, y = −1 e z = 1,
como no Exemplo 4.1.1.
4.1.1 Eliminação gaussiana com pivotamento parcial
A eliminação gaussiana com pivotamento parcial consiste em fazer uma
permutação de linhas de forma a escolher o maior pivô (em módulo) a cada passo.
Exemplo 4.1.3. Resolva o sistema
x+ y + z = 1
2x+ y − z = 0
2x+ 2y + z = 1
(4.17)
por eliminação gaussiana com pivotamento parcial.
Licença CC-BY-SA-3.0. Contato: reamat@ufrgs.br
https://creativecommons.org/licenses/by-sa/3.0/
reamat@ufrgs.br
4.1. ELIMINAÇÃO GAUSSIANA 95
Solução. A matriz estendida do sistema é
1 1 1 1
2 1 −1 0
2 2 1 1
 ∼

2 1 −1 0
1 1 1 1
2 2 1 1

∼

2 1 −1 0
0 1/2 3/2 1
0 1 2 1

∼

2 1 −1 0
0 1 2 1
0 1/2 3/2 1

∼

2 1 −1 0
0 1 2 1
0 0 1/2 1/2

(4.18)
Encontramos 1/2z = 1/2, ou seja, z = 1. Substituímos na segunda equação e
temos y + 2z = 1, ou seja, y = −1 e, finalmente 2x + y − z = 0, resultando em
x = 1.
Em Python, podemos fazer estas computações da seguinte forma:
E = np.array([[1,1,1,1],
[2,1,-1,0],
[2,2,1,1]], dtype='double')
print(E)
#L2 <-> L1
aux = np.copy(E[1,:])
E[1,:] = np.copy(E[0,:])
E[0,:] = np.copy(aux)
print(E)
#zera E[1:2,0]
E[1,:] = E[1,:] - (E[1,0]/E[0,0])*E[0,:]
E[2,:] = E[2,:] - (E[2,0]/E[0,0])*E[0,:]
print(E)
Licença CC-BY-SA-3.0. Contato: reamat@ufrgs.br
https://creativecommons.org/licenses/by-sa/3.0/
reamat@ufrgs.br
	Solução de sistemas lineares
	Eliminação gaussiana
	Eliminação gaussiana com pivotamento parcial

Continue navegando