Informações Básicas
Professores: Diego da Silva de Medeiros e Roberto Wanderley da Nóbrega
- Início: 06/Mar/2017
- Término: 15/Mai/2017
- Horário: Segundas e quartas, das 19h às 22h
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
Conteúdos Abordados
Aula 1
Aula 2
Aula 3
13/Mar - Plots; Indexação de vetores e matrizes
|
- 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
- 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
|
- 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: ![{\displaystyle \sin(2\pi t/63)}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/ba1b327449dfab9db4b84e51e33f9e18964279fe)
- de
até → 0
- de
até → 1
- de
até → -1
- Não esquecer de nomear os eixos.
- Endereçamento de vetores e matrizes
-
- Indexação/submatrizes do lado esquerdo vs do lado direito
- Palavra-chave end
- Exclusão de linha ou coluna
- Resolver os exercícios abaixo
|
Aula 4
Aula 5
20/Mar - Endereçamento lógico; Concatenação de matrizes; Polinômios
|
- Endereçamento de vetores e matrizes
- 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:
![{\displaystyle {\overrightarrow {a}}=2{\overrightarrow {i}}+3{\overrightarrow {j}}-2{\overrightarrow {k}}}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/1f89314d642290bbd2777d4863e62fca55bf2427)
![{\displaystyle {\overrightarrow {b}}=-3{\overrightarrow {i}}-5{\overrightarrow {k}}}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/79f0f9d836a70e0d69563b945c9b26d5158f317c)
- 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
|
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
- Criando estruturas com o operador "."
- Criando estruturas com o comando struct
- Comando isfield para identificar se um campo existe ou não
- Comando rmfield para remover campo da estrutura
|
Aula 7
27/Mar - Operadores; Scripts; Controle de fluxo de dados
|
-
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
|
![{\displaystyle |}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/ddcc2e0b63522a705c3c691777c9f342806b19d0) |
OR
|
~ |
NOT
|
xor(a,b) |
XOR
|
- Operadores lógicos curto-circuito:
Operador
|
Nome
|
&& |
AND
|
![{\displaystyle ||}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/21f5807306073054891bcdde4e801db2773e82d2) |
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.
|
Aula 8
29/Mar - Switch; Estruturas de repetição
|
- 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.
- 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'.
|
Aula 9
Aula 10
05/Abr - Gráficos em 2D e 3D
|
- Revisão: plot, stem e bars
- stairs
- semilogx, semilogy e loglog
-
- Exercício: Plote a função polar:
de .
- Números complexos e funções abs e angle
- 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![{\displaystyle sen(3t+2)}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/158d2313b9b726017e139f8eadb2b63be184c084)
-0,4t![{\displaystyle cos(5t-3)}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/e4d592ce202ea7bf3baa5ab1f03cde083a0fb26f)
- Letras gregas nos gráficos:
Letra
|
Representação
|
![{\displaystyle \alpha }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/b79333175c8b3f0840bfb4ec41b8072c83ea88d3) |
\alpha
|
![{\displaystyle \beta }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/7ed48a5e36207156fb792fa79d29925d2f7901e8) |
\beta
|
![{\displaystyle \gamma }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/a223c880b0ce3da8f64ee33c4f0010beee400b1a) |
\gamma
|
![{\displaystyle \delta }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/c5321cfa797202b3e1f8620663ff43c4660ea03a) |
\delta
|
![{\displaystyle \epsilon }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/c3837cad72483d97bcdde49c85d3b7b859fb3fd2) |
\epsilon
|
![{\displaystyle \kappa }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/54ddec2e922c5caea4e47d04feef86e782dc8e6d) |
\kappa
|
![{\displaystyle \lambda }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/b43d0ea3c9c025af1be9128e62a18fa74bedda2a) |
\lambda
|
![{\displaystyle \mu }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/9fd47b2a39f7a7856952afec1f1db72c67af6161) |
\mu
|
![{\displaystyle \nu }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/c15bbbb971240cf328aba572178f091684585468) |
\nu
|
![{\displaystyle \omega }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/48eff443f9de7a985bb94ca3bde20813ea737be8) |
\omega
|
![{\displaystyle \phi }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/72b1f30316670aee6270a28334bdf4f5072cdde4) |
\phi
|
![{\displaystyle \pi }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/9be4ba0bb8df3af72e90a0535fabcc17431e540a) |
\pi
|
![{\displaystyle \chi }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/656111758322ace96d80a9371771aa6d3de25437) |
\chi
|
![{\displaystyle \psi }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/45e5789e5d9c8f7c79744f43ecaaf8ba42a8553a) |
\psi
|
![{\displaystyle \rho }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/1f7d439671d1289b6a816e6af7a304be40608d64) |
\rho
|
![{\displaystyle \sigma }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/59f59b7c3e6fdb1d0365a494b81fb9a696138c36) |
\sigma
|
![{\displaystyle \tau }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/38a7dcde9730ef0853809fefc18d88771f95206c) |
\tau
|
![{\displaystyle \upsilon }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/d3d9773c30e2bda2ecb0af8fa63f9e0e537f0fc4) |
\upsilon
|
![{\displaystyle \Sigma }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/9e1f558f53cda207614abdf90162266c70bc5c1e) |
\Sigma
|
![{\displaystyle \Pi }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/eed3e3db6cc2028a183af948212ed2551d25c954) |
\Pi
|
![{\displaystyle \Lambda }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/0ac0a4a98a414e3480335f9ba652d12571ec6733) |
\Lambda
|
![{\displaystyle \Omega }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/24b0d5ca6f381068d756f6337c08e0af9d1eeb6f) |
\Omega
|
![{\displaystyle \Gamma }](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/4cfde86a3f7ec967af9955d0988592f0693d2b19) |
\Gamma
|
- Exercício (livro - 28 p. 258): As equações paramétricas para uma hélice circular são:
![{\displaystyle x=a*cos(t)}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/a947cfdc43340bc169c9559272de28b779d26a6d)
![{\displaystyle y=a*sen(t)}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/fa0a9b84095b2d5f3807a9cd8ddee260688beb75)
![{\displaystyle z=b*t}](https://en.wikipedia.org/api/rest_v1/media/math/render/svg/5e49e7fd1e5b9b9dad46fb3f0f2d5239886c074e)
- 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)
- Comando para fazer malha 3D com sombreamento: surf
- Comando shading, com parâmetros flat, faceted e interp
-
- 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
Arquivo:FIC Matlab Exercicios plot.pdf
|
Aula 11
10/Abr - Aula de exercícios
|
Aula dedicada à execução dos exercícios das aulas anteriores.
|
Aula 12
Aula 13
17/Abr
|
Básico
==
- comandos syms e sym
>> factorial(52)
ans =
8.0658e+67
>> sym('factorial(52)')
ans =
80658175170943878571660636856403766975289505440883277824000000000000
- comandos pretty, latex
- comando subs
- Valores via argumento da função
- Valores retirados do workspace
- comandos factor, expand, collect
-- Help simple
Cálculo
=
- comando limit
sin(x)/x, x->0
(1 + 1/x)^x, x->Inf
- comando diff [derivada primeira, segunda, terceira, etc]
- comando int [integrais indefinidas e definidas]
>> int(x^a, x)
Comandos assume e assumptions
sym(a, 'clear') ou assume(a, 'clear')
- comando taylor
- comando symsum (séries)
Outros: dsolve, fourier, laplace...
Solução de equações
=======
Comando solve
|
Questões da turma
Exercícios Engenharia de Alimentos
[1]
Método explícito
|
clear all; close all; clc
alfa = 0.0000971;
I = 10;
N = 200;
L = 0.3;
tempo = 200;
a = 20;
k = 237;
h = 85;
Tf = -300;
T0 = 20;
% Cálculos
deltax = L/I;
deltat = tempo/N;
fon = alfa*deltat/deltax^2;
% Algoritmo
% Convergência
fon
if fon < 0.5
T(1,1:I+1) = T0;
for n = 1:N
% i = 1
T(n+1,1) = 2*fon * T(n,2) + (1 - 2*fon)*T(n,1);
% Outros casos de i
for i = 2:I
T(n+1,i) = fon*T(n,i+1) + (1 - 2*fon)*T(n,i) + fon*T(n,i-1);
end
% i = I+1
T(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);
end
end
% Resultados
figure
surf(T)
view(0,90)
xlabel('x'); ylabel('t')
|