Upload
lamthuy
View
246
Download
0
Embed Size (px)
Citation preview
Matrizes - revisão
No caso da multiplicação ser possível, é
associativa
e distributiva
Não é, em geral, comutativa
2013/03/12 MN 1
CABBCA )()(
ACABCBA )(
BAAB
Matrizes - revisão
A divisão de matrizes não é uma operação
definida, mas podemos definir, para uma
matriz quadrada e não singular (*), uma
outra, chamada matriz inversa, tal que
AA-1=A-1A=I
Podemos então assimilar o produto de uma
matriz pelo inverso de outra como uma
divisão AB-1=A/B
2013/03/12 MN 2
Matrizes - revisão
Transposição
A=AT se aij = aji para todo o i e todo o j
é a matriz A aumentada de I
2013/03/12 MN 3
1000
010
001
...
...
...
][
21
22221
11211
mnmm
n
n
aaa
aaa
aaa
D
Matrizes
Pode empregar-se o M/O
para criar uma matriz
A=[1 5 6 ; 7 4 2; -3 6 7]
A = A’; octave-3.2.4.exe:56> x=[8 6 9];
octave-3.2.4.exe:57> y=[-5 8 1];
octave-3.2.4.exe:58> z=[4 8 2];
octave-3.2.4.exe:59> B=[x;y;z]
B =
8 6 9
-5 8 1
4 8 2
2013/03/12 MN 4
Matrizes
octave-3.2.4.exe:61> A*B
ans =
7 94 26
44 90 71
-26 86 -7
octave-3.2.4.exe:62> A.*B
ans =
8 30 54
-35 32 2
-12 48 14
2013/03/12 MN 5
Matrizes
octave-3.2.4.exe:63> D=[1 4 3;5 8 1]
D =
1 4 3
5 8 1
octave-3.2.4.exe:64> D*A
ans =
20 39 35
58 63 53
octave-3.2.4.exe:65> A*D
error: operator *: nonconformant arguments (op1 is 3x3, op2 is 2x3)
octave-3.2.4.exe:65>
2013/03/12 MN 6
Sistemas de equações
2013/03/12 MN 7
a11x1 a12x2 a13x3 b1
a21x1 a22x2 a23x3 b2
a31x1 a32x2 a33x3 b3
a11 a12 a13
a21 a22 a23
a31 a32 a33
x1
x2
x3
b1
b2
b3
[A]{x}{b}
Sistemas de equações
Para resolver um sistema representado por
matrizes podemos fazer:
x = A\b
x = inv(A)*b
2013/03/12 MN 8
Método de Gauss
Vamos ver como se obtêm os métodos
x = A\b
x = inv(A)*b
estudando diversos casos particulares de
sistemas de equações.
2013/03/12 MN 9
Sistemas com pequeno número de
equações
Método gráfico
Se tivermos duas equações lineares, cada
uma delas é representável por uma recta:
Como podemos ver na figura
2013/03/12 MN 10
12
1
92
3
22
1823
12
12
21
21
xx
xx
xx
xx
O ponto de intercepção das duas rectas
corresponde à solução do sistema.
2013/03/12 MN 11
Se o sistema tiver três equações a três
incógnitas, cada uma é representada por
um plano no espaço a três dimensões e a
solução é o ponto de intercepção dos três
planos.
Acima de três equações este método não é
prático mas pode permitir vislumbrar as
propriedades do sistema.
2013/03/12 MN 12
Casos particulares
a) sistema insolúvel
b) sistema indeterminado
c) sistema mal condicionado (solução
difícil)S
2013/03/12 MN 13
Determinantes
Para matrizes de pequenas dimensões
temos:
No terceiro caso os determinantes 2x2 são
os menores. 2013/03/12 MN 14
11 a11 a11
2 2a11 a12
a21 a22 a11a22 a12a21
3 3
a11 a12 a13
a21 a22 a23
a31 a32 a33
a11a22 a23
a32 a33 a12
a21 a23
a31 a33 a13
a21 a22
a31 a32
Exemplos
Figuras anteriores (slide 15-4)
(slide 15-2)
a)
b)
2013/03/12 MN 15
8)1(22.321
23
D
0)2
1(11.2
1
12
1
12
1
D
0)1(12.2
1
21
12
1
D
Regra de Cramer
Divide-se o determinante da matriz do
sistema com a coluna correspondente à
incógnita a calcular substituída pelos
termos independentes, pelo determinante
da matriz.
Vejamos um exemplo para um sistema a
três equações:
2013/03/12 MN 16
Regra de Cramer
333231
232221
131211
33321
23222
13121
1
aaa
aaa
aaa
aab
aab
aab
x
2013/03/12 MN 17
Regra de Cramer
2013/03/12 MN 18
• Determinar x2
• Determina-se D
• Calcula-se D2 substituindo a segunda coluna de D por b
• Divide-se
0.3x1 0.52x2 x3 0.01
0.5x1 x2 1.9x3 0.67
0.1x1 0.3x2 0.5x3 0.44
D
0.3 0.52 1
0.5 1 1.9
0.1 0.3 0.5
0.31 1.9
0.3 0.50.52
0.5 1.9
0.1 0.510.5 1
0.1 0.4 0.0022
D2
0.3 0.01 1
0.5 0.67 1.9
0.1 0.44 0.5
0.30.67 1.9
0.44 0.50.01
0.5 1.9
0.1 0.510.5 0.67
0.1 0.44 0.0649
x2 D2
D0.0649
0.0022 29.5
Regra de Cramer
Matlab/Octave
>> A=[0.3 0.52 1;0.5 1 1.9; 0.1 0.3 0.5];
>> D=det(A)
D =
-0.0022
>> A(:,1)=[-0.01;0.67;-0.44]
A =
-0.0100 0.5200 1.0000
0.6700 1.0000 1.9000
-0.4400 0.3000 0.5000
>> x1=det(A)/D
x1 =
-14.9000
2013/03/12 MN 19
Regra de Cramer
Para um número elevado de equações >3, a
regra de Cramer é pouco prática, porque
os determinantes levam bastante tempo a
ser calculados. Neste exemplo já é
perceptível que há uma certa demora em
os calcular.
2013/03/12 MN 20
Regra de Cramer
Para efectuar esta operação necessitamos
de 2(n+1)! operações
ou seja se n = 15
a velocidade do processador fôr 1 Gflop,
resulta um tempo de cerca de 12 horas.
se n = 20 3240 anos
se n = 100 10143 anos
2013/03/12 MN 21
Método de Gauss
1. Eliminam-se
sucessivamente os
coeficientes das
incógnitas até a matriz
ser triangular superior
2. Substitui-se, por ordem
inversa, cada um dos
valores das incógnitas
nas equações
imediatamente
superiores
2013/03/12 MN 22
Método de Gauss
A primeira fase destina-se a eliminar a
primeira incógnita desde a segunda
equação até à última.
2013/03/12 MN 23
2013/03/12 MN 24
1
11
2121
11
2122
11
2122
1
11
211
11
21313
11
21212
11
21121
11
21
22323222121
11313212111
a
a
a
a...
a
a
segunda da se-subtrai
a
a
a
a...
a
a
a
a
a
apor se-multiplica
...
...
bbxaaxa
bxaxaxaxa
bxaxaxaxa
bxaxaxaxa
nnn
nn
nn
nn
O processo é repetido para as outras
equações, com por exemplo:
multiplica-se a primeira por a31/a11 e o
resultado é subtraído da terceira equação,
repetindo-se o processo até equação n.
O esquema repete-se para a terceira
equação e assim sucessivamente, até se
obter o sistema a que corresponde uma
matriz triangular superior.
2013/03/12 MN 25
Em seguida aplicam-
-se as expressões
2013/03/12 MN 26
1 ..., 2,-n 1,-ni para )1(
1
)1()1(
)1(
)1(
i
ii
n
ij
j
i
ij
i
i
i
n
nn
n
nn
a
xab
x
a
bx
function x = GaussNaive(A,b)
% GaussNaive: naive Gauss elimination – porquê Naive?
% x = GaussNaive(A,b): Gauss elimination without pivoting.
% input:
% A = coefficient matrix
% b = right hand side vector
% output:
% x = solution vector
[m,n] = size(A);
if m~=n, error('Matrix A must be square'); end
nb = n+1;
Aug = [A b];
% forward elimination
for k = 1:n-1
for i = k+1:n
factor = Aug(i,k)/Aug(k,k);
Aug(i,k:nb) = Aug(i,k:nb)-factor*Aug(k,k:nb);
end
end
% back substitution
x = zeros(n,1);
x(n) = Aug(n,nb)/Aug(n,n);
for i = n-1:-1:1
x(i) = (Aug(i,nb)-Aug(i,i+1:n)*x(i+1:n))/Aug(i,i);
end
2013/03/12 MN 27