Laboratorio 1 - Introducao ao MATLAB

Propaganda
IFSP – Instituto Federal de São Paulo
LABORATÓRIO 1
Introdução ao MATLAB
Prof. Dr. Cesar da Costa
São Paulo
Maio/2016
1
Capítulo 4 – Software MATLAB
4.1 Introdução
O MATLAB (MATrix LABoratory) é um software interativo de alto desempenho voltado para
o cálculo científico. O MATLAB integra funções de alto nível, análise de dados, gráficos,
análise numérica, cálculos matemáticos, processamento de sinais, modelagem e simulação.
No MATLAB o elemento básico da informação é uma matrix, que não requer
dimensionamento, permitindo a resolução de muitos problemas numéricos em apenas uma
fração de tempo, que se gastaria para escrever um programa semelhante em linguagens de
programação como Fortran, Basic ou C.
O objetivo principal do MATLAB é fornecer ao usuário, técnicas de resolução de problemas,
sem necessidade de desenvolver rotinas em linguagens de programação convencionais. O
MATLAB possui um conjunto de bibliotecas que permitem resolver classes particulares de
problemas. Associado ao MATLAB encontra-se a ferramenta de simulação denominada
SIMULINK, que tem como principal função a simulação de sistemas dinâmicos. Os modelos
são criados recorrendo-se a uma interface gráfica, que contém blocos que representam e
modelam operações específicas.
Ao contrário de linguagens de programação clássicas no ambiente MATLAB o usuário não se
preocupa com:
 Declaração de variáveis;
 Alocação de memória;
 Utilização de ponteiros;
 Outras tarefas de rotinas.
4.2 Ambiente MATLAB
Para iniciar uma sessão MATLAB em MS Windows, basta dar um duplo clique no ícone do
MATLAB, abrindo-se uma janela designada por MATLAB Desktop. Quando o MATLAB é
carregado surge uma janela principal dividida em quatro sub-janelas, com diferentes
informações, conforme mostradas na Figura 4.1. As sub-janelas podem ser
ativadas/desativadas, através da opção Desktop.
a) Command Windows (Janela de Comandos): permite executar os comandos e funções
no MATLAB;
b) Current Folder (Navegador de Diretórios): permite visualizar ou alterar o diretório de
trabalho;
c) Workspace (Espaço de Dados): permite visualizar e manipular as variáveis existentes
em memória, na sessão do MATLAB;
d) Command History (Histórico de Comandos): apresenta os últimos comandos
executados.
2
Figura 4.1 – Janelas de trabalho do MATLAB.
4.2.1 Janela de Comandos
Nesta janela podem-se introduzir variáveis, comandos, funções e executar arquivos M.
Quando a janela está pronta para receber comandos, surge o símbolo >>, designado prompt.
A janela de comando pode ser limpa por meio do comando clc, ou através do comando Clear
Command Window no menu Edit. Para facilitar a digitação de comandos previamente
utilizados, o MATLAB permite ao usuário por meio das teclas de direção do teclado,
facilidade de navegação pelo histórico dos comandos executados, conforme a Tabela 4.1.
Tabela 4.1- Teclas de navegação
Acessa o último, penúltimo e assim sucessivamente, os comandos utilizados.
Tecla 
Tecla 
Tecla 
Tecla 
Acessa os comandos utilizados na ordem inversa a tecla
Move o cursor para a direita
Move o cursor para a esquerda

