Aula de Matemática Aplicadaftp.lna.br/users/marcio/Algebra_Linear/Algebra_Linear.pdf1.2.2...
Transcript of Aula de Matemática Aplicadaftp.lna.br/users/marcio/Algebra_Linear/Algebra_Linear.pdf1.2.2...
Curso de Matemática Aplicada - MCC03Algebra Linear
Iniciado em 03 de Agosto de 2017Notas de aula e trabalhosMárcio Vital de Arruda
Versão 26 de setembro de 2017
1
Sumário
1 Sistemas de Equações Lineares 41.1 Equações Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Sistemas de Equações Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Exemplo de um Sistema 2 x 2 . . . . . . . . . . . . . . . . . . . . . . . . 41.2.2 Exemplo de um Sistema 2 x 3 . . . . . . . . . . . . . . . . . . . . . . . . 51.2.3 Exemplo de um Sistema 3 x 2 . . . . . . . . . . . . . . . . . . . . . . . . 51.2.4 Representação Gráfica de um Sistema Linear 2 x 2 . . . . . . . . . . . . 5
1.3 Forma Matricial de um Sistema de Equações Lineares . . . . . . . . . . . . . . . 81.4 Exemplo práticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Exemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.4.2 Exemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Métodos de resolução de sistemas lineares . . . . . . . . . . . . . . . . . . . . . 111.5.1 Métodos diretos - Operações elementares sobre matrizes . . . . . . . . . 111.5.2 Métodos diretos - Eliminação de Gauss sem troca de linha . . . . . . . . 14
1.5.2.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.5.2.2 Exercício . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5.3 Métodos diretos - Eliminação de Gauss com troca de linha . . . . . . . . 191.5.4 Métodos diretos - Fatoração ou decomposição LU . . . . . . . . . . . . . 21
1.5.4.1 Exemplo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.5.4.2 Exercício - Decomposição de Doolittle . . . . . . . . . . . . . . 241.5.4.3 Exercício - Decomposição de Doolittle . . . . . . . . . . . . . . 241.5.4.4 Exercício - Decomposição de Crout . . . . . . . . . . . . . . . . 261.5.4.5 Exercício - Decomposição de Cholesky . . . . . . . . . . . . . . 271.5.4.6 Generalização - Sistemas triangulares inferiores . . . . . . . . . 281.5.4.7 Generalização - Sistemas triangulares superiores . . . . . . . . . 291.5.4.8 Generalização - Decomposição de Doolittle . . . . . . . . . . . . 301.5.4.9 Generalização - Decomposição de Crout . . . . . . . . . . . . . 321.5.4.10 Generalização - Decomposição de Cholesky . . . . . . . . . . . 32
1.5.5 Métodos diretos - Sistemas subdeterminados . . . . . . . . . . . . . . . . 331.5.5.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
A Algebra Matricial 38A.1 Igualdade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38A.2 Multiplicação por um escalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38A.3 Soma de matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2
A.4 Subtração de matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38A.5 Matriz Identidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38A.6 Inversa de uma matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
B Programas utilizados neste documento em Scilab/Matlab 40B.1 Representação gráfica do sistema de equações . . . . . . . . . . . . . . . . . . . 40B.2 Exemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41B.3 Verificação da matriz L 3x3 do método de Cholesky . . . . . . . . . . . . . . . . 41B.4 Gauss sem troca de linhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41B.5 Gauss com pivotamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42B.6 Programa método de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43B.7 Programa método de Doolittle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45B.8 Programa método de Crout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47B.9 Armazenamento Vetorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3
Capítulo 1
Sistemas de Equações Lineares
1.1 Equações LinearesEquações lineares são todas as equações do tipo:
a1x1 + a2x2 + a3x3 + . . .+ an−1xn−1 + anxn = b1 (1.1)
Onde an são os coeficientes de números reais e xn são as variáveis.
1.2 Sistemas de Equações LinearesUm sistema de equações lineares é um conjunto de equações lineares como descrito na
Equação 1.1. Em outras palavras é um sistema de “m” equações e “n” incógnitas e pode serescrito como:
a11x1 + a12x2 + . . .+ a1nxn = b1
a21x1 + a22x2 + . . .+ a2nxn = b2 (1.2)am1x1 + am2x2 + . . .+ amnxn = bm
Com aij, 1 ≤ i ≤ m e 1 ≤ j ≤ n.A solução de um sistema m × n é uma n-upla ordenada de números(x1, x2, · · · , xn) que
satisfaz todas as equações.
1.2.1 Exemplo de um Sistema 2 x 2
x1 + 2x2 = 52x1 + 3x2 = 8
Cuja solução é: (x1, x2) = (1, 2)
4
1.2.2 Exemplo de um Sistema 2 x 3
x1 − x2 + x3 = 22x1 + x2 − x3 = 4
Cuja solução é: (x1, x2, x3) = (2, 0, 0). Porém é fácil perceber que qualquer número realpara x2 e x3 desde que x2 = x3 também será solução.
Por exemplo, o conjunto de soluções (2,1,1) satisfaz este sistema de equações
1.(2)− 1.(1) + 1.(1) = 22.(2) + 1.(1)− 1.(1) = 4
Neste caso, o sistema tem n soluções possíveis desde que o conjunto de soluções (x1, x2, x3) =(2, α, α) onde α ∈ R
1.2.3 Exemplo de um Sistema 3 x 2
x1 + x2 = 2x1 − x2 = 1
x1 = 4
Cujo sistema não tem nenhuma solução.
1.2.4 Representação Gráfica de um Sistema Linear 2 x 2Vamos analisar graficamente um sistema do tipo 2× 2:
a11x1 + a12x2 = b1
a21x1 + a22x2 = b2
Cuja solução é do um par ordenado (x1, x2). Assim, vamos utilizar o sistema cartesianopara este sistema, cujo x1 é a abscissa e x2 a ordenada.
Como exemplo, tomamos os seguintes sistemas lineares:Caso:
x1 + x2 = 2x1 − x2 = 2 (1.3)
5
O sistema possui uma única solução.
Caso:
x1 + x2 = 2x1 + x2 = 1 (1.4)
6
O sistema não possui solução.
Caso:
x1 + x2 = 2−x1 − x2 = −2 (1.5)
7
O sistema possui várias soluções.
1.3 Forma Matricial de um Sistema de Equações Linea-res
Podemos escrever um sistema de equações, Equação 1.2, da seguinte forma:
a11 a12 · · · a1n
a21 a22 · · · a2n
a31 a32 · · · a3n... ... . . . ...am1 am2 · · · amn
∗
x1x2x3...xn
=
b1b2b3...bm
(1.6)
Ou ainda [A]
m×n={x}
n×1∗{b}
m×1(1.7)
Onde [A] é a matriz de coeficientes, {x} é o vetor de incógnitas e {b} é o vetor dos termosindependentes.
Se o número de equações de um sistema for igual ao número de incógnitas temos um sistemaquadrado com a matriz de incógnitas [A] quadrada.
8
A solução formal de um sistema utilizando matrizes é:
{x}
=(A)−1 {
b}
Para grandes sistemas a solução formal é inviável pois (gera muita conta) gera propagaçãode erro e muito tempo de máquina.
Para que um sistema tenha solução o determinante da matriz de coeficientes deve ser dife-rente de zero:
det[A]
m×n6= 0 (1.8)
Quando o determinante for nulo, existem duas possibilidades:
• Infinitas soluções, ou
• não existe solução
1.4 Exemplo práticos
1.4.1 Exemplo 1Seja o sistema linear:
2x1 + x2 = 5 (R1) (1.9)x1 − 3x2 = 6 (R2) (1.10)
Na sua forma matricial temos:
[2 11 −3
] [x1x2
]=[
56
](1.11)
Calculando o determinante da matriz de coeficientes, temos:
det
[2 11 −3
]= 2 ∗ (−3)− 1 ∗ 1 = −7 6= 0 (1.12)
Logo o sistema possui uma única solução.Calculando os pontos para R1 e R2, respectivamente:
x1 x20 51 3
x1 x20 -26 0
9
Finalmente calculando o conjunto de solução do sistema, isolando x2 em (1.9):
2x1 + x2 = 5x2 = 5− 2x1 (1.13)
Substituindo em (1.10):
x1 − 3 ∗ (5− 2x1) = 6x1 − 15 + 6x1 = 6
7x1 = 21x1 = 3 (1.14)
Substituindo x1 em (1.13) temos:
x2 = 5− 2 ∗ 3x2 = −1 (1.15)
Graficamente, temos:
10
1.4.2 Exemplo 2Seja o sistema linear:
2x1 + x2 = 5 (R1) (1.16)6x1 + 3x2 = 10 (R2) (1.17)
Na sua forma matricial temos:
[2 16 3
] [x1x2
]=[
510
](1.18)
Calculando o determinante da matriz de coeficientes, temos:
det[
2 16 3
]= 2 ∗ 3− 6 ∗ 1 = 0 (1.19)
Logo o sistema não possui solução.
1.5 Métodos de resolução de sistemas linearesExistem dois métodos para resolução de sistemas lineares:
• Métodos diretos: São métodos que conduzem à solução exata a menos de erros de arre-dondamento introduzidos pela máquina
• Métodos indiretos: São métodos interativos que necessitam de convergência para se obtera solução dentro de um critério de parada, por exemplo:
– Método de Jacobi– Método de Gauss-Seidel– Gradiente conjugado
1.5.1 Métodos diretos - Operações elementares sobre matrizesPara entendermos os métodos diretos, vamos entender as operações elementares sobre as
linhas de uma matriz.Dado o sistema de equações:
3x1 + 5x2 + 2x3 = 88x2 + 2x3 = −7 (1.20)
6x3 = 3 (1.21)
11
É fácil notar que pode-se obter o conjunto solução fácilmente. Tal sistema é denominadosistema de equações triangular e também quadrada de 3x3.
Logo, pela equação (1.21) x3 = 12 , por sua vez substituindo x3 na equação (1.20) obtemos
x2 = −7−18 = −8
8 = −1. Finalmente, obtem-se x1 substituindo os valores de x3 e x2, logo:
3x1 + 5 ∗ (−1) + 2 ∗ 12 = 8
3x1 − 5 + 1 = 83x1 = 8 + 4
x1 = 123
x1 = 4 (1.22)
Agora, analisando o seguinte sistema de equações:
x1 + x3 = 0x1 + x2 = 1
2x1 + 3x2 + x3 = 0 (1.23)
Podemos ver que a solução não é trivial como um sistema triangular.
Definição 1 Sistemas Equivalentes são sistemas que possuem o mesmo conjunto de solu-ções
Trataremos o sistema (1.23) de tal forma a obtermos um sistema equivalente na sua formatriangular de fácil resolução.
Logo, escrevendo o sistema (1.23) em sua forma matricial:
1 0 11 1 02 3 1
x1x2x3
=
010
(1.24)
Agregando o vetor de termos independentes a matriz de coeficientes obtem-se uma novamatriz denominada matriz aumentada que facilita o trabalho.
1 0 1 01 1 0 12 3 1 0
(1.25)
Definição 2 Operações Elementares sobre as LinhasI. Trocar duas linhas.II. Multiplicar uma linha por um número real não-nuloIII. Substituir uma linha por sua soma com um múltiplo de outra linha
12
Agora vamos resolver o problema usando as operações elementares sobre as linha da matrizaumentada. Assim, mantendo a primeira linha como linha do pivô e o primeiro elemento dalinha como pivô conforme abaixo:
1 0 1 01 1 0 12 3 1 0
(1.26)
E aplicando a operação elementar III, ou seja subtraindo uma vez a segunda linha daprimeira e subtraindo duas vezes a terceira da primeira temos:
1 0 1 00 1 −1 10 3 −1 0
(1.27)
Agora queremos eliminar o segundo termos da terceira linha assim a linha de pivô agora éa segunda linha da matriz extendida e o pivô o segundo termo desta matriz conforme abaixo:
1 0 1 00 1 −1 10 3 −1 0
(1.28)
Aplicando novamente a operação III subtraindo três vezes a linha 3 da segunda, temos:
1 0 1 00 1 −1 10 0 2 −3
(1.29)
Assim o sistema equivalente do nosso sistema de equações (1.23) é:
x1 + x3 = 0x2 − x3 = 1
2x3 = −3 (1.30)
Agora bem mais fácil de obter-se o conjunto solução.
Observação O método da eliminação de Gauss nada mais que uma generalização da destasequência de resolução por operações elementares sobre as linha de uma matriz.
13
1.5.2 Métodos diretos - Eliminação de Gauss sem troca de linhaAssim, seja A = A(1) = (a(1)
ij ) uma matriz invertível e vamos utilizar apenas a operaçãoelementar III sobre as linhas.
A(1) =
a11 a12 . . . a1n
a21 a22 . . . a2n... ... . . . ...an1 an2 . . . ann
(1.31)
Utilizando a11 como pivô vamos zerar os elementos da primeira coluna abaixo do pivô,assim o novo coeficiente a(2)
21 deve ser a subtração do elemento a(1)21 por um número qualquer
multiplicado pelo coeficiente a(1)11 , logo:
a(2)21 = a
(1)21 −m ∗ a
(1)11 (1.32)
Este novo coeficiente deve necessariamente ser zero, logo:
a(1)21 −m ∗ a
(1)11 = 0⇒ m = a
(1)21
a(1)11
(1.33)
Onde a(1)11 6= 0.
Generalizando o número multiplicador para a primeira interação, temos:
mk1 = a(1)21
a(1)11
(1.34)
E a expressão (1.32):
a(2)kj = a
(1)kj −mk1 ∗ a(1)
1j (1.35)
Para 2 ≤ k ≤ n e 1 ≤ j ≤ n. Agora a nova matriz possui os novos coeficientes abaixo:
A(2) =
a
(1)11 a
(1)12 . . . a
(1)1n
0 a(2)22 . . . a
(2)2n
... ... . . . ...0 a
(2)n2 . . . a(2)
nn
(1.36)
Agora é só repetir o processo colocando pivô em a(2)22
Vamos agora raciocinar em linha. Ou seja, dada a matriz de coeficientes extendida (com ostermos intependentes bi):
14
A(k) =
a11 a12 . . . a1n b1a21 a22 . . . a2n b2... ... . . . ... ...an1 an2 . . . ann bn
(1.37)
Definindo linha como l1 = [a11 a12 . . . a1n b1], l1 = [a21 a22 . . . a2n b2], . . . eln = [an1 an2 . . . ann bn]
Escreveremos o método de Gauss da seguinte forma:
lk+1i = lki −mikl
kk (1.38)
Com li - linha i e k - interação. Lembrando que mik = aik
akke akk 6= 0 é o pivô.
1.5.2.1 Exemplo
Agora vamos resolver o sistema de equação (1.23) pelo método de Gauss sem troca de linha.
1 0 1 01 1 0 12 3 1 0
(1)
(1.39)
l11 = [1 0 1 0]l12 = [1 1 0 1]l13 = [2 3 1 0]
Utilizando a(1)11 como pivô temos, para k=1 e i=2:
mik = aik
akk
m21 = 11
m21 = 1(1.40)
Para k=1, i=3:
m31 = a31
a11
m31 = 21
m31 = 2(1.41)
15
De acordo com (1.38) para a linha dois, temos:
l22 = l12 −m21 ∗ l11= [1 1 0 1]− 1 ∗ [1 0 1 0]= [0 1 − 1 1]
Para a linha 3 temos:
l23 = l13 −m31 ∗ l11= [2 3 1 0]− 2 ∗ [1 0 1 0]= [0 3 − 1 0]
A nova matriz então será:
1 0 1 00 1 −1 10 3 −1 0
(2)
(1.42)
E agora temos:
l11 = [1 0 1 0]l22 = [0 1 − 1 1]l23 = [0 3 − 1 0]
Com o nosso pivô em a(2)22 , temos para k=2 e i=3 temos:
mik = aik
akk
m32 = a32
a22
m32 = 31 = 3
(1.43)
Assim a ultima linha fica:
l33 = l23 −m32 ∗ l22= [0 3 − 1 0]− 3 ∗ [0 1 − 1 1]= [0 0 − 2 − 3]
Consequentemente teremos:
16
l11 = [1 0 1 0]l22 = [0 1 − 1 1]l33 = [0 0 − 2 3]
Logo nossa nova matriz extendida equivalente a nossa matriz inicial é:
1 0 1 00 1 −1 10 0 2 −3
(3)
(1.44)
E o nosso sistema de equação linear torna-se:
x1 + x3 = 0x2 − x3 = 1
2x3 = −3 (1.45)
E podemos facilmente obter o conjunt solução.
1.5.2.2 Exercício
Resolva o seguinte sistema de equações lineares pelo método de Gauss sem troca de linha.
3x1 − 4x2 + 5x3 = −1−3x1 + 2x2 + x3 = 1
6x1 + 8x2 − x3 = 35
Escrevendo o sistema na forma matricial extendida utilizando a11 como pivô, temos:
3 −4 5 −1−3 2 1 16 8 −1 35
(1)
E nossas linhas são:
l11 =[
3 −4 5 −1]
l12 =[−3 2 1 1
]l13 =
[6 8 −1 35
]Lembrando lk+1
i = lki −miklkk onde mik = aik
akk
17
Para k=1, i=2:
l22 = l12 −a21
a11l11
=[
3 2 1 1]−(−3
3
) [3 −4 5 −1
]=[
3 2 1 1]− (−1)
[3 −4 5 −1
]=[
3 2 1 1]
+[
3 −4 5 −1]
l22 =[
0 −2 6 0]
Para k=1, i=3:
l23 = l13 −a31
a11l11
=[
6 8 −1 35]−(6
3
) [3 −4 5 −1
]=[
6 8 −1 35]− (2)
[3 −4 5 −1
]=[
6 8 −1 35]−[
6 −8 10 −2]
l23 =[
0 16 −11 37]
A nova matriz então torna-se:
3 −4 5 −10 -2 6 00 16 −11 37
(2)
Agora com o pivô em a22. Assim, para k=2,i=3:
l33 = l23 −a32
a22l22
=[
0 16 −11 37]−( 16−2
) [0 −2 6 0
]=[
0 16 −11 37]
+ (8)[
0 −2 6 0]
=[
0 16 −11 37]
+[
0 −16 48 0]
l33 =[
0 0 37 37]
A nova matriz então torna-se:
3 −4 5 −10 −2 6 00 0 37 37
(3)
18
E nosso sistema de equações lineares equivalente é:
3x1 − 4x2 + 5x3 = −1−2x2 + 6x3 = 0
37x3 = 37
1.5.3 Métodos diretos - Eliminação de Gauss com troca de linhaO princípio básico desta metodologia é utilizar duas operações elementares, a troca de linha
I e a operação elementar III que já utilizamos para descrever o método de Gauss sem troca delinha.
Utilizaremos como exemplo o mesmo sistema de equações do exercício 1.5.2.2,
3x1 − 4x2 + 5x3 = −1−3x1 + 2x2 + x3 = 1
6x1 + 8x2 − x3 = 35
A troca de linha denominada pivoteamento parcial consiste em selecionar o maior valorabsoluto da coluna que será eliminada, lembrando sempre que o pivô segue na diagonal principal,assim de acordo com nossa matriz extendida
3 −4 5 −1−3 2 1 16 8 −1 35
(1)
O maior valor absoluto da primeira coluna é 6 assim, reordenando temos:
6x1 + 8x2 − x3 = 35−3x1 + 2x2 + x3 = 13x1 − 4x2 + 5x3 = −1
E
l11 =[
6 8 −1 35]
l12 =[−3 2 1 1
]l13 =
[3 −4 5 −1
]Lembrando lk+1
i = lki −miklkk onde mik = aik
akk
Para k=1, i=2:
19
l22 = l12 −a21
a11l11
=[−3 2 1 1
]−(−3
6
) [6 8 −1 35
]=[−3 2 1 1
]+(1
2
) [6 8 −1 35
]=[−3 2 1 1
]+[
3 4 −12
352
]l22 =
[0 6 1
2372
]Para k=1, i=3:
l23 = l13 −a31
a11l11
=[
3 −4 5 −1]−(3
6
) [6 8 −1 35
]=[
3 −4 5 −1]−(1
2
) [6 8 −1 35
]=[
3 −4 5 −1]−[
3 4 −12
352
]l23 =
[0 −8 11
2 −372
]Nossa nova matriz então:
6 8 −1 350 6 1
2372
0 −8 112 −37
2
(2)
Aplicando o critério de seleção de linha pivô agora nas linhas 2 e 3 vemos que a linha 3 temo maior valor absoluto logo:
6 8 −1 350 −8 11
2 −372
0 6 12
372
(2)
Para k=2 e i=3 temos:
l33 = l23 −a32
a22l22
=[
0 6 12
372
]−( 6−8
) [0 −8 11
2372
]=[
0 6 12
372
]+(3
4
) [0 −8 11
2372
]=[
0 6 12
372
]−[
0 −6 338 −111
8
]l33 =
[0 0 37
8378
]
20
E nossa matriz final torna-se:
6 8 −1 350 6 1
2372
0 0 378
378
(3)
1.5.4 Métodos diretos - Fatoração ou decomposição LUConsidere um sistema linear m× n com n variáveis x1, x2, ..., xn:
Ax = b
Onde [A] = [ajk]n×n, xT = [x1, x2, ..., xn] e bT = [b1, b2, ..., bn]Podemos definir a matriz [A] como um produto de duas matrizes:
[A] = [L] . [U ]
Com:
• [L] - matriz triangular inferior
[L] =
l11 0 . . . 0l21 l22 . . . 0... ... . . . 0ln1 ln2 . . . lnn
• [U ] - matriz triangular superior
[U ] =
u11 u12 . . . u1n
0 u22 . . . u2n... ... . . . ...0 0 . . . unn
1.5.4.1 Exemplo 3
Encontre as matrizes L e U da matriz seguinte matriz[
2 38 5
].
Definindo as matrizes LU e multiplicando L× U temos:
21
[2 38 5
]=[l11 0l21 l22
] [u11 u120 u22
]
=[l11.u11 + 0.0 l11.u12 + 0.u22l21.u11 + l22.0 l21.u12 + l22.u22
]
=[l11.u11 l11.u12l21.u11 l21.u12 + l22.u22
]
Igualando os termos temos:
l11.u11 = 2l11.u12 = 3l21.u11 = 8
l21.u12 + l22.u22 = 5
Que é um sistema de 4 equações e 5 variáveis, e para resolver isto se a matriz [A] é nãosimétrica, ou seja [A] 6= [A]T , temos:
1. Decomposição de Doolittle
[A] = [L] . [U ]
Com
[L] =
1 0 . . . 0l21 1 . . . 0... ... . . . ...ln1 ln2 . . . 1
lij = 0; i < jlij = 1; i = j
e
[U ] =
u11 u12 . . . u1n
0 u22 . . . u2n... ... . . . ...0 0 . . . unn
uij = 0; i > j
2. Decomposição de Crout
[A] = [L] . [U ]
22
Com
[L] =
l11 0 . . . 0l21 l22 . . . 0... ... . . . ...ln1 ln2 . . . lnn
lij = 0; i < j
e
[U ] =
1 u12 . . . u1n
0 1 . . . u2n... ... . . . ...0 0 . . . 1
uij = 0; i > juij = 1; i = j
Caso [A] seja simétrica, ou seja [A] = [A]T temos:
1. Decomposição de Cholesky
[A] = [L][L]T
=
l11 0 . . . 0l21 l22 . . . 0... ... . . . 0ln1 ln2 . . . lnn
l11 l21 . . . ln10 l22 . . . ln2... ... . . . ...0 0 . . . lnn
2. Decomposição de Gauss
[A] = [U ]T [D][U ]
Onde
[U ] = (uij)n tal que uij = 1; i = j
[L] = (lij)n tal que lij = 1; i = j
[D] =
d11 0 0 . . . 00 d22 0 . . . 00 0 d33 . . . 0... ... . . . ...0 0 0 . . . dnn
Matriz Diagonal
Agora, voltando ao nosso problema inicial [A]{x} = {b} aplicando a decomposição [A] = [L][U ]temos:
23
[L][U ]{x} = {b}
Fazendo: [U ]{x} = {y} – Sistema Triangular SuperiorLogo: [L]{y} = {b} – Sistema Triangular Inferior
1.5.4.2 Exercício - Decomposição de Doolittle
Vamos resolver a matriz proposta no exemplo por decomposição de Doolittle
[2 38 5
]=[
1 0l21 1
] [u11 u120 u22
]
=[
1.u11 + 0.0 1.u12 + 0.u22l21.u11 + 1.0 l21.u12 + 1.u22
]
=[
u11 u12l21.u11 l21.u12 + u22
]
Igualando os termos temos:
u11 = 2u12 = 3
l21.u11 = 8⇒ l21 = 82 = 4
l21.u12 + u22 = 5⇒ 4.3 + u22 = 5⇒ u22 = −7
E nossa matriz [A] pode ser escrita como o seguinte produto:
[2 38 5
]=[
1 04 1
] [2 30 −7
]
1.5.4.3 Exercício - Decomposição de Doolittle
Resolva o sistema de equações lineares abaixo pelo método da decomposição de Doolittle
3x1 + 5x2 + 2x3 = 08x2 + 2x3 = −7
6x1 + 2x2 + 8x3 = 26
24
Primeiramente vamos obter as matrizes L e U pela decomposição de Doolittle, assim:
A =
3 5 20 8 26 2 8
=
1 0 0l21 1 0l31 l32 1
u11 u12 u13
0 u22 u230 0 u33
=
u11 u12 u13l12.u11 l21.u12 + u22 l21.u13 + u23l31.u11 l31.u12 + l32.u22 l31.u13 + l32.u23 + u33
Assim, igualando os termos temos:
u11 = 3u12 = 5u13 = 2
l21u11 = 0⇒ l21 = 0l21u12 + u22 = 8⇒ 0 + u22 = 8⇒ u22 = 8l21.u13 + u23 = 2⇒ 0 + u23 = 2⇒ u23 = 2
l31.u11 = 6⇒ l31.3 = 6⇒ l31 = 63 = 2
l31.u12 + l32.u22 = 2⇒ 2.5 + l32.8 = 2⇒ 8l32 = 2− 10⇒ l32 = −88 = −1
l31.u13 + l32.u23 + u33 = 8⇒ 2.2 + (−1).2 + u33 = 8⇒ 4− 2 + u33 = 8⇒ u33 = 8 + 2− 4 = 6
Assim nossa matriz [A] pode ser decomposta em:
[A] = [L][U ]→
3 5 20 8 26 2 8
=
1 0 00 1 02 −1 1
3 5 2
0 8 20 0 6
Resolvendo o sistema triangular inferior Ly = b temos:
1 0 00 1 02 −1 1
y1y2y3
=
8−726
⇒ y1 = 8y2 = −7
2.8− (−7) + y3 = 26→ y3 = 3
Resolvendo o sistema triangular superior Ux = y temos:
3 5 20 8 20 0 6
x1x2x3
=
8−73
⇒ x3 = 36 = 1
28x2 + 2
(12
)= −7⇒ x2 = −7−1
8 = −13x1 + 5(−1) + 2
(12
)= 8⇒ x1 = 12
3 = 4
25
1.5.4.4 Exercício - Decomposição de Crout
Resolva o sistema de equações lineares abaixo pelo método da decomposição de Crout
3x1 + 5x2 + 2x3 = 08x2 + 2x3 = −7
6x1 + 2x2 + 8x3 = 26
Vamos encontrar as matrizes [L] e [U ]
A =
3 5 20 8 26 2 8
=
l11 0 0l21 l22 0l31 l32 l33
1 u12 u13
0 1 u230 0 1
=
l11 l11u12 l11u13l21 l21u12 + l22 l21u13 + l22u23l31 l31u12 + l32 l31u13 + l32u23 + l33
Igualando os termos temos:
l11 = 3l21 = 0l31 = 6
u12 = 5l11
= 53
u13 = 2l11
= 23
l22 = 8− l21U12 = 8− 0.53 = 8
u23 = 2− l21u13
l22=
2− 023
8 = 14
l32 = 2− l31u12 = 2− 653 = −8
l33 = 8− l31u13 − l32u23 = 8− 623 − (−8)1
4 = 6
Logo:
A =
3 0 00 8 06 −8 6
1 5/3 2/3
0 1 1/40 0 1
Resolvendo o sistema triangular inferior Ly = b temos:
26
3 0 00 8 06 −8 6
y1y2y3
=
8−726
⇒ y1 = 8/3y2 = −7/8
6(
83
)− 8
(−78
)+ 6y3 = 26→ y3 = 1
2
Resolvendo o sistema triangular superior Ux = y temos:
1 5/3 2/30 1 1/40 0 1
x1x2x3
=
8/3−7/81/2
⇒ x3 = 12
x2 + 14
(12
)= −7
8 ⇒ x2 = −1x1 − 5
3(−1) + 23
(12
)= 8
3 ⇒ x1 = 123 = 4
1.5.4.5 Exercício - Decomposição de Cholesky
Decomponha a matriz 3x3 abaixo pelo método de Cholesky
A =
4 2 142 17 −514 −5 83
A condição inicial para o método de Cholesky é que a matriz seja simétrica, ou seja A = AT ,
e podemos facilmente verificar esta condição.Agora vamos aplicar a decomposição de Cholesky para uma matriz 3x3:
4 2 142 17 −514 −5 83
=
l11 0 0l21 l22 0l31 l23 l33
l11 l21 l31
0 l22 l320 0 l33
=
l211 l11l21 l11l31l21l11 l221 + l222 l21l31 + l22l32l31l11 l31l21 + l32l22 l231 + l232 + l233
Igualando ambos os termos temos:
l211 = 4⇒ l11 =√
4 = 2
l11l21 = 2⇒ l21 = 22 = 1
l11l31 = 14⇒ l31 = 142 = 7
l221 + l222 = 17⇒ l22 =√
17− 12 = 4
l21l31 + l22l32 = −5⇒ l32 = (−5− 1× 7)4 = −3
l231 + l232 + l233 = 83⇒ l33 =√
83− (−3)2 − (7)2 = 5
27
Logo nossa matriz L é:
L =
2 0 01 4 07 −3 5
Para verificar se a matriz está correta basta fazer a operação [L][L]T = [A].
1.5.4.6 Generalização - Sistemas triangulares inferiores
Descreveremos a resolução de sistemas triangulares inferiores
Dado o sistema [L]{y} = {b} de ordem n, vamos realizar a multiplicação matricial:
l11 0 0 . . . 0l21 l22 0 . . . 0l31 l32 l33 . . . 0... ... ... . . . ...ln1 ln2 ln3 . . . lnn
y1y2y3...yn
=
b1b2b3...bn
Temos:
l11y1 = b1 ⇒ y1 = b1
l11
l21y1 + l22y2 = b2 ⇒ y2 = b2 − l21y1
l22
l31y1 + l32y2 + l33y3 = b3 ⇒ y3 = b3 − l31y1 − l32y2
l33
Seguindo o raciocínio temos:
y4 = b4 − l41y1 − l42y2 − l43y3
l44
y5 = b5 − l51y1 − l52y2 − l53y3 − l54y4
l55
yn = bn − ln1y1 − ln2y2 − ln3y3 − ln4y4 − . . .− ln(n−1)y(n−1)
lnn
Logo, fazendo i = n e n − 1 = m podemos escrever o conjunto de soluções da seguintemaneira:
28
y1 = b1
l11
yi =
(bi −
i−1∑m=1
limym
)lii
para i = 2, . . . , n
Com lii 6= 0; lij = 0 para i < j; 1 ≤ i, j ≤ n.
1.5.4.7 Generalização - Sistemas triangulares superiores
Descreveremos a resolução de sistemas triangulares superiores
Dado o sistema [U ]{x} = {y} de ordem n:
u11 . . . u1(n−2) u1(n−1) u1n... . . . ... ... ...0 . . . u(n−2)(n−2) u(n−2)(n−1) u(n−2)n0 . . . 0 u(n−1)(n−1) u(n−1)n0 . . . 0 0 unn
x1...
x(n−2)x(n−1)xn
=
y1...
y(n−2)y(n−1)yn
Vamos realizar a multiplicação matricial e igualando os termos temos:
unnxx = yn ⇒ xn = yn
unn
u(n−1)(n−1)x(n−1) + u(n−1)nxn = y(n−1) ⇒ x(n−1) = (y(n−1) − u(n−1)nxn)u(n−1)(n−1)
u(n−2)(n−2)x(n−2) + u(n−2)(n−1)x(n−1) + u(n−2)nxn = y(n−2)
⇒ x(n−2) = (y(n−2) − u(n−2)nxn − u(n−2)(n−1)x(n−1))u(n−2)(n−2)
Assim:Dado [U ]{x} = {y} com uii 6= 0; uij = 0, i > j e 1 ≤ i, j ≤ nTemos:
xn = yn
unn
xi =
yi −n∑
j=i+1uijxj
uii
para i = n− 1, n− 2, . . . , 1
29
1.5.4.8 Generalização - Decomposição de Doolittle
A decomposição de Doolittle possui a forma [A] = [L][U ] com lii = 1. Escrevendo para ntermos temos:
a11 a12 a13 a14 . . . a1n
a21 a22 a23 a24 . . . a2n
a31 a32 a33 a34 . . . a3n
a41 a42 a43 a44 . . . a4n
......
......
. . ....
an1 an2 an3 an4 . . . ann
=
1 0 0 0 0 0l21 1 0 0 0 0l31 l32 1 0 0 0l41 l42 l43 1 0 0...
......
.... . .
...ln1 ln2 ln3 ln4 . . . 1
u11 u12 u13 u14 . . . u1n
0 u22 u23 u24 . . . u2n
0 0 u33 u34 . . . u3n
0 0 0 u44 . . . u4n
......
......
. . ....
0 0 0 0 . . . unn
→ 1a linha de [A]: a1j (manter a primeira linha de [L] e variar a coluna de [U ])
a11 = u11a12 = u12a13 = u13a14 = u14... ...a1n = u1n
⇒ u1n = a1n
u1j = a1jpara j = 1, . . . , n
→ 1a coluna de [A]: ai1, para i = 2, . . . , n (manter a primeira coluna de [U ] e variar a partirda segunda linha de [L])
a21 = l21u11a31 = l31u11a41 = l41u11... ...an1 = ln1u11
⇒ln1 = an1
u11
li1 = ai1u11
para i = 2, . . . , n
→ 2a linha de [A]: a2j para j = 2, . . . , n (manter a segunda linha de [L] e variar a partir dasegunda coluna de [U ])
a22 = l21u12 + u22a23 = l21u13 + u23a24 = l21u14 + u24... ...a2n = l21u1n + u2n
⇒ u2n = a2n − l21u1n
u2j = a2j − l21u1jpara j = 2, . . . , n
→ 2a coluna de [A]: ai2, para i = 3, . . . , n (manter a segunda coluna de [U ] e variar a partir daterceira linha de [L])
30
a32 = l31u12 + l32u22a42 = l41u12 + l42u22... ...an2 = ln1u12 + ln2u22
⇒ln2 = an2−ln1u12
u22
li2 = ai2−li1u12u22
para i = 3, . . . , n
→ 3a linha de [A]: a3j para j = 3, . . . , n (manter a terceira linha de [L] e variar a partir daterceira coluna de [U ])
a33 = l31u13 + l32u23 + u33a34 = l31u14 + l32u24 + u34... ...a3n = l31u1n + l32u2n + u3n
⇒ u3n = a3n − l31u1n − l32u2n
u3j = a3j − l31u1j − l32u2jpara j = 3, . . . , n
→ 3a coluna de [A]: ai3, para i = 4, . . . , n (manter a terceira coluna de [U ] e variar a partir daquarta linha de [L])
a43 = l41u13 + l42u23 + l43u33... ...an3 = ln1u13 + ln2u23 + ln3u33
⇒ln3 = an3−ln1u13−ln2u23
u33
li3 = ai3−li1u13−lj2u23u33
para i = 4, . . . , n
Assim temos:
1a linha : u1j = a1j j = 1, . . . , n
1a coluna : li1 = ai1u11
i = 2, . . . , n
k − esima linha : linha : ukj = akj −k−1∑m=1
lkmumj k = 2, . . . , n
j = k, k + 1, . . . , n
k − esima coluna : lik =
aik−k−1∑m=1
limumk
ukk
k = 2, . . . , ni = k + 1, k + 2, . . . , n
31
1.5.4.9 Generalização - Decomposição de Crout
A decomposição de Crout possui a forma [A] = [L][U ], uii = 1
1a linha : u1j = a1j
l11j = 2, . . . , n
1a coluna : li1 = ai1 i = 1, . . . , n
k − esima coluna : lik = aik −k−1∑m=1
limumk k = 2, . . . , n
i = k, k + 1, . . . , n
k − esima linha : linha : ukj =akj−
k−1∑m=1
lkmumj
lkkk = 2, . . . , n
j = k + 1, . . . , n
1.5.4.10 Generalização - Decomposição de Cholesky
Seja A uma matriz simétrica então por Cholesky L = LT logo:
a11 a12 a13 . . . a1n
a21 a22 a23 . . . a2n
a31 a32 a33 . . . a3n... ... ... . . . ...an1 an2 an3 . . . ann
=
l11 0 0 . . . 0l21 l22 0 . . . 0l31 l32 l33 . . . 0... ... ... . . . ...ln1 ln2 ln3 . . . lnn
l11 l21 l31 . . . ln10 l22 l32 . . . ln20 0 l33 . . . ln3... ... ... . . . ...0 0 0 . . . lnn
Porque A é uma matriz simétrica sabemos que a12 = a21, a13 = a31, . . ., a1n = an1 e a23 = a32
etc.Agora realizando a multiplicação e igualando os termos chegamos:
a11 = l211 ⇒ l11 = √a11
a1n = l11ln1 ⇒ ln1 = a1n
l11Logo lj1 = aj1
l11para j = 2, . . . , n
Seguindo o mesmo raciocínio vamos obter o lnn:
32
a22 = l221 + l222 ⇒ l22 =√a22 − l221
a33 = l231 + l232 + l233 ⇒ l33 =√a33 − l231 − l232
ann = l2n1 + l2n2 + l2n3 + . . .+ l2nn ⇒ lnn =√ann − l2n1 − l2n2 − l2n3 − . . .
ljj =
√√√√ajj −j−1∑
s
ljs para j = 2, . . . , n
Vamos obter a última expressão, lembrando que a2n = an2, etc:
an2 = a2n = ln1l21 + ln2l22 ⇒ ln2 = 1l22
(a2n − ln1l21)
an3 = a3n = ln1l31 + ln2l32 + ln3l33 ⇒ ln3 = 1l33
(a3n − ln1l31 − ln2l32)
ln4 = 1l44
(a4n − ln1l41 − ln2l42 − ln3l43)
ljk = 1lkk
(ajk −k−1∑s=1
ljslks) para j = k + 1, . . . , n e k ≥ 2
Resumindo temos então:
l11 = √a11
lj1 = aj1
l11para j = 2, . . . , n
ljj =
√√√√ajj −j−1∑s=1
l2js para j = 2, . . . , n
ljk = 1lkk
(ajk −k−1∑s=1
ljslks) para j = k + 1, . . . , n e k ≥ 2
1.5.5 Métodos diretos - Sistemas subdeterminadosSeja o seguinte sistema de equações lineares:
[A]m×n {x}n×1 = {b}m×1 onde m < n
E:
• [A] uma matriz retangular
33
• m é o número de linhas ou equações
• n é o número de colunas ou incógnitas
O procedimento para solução de um sistema deste tipo é:
1. Aplica-se o método de Gauss
2. Determinar a consistência do sistema
3. Se o sistema é consistente determinar a solução não trivial
No sistema acima: B indica variáveis básicas e L indica variáveis livres (posso escolher o valor).Assim, faz-se o particionamento do sistema da seguinte forma:
[[A]BB [A]BL
[0] [0]
]=[{x}B
{x}L
] [{b}B
{b}L
]
O teste de consistência é, se {b}L = 0Então a solução do sistema será:
[A]BB{x}B + [A]BL{x}L = {b}B
{x}B = [A]−1BB ({b}B − [A]BL{x}L)
O sistema possui infinitas soluções.
1.5.5.1 Exemplo
Resolva o sistema abaixo pelo método de solução de sistemas subdeterminados.
u+ 3v + 3w + 2z = 12u+ 6v + 9w + 5z = 5−u− 3v + 3w = 5
Pelo sistema de equações observamos que é um sistema de 3 equações e 4 incógnitas. Entãoo sistema acima escrito na forma matricial:
34
1 3 3 22 6 9 5−1 −3 3 0
uvwz
=
155
Vamos aplicar o método de Gauss no sistema acima:
1 3 3 2 12 6 9 5 5−1 −3 3 0 5
(1)
E nossas linhas são:
l11 =[
1 3 3 2 1]
l12 =[
2 6 9 5 5]
l13 =[−1 −3 3 0 5
]Lembrando lk+1
i = lki −miklkk onde mik = aik
akk
Para k=1 e i=2 temos:
l22 = l12 −a21
a11l11
=[
2 6 9 5 5]− 2
[1 3 3 2 1
]=[
2 6 9 5 5]−[
2 6 6 4 2]
l22 =[
0 0 3 1 3]
Para k=1 e i=3 temos:
l23 = l13 −a31
a11l11
=[−1 −3 3 0 5
]− (−1)
[1 3 3 2 1
]=[−1 −3 3 0 5
]+[
1 3 3 2 1]
l23 =[
0 0 6 2 6]
Logo a matriz de interação 2 é:
1 3 3 2 10 0 3 1 30 0 6 2 6
(2)
35
Vamos realizar uma troca de coluna para colocarmos o pivô na coluna 2, assim temos:
1 3 3 2 10 3 0 1 30 6 0 2 6
(2)
Agora para k=2 e i=3 temos:
l33 = l23 −a32
a22l22
=[
0 6 0 2 6]− 2
[0 3 0 1 3
]=[
0 6 0 2 6]−[
0 6 0 2 6]
l33 =[
0 0 0 0 0]
Logo temos:
1 3 3 2 10 3 0 1 30 0 0 0 0
(3)
E nosso sistema matricial torna-se:
1 3 3 20 3 0 10 0 0 0
uvwz
=
130
Assim temos os seguintes termos:
[A]BB =[
1 30 3
]
[A]BL =[
3 20 1
]
{x}B ={uw
}
{x}L ={vz
}
{b}B ={
13
}{b}L = {0}
36
Aplicando o teste de consistência {b}L = {0}: OKLogo a solução do sistema é:
{x}B = [A]−1BB ({b}B − [A]BL{x}L)
{x}B =[
1 30 3
]−1 ({ 13
}−[
3 20 1
]{vz
})
A matriz[
1 30 3
]−1
é[
1 −10 1/3
], logo:
{x}B =[
1 −10 1/3
]({13
}−[
3 20 1
]{vz
})={uw
}{uw
}=[
1 −10 1/3
]({13
}−{
3v + 2zz
})
=[
1 −10 1/3
]({1− 3v − 2z
3− z
})
={
1− 3v − 2z + (−1)(3− z)13(3− z)
}
={
1− 3v − 2z − 3 + z1− z
3
}{uw
}={−2− 3v − z
1− z3
}
Logo temos:
{u = −2− 3v − z
w = 1− z3
Uma solução particular é quando v = y = 0.Reescrevendo o sistema acima temos
37
Apêndice A
Algebra Matricial
Como matriz é uma das ferramentas mais poderosas da matemática, vamos relembrar algu-mas de suas propriedades algébricas.
Todos os elementos de uma matriz, aqui definidos por letras minúsculas são denominadosescalares e normalmente são números ∈ R ou ∈ C. Quando referimos a matriz com todos osseus elementos escrevemos em letras maiúsculas. Podemos simplificar a notação também daseguinte forma: A = (aij).
A.1 IgualdadeDuas matrizes Am×n e Bm×n são ditas iguais se aij = bij para todos i e j.
A.2 Multiplicação por um escalarαA é obtido multiplicando cada elemento de A por α.
A.3 Soma de matrizesSejam A = (aij) e B = (bij) matrizes m×n então A+B = aij + bij para cada par ordenado
(i,j).
A.4 Subtração de matrizesPodemos definir a subtração A−B como A+(−1)B, e teremos duas operações, multiplicação
por um escalar e soma normal.
A.5 Matriz IdentidadeMatriz identidade é toda matriz cuja diagonal principal é 1
38
A.6 Inversa de uma matrizUma matriz A é dita invertível se e somente se A.A−1 = I
39
Apêndice B
Programas utilizados neste documentoem Scilab/Matlab
Nas seções abaixo, os programas apresentados com comentários utilizando // são utilizadosdiretamente no Scilab, no caso de utilização no Matlab deve-se trocar o // por %. Os programastotalmente compatíveis com o Matlab podem ser rodados utilizando o programa Octave.
B.1 Representação gráfica do sistema de equaçõesclear; //limpa navegador de variáveisclc;x1=[0:0.1:5]; //Cria um vetor de 1 a 6 de um em umx2=2-x1;x3=x1-2;scf(1) //Cria uma janela gráficaplot(x1,x2,x1,x3);legend(’x1+x2=2’,’x1-x2=2’);
x2=2-x1;x3=1-x1;scf(2) //Cria uma janela gráficaplot(x1,x2,x1,x3);legend(’x1+x2=2’,’x1+x2=1’);
x2=2-x1;x3=2-x1;scf(3) //Cria uma janela gráficaplot(x1,x2,x1,x3);legend(’x1+x2=2’,’-x1-x2=-2’);
40
B.2 Exemplo 1clear; //limpa navegador de variáveisclc;x1=[0:1:6]; //Cria um vetor de 1 a 6 de um em umx2=5-2*x1;x3=(1/3)*x1-2;scf(1) //Cria uma janela gráficaplot(x1,x2,x1,x3);legend(’2x1+x2=5’,’x1-3x2=6’);
B.3 Verificação da matriz L 3x3 do método de Choleskyclear; //limpa navegador de variáveisclc;A=[4 2 14; 2 17 -5 ; 14 -5 83]; // Matriz AL=[2 0 0;1 4 0;7 -3 5]; // Matriz LC=L*L’;if C==A then mprintf(’OK \n’);end
B.4 Gauss sem troca de linhasclear; //limpa navegador de variáveisclc;A=[3 -4 5;-3 2 1;6 8 -1] // Matriz Ab=[-1;1;35]
ab=[A,b] // carrega matriz extendida[n,m]=size(A) // Atribui o tamanho da matriz nas variáveis n e m
for k=1:n-1for i=k+1:n
ab(i,:)=ab(i,:)- (ab(i,k)/ab(k,k))*ab(k,:)//Aplica o método da//eliminação de Gauss
endend
for i=1:nfor j=1:nsuperior(i,j)=ab(i,j) //Determina a nova matriz triangular para o calculoend
end
41
for i=1:ny(i)=ab(i,m+1) // Inicializa o novo vetor b e aplica em y para calcular
// o sistema triangular superiorend
// Calcula sistema triangular superior [U][x]=[y]for i=1:1:n //Inicializa X(i)
x(i)=0 //end //x(n)=y(n)/superior(n,n)for i=n-1:-1:1
soma=0;for j=i+1:n
soma=soma+superior(i,j)*x(j)endx(i)=(y(i)-soma)/superior(i,i)
end//Fim
x’
B.5 Gauss com pivotamentoclear //limpa navegador de variáveisclcA=[0 0 2 1 2 ;0 1 0 2 -1 ;1 2 0 -2 0;0 0 0 -1 1; 0 1 -1 1 -1] // Matriz Ab=[1;1;-4;-2;-1]
ab=[A,b] // carrega matriz extendida[n,m]=size(A) // Atribui o tamanho da matriz nas variáveis n e m
ab1=ab
for k=1:n-1v=0v=ab1l=k-1
[minimo,linha_min]=min(abs(v(k:n,k)))[maximo,linha_max]=max(abs(v(k:n,k)))
if minimo==0&linha_min<linha_max thenab1(linha_max+l,:)=v(linha_min+l,:)ab1(linha_min+l,:)=v(linha_max+l,:)
else if linha_max>linha_min thenab1(linha_max+l,:)=v(linha_min+l,:)ab1(linha_min+l,:)=v(linha_max+l,:)
42
endendfor i=k+1:n
ab1(i,:)=ab1(i,:)-(ab1(i,k)/ab1(k,k))*ab1(k,:)//Aplica o método da//eliminação de Gauss
endab=ab1
end
for i=1:nfor j=1:nsuperior(i,j)=ab1(i,j) //Determina a nova matriz triangular para o calculoend
end
for i=1:ny(i)=ab1(i,m+1) // Inicializa o novo vetor b e aplica em y para calcular o// sistema triangular superior
end
// Calcula sistema triangular superior [U][x]=[y]for i=1:1:n //Inicializa X(i)
x(i)=0 //end //x(n)=y(n)/superior(n,n)for i=n-1:-1:1
soma=0for j=i+1:n
soma=soma+superior(i,j)*x(j)endx(i)=(y(i)-soma)/superior(i,i)
end//Fim
x’
B.6 Programa método de Choleskyclear //limpa navegador de variáveisclcA=[4 2 14; 2 17 -5 ; 14 -5 83] // Matriz Ab=[14;-101;155]
[n,m]=size(A)
43
L=zeros(n,m) // Inicializa uma matriz nula nxm
L(1,1)=sqrt(A(1,1)) // Primeira Equacao
for i=2:1:nL(i,1)=A(i,1)/L(1,1) // Segunda Equação
end
for i=2:1:n-1soma1=0for j=1:i-1
soma1=soma1+L(i,j)^2endL(i,i)=sqrt(A(i,i)-soma1)for j=i+1:n
soma2=0for k=1:i-1
soma2=soma2+L(j,k)*L(i,k)endL(j,i)=(1/L(i,i))*(A(j,i)-soma2)
endend
soma3=0for k=1:n-1
soma3=soma3+L(n,k)^2endL(n,n)=sqrt(A(n,n)-soma3)
for i=1:1:n //Inicializa Y(i)y(i)=0 //
end //for i=1:1:n //Inicializa X(i)
x(i)=0//end //
U=L’
if L*U==A then // Confere se L*U=A para calcular os sistemas triangularesmprintf(’L*U=A \n OK \n’)// Calcula sistema triangular inferior [L][y]=[b]for i=1:1:n //Inicializa Y(i)
y(i)=0 //
44
end //y(1)=b(1)/L(1,1) // Calcula Y(1)for i=2:1:n
soma=0for m=1:1:i-1
soma=soma+L(i,m)*y(m)end
y(i)=(b(i)-soma)/L(i,i) // Calcula o resto dos termosend// Calcula sistema triangular superior [U][x]=[y]for i=1:1:n //Inicializa X(i)
x(i)=0 //end //x(n)=y(n)/U(n,n)for i=n-1:-1:1
soma=0for j=i+1:n
soma=soma+U(i,j)*x(j)endx(i)=(y(i)-soma)/U(i,i)
end//Fim
else mprintf(’ERRO \n’)end
x’
B.7 Programa método de Doolittleclear; //limpa navegador de variáveisclc;A=[3 5 2;0 8 2;6 2 8]; // Matriz Ab=[8;-7;26];
[n,m]=size(A); // Atribui o tamanho da matriz nas variáveis n e m
L=eye(n,m); // Le uma matriz identidade nxmU=zeros(n,m); // Carrega uma matriz nula nxm
// Inicia os calculos dos elementos das matrizes L e U
for j=1:1:nU(1,j)=A(1,j); //Calcula os termos da linha 1 da matriz U
end
45
for i=2:1:nL(i,1)=A(i,1)/U(1,1); // Calcula os termos da coluna 1 da matriz L
end
//Calcula os termos retantes da matriz L e Ufor k=2:1:n
for j=k:1:nsoma_lkm_umj=0;for m=1:1:k-1
soma_lkm_umj = soma_lkm_umj + L(k,m)*U(m,j);endU(k,j)=A(k,j)-soma_lkm_umj;
endfor i=k+1:1:n
soma_lim_umk=0;for m=1:1:k-1
soma_lim_umk=soma_lim_umk+L(i,m)*U(m,k);end
L(i,k)=(A(i,k)-soma_lim_umk)/U(k,k);end
end
if L*U==A then // Confere se L*U=A para calcular os sistemas triangularesmprintf(’L*U=A \n OK \n’)// Calcula sistema triangular inferior [L][y]=[b]for i=1:1:n //Inicializa Y(i)
y(i)=0; //end //
y(1)=b(1)/L(1,1); // Calcula Y(1)for i=2:1:n
soma=0;for m=1:1:i-1
soma=soma+L(i,m)*y(m);end
y(i)=(b(i)-soma)/L(i,i); // Calcula o resto dos termosend// Calcula sistema triangular superior [U][x]=[y]for i=1:1:n //Inicializa X(i)
x(i)=0; //end //x(n)=y(n)/U(n,n);for i=n-1:-1:1
soma=0;
46
for j=i+1:nsoma=soma+U(i,j)*x(j);
endx(i)=(b(i)-soma)/U(i,i);
end//Fim
end
B.8 Programa método de Croutclear; //limpa navegador de variáveisclc;A=[3 5 2;0 8 2;6 2 8]; // Matriz Ab=[8;-7;26];
[n,m]=size(A); // Atribui o tamanho da matriz nas variáveis n e m
U=eye(n,m); // Le uma matriz identidade nxmL=zeros(n,m); // Carrega uma matriz nula nxm
// Inicia os calculos dos elementos das matrizes L e Ufor i=1:n
L(i,1)=A(i,1); // Calcula 1a colunaend
for j=2:nU(1,j)=A(1,j)/L(1,1); //Calcula 1a linha
end
for k=2:nfor i=k:n
soma=0;for m=1:k-1
soma=soma+L(i,m)*U(m,k);end
L(i,k)=A(i,k)-soma; //Calcula n-esima colunaendfor j=k+1:n
soma=0;for m=1:1:k-1
soma=soma+L(k,m)*U(m,j)end
U(k,j)=(A(k,j)-soma)/L(k,k); //Calcula n-esima linhaend
47
end
if L*U==A then // Confere se L*U=A para calcular os sistemas triangularesmprintf(’L*U=A \n OK \n’)// Calcula sistema triangular inferior [L][y]=[b]for i=1:1:n //Inicializa Y(i)
y(i)=0; //end //
y(1)=b(1)/L(1,1); // Calcula Y(1)for i=2:1:n
soma=0;for m=1:1:i-1
soma=soma+L(i,m)*y(m);end
y(i)=(b(i)-soma)/L(i,i); // Calcula o resto dos termosend// Calcula sistema triangular superior [U][x]=[y]for i=1:1:n //Inicializa X(i)
x(i)=0; //end //x(n)=y(n)/U(n,n);for i=n-1:-1:1
soma=0;for j=i+1:n
soma=soma+U(i,j)*x(j);endx(i)=(y(i)-soma)/U(i,i);
end//Fim
end
B.9 Armazenamento Vetorialclear; %//limpa navegador de variáveisclc; %// limpa consoleA=[1 3 5 7;0 9 8 2;0 0 3 5;0 0 0 4]; %// Matriz A
[n,p]=size(A) %//Tamanho da matriz A
u=zeros(1,(n+1)*n/2) %//inicializa o vetor u
for i=1:nfor j=i:n
m=((j-1)*j/2)+i %//calcula a posição no vetor u
48
u(1,m)=A(i,j) %// atribui o valor no vetorend
end
u %//apresenta o vetor u
B=zeros(n,p)
for i=1:nfor j=i:n
m=((j-1)*j/2)+i %//calcula a posição no vetor uB(i,j)=u(1,m) %//atribui o valor na matriz Bend
end
B %// Apresenta a matriz BA %// Apresenta a matriz A
whos A % Apresenta as variáveis em formato extendidowhos u % Apresenta as variáveis em formato extendido
49