Linguagem Orientada a Matrizes COB 727 Maurício Cagy Bibliografia Hahn, B., Valentine, D., Essential Matlab for Engineers and Scientists, 4th Ed., Oxford: Academic Press, 2010. Gilat, A., Matlab: An Introduction with Applications, John Wiley & Sons, 2004. Cagy, M., Fundamentos de Matlab, apostila, 1997. Linguagens Orientadas a Matrizes SciLab; Octave; FreeMat; JMathLib; Matlab. Álgebra de Escalares Puramente Reais ou Complexos... Propriedades: Soma / Diferença a+0 = a a+(b+c) = (a+b)+c a+b = b+a a-b = a+(-b) Produto / Divisão a0 = 0 a1 = a a(b+c) = ab+ac a(bc) = (ab)c ab = ba a / = 1/ a b b Álgebra Vetorial “Ênuplas” Reais: (x1, x2, ..., xN) – Aplicação em geometria, cálculo vetorial... Propriedades (ex. 3D): – u=(xu, yu, zu); – v=(xv, yv, zv); – 0=(0, 0, 0). Soma / Diferença u+v = (xu+xv, yu+yv, zu+zv) u+0 = u u+(v+w) = (u+v)+w u+v = v+u -v = (-xv, -yv, -zv); u-v = u+(-v) Produto por Escalar au = (axu, ayu, azu); Produto Escalar uv = xuxv + yuyv + zuzv u0 = 0 uu = |u|2 (quadrado do módulo) uv = vu Produto Vetorial u v Definido apenas em 3D Álgebra Linear Vetores: – Agrupamento de valores quaisquer (reais ou complexas); Propriedades: – u=[u1, u2, u3]; v=[v1, v2, v3] – w=[w1, w2, w3]; – 0=(0, 0, 0) (vetores-linha). Soma / Diferença u+v = [u1+v1, u2+v2, u3+v3] u+0 = u u+(v+w) = (u+v)+w u+v = v+u -v = [-v1, -v2, -v3]; u-v = u+(-v) ut = vetor-coluna (transposição) s1 s= s 2 s 3 (vetor-coluna) Produto por Escalar au = (au1, au2, au3); Produto uv = !! us = u1s1 + u2s2 + u3s3 0s = 0 uut = ||u||2 (quadrado da norma) (u+v)s = us + vs Álgebra Linear Exemplo: 8 – Cada cesta de maçãs tem 8 maçãs; cada saco de 10 f laranja tem 10 laranjas; cada caixa de mangas tem 6 mangas... 6 – Fulano tem 3 cestas de maçãs, 1 saco de laranja 8 Quantas frutas ele tem? u f 3 1 2 10 24 10 12 46 6 e 2 caixas de mangas: u = [3, 1, 2]; – Beltrano tem 4 cestas de maçãs, 2 saco de laranja e 1 caixas de mangas: v = [4, 2, 1]; 8 v f 4 2 1 10 32 20 6 58 Quantas frutas ele tem? – Agrupando as 2 operações... 6 8 3 1 2 46 4 2 1 10 58 6 Álgebra Linear Exemplo das frutas e recipientes... 8 3 1 2 46 4 2 1 10 58 6 Matriz 23 Vetor-coluna 31 Vetor-coluna 21 Requisito de dimensões para o Produto Matricial: – [m p] [p n] = [m n] Álgebra Linear Se não conhecêssemos o vetor f... f1 3 1 2 46 4 2 1 f 2 58 f 3 Isto se traduz num sistema de equações: 3 f1 1 f 2 2 f 3 46 4 f1 2 f 2 1 f 3 58 Sistema INDETERMINADO Álgebra Linear Se soubéssemos que Sicrano tem 2 cestas de maçãs, 3 sacos de laranja e nenhuma caixa de mangas: w = [2, 3, 0], e, portanto, 46 frutas... 3 1 2 f1 46 4 2 1 f 58 2 2 3 0 f 3 46 Que compõe um sistema de equações consistente, ou uma Equação Matricial: – Af=b – Analogamente a uma equação linear: a f = b f = b/a = a-1b – f = A-1 b, caso A seja inversível. Produto Interno Produto Externo – u = [u1, u2, ... , un]; s1 – s = s2 s m – Produto Interno: us = u1s1 + u2s2 + ... + unsn (n=m!) – Produto Externo: s1u1 s u su 2 1 sm u1 s1u 2 s2 u 2 sm u 2 s1u n s2u n sm u n Exemplo: Transformada de Fourier como Produto Matricial... – Transformada Discreta de Fourier (DFT): N 1 ak x[n]e jk ( 2 / N ) n , para k = 0, 1, ..., N-1 n 0 x k exp j 2 / N k n x n onde: 0 1 k N 1 n 0 1 N 1 x[0] x[1] xn x[ N 1] Os Coeficientes de um Polinômio como um Vetor... – Seja o polinômio: aNxN + aN-1xN-1 + ... + a0 – ele pode ser representado pelo vetor: a = [aN, aN-1, ..., a0] – Desafio: Encontrar o polinômio de ordem N cujo gráfico passa por N+1 pontos conhecidos... Outras Propriedades Sejam as matrizes A e B tais que as operações abaixo são viáveis: Transposição (At)t = A (A + B)t = At + Bt (A - B)t = At - Bt (A B)t = Bt At Inversão (A-1)-1 = A (A B)-1 = B-1 A-1 Operadores Lineares Dada uma matriz quadrada A (n n), dizemos que ela é um operador linear se consideramos y = f(x) = A x... – Operadores lineares usuais: Projeção; Reflexão; Rotação. Exemplo - Operador Rotação em 2D: x R cos , y R sen x' R cos( ) R cos cos R sen sen y' R sen( ) R sen cos R cos sen x ' cos sen x y ' sen cos y R ( ) f (e 1 ) f (e 2 ) Operadores Lineares Operador Rotação em 3D: 0 1 R x ( ) 0 cos 0 sen 0 cos sen R y ( ) 0 sen cos cos cos R z ( )R y ( )R x ( ) cos sen sen 0 sen cos 1 0 R z ( ) sen 0 0 cos cos sen sen sen cos cos cos sen sen sen sen cos Rotação em torno de um eixo u: sen cos 0 sen sen cos sen cos sen cos cos sen sen cos cos 0 0 1 Rotação + Translação A Translação não é um Operador Linear! • ft(x1+x2) = x1+x2+t ft(x1)+ ft(x2) = x1+t+x2+t Associação usual de rotação e translação: • y=Rx+t • x ' r11 r12 y ' r 21 r22 z ' r31 r32 r13 x t x r23 y t y r33 z t z Álgebra homogênea: • y = RT x x' r11 r12 y ' r 21 r22 z ' r31 r32 1 0 0 r13 r23 r33 0 tx x t y y tz z 1 1 Mudança de Base Dados n vetores linearmente independentes de um espaço n-dimensional, qualquer ponto neste espaço pode ser representado por uma combinação linear destes n vetores. Para n = 3: t = au+bv+cw t x u x t u y y t z u z vx vy vz wx a w y b t U a wz c – portanto, dizemos que u, v e w formam uma base () do espaço tridimensional, e a tríade [a, b, c]t representa as coordenadas do ponto t nesta base, e a = U-1t é o processo de mudança de base a partir da base canônica para a base . Mudança de Base Ilustração no espaço bidimensional (bases ortonormais): x R cos , y R sen x' R cos( ) R cos cos R sen sen y ' R sen( ) R sen cos R cos sen x' cos y ' sen sen x cos y t u 1 t U u v U U t v Autovalores e Autovetores Seja A uma matriz quadrada, diz-se que ela possui um ponto fixo x se: Ax = x De maneira mais geral, define-se um autovalor de A, , como um escalar tal que: Ax = x – situação em que o vetor x é chamado de autovetor de A associado a . Problema: – Estabelecer os autovalores de uma matriz A; – Estabelecer um autovetor não-nulo associado a cada autovalor . Autovalores e Autovetores Seja A uma matriz n n; se Ax = x, então: A x λ I x λ I x A x 0 ( λ I A)x 0 – como x é não-nulo, então det (I - A) = 0; – det (I - A) = 0 é chamada equação característica de A. Exemplo: 1 2 1 2 A I A 3 2 3 2 1 2 0 ( 1)( 2) 6 0 3 2 2 3 2 6 2 3 4 0 1 1 2 4 Autovalores e Autovetores Para 1 = -1: 1 2 2 2 3 2 3 3 2 2 x11 0 3 3 x 0 12 x11 x12 Para 2 = 4 1 2 3 2 3 2 3 2 3 2 x21 0 3 2 x 0 22 3x21 2 x22 Autovalores e Autovetores Propriedades: i tr(A) n i det(A) n Se não houver autovalor nulo, det(A) 0, logo A é inversível; O número de autovalores não-nulos (contabilizando as multiplicidades maiores que 1) é o posto de A; O conjunto de autovetores associados a todos autovalores não-nulos de A compõe o autoespaço de A; Caso A seja quadrada, seus autovetores são ortogonais. Decomposição em Autovalores Considerando a matriz quadrada inversível A como um Operador Linear: y = Ax; se montarmos uma matriz P cujas colunas são autovetores de A: z = P-1x representa a mudança de base de x da base canônica para o autoespaço de A, de modo que: Az = Dz onde D é uma matriz diagonal com os autovalores ordenados de A... Decomposição em Autovalores Assim: w = Dz = DP-1x representa a aplicação do operador A sobre a notação de x no autoespaço de A; Logo, para se obter y, basta voltar para a base canônica: y = Pw = PDP-1x. Ou seja: A = PDP-1 Que é a chamada Decomposição em Autovalores (EVD) de A. Diagonalização Ortogonal Caso a matriz A seja simétrica: A = PDPt onde P é uma matriz ortonormal formada pelos autovetores de A, de modo que P-1=Pt. Diz-se que P diagonaliza ortogonalmente A. 1 0 0 A v 1 v n 0 0 0 0 n v1 vn Variância e Covariância Para um sinal x[n] ergódico: Ex[n] var(x[n]) c xx [0] E x[n] Ex[n] Ex[n] E x[n] x 2 2 2 x 2 2 x2 rxx [0] x2 onde E{...} refere-se à esperança matemática. Analogamente, a covariância entre 2 sinais x[n] e y[n] 0 é definida por: cov(x[n], y[n]) c xy [0] Ex[n] Ex[n] y[n] Ey[n] Ex[n] y[n] x y rxy [0] x y Matriz de Covariância Sejam k sinais ergódicos x1[n] a xk[n]: c x1x1 [0] c x1x2 [0] c [0] c [0] x x x2 x2 C 2 1 c xk x1 [0] c xk x2 [0] c x1xk [0] c x2 xk [0] c xk xk [0] Se os sinais são todos reais, C é uma matriz simétrica, que pode ser dada por: Xt X C N 1 onde X é uma matriz (N k) cujas colunas são os sinais subtraídos de suas respectivas médias. x1[0] x1 x [1] x 1 X 1 x1[ N 1] x1 x2 [0] x2 x2 [1] x2 x2 [ N 1] x2 xk [0] xk xk [1] xk xk [ N 1] xk Análise de Componentes Principais (PCA) Sejam k sinais ergódicos x1[n] a xk[n] correlacionados entre si (não ortogonais): • sua matriz de covariância C não é diagonal. Existe um conjunto de k outros sinais descorrelacionados entre si (ortogonais e de média nula), s1[n] a sk[n] (componentes principais), tais que: Xt A S t Problema: achar A e S... Análise de Componentes Principais (PCA) Multiplicando-se ambos os lados por X: Xt X A S t X A S t S A t – mas os sinais si[n] são ortogonais por pressuposição, de modo que StS é uma matriz diagonal. Dividindo-se ambos os lados por N1, tem-se que: C A D At o que evidencia que A é a matriz que diagonaliza ortogonalmente C: • decomposição por auto-valores e auto-vetores de C. Decomposição em Valores Singulares (SVD) Uma matriz A de tamanho m n (supondo m n, por simplicidade), com posto k, pode ser fatorada por: A = USVt A u 1 S é uma matriz diagonal (m n) cujos elementos (si) são dados pela raiz quadrada dos autovalores de B=AtA (i, usualmente, ordenados de forma decrescente); note que B é uma matriz quadrada, simétrica e positiva semi-definida (seus autovalores são não-negativos); V é a matriz (n n) cujas colunas são os autovetores vi normalizados da matriz B=AtA; U é a matriz (m m) cujas k primeiras colunas são dadas por ui=Avi/i, e os demais são vetores que completam uma base ortonormal de m. s 0 0 u 2 uk u k 1 1 0 u m 0 s2 0 0 0 sk 0 m k k v 1t t v2 0 k n k t vk t v k 1 0 m k n k t vn Decomposição em Valores Singulares Reduzida Devido às porções nulas da matriz S, a SVD pode ser reduzida por: A = U1S1V1t S é uma matriz diagonal (k k); V tem tamanho (k n); U tem tamanho (m k). A u1 u 2 s1 0 u k 0 0 s2 0 0 v 1t t 0 v2 0 t sk v k