4.2.2 Linhas de Comando e Variáveis do MATLAB
As linhas de comando do MATLAB frequentemente são da forma nome da variável = valor
numérico. Podem ser compostas expressões com operadores e outros caracteres especiais,
com funções, e com nomes de variáveis. A execução da expressão produz uma matriz. A
matriz é mostrada na tela e assume o nome da variável definida na linha de comando, para
que possa ser utilizada em outra situação. Se for omitido o nome da variável e o sinal de igual,
3
o MATLAB cria automaticamente no Workspace uma variável com o nome ans . A Figura
4.2 apresenta um exemplo de linha de comando que cria duas variáveis a e b; e outro
exemplo, que omite o nome da variável e o sinal de igual. As variáveis criadas são
apresentadas na janela Workspace.
Figura 4.2 – Definição de variáveis.
Uma linha de comando normalmente termina com a tecla Enter. Entretanto, se o último
caractere for um ponto-e-vírgula (;), a variável que é produzida não é mostrada na tela. O
MATLAB é uma linguagem case-sensitive, interpreta de forma diferente letras maiúsculas e
minúsculas. A letra “A” (maiúscula) e a letra “a” (minúscula), não são a mesma variável. Os
nomes das funções devem ser digitados em letras minúsculas.
O sinal de igual (=), utilizado para definir variáveis é designado por operador ou sinal de
atribuição. A Figura 4.3 apresenta a forma correta de atribuir uma variável e dois erros
normalmente cometidos na atribuição de variáveis. No primeiro caso, só uma variável pode
estar do lado esquerdo da expressão e no segundo caso, uma variável só pode ter atribuído
uma valor, se o lado direito da expressão apresentar um valor computável. No caso do último
exemplo, a variável b deveria ter sido definida anteriormente, caso contrário ocorrerá um
erro.
Figura 4.3 – Erros na atribuição de variáveis.
4
No MATLAB pode-se atribuir diversas variáveis numa única linha e separá-las por ponto e
vírgula ou por vírgula. No caso de usar vírgula, o resultado de cada uma das atribuições é
apresentado na janela de comandos, ao contrário do ponto e vírgula. A Figura 4.4 apresenta a
atribuição de diferentes variáveis numa única linha e ilustra-se a possibilidade de escrever um
comando em linhas sucessivas, utilizando o símbolo (...) três pontos, para separação das
diferentes linhas em que o comando é escrito.
Figura 4.4 – Diversas atribuições na mesma linha.
Como apresentado nas Figuras anteriores os comentários são iniciados com o símbolo (%)
percentual. Quando o MATLAB executa o programa e encontra este símbolo, não executa o
que se encontra à sua direita, até o final da linha. Os comentários devem ser utilizados para
descrever a funcionalidade das linhas de comando.
Caso deseje saber quais as variáveis que estão atribuídas no Workspace, utiliza-se o comando
who. Na Figura 4.5 é apresentado um exemplo de aplicação do comando who. Para um
melhor detalhamento da variável como, tipo e tamanho ocupado em bytes na memória,
utiliza-se o comando whos.
Figura 4.5 – Informações sobre variáveis.
A Tabela 4.2 lista as teclas que podem ser usadas para edição na linha de comandos do
5
MATLAB e alguns comandos importantes para gerenciamento de variáveis e do Workspace.
Tabela 4.2- Lista de teclas e comandos importantes na edição
Ctrl-P
Chama uma linha de comando anterior.
Ctrl-N
Chama uma linha de comando posterior.
Ctrl-F
Move o cursor um caractere à direita.
Ctrl-B
Move o cursor um caractere à esquerda.
Delete
Move o cursor à esquerda, apagando um caractere.
Ctrl-L
Move o cursor uma palavra à esquerda.
Ctrl-A
Move o cursor para o começo da linha.
Ctrl-R
Move o cursor uma palavra à direita.
Ctrl-E
Move o cursor para o final da linha.
Ctrl-D
Apaga o caractere que está sobre o cursor.
Ctrl-U
Cancela a linha.
Ctrl-K
clc
Apaga até o final da linha.
Limpa a janela Command Window.
Lista de variáveis correntes.
who
Detalha as variáveis.
whos
Limpa as variáveis correntes na memória.
clear
Lista diretório de arquivos no diretório corrente.
what
Lista a versão do software, número da licença e todas as Toolbox
instaladas com as respectivas versões.
ver
Carrega arquivo do disco no Workspace.
load
Salva arquivo do Workspace no disco.
save
4.2.3 Funções Matemáticas no MATLAB
O MATLAB é uma ferramenta completa para funções matemáticas básicas e elementares. A
utilização das funções matemáticas no MATLAB é de uso intuitivo, porém para um melhor
entendimento recomenda-se a consulta à documentação do MATLAB, comando help < nome
da função>, e também no Apêndice 1 deste livro está disponível um resumo das principais
funções do MATLAB. A seguir serão apresentados alguns exercícios resolvidos, para analisar
algumas funções matemáticas elementares do MATLAB. Podem ser construídas expressões
com os operadores de aritmética usuais e as regras de precedência. A Tabela 4.3 apresenta as
funções matemáticas básicas.
Tabela 4.3- Funções matemáticas básicas
+
adição
-
subtração
6
*
multiplicação
\
divisão por número à esquerda
/
^
divisão por número à direita
Potência
Exercício 4.1:
Dada a igualdade trigonométrica na Equação 4.1, prove que ela é verdadeira para um ângulo
de 20 radianos.
sec2   1  tg 2  1 
Solução:
sin 2 
cos 2 
(4.1)
A Figura 4.6 apresenta a solução do problema apresentado em MATLAB.
Figura 4.6 – Igualdade trigonométrica.
Exercício 4.2:
Dada a igualdade trigonométrica hiperbólica na Equação 4.2, prove que ela é verdadeira para
um ângulo de 30 radianos.
1
cosh 

 cot gh 
