{{collapse top| bg=lightblue | 10/Abr - Aula de exercícios}}
{{collapse top| bg=lightblue | 10/Abr - Aula de exercícios}}
Aula dedicada à execução dos exercícios das aulas anteriores.
Aula dedicada à execução dos exercícios das aulas anteriores.
* [[FIC MATLAB 2017-1/Aula-10|Códigos executados em sala]]
<!--
<!--
Exercício (livro): Plote a parte imaginária ''versus'' a parte real da função <math>(0,2 + 8i)</math><sup>n</sup> para <math>0 \leq n \leq 20</math>. 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 (livro): Plote a parte imaginária ''versus'' a parte real da função <math>(0,2 + 8i)</math><sup>n</sup> para <math>0 \leq n \leq 20</math>. 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''.
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
Indexação/submatrizes do lado esquerdo vs do lado direito
20/Mar - Endereçamento lógico; Concatenação de matrizes; Polinômios
Endereçamento de vetores e matrizes
Lógico
Concatenação de vetores e matrizes
Comandos sort e find
Comandos mean, ceil, floor e round
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,00
5,50
6,50
6,00
6,25
Horas de trabalho (h)
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?
Produto escalar (dot) e produto vetorial (cross) de dois vetores
Exercício: Calcule o produto vetorial e escalar dos vetores:
Polinômios
Representação de polinômios a partir de vetores
Comandos polyval, poly e roots
Multiplicação de polinômios (conv)
Divisão de polinômios (deconv), com ou ser resto
Comandos polyder e polyint
Exemplo: Livro página 88
Resolver os exercícios abaixo
2.6 Aula 6
22/Mar - Texto; Entrada e saída; Estruturas; Células
Trabalhando com texto
Entrada/Saída de dados e Texto
Comando input para entrada de dados
Comando disp e num2str
Exercício: Criar uma calculadora de IMC com perguntas (input) para massa e altura, aparecendo na sequência o resultado
Arranjo de células: texto e números
Comando celldisp e cellplot
Estruturas
Criando estruturas com o operador "."
Criando estruturas com o comando struct
Comando isfield para identificar se um campo existe ou não
27/Mar - Operadores; Scripts; Controle de fluxo de dados
Operadores:
Variáveis lógicas:
Comando logical
Operadores relacionais:
Operador relacional
Significado
<
Menor que
<=
Menor ou igual a
>
Maior que
>=
Maior ou igual a
==
Igual a
~=
Não é igual a
Operadores lógicos (vetores):
Operador
Nome
&
AND
OR
~
NOT
xor(a,b)
XOR
Operadores lógicos curto-circuito:
Operador
Nome
&&
AND
OR
Controle de fluxo de dados:
As sentenças if, else e elseif
Exercício: Criar um código que calcula o valor gasto total (em R$) e o peso total (em kg) da compra de algumas unidades de arroz (5 kg), feijão (1 kg) e café (500 g).
O usuário deve fornecer quantas unidades quer comprar de cada produto (comando input).
Os dados devem ser validados: verificar se o usuário forneceu alguma quantidade negativa.
Condições de compra:
O preço unitário do arroz é R$15,00. Se comprar 3 ou mais, o preço cai para R$14,00 cada.
O preço unitário do feijão é R$12,00. Se comprar 4 ou mais, o preço cai para R$11,50 cada.
O preço unitário do café é R$10,00. Se comprar 3 ou mais, o preço cai para R$9,25 cada.
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: Reescreva o código da calculadora executado em sala fazendo o uso da sentença switch.
Estruturas de repetição:
Laços for
Laços while
Sentenças break e continue
Exercício: Acrescente à calculadora a possibilidade de continuar realizando cálculos até que o usuário solicite a saída digitando 's'.
Exercício: Escreva uma função que retorna o fatorial de um número fornecido.
Exercício: Escreva uma função que retorna um vetor contendo os n primeiros termos da sequência de Fibonacci.
(Livro - Exemplo 4.6-2 p. 186) Exercício: Escreva uma função que determina o tempo (em anos) necessário para que você acumule pelo menos VF (em dólares) em uma conta bancária se você depositar inicialmente V0 (em dólares) e mais P (em dólares) ao final de cada ano, com um rendimento anual de R%.
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.
Importação de dados para o MATLAB
Pelo menu
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.
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.
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
Gráficos em 3D
plot3
view
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
[X,Y] = meshgrid(-20:0.5:20);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)
Rótulo no eixo z: zlabel
Comando para fazer malha 3D com sombreamento: surf
Comando shading, com parâmetros flat, faceted e interp
Curva de níveis:
Curva de níveis com contour, com a possibilidade de escolha do número de curvas
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;
Mostrar uma cortina no eixo Z:
Comando para fazer malha 3D se alongar em z nas extremidades: meshz
Comando para aparecer a malha 3D em apenas um sentido com waterfall
clearall;closeall;clcalfa=0.0000971;I=10;N=200;L=0.3;tempo=200;a=20;k=237;h=85;Tf=-300;T0=20;% Cálculosdeltax=L/I;deltat=tempo/N;fon=alfa*deltat/deltax^2;% Algoritmo% Convergênciafoniffon<0.5T(1,1:I+1)=T0;forn=1:N% i = 1T(n+1,1)=2*fon*T(n,2)+(1-2*fon)*T(n,1);% Outros casos de ifori=2:IT(n+1,i)=fon*T(n,i+1)+(1-2*fon)*T(n,i)+fon*T(n,i-1);end% i = I+1T(n+1,I+1)=fon*(-2*deltax*h*(T(n,I+1)-Tf))/k+(1-2*fon)*T(n,I+1)+2*fon*T(n,I);endend% Resultadosfiguresurf(T)view(0,90)xlabel('x');ylabel('t')