27
Matrizes - revisão No caso da multiplicação ser possível, é associativa e distributiva Não é, em geral, comutativa 2013/03/12 MN 1 C AB BC A ) ( ) ( AC AB C B A ) ( BA AB

Matrizes - revisão - Moodle-Arquivo · 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 (*),

  • Upload
    lamthuy

  • View
    245

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 2: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 3: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 4: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 5: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 6: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 7: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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}

Page 8: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 9: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 10: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 11: Matrizes - revisão - Moodle-Arquivo · 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 (*),

O ponto de intercepção das duas rectas

corresponde à solução do sistema.

2013/03/12 MN 11

Page 12: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 13: Matrizes - revisão - Moodle-Arquivo · 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 (*),

Casos particulares

a) sistema insolúvel

b) sistema indeterminado

c) sistema mal condicionado (solução

difícil)S

2013/03/12 MN 13

Page 14: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 15: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 16: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 17: Matrizes - revisão - Moodle-Arquivo · 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 (*),

Regra de Cramer

333231

232221

131211

33321

23222

13121

1

aaa

aaa

aaa

aab

aab

aab

x

2013/03/12 MN 17

Page 18: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 19: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 20: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 21: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 22: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 23: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 24: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 25: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 26: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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

Page 27: Matrizes - revisão - Moodle-Arquivo · 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 (*),

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