tgh  senh 
(4.2)
Solução:
7
A Figura 4.7 apresenta a solução da igualdade trigonométrica hiperbólica em MATLAB.
Figura 4.7 – Igualdade trigonométrica hiperbólica.
Exercício 4.3:
O cálculo logarítmico é muito utilizado em cálculos matemáticos. No MATLAB o logaritmo
na base natural é representado por log, na base 10 é representado por log10 e na base 2 é
representado por log2. A Equação 4.3 representa uma propriedade dos logaritmos. Prove que
a propriedade é verdadeira.
log(a * b)  log(a)  log(b)
(4.3)
Solução:
A Figura 4.8 apresenta a prova da propriedade dos logaritmos em MATLAB.
8
Figura 4.8 – Propriedade logarítmica.
Exercício 4.4:
A representação de um número complexo em MATLAB é realizada por meio dos símbolos j
ou i.
No exercício a seguir apresente a representação de um número complexo recorrendo ao
símbolo j, i e a raiz quadrada.
Solução:
A Figura 4.9 ilustra as representações de um número complexo através dos símbolos j, i e raiz
quadrada.
Figura 4.9 – Representação de um número complexo.
9
.
Exercício 4.5:
A representação de um número complexo em MATLAB, também pode ser realizada pela
função complex. Represente o número complexo z=2+j pela função dada.
Solução:
A Figura 4.10 apresenta a representação do número complexo dado pela função complex.
Figura 4.10 – Representação de um número complexo pela função complex.
4.2.4 Matrizes
Qualquer variável MATLAB é uma matriz. Este aspecto permite efetuar de forma fácil e
intuitiva operações matemáticas, que em outras linguagens exigiriam o recurso de técnicas de
programação avançadas. As operações estudadas até o presente momento envolveram a
utilização de variáveis denominadas escalares. Na verdade, as variáveis escalares são tratadas
no MATLAB como um caso particular de matrizes, ou seja, um escalar é uma matriz de
dimensão 1 x 1, uma matriz de uma linha por uma coluna. Matriz é uma tabela de números
dispostos em m linhas e n colunas. Assim, um simples número pode ser considerado uma
matriz com uma linha e uma coluna, uma coordenada x  y pode ser considerada uma
matriz com uma linha e duas colunas, e um grupo de quatro coordenadas x  y  z pode
ser considerada uma matriz com quatro linhas e três colunas.
Se uma matriz contiver m linhas e n colunas, então conterá um total de m.n elementos.
Cada elemento da matriz é indicado por índices, aij . O primeiro i , indica a linha, o
segundo j , indica a coluna onde o elemento se encontra. Se o número de linhas e colunas
for igual, então dizemos que a matriz é uma matriz quadrada. Se a matriz tiver apenas uma
linha e uma coluna, podemos dizer que o valor é um escalar, se a matriz contiver apenas
uma linha ( m  1 ) ou uma coluna ( n  1 ), a matriz é chamada vetor-linha ou vetorcoluna, respectivamente.
10
Exercício 4.6:
Dada a matriz a , 2 linhas x 2 colunas. Mostre no MATLAB as duas formas possíveis de
defini-la.
1 3
a
5 2
Solução:
Na Figura 4.11, na primeira instrução as linhas são definidas com espaçamento entre os
elementos e na segunda instrução as linhas são definidas com os elementos separados por
vírgulas.
Figura 4.11 – Formas de definir uma matriz.
Exercício 4.7:
Dado um vetor linha a  [1, 3] e um vetor linha b  [5, 2] . Defina uma matriz
constituída dos vetores linhas dados.
Solução:
Na Figura 4.12, a partir da definição dos vetores linhas a e b é definida a matriz c .
11
c  [a , b] ,
Figura 4.12 – Matriz definida a partir de vetores linhas.
Exercício 4.8:
Sabendo-se que a função zeros ( m , n ) gera uma matriz mxn preenchida com zeros e a função
ones ( m , n ) gera uma matriz mxn preenchida com uns. Gere uma matriz zeros ( 3, 4 ) e uma
matriz ones ( 4, 2 ).
Solução:
A Figura 4.13, apresenta as matrizes geradas com as funções zeros e ones.
Figura 4.13 – Matriz gerada com as funções zeros e ones.
Exercício 4.9:
Deseja-se gerar uma matriz com elementos aleatórios 2 x 2, com distribuição uniforme. Gerar
também, uma matriz com elementos aleatórios 3 x 2, com distribuição normal.
12
Solução:
Na Figura 4.14, a função randn(n) cria uma matriz quadrada de dimensão nxn com
distribuição uniforme e a função randn (m,n) gera uma matriz com dimensão mxn com
distribuição normal.
Figura 4.14 – Matrizes com elementos aleatórios.
Exercício 4.10:
As matrizes identidades são muito utilizadas nos cálculos matriciais. Criar uma matriz a
identidade quadrada 3 x 3 e uma matriz b identidade 2 x 3.
Solução:
O MATLAB tem duas funções específicas para criação de matrizes identidades. Na Figura
4.15, a função eye (n) cria uma matriz a identidade de dimensão nxn e a função eye (m,n) cria
uma matriz b identidade de dimensão mxn.
13
Exercício 4.11:
Figura 4.15 – Matrizes identidades.
Dada uma matriz a de valores aleatórios, determine as suas dimensões, número de linhas e o
número de colunas.
Solução:
O MATLAB tem duas funções para determinação das dimensões de uma matriz. Na Figura
4.16 é apresentada a função d = size(a), que retorna um vetor linha cujo primeiro elemento é
o número de linhas e o segundo elemento o número de colunas da matriz a. A segunda
função [m,n] = size(a), retorna na variável m o número de linhas e na variável n o número de
colunas da matriz a.
14
Figura 4.16 – Dimensões, número de linhas e colunas de uma matriz.
4.2.4.1 Operador Dois Pontos ( : )
A técnica de acesso a determinados elementos ou conjunto de elementos de um vetor ou matriz
designa-se por indexação matricial. O operador dois pontos (:) é útil no acesso a um conjunto
de elementos de uma matriz ou vetor. Dado um vetor pode-se ter acesso aos seus
elementos usando índices numéricos, que identificam o elemento que se pretende
acessar. Para o caso genérico de uma matriz A, pode-se acessar o elemento
localizado na linha i, coluna j, por meio do comando A(i, j). Por exemplo, para
acessar o primeiro elemento de um vetor x, utiliza-se o comando x(1), o segundo
elemento x(2), e assim sucessivamente. Dependendo do argumento, pode significar todas
as linhas ou todas as colunas da matriz.
Se o operador dois pontos for usado na notação A = 1 : 8; a matriz A conterá os valores 1, 2,
3, 4, 5, 6, 7 e 8. O operador dois pontos “ : ” entre dois números inteiros gera todos os
inteiros entre os dois números especificados. Se for usado, para separar três números, os dois
pontos gerarão valores entre o primeiro e terceiro número, usando o segundo número como
incremento. Por exemplo, a notação t=0.0:0.5:5.0 gera um vetor linha denominado tempo
que contém os números de 0.0 a 5.0 com incrementos de 0.5. O incremento também pode ser
um valor negativo como, por exemplo, a notação v = 10: -1: 0 gera os elementos 10, 9, 8, 7, 6,
… 0.
A função linspace (x1, x2, n) gera um vetor com n pontos igualmente espaçados entre x1 e x2.
No caso de n não ser especificado, a função assume um valor n=100. Por exemplo,
a  linspace(1,10,10) , define um vetor linha com 10 elementos, em que o primeiro elemento é
15
igual a 1 e o último elemento é igual a 10, ou seja, a  [1, 2,3, 4,5,6,7,8,9,10] .
Exercício 4.12:
Dada a matriz A, extraia um vetor x correspondente a primeira coluna da matriz e um vetor
z correspondente a sua primeira linha.
A  [0.0, 0.0;0.1,0.2;0.3,0,6]
Solução:
Na Figura 4. 17, os elementos do vetor x correspondem à primeira coluna da matriz A. O
segundo comando cria um vetor z cujos elementos correspondem aos elementos da primeira
linha da matriz A.
Figura 4.17 – Vetor coluna x e vetor linha z extraídos da matriz A.
Exercício 4.13:
Dado o vetor a  1: 2 :10 extraia o elemento a(2), o segundo, o terceiro e o quarto elemento
do vetor. Também altere o primeiro elemento do vetor atribuindo-lhe o valor 7.
Solução:
Na Figura 4. 18 são apresentados os elementos a(2), o segundo até o quarto elemento e a
alteração do primeiro elemento para o valor 10 do vetor a.
16
Figura 4.18 – Extração e substituição dos elementos de um vetor.
Exercício 4.14:
Dado a matriz A acesse o elemento composto da segunda linha e segunda coluna e acesse
uma sub matriz constituída pelas duas primeiras linhas e duas primeiras colunas.
3 1 5
A 4 9 0
2 6 6
Solução:
Na Figura 4. 19 são apresentados o elemento A(2,2) e a sub matriz A(1:2,1:2).
17
Figura 4.19 – Extração do elemento e a sub matriz.
Exercício 4.15:
Na matriz A do exercício anterior, extrair a terceira linha, a primeira coluna e a sub matriz
formada pela primeira e terceira linha e as três colunas.
Solução:
Na Figura 4. 20 são apresentadas a terceira linha A(3, :), a primeira coluna A(:, 1) e a sub
matriz A([1 3], :).
18
Figura 4.20 – Extração da linha, coluna e sub matriz.
Exercício 4.16:
Na matriz A do exercício anterior, apagar a primeira linha e alterar o elemento A11 para zero.
Solução:
Na Figura 4. 21 o comando A (1, :) = [] apaga a primeira linha da matriz A, e o comando
A(1,1) = 0 altera o elemento A11 (primeira linha, primeira coluna) para 0.
19
Figura 4.21 – Eliminação de uma linha e substituição de um elemento da matriz A.
Exercício 4.17:
Na matriz A do exercício anterior, introduza duas linhas à matriz original, sendo que a quarta
linha com os elementos 1, 2 e 3 e a quinta linha com os elementos 4, 5 e 6.
Solução:
Na Figura 4. 22 o comando A ([4 5], :) = [1 2 3; 4 5 6] concatena duas linhas a matriz A, com
os elementos 1, 2 e 3 na quarta linha e os elementos 4, 5 e 6 na quinta linha.
20
Figura 4.22 – Concatenação de duas linhas a matriz A.
4.2.4.2 Operações com Matrizes e Vetores
Para ilustrar as operações matemáticas com matrizes e vetores consideraremos duas matrizes
genéricas a e b de ordem mxn e dois vetores genéricos a e b de n elementos, conforme
representados a seguir.
 a11 a12
