Você está na página 1de 22

MAC0315.

IME USP, 2020


Aula 16

Walter Mascarenhas
22/10/2020

Conteúdo:
Sistemas Lineares

1/22
Resolução de sistemas lineares

Na prática, o método simplex é implementado usando álgebra linear.


A parte mais importante é a resolução de sistemas lineares.

2/22
Exemplo

x + y + z =1
2x + 3y + 4z = 3
3x + 4y + 6z = 7

Linha 2 = Linha 2 - 2 * Linha 1


Linha 3 = Linha 3 - 3 * Linha 1

x + y + z =1
y + 2z = 1
y + 3z = 4

3/22
Exemplo

x + y + z =1
y + 2z = 1
y + 3z = 4

Linha 3 = Linha 3 - Linha 2

x + y + z =1
y + 2z = 1
z =3

Chegamos à forma triangular superior

4/22
Redução à forma triangular superior

x + y + z =1
y + 2z = 1
z =3

Solução do exemplo:

z = 3
y = 1 − 2z = −5
x = 1−y−z =1+6−3=3

5/22
Verificando as contas

x + y + z =1
2x + 3y + 4z = 3
3x + 4y + 6z = 7

(x, y, z ) = (3, −5, 3)

3− 5 + 3 = 1?
2 ∗ 3 − 3 ∗ 5 + 4 ∗ 3 = 3?
3 ∗ 3 − 4 ∗ 5 + 6 ∗ 3 = 7?

3 − 5 + 3 = 1?
6 − 15 + 12 = 3?
9 − 20 + 18 = 7?

6/22
Verificando as contas

3 − 5 + 3 = 1?
6 − 15 + 12 = 3?
9 − 20 + 18 = 7?

6 − 5 = 1X
18 − 15 = 3 X
27 − 20 = 7 X

7/22
O método da eliminação

O método da eliminação tem duas fases:

• Redução à forma triangular superior


• Substituição

8/22
Fatorações

É conveniente pensar no método da eliminação em termos de


fatoração de matrizes.
Para resolver Ax = b.

• Escrevemos A = LU, onde as matrizes L (lower) e U (upper) são


triangulares (inferior e superior)

• Segue que x = U−1 L−1 b.

9/22
Exemplo

x + y + z =1
2x + 3y + 4z = 3
3x + 4y + 6z = 7

1 1 1 x 1
­ 2 3 4 ®­ y ® = ­ 3 ®
© ª© ª © ª
­ ®­ ® ­ ®
« 3 4 6 ¬« z ¬ « 7 ¬

10/22
Exemplo com matrizes

1 1 1
A=­
© ª
­ 2 3 4 ®
®

« 3 4 6 ¬
Linha 2 = Linha 2 - 2 * Linha 1.
Operar nas linhas de uma matriz significa multiplicá-la à esquerda:

1 1 1 1 1 1 1
®­ 2 3 4 ® = ­ 0 1 2 ®
© ª© ª © ª
­ −2 1
­ ®­ ® ­ ®
« 1 ¬« 3 4 6 ¬ « 3 4 6 ¬

11/22
Exemplo com matrizes

1 1 1
A=­
© ª
­ 2 3 4 ®
®

« 3 4 6 ¬
Linha 3 = Linha 3 - 3 * Linha 1.
Operar nas linhas de uma matriz significa multiplicá-la à esquerda:

1 1 1 1 1 1 1
®­ 2 3 4 ® = ­ 2 3 4 ®
© ª© ª © ª
­
­ 1 ®­ ® ­ ®
« −3 1 ¬« 3 4 6 ¬ « 0 1 3 ¬

12/22
Manipulando linhas

1 1 1
® = ­ −2 1
© ª© ª © ª
­ −2 1 ®­ 1 ®
­ ®­ ® ­ ®
« 1 ¬« −3 1 ¬ « −3 1 ¬
e

1 1 1
® = ­ −2 1
© ª© ª © ª
­ 1 ® ­ −2 1 ®
­ ®­ ® ­ ®
« −3 1 ¬« 1 ¬ « −3 1 ¬

13/22
Manipulando linhas

−1
1 1
= ­­ 2 1
© ª © ª
­ −2 1 ® ®
­ ® ®
« −3 1 ¬ « 3 1 ¬

A eliminação fica assim então:

L1, 2 L1, 1 A0 = A1


© 1 ª© 1 ª© 1 1 1 ª © 1 1 1 ª
­ 1 ® ­ −2 1 ®­ 2 3 4 ® = ­ 1 2 ®
­ ®­ ®­ ® ­ ®
« −3 1 ¬« 1 ¬« 3 4 6 ¬ « 1 3 ¬

14/22
Próximo passo

L1, 2 L1, 1 A0 = A1 L2, 1 A1 = U.




1 1 1 1 1 1 1
®=­
© ª© ª © ª
­
­ 1 ®­
®­ 1 2 ® ­ 1 2 ®
®
« −1 1 ¬ « 1 3 ¬ « 1 ¬
Resumo:
= L2, 1 A1 = U

L2, 1 L1, 2 L1, 1 A0

e
A0 = LU

para
  −1
L = L1, 2 L1, 1 2, 1 .
L− 1

15/22
Abacaxi

É preciso cuidado com a fatoração A = LU.


Exemplo:

! ! !
0 2 a e f
=
3 4 b c g

ae = 0, af = 2 e be = 3

• a ou e é zero.
• a não é zero
• e não é zero
Contradição: não há fatoração A = LU nesse caso
16/22
Descascando o abacaxi

Uma solução é permutar linhas (e permutar linhas é multiplicar à


esquerda):

! ! ! ! !
0 1 0 2 3 4 1 3 4
PA = = = = LU
1 0 3 4 2 1 2

17/22
Forma final da fatoração LU

Para toda matriz A, n × n, existem

• Uma matriz de permutação P,


• Uma matriz triangular inferior L
• uma matrix triangular superior U

tais que
PA = LU.

Quando L e U são invertíveis:

Ax = b ⇔ x = U−1 L−1 P b.

18/22
Observação importante

Para avaliar
x = U−1 L−1 P b

NÃO É NECESSÀRIO
calcular as inversas de L e U.
Basta resolver os sistemas

Ly = P b e Ux = y.

19/22
Observação importante

Há duas situações nas quais um ser humano calcula a inversa de uma


matriz

• Elx sabe muito bem o que faz.

• Elx não tem ideia do que está fazendo.

(Notem como sou modernix :-) )

20/22
Custo

• Calcular a fatoração PA = LU custa ≈ n3 /3 operações.


• Resolver um sistema triangular Tx = b custa ≈ n2 /2 operações.

Para fatorar PA = LU:


Õ 1
cn ≈ n2 ⇒ cn = n3
3
= volume da pirâmide de base n2 e altura n.

Para resolver Tx = b
Õ 1
cn ≈ n ⇒ cn = n2
2
= área do triângulo de base n e altura n.
21/22
No mundo real

Jamais escreva o seu próprio código para resolver sistemas lineares.

Use o que já está pronto!!!

Por exemplo, as bibliotecas da Intel:

https://software.intel.com/content/www/us/en/develop/tools/math-
kernel-library.html
Em python, use a numpy.

22/22

Você também pode gostar