Referência Básica: PALM, William J. Introdução ao MATLAB para engenheiros. Tradução de Tales Argolo Jesus. 3. ed. Porto Alegre: AMGH, 2013. xiv, 562, il. ISBN 9788580552041
Referência Complementar: MORAIS, V.. VIEIRA, C. MATLAB Curso Completo. FCA, 2013. 644. ISBN 9727227058
2 Conteúdos Abordados
2.1 Aula 1
06/Mar - Apresentação da disciplina, professores e alunos; Interface do MATLAB e operadores; Utilização básica (comandos help, clear, …);
Janela de comandos;
Inserindo comandos na Command Window;
Utilização do ponto e vírgula (;) para não aparecer na Command Window;
Variável ans;
Operadores:
Símbolo
Operação
Forma no Matlab
^
Exponenciação:
a^b
*
Multiplicação:
a*b
/
Divisão à direita:
a/b
\
Divisão à esquerda:
a\b
+
Adição:
a+b
-
Subtração:
a-b
Lista de Exercícios:
Exemplos de help e lookfor;
Usando o arquivo .m (m file);
Limpeza:
Comando clear all para apagar todas variáveis;
Comando clc para apagar texto na Command Window;
Variáveis e constantes especiais:
Comandos
Descrições
ans
Variável temporária que contém a resposta mais recente.
eps
Verifica a acurácia da precisão do ponto flutuante.
1i,1j
A unidade imaginária .
Inf
Infinito.
NaN
Indica um resultado numérico indefinido.
pi
O número .
2.2 Aula 2
08/Mar - Formatos de exibição; Definições de vetores e matrizes; Funções matemáticas; Plots
Formatos de exibição
Comando
Descrição e exemplo
format short
Quatro dígitos decimais (padrão); 13.6745
format long
16 dígitos; 17.27484029463547
format short e
Cinco dígitos (quatro decimais) mais o expoente; 6.3792e+03
format long e
16 dígitos (15 decimais) mais o expoente; 6.379243784781294e-04
format bank
Dois dígitos decimais; 126.73
format +
Positivo, negativo ou zero; +
format rat
Aproximação racional; 43/7
format compact
Suprime algumas linhas em branco
format loose
Restabelece o modo de exibição menos compacto
Vetores e matrizes
Definições de vetores
Definições de matrizes
Comando length e size
Arranjo de vetor utilizando dois pontos (:)
Definição de passo
Criação de vetor igualmente espaçamento: linear (linspace) e logarítmico (logspace)
Definições de matrizes eye, zeros e ones
Usando length e size na criação de matrizes
Transposição de vetor ou matriz com o apóstrofo ( .' )
Operações
Soma e diferença de matrizes
Produto matricial
Produto e divisão elemento a elemento de matrizes
Potenciação
Comandos sum e prod
Norma (norm), máximo (max) e mínimo (min)
Cálculo de determinante (det) e inversa (inv) de uma matriz
Funções Matemáticas
Função
Sintaxe no Matlab
exp(x)
sqrt(x)
ln x
log(x)
log10(x)
log2(x)
cos x
cos(x)
sen x
sin(x)
tan x
tan(x)
cos-1x
acos(x)
sen-1x
asin(x)
tan-1x
atan(x)
utilizando d após as funções sin, cos e tan e suas inversas, faz o cálculo em graus
Plots:
Comandos plot, stem e bar de uma função
Comando hold on para manter a curva no gráfico
Comando grid on para mostrar linhas em forma de grade
Nomes aos eixos com xlabel e ylabel
Comando title
Tipos de axis: Escala automática, equal, square e definido manualmente
Comando grid on para mostrar linhas em forma de grade
Nomes aos eixos com xlabel e ylabel
Comando title
Tipos de axis: Escala automática, equal, square e definido manualmente
Outros comandos relacionados a plotagem:
Comando figure
Comando subplot
Comando legend
Comando close all para fechar todas figuras
Comando fplot e comparação com plot
Especificadores de linha, cores e marcadores:
Tipo de linha
Símbolo
Sólida (padrão)
-
Tracejada
--
Tracejada com pontos
-.
Com pontos
:
Cores
Símbolo
Preto
k
Azul
b
Ciano
c
Verde
g
Magenta
m
Vermelho
r
Branco
w
Amarelo
y
Marcadores de dados
Símbolo
Ponto
.
Asterisco
*
Cruz
x
Círculo
o
Adição
+
Quadrado
s
Losango
d
Triângulo apontando pra cima
^
Triângulo apontando pra baixo
v
Triângulo apontando pra direita
>
Triângulo apontando pra esquerda
<
Estrela de 5 pontas
p
Estrela de 6 pontas
h
Exercícios
Faça o plot de cada uma das funções matemáticas vistas na aula passada. Use cores, hold on, subplots, etc.
Exercício: Plotar a função de -4 até 4 e encontrar as raízes por Bhaskara.
Resolver os exercícios abaixo
Exercício (livro - T5.1-2 p. 224): Utilize o comando fplot para investigar a função para . Quantos valores de aproximadamente são necessários para que seja obtida a mesma plotagem utilizando-se o comando plot?
Exercício: Fazer o plot de um sinal de tensão x tempo, como da figura abaixo:
de até → função seno:
de até → 0
de até → 1
de até → -1
Não esquecer de nomear os eixos.
Endereçamento de vetores e matrizes
Indexação de um elemento
Índice
Subscrito
Submatrizes
Índice
Subscrito
Lógico
Indexação/submatrizes do lado esquerdo vs do lado direito
Palavra-chave end
Exclusão de linha ou coluna
Concatenação
Comandos sort e find
2.4 Aula 4
23/Ago
Exercício (livro - 16 p. 101): A tabela a seguir mostra o salário por hora, as horas de trabalho e a produção (número de dispositivos produzidos) em uma semana para cinco fabricantes de dispositivos.
Trabalhador 1
Trabalhador 2
Trabalhador 3
Trabalhador 4
Trabalhador 5
Salário por hora ($)
5
5,50
6,50
6
6,25
Horas de trabalho
40
43
37
50
45
Produção (dispositivos
1000
1100
1000
1200
1100
Utilize o MATLAB para responder essas questões:
a) Quanto cada trabalhador lucrou na semana?
b) Qual foi o salário total pago?
c) Quantos dispositivos foram fabricados?
d) Qual é o custo médio para se produzir um dispositivo?
e) Quantas horas são necessárias, em média, para se produzir um dispositivo?
f) Assumindo que a produção de cada trabalhador tenha a mesma qualidade, qual trabalhador é o mais eficiente? Qual é o menos eficiente?
- Comandos mean, ceil, floor e round;
Exercício: A corda da figura abaixo está presa nos pontos A e B, determine seu comprimento e a sua direção, medidos de A para B.
- Produto escalar (dot) e produto vetorial (cross) de dois vetores;
Exercício: Calcule o produto vetorial e escalar dos vetores:
,
- Comando poly para criar um polinômio a partir de raízes;
- Comparação com comando roots;
- Multiplicação de polinômios (conv);
- Divisão de polinômios (deconv), com ou ser resto;
- Plot de um polinômio a partir de um intervalo de pontos. (polyval)
2.5 Aula 5
25/Ago
- Comando input para entrada de dados;
- Comando disp para mostrar mensagem;
Exercício: Criar uma calculadora de IMC com perguntas (input) para massa e altura, aparecendo na sequência o resultado
- Criando estruturas;
- Criando estruturas com o comando struct;
- Comando rmfield para remover campo da estrutura;
- Comando isfield para identificar se um campo existe ou não;
- Arranjo de células: texto e números;
- Comando celldisp e cellplot;
2.6 Aula 6
30/Ago
- Funções trigonométricas;
- Funções hiperbólicas;
- Função definida pelo usuário no arquivo .m;
Exercício: Criar uma função no arquivo .m da definição pelo exponencial do cosseno hiperbólico e do seno hiperbólico, comparando com a funções já existentes (cosh e sinh), plotar as curvas idênticas em 2 figuras (arquivo .m 1). Criar um novo arquivo .m com valores de entrada de até (arquivo .m 2).
- Importar arquivo para o Matlab, pelo menu e pelo comando uiimport;
Exemplo: usar [Celular4g.txt], importar e trabalhar com as funções de matrizes.
- Padronizar para o formato que o Matlab reconhece os números: ponto (.) e (,);
- Converter formato table2array.
2.7 Aula 7
01/Set
Exercício: com o arquivo [Add_user.txt] (Adições Líquidas de Aparelhos 4G das Operadoras no período), calcular a soma dos anos 2014, 2015 e 2016 (até o momento) por operadora e a soma e a média por período.
- Tipos de códigos: Sequenciais, Condicionais e Iterativos;
Operadores relacionais
Operador relacional
Significado
<
Menor que
<=
Menor ou igual a
>
Maior que
>=
Maior ou igual a
==
Igual a
~=
Não é igual a
Operadores de curto circuito
Operador
Nome
&&
E
OU
- As sentenças if, else e elseif.
Exercício: Criar um código que calcula o valor total da compra de algumas unidades de arroz (5kg), feijão (1kg) e café (500g).
O preço unitário do arroz é R$15,00. Se comprar 3 o preço cai para R$14,00 cada.
O preço unitário do feijão é R$12,00. Se comprar 4 o preço cai para R$11,50 cada.
O preço unitário do café é R$10,00. Se comprar 3 o preço cai para R$9,25 cada.
Colocar opção de entrada de dados com input e condição que não existe unidade negativa.
- Laços for.
2.8 Aula 8
06/Set
Exercício: Calcule e armazene a Sequência de Fibonacci, com a possibilidade de escolher o número de termos.
Exercício: Criar uma matriz (NxN) em que a diagonal principal é o produto de linha por coluna e nos outros termos é a soma
da linha com a coluna, com a possibilidade de escolher a dimensão N da matriz.
Exercício: Calcule o fatorial de um número que pode ser escolhido.
- Laços while.
Exercício (livro - Exemplo 4.6-2 p. 186): Determine o tempo necessário para que você acumule pelo menos $10000 em uma conta bancária se você depositar inicialmente $500 e mais $500 ao final de cada ano, com um rendimento anual de 5%.
Exercício: Fazer o plot de um sinal de tensão x tempo, como da figura abaixo, usando os conceitos da aula de hoje:
de até → função seno
de até → 0
de até → 1
de até → -1
Não esquecer de nomear os eixos.
2.9 Aula 9
08/Set
- A estrutura switch.
Exercício (livro - adaptado - T4.7-1 p. 189): Complemente o exercício anterior (resolvido em sala, exemplo p. 189) com os ângulos 0, 90, 180, 270 e 360 e as coordenadas.
Exercício (livro - Exemplo 4.7-1 p. 189): Utilize a estrutura switch para calcular o total de dias decorridos em um ano. Entrada de dados: o número do mês (1 até 12), o dia e a indicação de o ano ser bissexto ou não.
Exercício: Usando switch, calcule a soma dos ângulos internos de uma figura geométrica. Entrada de dados: o nome da figura, pelo menos até o hexágono.
2.10 Aula 10
13/Set
Exercício (livro - adaptado - 43 p. 215): Utilize a estrutura switch para calcular a quantidade de dinheiro que é acumulada em uma conta durante um ano. O programa deve aceitar as seguintes entradas: a quantidade inicial de dinheiro depositada na conta; a frequência do rendimento (mensal, trimestral, semestral ou anual); e o rendimento. Rode o seu programa para um depósito inicial que pode ser escolhido (por exemplo R$1000); utilize um rendimento a sua escolha (por exemplo 5%).
2.11 Aula 11
15/Set
Exercício (livro): Plote a parte imaginária versus a parte real da função n para . Escolha uma quantidade suficiente de pontos para obter uma curva suave. Rotule cada eixo e insira um título. Utilize o comando axis para alterar o espaçamento entro os rótulos dos tick-marks.
Exercício (1 - livro adaptado): A análise de equilíbrio determina o volume de produção para qual o qual o custo de produção total é igual à receita total. No ponto de equilíbrio, não há lucro nem perda. Em geral, os custos da produção consistem em custos fixos e custos variáveis. Os custos fixos incluem salários daqueles não diretamente envolvidos com a produção, custos de manutenção de fábrica, seguros, e assim por diante. Os custos variáveis dependem do volume de produção e incluem custos de material, trabalho e energia. Na análise a seguir, considere que nós produzimos apenas o que podemos vender; assim, a quantidade de produção é igual à quantidade de vendas. Q é a quantidade de produção, em galões por ano.
Considere os seguintes custos para um determinado produto químico:
- Custo fixo: $10 mil por ano.
- Custo variável: 25 centavos por galão de produto.
- O preço de venda é de 65 centavos por galão.
Utilize esses dados para plotar o custo total e a receita versusQ, e determine graficamente o ponto de equilíbrio. Para qual faixa de Q a produção gera lucro?
- Comandos gtext para colocar texto na figura com um clique e text para colocar texto em uma coordenada definida.
2.12 Aula 12
20/Set
- Comparação de gráficos: plot, loglog, semilogx e semilogy;
Exercício (livro - T5.2-1 p. 228): Escolha um espaçamento adequado para t e v, e utilize o comando subplot para plotar a função -0,5t para e a função 2 para . Rotule cada eixo. Utilize os comandos semilogx, semilogy ou loglog.
- Gráfico com dois eixos em y (plotyy);
Exercício (livro - adaptado - 15 p. 254): As seguintes funções descrevem as oscilações em circuitos elétricos e as vibrações de máquinas e estruturas. Sobreponha as plotagens dessas funções no mesmo eixo. Como elas são similares, defina qual é a melhor forma de plotá-las e de rotulá-las para evitar confusão. -0,5t -0,4t
- Letras gregas nos gráficos:
Letra
Representação
\alpha
\beta
\gamma
\delta
\epsilon
\kappa
\lambda
\mu
\nu
\omega
\phi
\pi
\chi
\psi
\rho
\sigma
\tau
\upsilon
\Sigma
\Pi
\Lambda
\Omega
\Gamma
- Funções stem, stairs e bar;
Exercício: Plote em uma figura as funções , usando stem; , usando stairs e em uma segunda figura , usando bar. Use um vetor com no máximo 100 posições.
2.13 Aula 13
22/Set
- Função polar;
Exercício: Plote a função polar: de .
- Mudar a espessura da linha com linewidth;
- Mudar o tamanho da fonte com fontsize;
- Mudar os eixos com gca;
- Mudar a localização com location, orientação com orientation e tamanho da fonte com fontsize no quadro da legenda;
- Ver a trajetória da função comet;
- Barras de erro de aproximação com errorbar;
Exercício (livro - adaptado - 10 p.253): Muitas aplicações utilizam a seguinte aproximação de "ângulo pequeno" para o seno com a finalidade de se obter um modelo mais simples que seja fácil de ser entendido e analisado. A aproximação estabelece que sen(x) , em que x deve ser em radianos. Investigue a precisão desta aproximação com dois plotes. No primeiro, plote sen(x) versus x para . No segundo, plote o erro da aproximação (sen(x) - x) versus x para .
- Plot em 3 dimensões com plot3;
Exercício (livro - 28 p. 258): As equações paramétricas para uma hélice circular são:
em que é o raio do caminho helicoidal e é uma constante que determina a "estreiteza" do caminho. Além disso, se , a hélice tem a forma de um parafuso destro; se , a hélice tem a forma de um parafuso canhoto. Obtenha uma plotagem tridimensional da hélice para os três casos a seguir e compare-os. Utilize e .
a) ;
b) ;
c) .
- Criar uma malha 3D com meshgrid;
- Plot de função de f(x,y) com mesh;
- Rótulo no eixo z: zlabel;
- Curva de níveis com contour, com a possibilidade de escolha do número de curvas;
- Possibilidade de aparecer ou não os valores das curvas com o comando showtext seguido de on;
- Comando para aparecer a malha 3D em apenas um sentido com waterfall;
- Comando para fazer malha 3D com sombreamento: surf;
- Comando para fazer malha 3D com sombreamento e curvas de níveis na projeção: surfc;
- Comando para fazer malha 3D e curvas de níveis na projeção: meshc;
- Comando para fazer malha 3D se alongar em z nas extremidades: meshz;
2.14 Aula 14
27/Set
Exercício (livro - 30 p. 259): Obtenha as plotagens de superfície e de contorno para a função 22, mostrando o mínimo em .
- Comando polyfit, que ajusta o polinômio de grau n aos dados descritos por x e y;
- Comando polyval, calcula a solução do polinômio a partir da escolha de um ponto;
Exercício (livro - adaptado - Exemplo 6.2-1 p. 277): Os dados da tabela a seguir correspondem ao número de veículos (em milhões) que cruzam uma ponte a cada ano durante 10 anos. Ajuste um polinômio aos dados até a ordem 4, calcule o coeficiente de ajuste. Plote a "melhor" curva.
Ano
1
2
3
4
5
6
7
8
9
10
Fluxo de veículos (milhões)
2,1
3,4
4,5
5,3
6,2
6,6
6,8
7
7,4
7,8
- Comando flip, representa o vetor de trás pra frente;
2.15 Aula 15
29/Set
Exercício (livro - adaptado - exemplo 6.2-2 p. 278): A tabela a seguir fornece dados de crescimento de uma determinada população de bactérias com o tempo. Ajuste uma equação para esses dados, calcule o coeficiente de ajuste e estime o fluxo no tempo 18 min. Plote a curva escolhida.
Tempo (min)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Bactérias (ppm)
6
13
23
33
54
83
118
156
210
282
350
440
557
685
815
990
- Plotar dados da tabela, menu Tools e depois Basic Fitting, para escolher a melhor função que interpola os dados.
- Comando rank saber a singularidade da matriz;
- Função pseudoinversa (pinv) para resolver um sistema cuja solução garante a menor norma.
Exercício (livro - 11 p. 363): Resolva as seguintes equações:
2.16 Aula 16
04/Out
- Definição de Matriz Aumentada;
- Comando rref para escalonar matriz;
Exercício (livro - adaptado - T8.3-1 p. 343): Encontre duas soluções e o escalonamento para o seguinte conjunto:
Exercício (livro - adaptado - 12 p. 363): A tabela a seguir mostra quantas horas de processo são necessárias para que os reatores A e B produzam uma tonelada de cada um dos produtos químicos 1, 2 e 3. Os dois reatores são disponíveis por 35 e 40 horas por semana, respectivamente.
Horas
Produto 1
Produto 2
Produto 3
Reator A
6
2
10
Reator B
3
5
2
Sejam x, y e z o número de toneladas de cada um dos produtos 1, 2 e 3 que podem ser produzidos em uma semana.
a) Utilize os dados na tabela para escrever duas equações em termos de x, y e z. Determine se existe um única solução. Encontre as relações entre x, y e z.
b) Note que os valores negativos de x, y e z não têm significado nesse caso. Encontre as faixas de valores possíveis para x, y e z.
c) Suponha que os lucros sejam de $200, $300 e $100 para cada produto 1, 2 e 3, respectivamente. Encontre os valores de x, y e z que maximizam os lucros.
d) Suponha que os lucros sejam de $200, $500 e $100 para cada produto 1, 2 e 3, respectivamente. Encontre os valores de x, y e z que maximizam os lucros.
2.17 Aula 17
06/Out
Exercício (livro - adaptado - 13 p.364): Veja a figura abaixo. Suponha que os veículos não param dentro da rede. Um engenheiro de tráfego deseja saber se os fluxos de tráfego (em veículos por hora) podem ser calculados a partir dos fluxos medidos mostrados na figura. Se não, então determine quantos sensores de tráfego a mais precisam ser instalados e obtenha as expressões para os outros fluxos de tráfego em termos das quantidades medidas.
- Caracteres especiais:
Símbolo
Descrição
\b
Backspace
\n
Mudança de linha
\r
Return
\t
Tabulação horizontal
\\
Escreve o caracter \
\
Escreve o caracter '
%%
Escreve o caracter %
- Descritores de formato:
Símbolo
Descrição
%c
Um único caracter
%d
Número inteiro
%e ou %E
Número real escrito em notação científica
%f
Número real com parte decimal
%g
Notação mais compacta de %e e %f
%o
Número octal sem sinal
%s
String de caracteres
%u
Número inteiro sem sinal
%x ou %X
Hexadecimal (com letras minúsculas ou maiúsculas)
Exercício: Fazer uma tabela com 3 colunas no Matlab que salve em um arquivo de texto externo, com o ângulo, seno e cosseno. Sendo o ângulo de a .
- Comando msgbox para criar caixa de mensagem e opções extras como título, ícone pré-definido ou criado;
2.18 Aula 18
11/Out
- Caixa de diálogo de mensagem de aviso (warndlg);
- Caixa de diálogo de mensagem de erro (errordlg);
- Caixa de diálogo de mensagem de interrogação com múltipla escolha (questdlg);
Exercício: Criar uma caixa de interrogação com múltipla escolha com as opções: Candidato A, Candidato B e Branco. Após apresente a escolha.
- Caixa de diálogo de mensagem de ajuda (helpdlg);
- Caixa de diálogo de introdução de dados (inputdlg);
Exercício: Criar um código Matlab para abrir uma janela com a mensagem "O que você deseja comprar?" com múltiplas escolhas: Arroz, Feijão e Macarrão, quando escolher deve aparecer uma janela com opção para completar com a quantidade. De acordo com a quantidade calcular o preço total considerando o preço unitário do Arroz $6, do Feijão $10 e do Macarrão $5,50. Após a escolha deve aparecer uma terceira janela com opção de "sim" ou "não" para repetir o procedimento. Caso aceite repetir o código deve-se atualizar o cálculo com a nova escolha do produto e da quantidade.
2.19 Aula 19
13/Out
- Caixa de diálogo com lista de seleção de múltipla escolha (listdlg);
Exercício: Criar um código com uma pergunta sobre preferência de filmes de acordo com o gênero, com múltiplas escolhas. Apresentar as opções escolhidas.
- Caixa de diálogo com lista de seleção de escolha única também usando listdlg;
- Exemplo 1 do uso de Graphical User Interface (GUI);
2.20 Aula 20
18/Out
- Término do Exemplo 1 do uso de Graphical User Interface (GUI);
- Exemplo 2 do uso de Graphical User Interface (GUI);