a
a22
a   21
 ... ...

 am1 am 2
... a14 
... a24 

... ... 

... amn 
 b11 b12
b
b22
b   21
 ... ...

bm1 bm 2
a  [a1 , a2 ,..., an ]
... b14 
... b24 

... ... 

... bmn 
b  [b1 , b2 ,..., bn ]
4.2.4.3 Adição e Subtração de Arranjos
As operações de adição e subtração são efetuadas apenas com matrizes de mesmo tamanho ou
mesma dimensão. A operação é obtida adicionando-se ou somando-se elementos em posições
correspondentes nas matrizes. Em geral, se a e b são duas matrizes, por exemplo, matrizes 2 x
3, a matriz resultante da adição a + b será dada pelo arranjo da Equação 4.4. Os exercícios
resolvidos a seguir ilustram as operações de adição e subtração com matrizes e vetores.
a
a   11
 a21
a12
a22
a13 
a23 
b b
b   11 12
b21 b22
b13 
b23 
21
a12  b12
a  b
a  b   11 11
 a21  b21 a22  b22
a13  b13 
a23  b23 
(4.4)
Exercício 4.18:
Dado o vetor a= -2:3 e o vetor b= [1 2 3 4 5 6]. Calcule a soma e a subtração dos vetores a e
b.
Solução:
Na Figura 4. 23 observe que os vetores a e b tem a mesma dimensão. A adição ou subtração é
realizada entre cada elemento dos vetores.
Figura 4.23 – Soma e subtração dos vetores.
Exercício 4.19:
Considerando os vetores a e b do exercício anterior. Some o escalar 4 ao vetor a e subtraia do
vetor b o escalar 5.
Solução:
22
Na Figura 4. 24 a operação é realizada somando ou subtraindo o escalar a cada elemento do
vetor.
Figura 4.24 – Soma e subtração entre escalar e vetor.
Exercício 4.20:
Dada as matrizes a e b. Efetue a soma entre as matrizes.
a  [2,3,1;3, 4,5;1, 2, 2]
b  [3, 7,9; 2,1,0;0, 4,1]
Solução:
Na Figura 4. 25 como as matrizes são quadradas de dimensões 3 x 3, a operação é realizada
somando-se cada elemento das matrizes.
23
Figura 4.25 – Soma entre matrizes.
Exercício 4.21:
Dada as matrizes a e b do exercício anterior. Efetue a subtração entre as matrizes.
Solução:
Na Figura 4. 26 como as matrizes são quadradas de dimensões 3 x 3, a operação é realizada
subtraindo-se cada elemento das matrizes.
24
Figura 4.26 – Subtração entre matrizes.
Exercício 4.22:
Considerando as matrizes a e b do exercício anterior. Some o escalar 4 a matriz a.
Na Figura 4. 27 a soma entre um escalar e uma matriz realiza a operação individualmente
sobre cada elemento da matriz.
25
Figura 4.27 – Soma entre um escalar e uma matriz.
4.2.4.4 Multiplicação de Arranjos
A operação de multiplicação (*) é executada conforme as regras da álgebra linear. Ou seja, se
a e b são duas matrizes, a operação (a  b) só é possível se, e somente se, o número de colunas
da matriz a for igual ao número de linhas da matriz b. O resultado da operação será uma
matriz, que possui o mesmo número de linhas da matriz a e o mesmo número de colunas da
matriz b. Por exemplo, se a matriz a for uma matriz 4x3 e a matriz b for uma matriz 3x2, a
multiplicação de (a  b) será dada pela Equação 4.5.
 a11
a
a   21
 a31

 a41
a12
a22
a32
a42
a13 
a23 

a33 

a43 
 b11 b12 
b  b21 b22 
 b31 b32 
 (a11b11  a12b21  a13b31 ) (a11b12  a12b22  a13b32 ) 
(a b  a b  a b ) (a b  a b  a b ) 
21 12
22 22
23 32 
a  b   21 11 22 21 23 31
 (a31b11  a32b21  a33b31 ) (a31b12  a32b22  a33b32 ) 


