Exercícios para Matlab Orlando Ferreira Soares
Índice Exercícios de Introdução ao MATLAB... Exercícios Básicos... Manipulação de Vectores e Matrizes... Operações sobre Escalares...5 Operações sobre Matrizes...7 Polinómios...9 Gráficos... Análise Numérica... Sistemas e Sinais Básicos...5 Bibliografia...9
Exercícios de Introdução ao MATLAB Exercícios Básicos. Introduza os seguintes vectores: a = ( 5 ) b =. Defina uma variável A como a matriz identidade de dimensão.. Defina uma matriz coluna v composta por cinco s (zeros) e um (um), depois salve num ficheiro ASCII V.DAT, saia do MATLAB e substitua, utilizando um editor de texto, o por. Finalmente abra o MATLAB e carregue o ficheiro para confirmar o resultado. Orlando Ferreira Soares
Manipulação de Vectores e Matrizes. Defina o vector x (,,,,,,, 5, ) = e calcule: a) lenght(x); b) size(x); c) x( ) = x( ) 5. Crie o vector x = ( 5) ( 5 8) y =., e por manipulação deste, defina o vector 6. Construa o vector linha (,.75,.5,.5,,.5,.5,.75, ) a) Introduzindo os valores a partir do teclado; b) Usando o comando linspace(-,,9); c) Por meio do operador :. 7. Defina o vector x = ( 5 6 ) e use este vector para criar o vector Orlando Ferreira Soares
y = ( 5 6 6 5 ) Sugestão: Use o operador : com decrementos ou o operador fliplr. 8. Defina os vectores a = ( 6 9) b = ( 5 5 ) e construa o vector ( 5 6 5 9 ) c =. Sugestão: Defina dois vectores para guardar os quatro primeiros inteiros pares e impares. 9. Defina a matriz A = 6 6 e calcule: Orlando Ferreira Soares
Orlando Ferreira Soares a) A(:,); b) A(:,:); c) A([ ],:); d) A(:).. Dada a matriz = 9 8 7 6 5 A extraia a submatriz com os valores a ij, com índices de linha i=, e índices de coluna j=,.. Defina as matrizes = 6 A, = 7 6 5 7 6 5 B e depois a matriz de blocos = B A C
. Para desenhar a função apresentada a seguir são necessários dois vectores com o mesmo comprimento, o primeiro para guardar a variável independente (abcissas), e o segundo para guardar o valor da função. Defina dois vectores usando o mesmo espaçamento das abcissas de,. 5 7 Operações sobre Escalares. Para cada par de coeficientes da equação a.x + b = dados na tabela, calcule a solução x sujeito à condição de x Z, onde Z é os conjunto dos números inteiros. Quando a solução não pertencer a Z então o problema deve ser resolvido por min a.x + b x Z a 5 8 5. b 8-7 Orlando Ferreira Soares 5
. Calcule x mod para ( 5 6) x =. 5. Dado x = + j5, y = + j, z = j, calcule: a) x + y, x y, ( x + y)z. ; b) x, y, z ; c) log x, y e, y x. 6. Resolva o sistema x + y = a x = b y para (,, ) a = e (,,.5) b =. Sugestão: Resolva o problema em coordenadas polares. 7. Verifique a Fórmula de Euler e z = e x+ jy = e x ( cos y + j sen y) para vários números complexos z. Orlando Ferreira Soares 6
8. Guarde as abcissas e valores da função sen t, mostrada na figura, em dois vectores. Operações sobre Matrizes 9. Resolva o seguinte sistema de equações lineares: x 9x 5x 6 x x + x + x 5x + 7x + x x + x + x 7x + x x = 5 = = =. Para cada um dos seguintes pares de vectores: a) u = (,, 6), v ( 8,, ) = ; b) u = (, 5, ), v ( 6,, ) = ; c) u = (, 5,, ), v (,,, 5) = ; d) u = ( 5,,,,, ), v (,,, 7, ) =. Orlando Ferreira Soares 7
calcule o produto interno < u, v > ; calcule a distância (Euclidiana) d ( u,v) ; verifique a desigualdade de Cauchy-Schwartz < u,v > u v ; verifique a desigualdade de Minkovsky u + v u + v.. Defina a matriz A = 6 6 e experimente os seguintes comandos a) size(a); b) max(a), max(max(a)); c) p=poly(a); d) det(a), eig(a), [v,d]=eig(a) e) test=(a<=) & (A>=-), all(test), all(all(test)); f) i=find(a==max(max(a))).. Dadas as matrizes: 5 6 A = 7, 8 + j B = j 8 j 5 + 6 j j Orlando Ferreira Soares 8
calcule: a) A*A, A *A, A.*A; b) diag(a), diag(a,); c) exp(a), expm(a), sqrt(a), sqrtm(a), sqrtm(a)^; d) exp(log(a)), expm(logm(a)), funm(a, exp ); e) conj(a), real(b), imag(b), B-real(B)-sqrt(-)*imag(B); f) rand(b), max(a), norm(a), sign(a).. Determine todas as soluções do seguinte sistema x x x + x + 5x x x + x x = 5 = = Polinómios. Dados os polinómios a( s ) = s + s + 5s + e b( s ) = s, calcule: + a) a ( s ) + b( s ); b) a( s ) 5b( s ); c) a ( s ).b( s ) ; d) a( s ). b( s ) Orlando Ferreira Soares 9
5. Determine os polinómios cujas raízes são: a),, 5; b), 5±j; c),, j. 6. Calcule as raízes dos seguintes polinómios: a) s + 5s + 7s + ; b) ( s ) ( s + s + 9) + ; 5 c) s + js +. 7. Calcule a decomposição em fracções parciais da função s + s s + s + 7s + 6s + 8. Calcule os pontos de inversão e os possíveis pontos de inflecção das seguintes funções: a) f ( x ) = x + 5x + ; b) x + g( x ) = ; x + x + Orlando Ferreira Soares
Gráficos 9. Desenhe o gráfico de todas as curvas definidas nos exercícios da secção anterior (Polinómios).. Verifique que a função cos x na vizinhança das origem é aproximada à soma parcial da sua Expansão em Série de McLaurin cos x = n= ( ) n x n ( n)! Através do desenho dos gráficos das funções primeiro elementos da série. cos x e da soma parcial dos cinco. Verifique que a série π. n= sen k ( kx) converge para a função dente-de-serra mostrada na figura. y π π x Orlando Ferreira Soares
. Desenhe o gráfico da função f ( x, y) = 7 x + y 5 x y 669. Relativamente ao exercício anterior, use o comando surf e experimente várias cores; finalmente, crie um mapa de cores aleatório ( uma matriz 6 x ) e experimente.. Trace o desenho da função definida em coordenadas polares por ρ = cosθ usando o comando polar e depois usando plot, depois de fazer a conversão para coordenadas Cartesianas. 5. Resolva graficamente o problema de optimização condicionado min x + y + z sujeito a x + y + z = Sugestão: Trace a superfície da condição e coloque-a de acordo com a função objectivo. Orlando Ferreira Soares
Análise Numérica 6. Calcule as raízes da equação x sen x +. = 7. Calcule o mínimo da função f ( x ) = sen ( x ).tg( x).cosh( x) no intervalo x [,.5]. 8. Calcule o mínimo da função x y f ( x, y ) = e + x + y e trace o desenho sobre o valor calculado. 9. Determine o mínimo da função + 6 xx + xx 6 xx x x x x + Orlando Ferreira Soares
. Observando os pontos fixos de um mapa F ( x ) requer a solução da seguinte equação x = F( x ) Calcule os pontos fixos dos mapas a) F( x ) x = x ; b) F( x ) x. ( x) = ; c) x F( x ) = ; d) F( x ) = x x + ; π e) F( x ) = sen x ; f) F( x ) = sen x ; g) F ( x ) = arctgx ; h) F ( x ) = tgx ; i) F( x ) = log x. Orlando Ferreira Soares
Sinais e Sistemas Básicos. Um sinal muito simples é o Impulso Unitário (deslocado): n = n δ ( n n ) = n n Para criar um impulso no MATLAB, temos que decidir qual a parte do sinal que nos interessa. Se o impulso δ (n) vai ser usado na entrada de um sistema LIT, podemos querer ver os L pontos desde n = até n = L. Se escolhermos L =, o seguinte código criará um impulso no MATLAB: L=; nn=:(l-); imp=zeros(l;); imp()=; a) Realize e desenhe as seguintes sequências. Em cada caso o eixo horizontal das abcissas (n) deve ser só expandido ao intervalo indicado. Cada sequência deve ser mostrada como um sinal discreto usando a função stem. x ( n) =,9δ ( n 5) n x ( n) =,8δ ( ) 5 n 5 n x ( n) =,5δ ( n ) n 5 x ( n) =,5δ ( n 7) n + Orlando Ferreira Soares 5
b) O impulso deslocado δ n n ) pode ser usado para construir um trem-de-impulsos ( ponderado, cujo período P e comprimento total MP: M k = s( n) = A δ ( n kp) Os pesos são Ar; se forem todos iguais, o trem-de-impulsos é periódico com período P. Crie e desenhe um trem-de-impulsos periódico cujo período é P = 5 e cujo comprimento é 5. Comece o sinal em n =. Tente usar um ou dois vectores em vez da função cíclica for para colocar os impulsos. Quantos impulsos estão contidos no sinal. k c) O seguinte código de MATLAB produz um sinal repetido no vector x: x=[;;;;;] * ones(,7); x=x(:); size(x); %<--- devolve o comprimento do sinal Desenhe x para visualizar a sua forma; depois dê uma fórmula matemática semelhante à apresentada na alínea b) para descrever este sinal.. Outro sinal muito simples é o Coseno (deslocado): n = n δ ( n n ) = n n Para criar um impulso no MATLAB, temos que decidir qual a parte do sinal que nos interessa. Se o impulso δ (n) vai ser usado na entrada de um sistema LIT, podemos querer ver os L pontos desde n = até n = L. Se escolhermos L =, o seguinte código criará um impulso no MATLAB: L=; nn=:(l-); Orlando Ferreira Soares 6
imp=zeros(l;); imp()=; Teoria do Sinal d) Realize e desenhe as seguintes sequências. Em cada caso o eixo horizontal das abcissas (n) deve ser só expandido ao intervalo indicado. Cada sequência deve ser mostrada como um sinal discreto usando a função stem. x ( n) =,9δ ( n 5) n x ( n) =,8δ ( ) 5 n 5 n x ( n) =,5δ ( n ) n 5 x ( n) =,5δ ( n 7) n + e) O impulso deslocado δ n n ) pode ser usado para construir um trem-de-impulsos ( ponderado, cujo período P e comprimento total MP: M k = s( n) = A δ ( n kp) Os pesos são Ar; se forem todos iguais, o trem-de-impulsos é periódico com período P. Crie e desenhe um trem-de-impulsos periódico cujo período é P = 5 e cujo comprimento é 5. Comece o sinal em n =. Tente usar um ou dois vectores em vez da função cíclica for para colocar os impulsos. Quantos impulsos estão contidos no sinal. k f) O seguinte código de MATLAB produz um sinal repetido no vector x: x=[;;;;;] * ones(,7); x=x(:); size(x); %<--- devolve o comprimento do sinal Orlando Ferreira Soares 7
Desenhe x para visualizar a sua forma; depois dê uma fórmula matemática semelhante à apresentada na alínea b) para descrever este sinal. Orlando Ferreira Soares 8
Bibliografia Using MATLAB, Simulink and Control System Toolbox, A Practical Approach, Alberto Cavallo, Roberto Setola, Francesco Vasca, Prentice Hall Digital Signal Processing Using MATLAB, Vinay K. Ingle, John G. Proakis, Brooks/Cole http://www.mathworks.com/ Orlando Ferreira Soares 9