



































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Apostila para uso do sistema Matlab
Tipologia: Notas de estudo
1 / 43
Esta página não é visível na pré-visualização
Não perca as partes importantes!




































1. Conceitos Básicos de Matrizes e Vetores
Os cálculos/operações assim como conceitos envolvendo matrizes e vetores constituem a base dos métodos numéricos que tratam da solução de sistemas lineares e não lineares de equações algébricas ou diferenciais. A representação destes sistemas em termos matriciais/vetoriais é extremamente mais compacta e é corrente na literatura técnica. Como visa-se neste capítulo apresentar os conceitos básicos deste assunto especialmente relacionados com aplicações em Engenharia de Processos, os elementos de matrizes e vetores serão em princípio números ou variáveis reais a não ser quando explicitamente especificados como complexos. Uma matriz é um arranjo retangular de números em m linhas e n colunas, mxn, sendo
representada como A (letras maiúsculas em negrito) pertencente a mxn, isto é:
A ∈ mxn. O elemento da linha i e coluna j de A é representado por aij (correspondente
letra minúscula com o sub-índice ij ) ou ( A )ij. A matriz completa é geralmente escrita na
forma: A =
m1 m2 mn
21 22 2n
11 12 1n
, ou em forma mais compacta por A = (aij ), com
i=1,...,m e j =1,...,n. Se duas matrizes A e B apresentam o mesmo número de linhas e o mesmo número de colunas são ditas do mesmo tipo. Se A = (aij ) é tal que aij = 0 para todo i e j então a matriz A é dita nula e é representada por 0. Se n=m a matriz A é dita quadrada. Se n=m e aij = aji para i,j =1,...,n a matriz quadrada A é dita simétrica.
Exemplo: M =
note que a matriz simétrica M tem sua própria imagem refletida através da diagonal principal.
Se n=1 tem-se um vetor coluna ou simplesmente vetor designado por v (letra minúscula
em negrito) e representado por: v =
m
2
1
m.
Se m=1 tem-se um vetor linha designado por v T^ (letra minúscula em negrito com o
sobre-índice T de transposto) e representada por: v T^ = (v 1 v 2 v 3 ... vn) ∈ 1xn.
Se m=n=1 tem-se um escalar (real) (letra minúscula grega), ou seja: ∈.
A matriz A ∈ mxn^ pode ser parcionada por:
a) colunas na forma:
A = ( a 1 a 2 an)onde aj =
mj
2j
1j
m (^) para j=1,...,n são os n vetores colunas da
matriz A ; b) linhas na forma:
Tm
T 2 1 T
onde aTi = ( a (^) i1 ai2 ain)∈ 1xn, para i=1,...,m são os m vetores linhas
da matriz A.
As operações de adição ou subtração são definidas apenas para matrizes do mesmo tipo, assim se A e B são matrizes ( m x n ) então a matriz C , também ( m x n ), soma ou subtração de A com B, representada por C = A ± B , tem como termo geral : cij = aij ± bij para i = 1, ... , m e j = 1, ... , n. Se é um escalar qualquer, a matriz A é uma matriz cujo termo geral é aij.
A operação de multiplicação de matrizes A ⋅⋅⋅⋅ B só é definida se o número de colunas de A
(primeira parcela do produto) for igual ao número de linhas de B (segunda parcela do produto). Assim, temos: C=A ⋅⋅⋅⋅ B , onde A é ( m,n ) , B é ( n,p ) e C é ( m,p ) que apresenta como termo geral:
As matrizes triangulares são matrizes que apresentam todos os elementos sob (ou sobre) a diagonal nulos, podendo assumir as seguintes classificações: matriz triangular superior ou matriz U , com U ij =0 se i>j matriz triangular inferior ou matriz L , com L ij =0 se j>i
Exemplo: U =
Exemplo: L =
Matriz U é triangular superior Matriz L é triangular inferior
O traço de uma matriz quadrada A é a soma dos elementos de sua diagonal, isto é:
= =
n i 1 ii
Uma matriz quadrada A pode receber as seguintes classificações quando inserida em
uma forma quadrática como se segue: f( x ) = xT A
1- P ositiva definida se xT A > 0 para todo vetor x 0 (isto é, não nulo). 2- Positiva semidefinida se xT A 0 para todo vetor x. 3- Negativa definida se xT A < 0 para todo vetor x 0. 4- Negativa semidefinida se xT A 0 para todo vetor x. 5- Indefinida se xT A assume tanto valores positivos quanto negativos.
O determinante de uma matriz A é um escalar obtido através da soma de todos os produtos possíveis envolvendo um elemento de cada linha e cada coluna da matriz, com o sinal positivo ou negativo conforme o número de permutações dos índices seja par ou ímpar. Sua obtenção e sua representação, apesar de ser um dos conceitos mais preliminares envolvendo matrizes, não são tarefas triviais e o conceito de determinante será utilizado nestas notas apenas como base de outras propriedades de matrizes quadradas. Assim, o determinante de A designado por det( A ) pode ser representado
por: det( A ) = (^) ±a1,i 1 ⋅a2,i 2 ⋅⋅⋅⋅⋅an,in ou então através do conceito de cofator do
elemento ij da matriz A (representado por Aij) que é o determinante da matriz obtida cancelando a linha i e a coluna j da matriz A com o sinal mais ou menos conforme i+j seja par ou ímpar, assim:
onde Λij representa a matriz quadrada (n-1, n-1) obtida pela eliminação da linha i e a coluna j de A. Tem-se então:
= = ⋅
n j 1 ij^ ij
Na prática, entretanto é praticamente impossível calcular o determinante de matrizes através destas regras gerais por envolver um número muito grande de termos (na realidade n!, assim mesmo com matrizes relativamente pequenas como com n=10 tem- se 3 milhões de termos). Felizmente, para os nossos propósitos, apenas as regras a seguir serão suficientes: 1- O determinante de uma matriz A mantém-se inalterado se somarem-se a todos os elementos de qualquer linha (ou coluna) os correspondentes elementos de uma outra linha (ou coluna) multiplicados pela mesma constante ;
Da regra (1)verifica-se que se det( A ) = 0, então A apresenta duas linhas (ou colunas) proporcionais entre si. De uma forma mais geral, pode-se afirmar que uma linha (ou coluna) de A pode ser escrita como combinação linear de alguma(s) linha(s) (ou colunas) da mesma matriz. Da regra (2) demonstra-se que se A for uma matriz triangular então det( A ) é simplesmente o produto dos elementos de sua diagonal. Se det( A ) = 0 diz-se que a matriz A é singular , e caso det( A ) 0, então A é dita regular. Se C=A ⋅⋅⋅⋅ B , então det( C )= det( A )⋅⋅⋅⋅det( B ). Se B = A T^ então det( B )= det( A ), isto é det ( A T) = det ( A ).
A matriz adjunta de uma matriz A corresponde à transposta da matriz obtida substituindo cada elemento da matriz A pelo seu correspondente cofator, isto é, se à é a matriz adjunta de A então o elemento da linha i e coluna j de à é A ji. A propriedade mais importante da matriz adjunta diz respeito ao produto: A ⋅⋅⋅⋅ Ã=à ⋅⋅⋅⋅ A = det( A )⋅⋅⋅⋅ I. Se det( A )0 ( A é regular) define-se a inversa de A como:
A ⋅⋅⋅⋅ A-1^ = A-1 ⋅⋅⋅⋅ A = I que existe apenas se det( A ) 0.
( A −λ I v = 0 , transformando-se assim em um sistema linear e homogêneo de
equações que apresenta solução apenas se a matriz ( A −λ I for singular, isto é:
det ( A −λ I =
n1 n2 nn
21 22 2n
11 12 1n
=p(λ)=0, que é o polinômio de grau n em
λ chamado de polinômio característico de A , cujas n raízes são os valores característicos ou autovalores de A. Verifica-se, pela expansão deste determinante, que o único termo de grau n e ( n-1 ) em λ
é o correspondente ao produto da diagonal principal de A −λ I , isto é :
(a 11 гλ)(a 22 гλ)(ann гλ) sendo todos os demais termos de grau inferior a ( n- 1), além
disto como p(0)=det( A ) o termo independente de λem p(λ) é det( A ), permirtindo assim concluir que p(λ) = (гλ)n^ +(a 11 + a 22 +...^ + ann) (-λ)n-1^ +...^ +det( A )=
Multiplicando-se membro a membro por (-1)n^ , tem-se: p(λ) = λn^ г (a 11 + a 22 +...^ + ann) λn-1^ +...^ +(-1)n^ det( A )= (note que apesar de ter-se multiplicado membro a membro da expressão por (-1)n, manteve-se a notação p(λ) para designar o polinômio característico, já que o mesmo está igualado a zero sendo assim irrelevante seu sinal). Pela expressão de p(λ) deduz- se que:
n i 1 i^
n i 1 i^ ∏λ = A =
(c) como p(λ) = det ( A −λ I se A for singular tem-se det( A )=0; desta forma
p(0)=det( A )=0, isto é, se A for singular λ=0 é necessariamente valor característico de A.
Calculando p(λ) = det ( A −λ I
Solução do polinômio: λ=2 e λ=4 (autovalores de A ).
2. Introdução ao Matlab
No MATLAB os nomes das variáveis devem ser palavras únicas, sem a inclusão de espaços e não devem conter acentos. As regras básicas para nomes de variáveis são apresentadas na Tabela 2.1.
Tabela2.1: Regras básicas para nomes de variáveis no MATLAB. As variáveis são sensíveis a letras maiúsculas e minúsculas
Itens, itens e ITENS São entendidas como diferentes variáveis. As variáveis podem possuir até 31 caracteres. Os caracteres além do 31º são ignorados.
Oquevoceachadestenomedevariavel Pode ser usado como nome de variável. O nome da variável deve começar com uma letra, seguida de qualquer número, letra ou sublinhado.
O_que_voce_acha_deste_nome e X podem ser utilizados como nome de variáveis.
Existem algumas variáveis especiais que o MATLAB utiliza que são apresentadas na Tabela 2.2. Se o usuário redefine estas variáveis, o MATLAB passa a atribuir a nova função às mesmas.
Tabela 2.2: Variáveis especiais utilizadas pelo MATLAB Variável Significado Ans (^) Variável padrão usada para resultados. Pi (^) Razão entre o perímetro da circunferência e seu diâmetro. Eps Precisão relativa da máquina. Inf Infinito NaN nan Não numérico
Nargin (^) Número de argumentos de entrada de uma função. Nargout (^) Número de argumentos de saída de uma função. Realmin (^) Menor número real positivo utilizável pela máquina. Realmax (^) Maior número real positivo utilizável pela máquina.
Caso o usuário necessite apagar alguma variável da memória do MATLAB, isto pode ser realizado utilizando-se o comando “clear”. Por exemplo: » a=10; » a a = 10 » clear a » a ??? Undefined function or variable 'a'.
Se a necessidade do usuário for de apagar todas as variáveis que estão sendo utilizadas deve-se utilizar o comando “clear all”. Se por outro lado, o usuário deseja a
3. Utilizando funções matemáticas elementares
A Tabela 3.1 apresenta uma listagem das principais funções matemáticas que o MATLAB possui. Vale ressaltar que o MATLAB trabalha apenas com radianos (2π radianos = 360º).
Tabela 3.1: Principais funções matemáticas utilizadas pelo MATLAB. Função Significado acos(x) (^) Arco coseno. acosh(x) (^) Arco coseno hiperbólico. asin(x) (^) Arco seno. asinh(x) (^) Arco seno hiperbólico. atan(x) (^) Arco tangente. atanh(x) (^) Arco tangente hiperbólico. cos(x) (^) Coseno cosh(x) (^) Coseno hiperbólico. exp(x) (^) Exponencial: ex gcd(x,y) (^) Máximo divisor comum entre os inteiros x e y. log(x) (^) Logaritmo natural. log10(x) (^) Logaritmo na base 10. rem(x,y) (^) Resto da divisão de x por y. round(x) (^) Arredondamento para o número inteiro mais próximo. sign(x) (^) Função sinal. Retorna o sinal do argumento x. sin(x) (^) Seno sinh(x) (^) Seno hiperbólico. sqrt(x) (^) Raiz quadrada. tan(x) (^) Tangente tanh(x) (^) Tangente hiperbólica.
4. Trabalhando com vetores e matrizes O MATLAB foi desenvolvido especialmente para trabalhar com representações matriciais. Desta forma, o usuário deve dar preferência para este tipo de representação quanto estiver utilizando o MATLAB, já que isto significa a realização de cálculos com maior eficiência. O MATLAB manipula vetores de uma maneira simples e intuitiva. Considere que se deseja calcular a função y = sen(x) em 0 <x ≤ π. O primeiro passo é criar um vetor com todos os valores de x para os quais se deseja calcular y. Uma vez definido o vetor, calculam-se os valores correspondentes de y. Ou seja: »x=[0 0.1pi 0.2pi 0.3pi 0.4pi 0.5pi 0.6pi 0.7pi .8pi .9*pi pi] x = Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1. Columns 8 through 11 2.1991 2.5133 2.8274 3.
» y=sin(x) y = Columns 1 through 7 0 0.3090 0.5878 0.8090 0.9511 1.0000 0. Columns 8 through 11 0.8090 0.5878 0.3090 0.
Para se resgatar um determinado elemento do vetor, basta indicar entre parênteses a localização do mesmo. Ou seja:
» x=[0 0.1pi 0.2pi 0.3pi 0.4pi 0.5pi 0.6pi 0.7pi 0.8pi 0.9*pi pi]; » x(1) ans = 0 » x(11) ans =
»
Para ter acesso a blocos de componentes ao mesmo tempo, o MATLAB utiliza a notação de dois pontos. Ou seja:
Existem formas para construção de vetores que dispensam a tarefa de digitar termo a termo. São elas:
Além da forma de transposição vista anteriormente ( ‘ ), o MATLAB tem o recurso de transposição pontuada ( .’). Este comando é interpretado como a transposição sem a operação de conjugação complexa. Isto porque quando um vetor é complexo, o operador de transposição ( ‘ ) nos dá a transposição do complexo conjugado, isto é, o sinal da parte imaginária é mudado como parte da operação de transposição. Já o operador de transposição pontuada ( .’) transpõe o vetor mas não o conjuga. Vale ressaltar que para vetores reais estes operadores são equivalentes. Ou seja:
>> a=(-4)^.5; b=[a a a] b = 0.00 + 2.00i 0.00 + 2.00i 0.00 + 2.00i >> b=[a a a]' b = 0.00 - 2.00i 0.00 - 2.00i 0.00 - 2.00i >> b=[a a a].' b = 0.00 + 2.00i 0.00 + 2.00i 0.00 + 2.00i >>
Para a construção de matrizes no MATLAB utilizam-se ponto e vírgula para separar os elementos de uma linha da outra:
» g=[1 2 3 4; 5 6 7 8] g = 1 2 3 4 5 6 7 8 »
Considerando-se vetores ou matrizes, a adição, a subtração, a multiplicação e a divisão por um escalar simplesmente aplica a operação a todos os elementos do vetor. Ou seja:
» g=[1 2 3 4; 5 6 7 8]; » 2*g- ans = 1 3 5 7 9 11 13 15 » g/2+ ans = 1.5000 2.0000 2.5000 3. 3.5000 4.0000 4.5000 5. »
Já as operações entre vetores e/ou matrizes não são tão simples. Quando dois vetores ou matrizes possuem a mesma dimensão, a adição e a subtração são realizadas elemento a elemento pelo MATLAB. Ou seja:
» g=[1 2 3 4; 5 6 7 8]; » h=[1 1 1 1; 2 2 2 2]; » g+h ans = 2 3 4 5 7 8 9 10 » g-h ans = 0 1 2 3 3 4 5 6 »
Quando se deseja multiplicar duas matrizes, elemento por elemento, deve-se utilizar o símbolo de multiplicação escalar pontuada (.*). O ponto que precede o asterisco, símbolo padrão de multiplicação, diz ao MATLAB para fazer a multiplicação elemento por elemento. A multiplicação sem o ponto significa multiplicação matricial. Ou seja:
» g=[1 2; 5 6]; » h=[1 1; 2 2]; » g.h ans = 1 2 10 12 » gh ans = 5 5 17 17 »
Para a divisão de matrizes, elemento por elemento, deve-se utilizar o símbolo de divisão escalar pontuada ./. Novamente o ponto que precede o símbolo padrão de divisão diz ao MATLAB para fazer a divisão elemento por elemento. A divisão sem o ponto significa divisão matricial. Ou seja:
» g=[1 2; 5 6]; » h=[1 8; 2 4]; » g./h ans = 1.0000 0. 2.5000 1. » g/h ans = 0 0. -0.6667 2. »
É possível elevar cada elemento de uma matriz a uma dada potência. Para isto aplica- se o operador .^n, onde n é potência que se deseja aplicar a cada elemento da matriz. Ou seja:
A Tabela 4.6.1 fornece as principais funções matriciais existentes no MATLAB.
Tabela 4.6.1: Principais funções matriciais existentes no MATLAB. Função Significado Exemplo Considere em todos os exemplos: (^)
= 3 4 A^12 det(A) (^) Calcula o determinante da matriz A. » det(A) ans =
d=eig(A) » [V,D]=eig(A) Determina os autovalores e autovetores deA.^ »d^ d=eig(A)= -0.
» [V,D]=eig(A) V = -0.8246 -0. 0.5658 -0. D = -0.3723 0 0 5. » inv(A) (^) Calcula a matriz inversa da matriz » inv(A) ans = -2.0000 1. 1.5000 -0. poly(A) » Calcula a equação característica de A.
» poly(A) ans = 1.00 -5.00 -2. » rank(A) (^) Determina o número de linhas e colunas linearmente independentes de A.
» rank(A) ans = 2 svd(A) » Calcula a decomposição em valores singulares.
» svd(A) ans =
»
A Tabela 4.7.1 fornece algumas matrizes especiais existentes no MATLAB.
Tabela 4.7.1: Matrizes especiais existentes no MATLAB. Função Significado Exemplo eye (^) Matriz identidade. » eye(3) ans = 1 0 0 0 1 0 0 0 1 » ones (^) Matriz onde todos os elementos são iguais a 1.
» ones(2) ans = 1 1 1 1 rand » Matriz com elementos aleatórios distribuídos entre 0 e 1.
» rand(2) ans = 0.9501 0.
0.2311 0. » randn (^) Matriz com elementos aleatórios distribuídos que seguem a distribuição normal e têm média zero e variância igual a 1
» rand(3) ans = 0.8913 0.0185 0. 0.7621 0.8214 0. 0.4565 0.4447 0. » zeros (^) Matriz onde todos os elementos são iguais a 0.
» zeros(2) ans = 0 0 0 0 »
A ordenação dos elementos de um vetor ou de uma matriz pode ser realizada utilizando o comando “sort”. A utilização deste comando possibilita ainda o armazenamento da localização original dos dados. Assim:
>> a=rand(1,3) a = 0.04389532534714 0.02718512299667 0. >> sort(a) ans = 0.02718512299667 0.04389532534714 0. >> a=rand(4,3) a = 0.01286257467300 0.03533832396916 0. 0.38396728849430 0.61239548137302 0. 0.68311596780460 0.60854036122399 0. 0.09284246174092 0.01575981791975 0. >> [a_ordenado_l,ord]=sort(a(1,:)), % ordena a linha 1 de "a" a_ordenado_l = 0.01286257467300 0.01635493355000 0. ord = 1 3 2 >> [a_ordenado_c,ord]=sort(a(:,2)), % ordena a coluna 2 de "a" a_ordenado_c =
ord = 4 1 3 2
Para a utilização de matrizes multidimensionais são necessários 3 índices ao invés dos 2 adotados durante a utilização de matrizes bidimensionais. A Figura 4.8.1 mostra a forma visual de interpretar matrizes multidimensionais.