(a41b11  a42b21  a43b31 ) (a41b12  a42b22  a43b42 ) 
26
(4.5)
Exercício 4.23:
Dado os vetores a e b. Efetue a multiplicação entre os dois vetores e a multiplicação entre o
vetor a e o escalar 3.
a  [2,3,1]
b  [1;1;1]
Solução:
Na Figura 4. 28, a multiplicação dos vetores obriga que o número de colunas do vetor à
esquerda do operador de multiplicação, seja igual ao número de linhas do vetor a direita do
operador de multiplicação. A operação de multiplicação do vetor a pelo escalar 3, resulta num
vetor constituído pelos elementos do vetor a multiplicados pelo escalar 3.
Figura 4.28 – Multiplicação entre vetores e vetor e escalar.
Exercício 4.24:
Dada as matrizes a, b e c. Calcule a matriz d  a * b ; a matriz e  c * a e a matriz f  a * c .
a  [1,1;3, 2]
27
b  [0,1;0, 2]
c  [0,1]
Solução:
Na Figura 4. 29, a multiplicação das matrizes resulta na matriz d de ordem 2 x 2 e na matriz e
de ordem 1 x 2. A operação de multiplicação de matrizes só pode ser efetuada quando o
número de colunas da matriz à esquerda do operador de multiplicação é igual ao número de
linhas da matriz à direita do operador de multiplicação. A matriz f resulta em um erro, pois a
condição não é satisfeita.
Figura 4.29 – Multiplicação entre matrizes.
4.2.4.5 Divisão de Arranjos
A operação de divisão de matrizes também está condicionada às regras da álgebra linear. O
MATLAB possui dois tipos de operadores de divisão. O operador de divisão à direita ( / ) e o
operador de divisão à esquerda ( \ ). Os exercícios a seguir ilustram o modo de utilização dos
operadores de divisão, além de mostrar a função inv (inversa de uma matriz).
Exercício 4.25:
Dada as matrizes a e b. Calcule a matriz X 1  a \ b e a matriz X 2  inv(a) * b .
a  [2,1,1;1, 6, 2;3, 4, 4]
b  [1; 2;1]
Solução:
Na Figura 4. 30, a matriz X 1 é igual a matriz X 2 . A relação aX  b pode ser transformada em
28
X  a 1b . Assim, a divisão entre as matrizes a e b pode ser realizada pela multiplicação da
inversa de a pela matriz b, ou com base no operador à esquerda a \ b .
Figura 4.30 – Divisão entre matrizes.
Exercício 4.26:
Dado o sistema de equações lineares, utilizando as regras de divisão de matrizes apresentadas
no exercício anterior, resolva o sistema.
4x  2 y  6z  8
2x  3 y  4z  6
5 x  10 y  3 z  0
Solução:
Na Figura 4. 31, aplicando-se as regras da álgebra linear, o sistema de equações pode ser
rescrito na forma matricial aX  b .
 4 2 6   x   8 
 2 3 4   y   6 

   
 5 10 3   z  0 
29
Figura 4.31 – Solução de sistema de equações lineares.
4.2.4.6 Operações Escalares Envolvendo Elementos de Vetores e
Matrizes
Existem situações que requerem operações escalares envolvendo elementos correspondentes
em dois ou mais arranjos (vetores ou matrizes). As operações escalares de multiplicação,
divisão e exponenciação de vetores ou matrizes, envolvendo elemento por elemento dos
arranjos são sinalizadas digitando-se um ponto antes do operador aritmético, conforme
apresentado na Tabela 4.4.
Tabela 4.4 - Operações escalares de matrizes
Símbolo
Descrição
.
Multiplicação escalar
./
Divisão escalar à direita
.\
Divisão escalar à esquerda
.^
Exponenciação escalar
As Equações 4.6, 4.7 e 4.8 apresentam a multiplicação, divisão e exponenciação escalar
envolvendo elementos correspondentes de dois vetores a e b.
a.* b   a1b1 , a2b2 , a3b3 , a4b4 
(4.6)
a. / b   a1 / b1 , a2 / b2 , a3 / b3 , a4 / b4 
(4.7)
a. ^ b  ( a1 )b11 , ( a2 )b2 , ( a3 )b3 , (a4 )b4 
(4.8)
As Equações 4.9, 4.10 e 4.11 apresentam a multiplicação, divisão e exponenciação escalar
envolvendo elementos correspondentes de duas matrizes a e b.
30
 a11b11
a.* b   a21b21
 a31b31
 a11 / b11
a. / b   a21 / b21
 a31 / b31
 (a11 ) n

a.^ n  (a21 ) n
 (a31 ) n

a12b12
a22b22
a32b32
a13b13 
a23b23 
a33b33 
a12 / b12
a22 / b22
a32 / b32
(a12 )n
(a22 )n
(a32 )n
(4.9)
a13 / b13 
a23 / b23 
a33 / b33 
(4.10)
(a13 ) n 

(a23 ) n 
(a33 )n 
(4.11)
Os exercícios a seguir demonstram a aplicação das operações escalares envolvendo elementos
correspondentes de matrizes e vetores.
Exercício 4.27:
Dada a função y  x 2  4 x . Crie um vetor x de oito elementos, tal que x  1;8 e calcule os
valores da função para os elementos do vetor criado.
Solução:
Na Figura 4. 32 cria-se o vetor x, a seguir o vetor x é utilizado em operações escalares para
gerar os elementos do vetor y.
Figura 4.32 – Valores da função
y para o vetor x criado.
31
Exercício 4.28:
z3  5z
. Crie um vetor z de oito elementos, tal que z  1; 2;5 e calcule
4 z 2  10
os valores da função para os elementos do vetor criado.
Dada a função y 
Solução:
Na Figura 4. 33, as operações escalares, elemento por elemento, são usadas para gerar z 3 e z 2 e
dividir o numerador pelo denominador.
Figura 4.33 – Valores da função
.
y para o vetor z criado.
4.2.4.7 Funções Nativas do MATLAB
O MATLAB contém diversas funções nativas para cálculos com arranjos, que são muito úteis
para o programador. A seguir serão apresentados alguns exercícios exemplos.
Exercício 4.29:
Dado o vetor a  9, 2, 4,5 . Calcule o valor médio dos elementos do vetor a.
Solução:
Na Figura 4. 34 a função mean (a), se a é um vetor, retorna o valor médio dos elementos do
vetor.
32
Figura 4.34 – Valor médio de um vetor.
Exercício 4.30:
Dado o vetor a  9, 2, 4,5, 0,12, 20,3,1,36 . Calcule o valor máximo e o valor mínimo entre
os elementos do vetor a.
Solução:
Na Figura 4. 35 a função max (a) e a função min (a), se a é um vetor , retorna o valor máximo
e mínimo entre os elementos do vetor.
Figura 4.35 – Valor máximo e mínimo de um vetor.
33
Exercício 4.31:
No vetor a  9, 2, 4,5, 0,12, 20,3,1,36 . Calcule o valor máximo e o valor mínimo entre os
elementos do vetor a, indicando a respectiva posição do elemento no vetor.
Solução:
Na Figura 4. 36 as funções [d,n]=max (a) e [d,n]=min (a), se a é um vetor , d retorna o valor
máximo e mínimo entre os elementos do vetor, e n a respectiva localização do elemento
máximo ou mínimo no vetor.
Figura 4.36 – Valor máximo e mínimo, com sua localização no vetor.
Exercício 4.32:
No vetor a  9, 2, 4,5, 0,12, 20,3,1,36 . Calcule a soma dos elementos do vetor.
Solução:
Na Figura 4. 37, se a é um vetor, a função sum(a) retorna a soma dos elementos do vetor.
34
Figura 4.37 – Soma dos elementos de um vetor.
Exercício 4.33:
No vetor a  9, 2, 4,5, 0,12, 20,3,1,36 . Ordene os elementos do vetor na ordem crescente.
Solução:
Na Figura 4. 38, se a é um vetor, a função sort(a) ordena os elementos do vetor na ordem
crescente.
Figura 4.38 – Ordenação dos elementos de um vetor.
Exercício 4.34:
No vetor a  9, 2, 4,5, 0,12, 20,3,1,36 . Calcule a mediana e o desvio padrão dos elementos
do vetor a.
Solução:
35
Na Figura 4.39, se a é um vetor, a função median(a) e a função std(a) calculam
respectivamente a mediana e o desvio padrão dos elementos de um vetor.
Figura 4.39 – mediana e desvio padrão dos elementos de um vetor.
Exercício 4.35:
Dada a matriz a   2, 2,1;3, 2, 1; 2, 3, 2 . Calcule o determinante de a e a sua matriz
inversa.
Solução:
Na Figura 4.40 a função det(a) e a função inv(a) calculam respectivamente o determinante e a
matriz inversa da matriz a.
36
Figura 4.40 – Determinante e a matriz inversa de uma matriz.
Exercício 4.36:
Sabendo-se que o coeficiente de atrito cinético (  ) entre um corpo de massa (m) e uma
superfície plana com atrito pode ser determinado experimentalmente. Numa experiência de
laboratório de Física foram realizadas seis medidas de força, com seis corpos de massa (m)
diferentes. Os resultados obtidos são apresentados na Tabela 4.5. A Equação 4.12 determina
o valor do coeficiente de atrito (  ) em função da força ( F ), da massa (m) e da gravidade (g),
que deve ser considerada g  9.81m / s 2 . Determine o coeficiente de atrito por medida, a
média e o desvio padrão.
F

(4.12)
mg
Tabela 4.5- Dados obtidos no experimento
Medida
1
2
3
4
5
6
Massa (m) 3
5
6
11 21
51
Força (F) 13.5 24.5 31 62 118 295
Solução:
Na Figura 4.41 define-se um vetor com os valores da massa (m), um segundo vetor com os
valores de força (F). Usando-se a Equação 4.6, operação elemento por elemento, calcula-se o
valor do atrito (  ) para cada medida. As funções mean e std calculam, respectivamente, a
média e o desvio padrão dos coeficientes de atritos.
37
Figura 4.41 – Coeficientes de atrito das medidas, com valor médio e desvio padrão.
4.2.5 Rotinas com Lista de comandos no MATLAB
Todos os comandos do MATLAB mostrados até este ponto deste livro são executados na
janela Command Windows. Esta forma de interação não é prática, nem eficaz quando se
pretende executar um número significativo de comandos, reproduzir os resultados de uma
determinada sequencia de processamento ou modificar o valor de algumas variáveis e
reavaliar os resultados obtidos. Quando se deseja executar muitos comandos em série,
encadeados logicamente entre si, deve-se primeiro criar um arquivo designado por arquivo MFiles ou script files. Quando o arquivo for chamado, os comandos vão sendo executados na
ordem em que são listados, como em um programa em uma linguagem convencional. A
sequencia de instruções armazenadas é executada como se cada instrução fosse introduzida
manualmente na linha de comandos pelo próprio usuário.
4.2.5.1 Criando Rotinas no MATLAB
As rotinas criadas no MATLAB na janela Editor/Debugger Windows podem ser apenas
sequencias de comandos (Scripts) ou funções. Para criar uma rotina tipo Script, acesse o
editor de programas, na janela principal, no menu File, selecione New e Script. A Figura 4.42
ilustra a janela do Editor de programas do MATLAB.
38
Figura 4.42 – Janela do Editor/Debugger Windows.
Na janela do Editor/Debugger, na coluna lateral esquerda, surge a numeração das linhas do
programa. Os comandos dentro do programa são digitados linha por linha. As linhas são
numeradas automaticamente. Durante a edição do programa, para passar para a próxima linha
deve-se pressionar a tecla Enter. As linhas utilizadas para os comentários, sempre devem ser
precedidas pelo caracterer % (percentual), para que não sejam executadas pelo programa
MATLAB. Após a edição do programa, antes de sua execução, o programa deve ser salvo, no
menu File, opção Save as , selecione o caminho e a localização da unidade de
armazenamento. O nome do arquivo deve ser iniciado por uma letra, pode incluir dígitos,
underline e possuir até no máximo 63 caracteres de extensão. O nome do arquivo não pode
conter espaços, caso contrário, no momento que executar o programa, ocorrerá um erro:
“Undefined function or method ‘file name‘ for input arguments of type ‘char’”. O programa
pode ser executado, digitando-se o nome do programa na linha do prompt, na janela
Command Windows, seguida da tecla Enter ou diretamente na janela Editor/Debugger
Windows, clicando no ícone Run. A Figura 4.43 apresenta um Script editado na janela do
editor de programas do MATLAB.
Figura 4.43 – Programa editado na janela do Editor/Debugger Windows.
39
4.2.5.2 Exemplo de Script Elaborados no MATLAB
A seguir são apresentados alguns Scripts com funções de entrada e saída de dados, elaborados
no MATLAB. Caso necessite de maiores informações sobre as funções apresentadas nos
exercícios resolvidos, recomenda-se que o leitor estude as funções no Apêndice A deste livro
ou no Help do MATLAB.
Exercício 4.37:
Criar uma rotina no MATLAB, que gere duas tabelas de conversão. Uma tabela converte
velocidade em milhas por hora (mi/h) em velocidade em quilômetros por hora (km/h). A
segunda tabela converte libras (lb) em Newton (N). Cada tabela deve ser salva em um arquivo
texto (extensão .txt) diferente. As Equações 4.13 e 4.14 apresentam as relações entre mi/h em
km/h e, libra em Newton, respectivamente.
km / h  mi / h *1.609
(4.13)
N  lb * 4.448
(4.14)
Solução:
Na rotina apresentada na Figura 4.44, inicialmente define-se um vetor de velocidade em
Vmph, aplica-se a fórmula de conversão da Equação 4.13 e cria-se uma matriz com duas
colunas (Vmph e Vkph). Depois se define um vetor de força em Flb, aplica-se a fórmula de
conversão da Equação 4.14 e cria-se uma matriz com duas colunas (Flb e FN). A função fopen
do MATLAB abre (com o argumento ‘w’) o arquivo chamado Vmph_Vkph e o arquivo
Flb_FN. A função fprintf escreve os resultados de saída em dois arquivos textos e o comando
fclose fecha os arquivos.
40
Figura 4.44 – Rotina de conversão Vmph em Vkmp e Flb em FN.
Essa rotina gera e salva dois arquivos textos, extensão .txt, no diretório selecionado no Current
Directory, que podem ser abertos em qualquer editor de textos, por exemplo, o Word. As
Figuras 4.45 e 4.46 apresentam as tabelas lidas pelo editor de texto Word.
Figura 4.45 – O arquivo Vmph_Vkpm gerado no editor de texto do Word.
41
Figura 4.46 – O arquivo Flb_FN gerado no editor de texto do Word.
Exercício 4.38:
Considerando a altura h(t ) e a velocidade v(t ) de um projétil lançado de uma plataforma,
com um ângulo  em relação a horizontal, com velocidade inicial v0 e gravidade
g  9,8m / s 2 . A altura e a velocidade do projétil podem ser determinadas, respectivamente,
pelas Equações 4.15 e 4.16. O tempo de voo do projétil é expresso pela Equação 4.17.
1
h(t )  v0t sin( )  gt 2
2
(4.15)
v(t )  v02  2v0 gt sin( )  g 2t 2
(4.16)
tvoo 
(4.17)
2v0 sin( )
g
Assumindo um valor de velocidade inicial v0  50m / s e um ângulo de lançamento   700 .
Crie uma rotina no MATLAB, que determine o intervalo de tempo em que a velocidade do
projétil é maior ou igual a 30m / s , para uma altura menor ou igual a 25m . Apresente um
gráfico que indique a relação altura por velocidade. O vetor de saída conterá os elementos do
vetor t, que respeitam a relação imposta pela condição h  25 & v  30 .
Solução:
Na rotina apresentada na Figura 4.47, inicialmente define-se os vetores velocidade inicial e
gravidade. Converte-se o ângulo alfa em radianos. Define-se o tempo de voo aplicando-se a
Equação 4.17, cria-se um vetor tempo utilizando-se a função linspace com 50 elementos.
Define-se a altura e a velocidade aplicando-se as Equações 4.15 e 4.16. Aplica-se a condição
imposta h  25 & v  30 , por meio da função find e encontra-se o vetor de saída, cujos
elementos são apresentados na janela do Command Window. A Figura 4.48 apresenta o gráfico
42
altura (h) e velocidade (v) por tempo, do movimento do projétil, gerado pela função plot.
Figura 4.47 – Rotina que determina o intervalo de tempo do movimento de um projétil com
condições de altura e velocidade determinadas.
Figura 4.48 – Gráfico altura (h) e velocidade (v) por tempo do movimento de um projétil
43
4.2.5.3 Exemplo de Funções Elaboradas no MATLAB
A resolução de problemas matemáticos complexos no MATLAB, geralmente necessita da
divisão em problemas mais simples ou elementares. Nesse caso, quando o valor de uma
função matemática precisa ser determinado dentro do programa, o MATLAB oferece o
recurso das funções. As funções são utilizadas para a implementação de soluções elementares,
que podem ser declaradas em rotinas, que são depois reutilizados na solução de outros
problemas.
As funções são Scripts com algumas características especiais. A sua estrutura básica é a
declaração da função no início do Script, para definir a sua sintaxe. A forma geral da
declaração de uma função é apresentada a seguir:
function [parâmetro(s)_saída] = nome_da_função (parâmetro(s)_entrada)
Uma função declarada e salva como um arquivo no MATLAB pode ser chamada em qualquer
parte do MATLAB. Desse modo, programas muito grande podem ser divididos em segmentos
menores, que podem ser testados independentes. As funções são semelhantes as sub-rotinas
das linguagens convencionais, como Basic e Fortran. A Figura 4.49 ilustra os passos para
criar uma função no MATLAB. No menu principal selecione File, New e Function.
Figura 4.49 – Passos iniciais para criar um função no MATLAB.
A Figura 4.50 ilustra um template gerado na janela Editor do MATLAB, onde deve ser criada
a função. Toda a função começa com a palavra em inglês function. Deve ser digitada em
letras minúsculas (1). Um argumento ou uma lista de argumentos (parâmetros) de saída
devem ser digitados entre colchetes (2). Nome da função pelo qual deve ser salva e chamada
quando necessário (3). Um argumento ou uma lista de argumentos de entrada devem ser
digitados entre parênteses (4).
Os exercícios resolvidos a seguir apresentam alguns exemplos de funções utilizadas na
solução de problemas com o MATLAB.
44
Figura 4.50 – Template de uma função disponível no Editor do MATLAB.
Exercício 4.39:
Escreva uma função em MATLAB, que converta temperatura em graus Fahrenheit (F) em
graus Celsius (C). Salve a função como FparaC. A Equação 4.18 representa a relação entre
as duas escalas de temperaturas. Crie um vetor F de temperaturas em graus Fahrenheit entre
30 e 50 graus, com intervalo de 5 graus e teste a função.
C  5*
F  32
9
(4.18)
Solução:
Na Figura 4.51 é apresentada a declaração da função FparaC, que converte temperatura em
grau Fahrenheit em temperatura em grau Celsius. Utilizou-se o template do Editor do
MATLAB para criar a função FparaC. Na janela do Command Window criou-se o vetor de
temperaturas F e chamou-se a função para a conversão de graus Fahrenheit em Celsius.
45
Figura 4.51 – Função FparaC que faz a conversão de graus Fahrenheit em Celsius.
Exercício 4.41:
Sabendo-se que a variação no comprimento de um objeto ( L ), devido à variação da
temperatura é dada pela Equação 4.19, onde  o coeficiente linear de dilatação e L o
comprimento do objeto. Determine a variação na área de uma chapa de alumínio de
dimensões 4.5m x 2.25m, se a temperatura variar de 400 F para 920 F . Considere
  23.106 / 0C .
L   L T
(4.19)
Solução:
Na Figura 4.52 inicialmente são declaradas as variáveis correspondentes às dimensões da
chapa ( a1 , b1 ), temperaturas ( T1 , T2 ) e o coeficiente de dilatação (  ). A seguir usando-se a
função FparaC calcula-se a diferença de temperatura em graus Celsius. Calcula-se o novo
comprimento da chapa ( a2 ) e a nova largura ( b2 ). Por fim calcula-se a variação total da área
da chapa.
46
Figura 4.52 – Variação total da área da chapa utilizando-se a função FparaC.
4.3 Exercícios Propostos
a) Dada a identidade trigonométrica pela Equação 4.20. Substituindo-se x 
identidade calculando cada lado da equação.
cos 2
x tan x  sin x

2
2 tan x

5
, verifique a
(4.20)
b) Declare e inicialize as variáveis a, b, c e d como: a  18.45; b  5.03; c  45.5; d  0.5 .
Em seguida calcule a Equação 4.21.
a
ab (a  d ) 2
c
ac
(4.21)
47
c) Crie os seguintes vetores.
c.1) Vetor linha contendo os seguintes elementos: 32; 4; e2.5 ; 63; cos

3
; 14.12.
c.2) Vetor coluna contendo os seguintes elementos: 55; 14; ln(51) ; 987; 0; 5sin(2.5 ) .
c.3) Vetor linha, onde o primeiro elemento é 1 e o ultimo 33. Produza números entre os
dois, incremente-os de 2 unidades.
d) Resolva o seguinte sistema de equações lineares:
3x  4 y  5 z  9
2x  7 y  z  2
6 x  10 y  3 z  0
e) Construa dois gráficos da função
f ( x)  0.6 x5  5 x 3  9 x  2 separadamente; no
primeiro use o intervalo 4  x  4 e, no segundo use o intervalo 2.7  x  2.7 .
f) Um mecanismo pistão-manivela-biela é apresentado na Figura 4.53, sendo constituído
por uma manivela de êmbolo, usada em muitas aplicações na engenharia. A manivela
gira a uma velocidade constante de 500 rpm. Calcule e esboce a posição, a velocidade e
a aceleração do embolo (pistão) para uma revolução da manivela. Construa três gráficos
na mesma janela de saída. Considere inicialmente   00 em t  0.
Figura 4.53 – Sistema pistão-manivela-biela.
Baseada na Figura 4.53, as Equações 4.22, 4.23, 4.24 e 4.25 podem ser utilizadas para calcular
as distancias d1 , d 2 , h e a posição x do pistão. Derivando-se x em relação a t obtemos a
velocidade do êmbolo; a derivada segunda de x em relação a t obtemos a aceleração do
êmbolo.
48
d1  r cos 
h  rsen
(4.22)
d 2  (c  h )  (c  r sin  )
2
1
2 2
2
2
2
(4.23)
1
2
(4.24)
x  d1  d 2  r cos   (c 2  r 2 sin 2  ) 2
1
(4.25)
g) Quando resistores são ligados em série, a queda de tensão em cada resistor é determinada
pela Equação 4.26, onde Vn é a queda de tensão sobre o resistor n , Req   Rn é a
resistência equivalente ou total e Vs é a tensão da fonte. A potência dissipada em cada
resistor pode ser determinada pela Equação 4.27.
Vn 
Pn 
Rn
Vs
Req
(4.26)
Rn 2
Vs
Req2
(4.27)
A Figura 4.54 apresenta um circuito com quatro resistores conectados em série. Desenvolva
um programa (Script), que calcule a queda de tensão e a potencia dissipada em cada resistor.
Ao executar a rotina, o usuário deve ser solicitado a digitar em um vetor o valor da fonte de
tensão e o valor de cada resistor. O programa exibirá uma tabela com os resistores listados na
primeira coluna, a queda de tensão na segunda coluna e a potencia dissipada na terceira coluna.
Após a tabela, o programa deve exibir a corrente total no circuito e a potência total dissipada.
Teste o programa com os seguintes valores de Vs e Rn .
Vs  24V ; R1  10; R2  15; R3  6; R4  12
h) Quando n resistores são conectados para formar um circuito paralelo, a resistência
equivalente Req desse circuito pode ser determinada pela Equação 4.28. Escreva uma
função no MATLAB que determine a Req . Como sugestão utilizar para o nome da
função e dos argumentos, por exemplo, REQ = req ( R ).Os parâmetros de entrada
devem estar disponível em um vetor, onde cada entrada desse vetor corresponde a um
valor de resistor, e o parâmetro de saída é
49
Req . Teste a função para determinar a
resistência equivalente quando os seguintes resistores são conectados em paralelo:
30, 45,100, 60,500,180 e 200 .
50
Download