Mudanças entre as edições de "FIC MATLAB 2017-1"
(→Aula 4) |
|||
(99 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 9: | Linha 9: | ||
::'''Horário:''' Segundas e quartas, das 19h às 22h | ::'''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 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 | + | Referência Complementar: MORAIS, V.. VIEIRA, C. '''MATLAB Curso Completo'''. FCA, 2013. 644. ISBN 9727227058 |
== Conteúdos Abordados == | == Conteúdos Abordados == | ||
Linha 275: | Linha 275: | ||
::* Índice | ::* Índice | ||
::* Subscrito | ::* Subscrito | ||
− | |||
:* Indexação/submatrizes do lado esquerdo vs do lado direito | :* Indexação/submatrizes do lado esquerdo vs do lado direito | ||
:* Palavra-chave ''end'' | :* Palavra-chave ''end'' | ||
:* Exclusão de linha ou coluna | :* Exclusão de linha ou coluna | ||
− | |||
− | |||
* Exercícios | * Exercícios | ||
Linha 302: | Linha 299: | ||
=== Aula 5 === | === Aula 5 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 20/Mar - Endereçamento lógico; Concatenação de matrizes; Polinômios}} |
− | - | ||
− | |||
− | Exercício: | + | * 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. | ||
+ | |||
+ | |||
+ | {| border="4" cellpadding="2" | ||
+ | ! ''' ''' | ||
+ | ! '''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? | ||
− | - | + | <!-- |
− | + | 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.<br /><br /> | |
− | - | + | [[Image:Exercícios 2 Aula 3 FIC Matlab.jpg | 200px]] <br /><br /> |
− | - | + | --> |
− | + | ||
− | + | * Produto escalar (''dot'') e produto vetorial (''cross'') de dois vetores | |
+ | |||
+ | * Exercício: Calcule o produto vetorial e escalar dos vetores: | ||
+ | :: <math> \overrightarrow{a} = 2\overrightarrow{i} + 3\overrightarrow{j} - 2\overrightarrow{k}</math> | ||
+ | :: <math> \overrightarrow{b} = - 3\overrightarrow{i} - 5\overrightarrow{k}</math> | ||
+ | |||
+ | * 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 | ||
+ | [[Imagem:Matlab_poly_EX1.jpg|thumb|600px|center]] | ||
+ | [[Imagem:Matlab_poly_EX2.jpg|thumb|600px|center]] | ||
+ | [[Imagem:Matlab_poly_EX3.jpg|thumb|600px|center]] | ||
+ | [[Imagem:Matlab_poly_EX4.jpg|thumb|600px|center]] | ||
+ | [[Imagem:Matlab_poly_EX5.jpg|thumb|600px|center]] | ||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 6 === | === Aula 6 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 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 | ||
+ | :* Comando ''rmfield'' para remover campo da estrutura | ||
− | + | [[Imagem:Matlab_Struct1.jpg|thumb|600px|center]] | |
+ | [[Imagem:Matlab_Struct2.jpg|thumb|600px|center]] | ||
− | - | + | * [[FIC MATLAB 2017-1/Aula-6|Códigos executados em sala]] |
− | - | ||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 7 === | === Aula 7 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 27/Mar - Operadores; Scripts; Controle de fluxo de dados}} |
− | + | ||
+ | * Operadores: | ||
− | + | :* Variáveis lógicas: | |
+ | ::* Comando ''logical'' | ||
+ | |||
+ | :* Operadores relacionais: | ||
− | |||
{| border="4" cellpadding="2" | {| border="4" cellpadding="2" | ||
! '''Operador relacional''' | ! '''Operador relacional''' | ||
Linha 360: | Linha 413: | ||
|} | |} | ||
− | Operadores | + | :* Operadores lógicos (vetores): |
+ | |||
{| border="4" cellpadding="2" | {| border="4" cellpadding="2" | ||
! '''Operador''' | ! '''Operador''' | ||
! '''Nome''' | ! '''Nome''' | ||
|- | |- | ||
− | | | + | | & || AND |
|- | |- | ||
− | | <math> | + | | <math>|</math> || OR |
− | |} < | + | |- |
+ | | ~ || NOT | ||
+ | |- | ||
+ | | xor(a,b) || XOR | ||
+ | |} | ||
+ | |||
+ | :* Operadores lógicos ''curto-circuito'': | ||
+ | |||
+ | {| border="4" cellpadding="2" | ||
+ | ! '''Operador''' | ||
+ | ! '''Nome''' | ||
+ | |- | ||
+ | | && || AND | ||
+ | |- | ||
+ | | <math>||</math> || OR | ||
+ | |} | ||
− | + | * Controle de fluxo de dados: | |
− | Exercício: Criar um código que calcula o valor total da compra de algumas unidades de arroz ( | + | :* As sentenças ''if'', ''else'' e ''elseif'' |
− | O preço unitário do arroz é R$15,00. Se comprar 3 o preço cai para R$14,00 cada. | + | :* '''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 preço unitário do feijão é R$12,00. Se comprar 4 o preço cai para R$11,50 cada. | + | ::* O usuário deve fornecer quantas unidades quer comprar de cada produto (comando ''input''). |
− | O preço unitário do café é R$10,00. Se comprar 3 o preço cai para R$9,25 cada. | + | ::* 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ícios: [[Arquivo:Exercicios-MATLAB-Aula-7.pdf]] | |
− | - | + | * [[FIC MATLAB 2017-1/Aula-7|Códigos executados em sala]] |
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 8 === | === Aula 8 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 29/Mar - Switch; Estruturas de repetição}} |
− | + | * Sentença ''switch'' | |
− | Exercício | + | :* 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: | + | :* 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: | + | :* Exercício: Acrescente à calculadora a possibilidade de continuar realizando cálculos até que o usuário solicite a saída digitando 's'. |
− | + | ||
− | + | ||
− | + | * [[FIC MATLAB 2017-1/Aula-8|Códigos executados em sala]] | |
− | |||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 9 === | === Aula 9 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 03/Abr - Funções; Importação de dados}} |
+ | |||
+ | * Função definida pelo usuário no arquivo ''.m'' | ||
+ | |||
+ | :* 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 <math> t = 1s </math> até <math> t = 63s </math> → função seno: <math>\sin(2 \pi t / 63)</math> | ||
+ | ::* de <math> t = 64s </math> até <math> t = 80s </math> → 0 | ||
+ | ::* de <math> t = 81s </math> até <math> t = 100s </math> → 1 | ||
+ | ::* de <math> t = 101s </math> até <math> t = 120s </math> → -1 | ||
+ | :: Não esquecer de nomear os eixos. | ||
+ | [[Image:Exercícios Aula 3 FIC Matlab.jpg|600px|center]] | ||
+ | |||
+ | |||
+ | * Importação de dados para o MATLAB | ||
+ | :* Pelo menu | ||
+ | :* Pelo comando ''uiimport'' | ||
− | + | Exemplo: usar [http://wiki.sj.ifsc.edu.br/images/8/84/Celular4g.txt 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 | + | Exercício: com o arquivo [http://wiki.sj.ifsc.edu.br/index.php/Arquivo:Add_user.txt 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. |
− | + | ||
+ | * [[FIC MATLAB 2017-1/Aula-9|Códigos executados em sala]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 10 === | === Aula 10 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 05/Abr - Gráficos em 2D e 3D}} |
− | |||
− | + | * Gráficos em 2D | |
− | |||
− | |||
− | |||
− | + | :* Revisão: ''plot'', ''stem'' e ''bars'' | |
− | + | :* ''stairs'' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | :* ''semilogx'', ''semilogy'' e ''loglog'' | |
− | |||
− | + | :* ''polar'' | |
− | + | ::* Exercício: Plote a função polar: <math>rho = sen(2\theta)*cos(2\theta)</math> de <math>0 \leq \theta \leq 2\pi</math>. | |
− | + | ::* Números complexos e funções ''abs'' e ''angle'' | |
− | Exercício | ||
− | + | :* 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. | + | ::* 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. |
− | <math>x(t)=10e</math><sup>-0,5t</sup><math>sen(3t+2)</math | + | ::: <math>x(t)=10e</math><sup>-0,5t</sup><math>sen(3t+2)</math> |
− | <math>y(t)=7e</math><sup>-0,4t</sup><math>cos(5t-3)</math | + | ::: <math>y(t)=7e</math><sup>-0,4t</sup><math>cos(5t-3)</math> |
− | + | :* Letras gregas nos gráficos: | |
{| border="4" cellpadding="2" | {| border="4" cellpadding="2" | ||
! '''Letra''' | ! '''Letra''' | ||
Linha 503: | Linha 586: | ||
|} | |} | ||
− | - | + | <!-- |
− | + | 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)'' <math>\simeq x</math>, em que ''x'' deve ser em radianos. Investigue a precisão desta aproximação com dois plots. No primeiro, plote ''sen(x) versus x'' para <math>0 \leq x \leq 1</math>. No segundo, plote o erro da aproximação ''(sen(x) - x) versus x'' para <math>0 \leq x \leq 1</math>. | |
+ | --> | ||
+ | |||
+ | * Gráficos em 3D | ||
+ | :* ''plot3'' | ||
+ | :* ''view'' | ||
+ | |||
+ | ::* Exercício (livro - 28 p. 258): As equações paramétricas para uma hélice circular são: | ||
+ | :::: <math>x = a*cos(t)</math> | ||
+ | :::: <math>y = a*sen(t)</math> | ||
+ | :::: <math>z = b*t </math> | ||
+ | :::em que <math>a</math> é o raio do caminho helicoidal e <math>b</math> é uma constante que determina a "estreiteza" do caminho. Além disso, se <math>b > 0</math>, a hélice tem a forma de um parafuso destro; se <math>b < 0</math>, 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 <math>0 \leq t \leq 10\pi</math> e <math>a = 1</math>. | ||
+ | :::: a) <math> b = 0,1</math>; | ||
+ | :::: b) <math> b = 0,2</math>; | ||
+ | :::: c) <math> b = -0,1</math>. | ||
+ | |||
+ | :* 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'' | ||
+ | |||
+ | |||
+ | [[Arquivo:FIC_Matlab_Exercicios_plot.pdf|Exercícios]] | ||
+ | |||
+ | |||
+ | * [[FIC MATLAB 2017-1/Aula-10|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 11 === | ||
+ | {{collapse top| bg=lightblue | 10/Abr - Aula de exercícios}} | ||
+ | |||
+ | Aula dedicada à execução dos exercícios das aulas anteriores. | ||
+ | |||
+ | |||
+ | * [[FIC MATLAB 2017-1/Aula-11|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 (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 ''versus'' ''Q'', 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. | ||
+ | --> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 12 === | ||
+ | {{collapse top| bg=lightblue | 12/Abr - Processamento de imagens}} | ||
+ | |||
+ | [[Curso Matlab aplicado ao processamento de imagens - Aula 3]] | ||
+ | |||
+ | |||
+ | [[FIC MATLAB 2017-1/Aula-12|Códigos executados em sala]] | ||
+ | |||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 13 === | === Aula 13 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 17/Abr - Toolbox simbólico}} |
+ | |||
+ | '''Básico''' | ||
+ | |||
+ | * Comandos ''syms'' e ''sym'' | ||
+ | * Comandos ''pretty'' e ''latex'' | ||
+ | * Comando ''subs'' | ||
+ | :* Valores via argumento da função | ||
+ | :* Valores retirados do workspace | ||
+ | * Comandos ''factor'', ''expand'', ''collect'' e ''simplify'' | ||
+ | |||
+ | '''Cálculo''' | ||
+ | |||
+ | * Comando ''limit'': Limites | ||
+ | :* <math>\lim_{x \to 0} \frac{\sin(x)}{x}</math> | ||
+ | :* <math>\lim_{x \to \infty} \left( 1 + \frac{1}{x} \right)^x</math> | ||
+ | * Comando ''diff'': Derivada primeira, segunda, terceira, etc. | ||
+ | : Comando ''int'': Integrais indefinidas e definidas | ||
+ | :* <math>\int x^a dx</math> | ||
− | + | * Interlúdio: comandos ''assume'' e ''assumptions'' | |
− | |||
− | + | * Comando ''taylor'': Séries de Taylor | |
− | + | * comando ''symsum'': Somatórios / séries | |
− | |||
− | |||
− | |||
− | |||
− | + | * Outros: ''dsolve'', ''fourier'', ''laplace'', ''partfrac'' | |
− | + | '''Solução de equações''' | |
− | + | * Comando ''solve'' | |
− | + | ||
− | + | ||
− | + | [[FIC MATLAB 2017-1/Aula-13|Códigos executados em sala]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 14 === | === Aula 14 === | ||
− | |||
− | |||
− | - | + | {{collapse top| bg=lightblue | 19/Abr - Interface gráfica}} |
− | - | + | |
+ | [[Curso Matlab aplicado ao processamento de imagens - Aula 2|Aula]] | ||
+ | |||
+ | {{collapse top| bg=lightblue | Proposta de Interface gráfica}} | ||
+ | <code> | ||
+ | function varargout = Interface(varargin) | ||
+ | % INTERFACE MATLAB code for Interface.fig | ||
+ | % INTERFACE, by itself, creates a new INTERFACE or raises the existing | ||
+ | % singleton*. | ||
+ | % | ||
+ | % H = INTERFACE returns the handle to a new INTERFACE or the handle to | ||
+ | % the existing singleton*. | ||
+ | % | ||
+ | % INTERFACE('CALLBACK',hObject,eventData,handles,...) calls the local | ||
+ | % function named CALLBACK in INTERFACE.M with the given input arguments. | ||
+ | % | ||
+ | % INTERFACE('Property','Value',...) creates a new INTERFACE or raises the | ||
+ | % existing singleton*. Starting from the left, property value pairs are | ||
+ | % applied to the GUI before Interface_OpeningFcn gets called. An | ||
+ | % unrecognized property name or invalid value makes property application | ||
+ | % stop. All inputs are passed to Interface_OpeningFcn via varargin. | ||
+ | % | ||
+ | % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one | ||
+ | % instance to run (singleton)". | ||
+ | % | ||
+ | % See also: GUIDE, GUIDATA, GUIHANDLES | ||
+ | |||
+ | % Edit the above text to modify the response to help Interface | ||
+ | |||
+ | % Last Modified by GUIDE v2.5 19-Apr-2017 19:45:52 | ||
+ | |||
+ | % Begin initialization code - DO NOT EDIT | ||
+ | gui_Singleton = 1; | ||
+ | gui_State = struct('gui_Name', mfilename, ... | ||
+ | 'gui_Singleton', gui_Singleton, ... | ||
+ | 'gui_OpeningFcn', @Interface_OpeningFcn, ... | ||
+ | 'gui_OutputFcn', @Interface_OutputFcn, ... | ||
+ | 'gui_LayoutFcn', [] , ... | ||
+ | 'gui_Callback', []); | ||
+ | if nargin && ischar(varargin{1}) | ||
+ | gui_State.gui_Callback = str2func(varargin{1}); | ||
+ | end | ||
+ | |||
+ | if nargout | ||
+ | [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); | ||
+ | else | ||
+ | gui_mainfcn(gui_State, varargin{:}); | ||
+ | end | ||
+ | % End initialization code - DO NOT EDIT | ||
+ | |||
+ | % --- Executes just before Interface is made visible. | ||
+ | function Interface_OpeningFcn(hObject, eventdata, handles, varargin) | ||
+ | % This function has no output args, see OutputFcn. | ||
+ | % hObject handle to figure | ||
+ | % eventdata reserved - to be defined in a future version of MATLAB | ||
+ | % handles structure with handles and user data (see GUIDATA) | ||
+ | % varargin command line arguments to Interface (see VARARGIN) | ||
+ | |||
+ | handles.contador = 0; | ||
+ | display(handles.contador) | ||
+ | assignin('base','handles',handles) | ||
− | 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. | + | % Choose default command line output for Interface |
+ | handles.output = hObject; | ||
+ | |||
+ | % Update handles structure | ||
+ | guidata(hObject, handles); | ||
+ | |||
+ | % UIWAIT makes Interface wait for user response (see UIRESUME) | ||
+ | % uiwait(handles.figure1); | ||
+ | |||
+ | |||
+ | % --- Outputs from this function are returned to the command line. | ||
+ | function varargout = Interface_OutputFcn(hObject, eventdata, handles) | ||
+ | % varargout cell array for returning output args (see VARARGOUT); | ||
+ | % hObject handle to figure | ||
+ | % eventdata reserved - to be defined in a future version of MATLAB | ||
+ | % handles structure with handles and user data (see GUIDATA) | ||
+ | |||
+ | % Get default command line output from handles structure | ||
+ | varargout{1} = handles.output; | ||
+ | |||
+ | |||
+ | % --- Executes on button press in btnDesenhar. | ||
+ | function btnDesenhar_Callback(hObject, eventdata, handles) | ||
+ | % hObject handle to btnDesenhar (see GCBO) | ||
+ | % eventdata reserved - to be defined in a future version of MATLAB | ||
+ | % handles structure with handles and user data (see GUIDATA) | ||
+ | |||
+ | %Incrementa o contador | ||
+ | handles.contador = handles.contador + 1; | ||
+ | display(handles.contador) | ||
+ | %handles | ||
+ | |||
+ | %Axis 1 | ||
+ | hold(handles.axes1,'off') | ||
+ | |||
+ | amostras = [0:1:1000]; | ||
+ | if not(isempty(str2num(get(handles.edtFrequencias,'String')))) | ||
+ | Freq = str2num(get(handles.edtFrequencias,'String')) | ||
+ | onda = 2*pi*Freq*0.001*amostras; | ||
+ | plot(handles.axes1,sin(onda)) | ||
+ | grid(handles.axes1,'on') | ||
+ | |||
+ | assignin('base','contador',handles.contador); | ||
+ | assignin('base','hObject',hObject) | ||
+ | |||
+ | % Update handles structure | ||
+ | guidata(hObject, handles); | ||
+ | |||
+ | if (get(handles.rbtCosseno,'Value') == 1) | ||
+ | %Axis 2 | ||
+ | plot(handles.axes2,cos(onda)) | ||
+ | grid(handles.axes2,'on') | ||
+ | elseif (get(handles.rbtTangente,'Value') == 1) | ||
+ | %Axis 2 | ||
+ | plot(handles.axes2,tan(onda)) | ||
+ | grid(handles.axes2,'on') | ||
+ | ylim(handles.axes2,[-2,2]) | ||
+ | else | ||
+ | errordlg('Selecione uma onda de saída!') | ||
+ | end | ||
+ | end | ||
+ | % --- Executes on button press in rbtCosseno. | ||
+ | function rbtCosseno_Callback(hObject, eventdata, handles) | ||
+ | % hObject handle to rbtCosseno (see GCBO) | ||
+ | % eventdata reserved - to be defined in a future version of MATLAB | ||
+ | % handles structure with handles and user data (see GUIDATA) | ||
+ | |||
+ | % Hint: get(hObject,'Value') returns toggle state of rbtCosseno | ||
+ | set(hObject,'Value',1) | ||
+ | set(handles.rbtTangente,'Value',0) | ||
+ | |||
+ | |||
+ | % --- Executes on button press in rbtTangente. | ||
+ | function rbtTangente_Callback(hObject, eventdata, handles) | ||
+ | % hObject handle to rbtTangente (see GCBO) | ||
+ | % eventdata reserved - to be defined in a future version of MATLAB | ||
+ | % handles structure with handles and user data (see GUIDATA) | ||
+ | |||
+ | % Hint: get(hObject,'Value') returns toggle state of rbtTangente | ||
+ | set(hObject,'Value',1) | ||
+ | set(handles.rbtCosseno,'Value',0) | ||
+ | |||
+ | |||
+ | |||
+ | function edtFrequencias_Callback(hObject, eventdata, handles) | ||
+ | % hObject handle to edtFrequencias (see GCBO) | ||
+ | % eventdata reserved - to be defined in a future version of MATLAB | ||
+ | % handles structure with handles and user data (see GUIDATA) | ||
+ | |||
+ | % Hints: get(hObject,'String') returns contents of edtFrequencias as text | ||
+ | % str2double(get(hObject,'String')) returns contents of edtFrequencias as a double | ||
+ | |||
+ | |||
+ | |||
+ | % --- Executes during object creation, after setting all properties. | ||
+ | function edtFrequencias_CreateFcn(hObject, eventdata, handles) | ||
+ | % hObject handle to edtFrequencias (see GCBO) | ||
+ | % eventdata reserved - to be defined in a future version of MATLAB | ||
+ | % handles empty - handles not created until after all CreateFcns called | ||
+ | |||
+ | % Hint: edit controls usually have a white background on Windows. | ||
+ | % See ISPC and COMPUTER. | ||
+ | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) | ||
+ | set(hObject,'BackgroundColor','white'); | ||
+ | end | ||
+ | </syntaxhighlight> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 15 === | ||
+ | {{collapse top| bg=lightblue | 24/Abr - Projeto}} | ||
+ | |||
+ | :relógio analógico | ||
+ | :dtmf | ||
+ | :sudoku | ||
+ | :jogo da velha | ||
+ | :contar moedas | ||
+ | :esteganografia | ||
+ | :batalha naval | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | <!-- | ||
+ | |||
+ | Exercício (livro - 30 p. 259): Obtenha as plotagens de superfície e de contorno para a função <math>z = x</math><sup>2</sup><math>- 2xy + 4y</math><sup>2</sup>, mostrando o mínimo em <math>x = y = 0 </math>. | ||
+ | |||
+ | - 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. | ||
{| class="wikitable" | {| class="wikitable" | ||
Linha 564: | Linha 905: | ||
- Comando ''flip'', representa o vetor de trás pra frente; | - Comando ''flip'', representa o vetor de trás pra frente; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
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. | 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. | ||
Linha 581: | Linha 917: | ||
|} | |} | ||
− | - Plotar dados da tabela, menu ''Tools'' e depois ''Basic Fitting'', para escolher a melhor função que interpola os dados. | + | - 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; | + | - Comando ''rank'' saber a singularidade da matriz; |
− | - Função pseudoinversa (''pinv'') para resolver um sistema cuja solução garante a menor norma. | + | - 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: | Exercício (livro - 11 p. 363): Resolva as seguintes equações: | ||
Linha 590: | Linha 926: | ||
3x &\; + &\; 2y &\; - &\; 4z &\; = &\; 12 \\ | 3x &\; + &\; 2y &\; - &\; 4z &\; = &\; 12 \\ | ||
x &\; + &\; 5y &\; - &\; z &\; = &\; -2 \\ | x &\; + &\; 5y &\; - &\; z &\; = &\; -2 \\ | ||
− | \end{alignat}</math | + | \end{alignat}</math> |
{{collapse bottom}} | {{collapse bottom}} | ||
+ | |||
=== Aula 16 === | === Aula 16 === | ||
{{collapse top| bg=lightblue | 04/Out}} | {{collapse top| bg=lightblue | 04/Out}} | ||
− | - Definição de Matriz Aumentada; | + | - Definição de Matriz Aumentada; |
- Comando ''rref'' para escalonar matriz; | - Comando ''rref'' para escalonar matriz; | ||
Linha 604: | Linha 941: | ||
x &\; + &\; 3y &\; + &\; 2z &\; = &\; 2 \\ | x &\; + &\; 3y &\; + &\; 2z &\; = &\; 2 \\ | ||
x &\; + &\; y &\; + &\; z &\; = &\; 4 \\ | x &\; + &\; y &\; + &\; z &\; = &\; 4 \\ | ||
− | \end{alignat}</math> | + | \end{alignat}</math> |
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. | 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. | ||
Linha 620: | Linha 957: | ||
|} | |} | ||
− | 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. | + | 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''. | + | 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''. | + | 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. | + | 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. | + | 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. |
{{collapse bottom}} | {{collapse bottom}} | ||
+ | |||
=== Aula 17 === | === Aula 17 === | ||
{{collapse top| bg=lightblue | 06/Out}} | {{collapse top| bg=lightblue | 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 <math>f_1, f_2, ..., f_7</math> (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. | + | 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 <math>f_1, f_2, ..., f_7</math> (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. |
− | [[Image:Exercícios 1 Aula 17 FIC Matlab.jpeg | 600px]] | + | [[Image:Exercícios 1 Aula 17 FIC Matlab.jpeg | 600px]] |
− | - Caracteres especiais: | + | - Caracteres especiais: |
{| border="4" cellpadding="2" | {| border="4" cellpadding="2" | ||
! '''Símbolo''' | ! '''Símbolo''' | ||
Linha 655: | Linha 993: | ||
|} | |} | ||
− | - Descritores de formato: | + | - Descritores de formato: |
{| border="4" cellpadding="2" | {| border="4" cellpadding="2" | ||
! '''Símbolo''' | ! '''Símbolo''' | ||
Linha 679: | Linha 1 017: | ||
|- | |- | ||
|} | |} | ||
− | + | ||
− | 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 <math>0 </math> a <math>2\pi</math>. | + | 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 <math>0 </math> a <math>2\pi</math>. |
− | - Comando ''msgbox'' para criar caixa de mensagem e opções extras como título, ícone pré-definido ou criado; | + | - Comando ''msgbox'' para criar caixa de mensagem e opções extras como título, ícone pré-definido ou criado; |
{{collapse bottom}} | {{collapse bottom}} | ||
+ | |||
=== Aula 18 === | === Aula 18 === | ||
{{collapse top| bg=lightblue | 11/Out}} | {{collapse top| bg=lightblue | 11/Out}} | ||
− | - Caixa de diálogo de mensagem de aviso (''warndlg''); | + | - 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 erro (''errordlg''); |
− | - Caixa de diálogo de mensagem de interrogação com múltipla escolha (''questdlg''); | + | - 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. | + | 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 mensagem de ajuda (''helpdlg''); |
− | - Caixa de diálogo de introdução de dados (''inputdlg''); | + | - 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. | + | 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. |
{{collapse bottom}} | {{collapse bottom}} | ||
+ | |||
=== Aula 19 === | === Aula 19 === | ||
Linha 713: | Linha 1 053: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
+ | |||
=== Aula 20 === | === Aula 20 === | ||
{{collapse top| bg=lightblue | 18/Out}} | {{collapse top| bg=lightblue | 18/Out}} | ||
− | - Término do Exemplo 1 do uso de ''Graphical User Interface'' (GUI); | + | - Término do Exemplo 1 do uso de ''Graphical User Interface'' (GUI); |
− | - Exemplo 2 do uso de ''Graphical User Interface'' (GUI); | + | - Exemplo 2 do uso de ''Graphical User Interface'' (GUI); |
{{collapse bottom}} | {{collapse bottom}} | ||
+ | --> | ||
+ | |||
+ | |||
+ | == Questões da turma == | ||
+ | |||
+ | === Exercícios Engenharia de Alimentos === | ||
+ | |||
+ | [http://www.dima.uniroma1.it/users/lsa_adn/MATERIALE/FDheat.pdf] | ||
+ | |||
+ | {{collapse top| bg=lightblue | Método explícito}} | ||
+ | <syntaxhighlight lang=matlab class="mw-collapsible"> | ||
+ | clear all; close all; clc | ||
+ | |||
+ | alfa = 0.0000971; | ||
+ | II = 10; | ||
+ | N = 200; | ||
+ | L = 0.3; | ||
+ | tempo = 200; | ||
+ | a = 20; | ||
+ | k = 237; | ||
+ | h = 85; | ||
+ | Tf = -300; | ||
+ | T0 = 20; | ||
+ | |||
+ | % Cálculos | ||
+ | |||
+ | deltax = L/II; | ||
+ | deltat = tempo/N; | ||
+ | fon = alfa*deltat/deltax^2; | ||
+ | |||
+ | % Algoritmo | ||
+ | |||
+ | % Convergência | ||
+ | fon | ||
+ | |||
+ | if fon < 0.5 | ||
+ | |||
+ | T(1,1:II+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 ii = 2:II | ||
+ | |||
+ | T(n+1,ii) = fon*T(n,ii+1) + (1 - 2*fon)*T(n,ii) + fon*T(n,ii-1); | ||
+ | |||
+ | end | ||
+ | |||
+ | % i = II+1 | ||
+ | T(n+1,II+1) = fon*(-2*deltax*h*(T(n,II+1) - Tf))/k + (1 - 2*fon)*T(n,II+1) + 2*fon*T(n,II); | ||
+ | |||
+ | end | ||
+ | end | ||
+ | |||
+ | % Resultados | ||
+ | figure | ||
+ | surf(T) | ||
+ | view(0,90) | ||
+ | xlabel('x'); ylabel('t') | ||
+ | </syntaxhighlight> | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | |||
+ | == Projetos finais == | ||
+ | |||
+ | * [https://github.com/clebercbr/RobotSimulatorMATLAB Projeto 1] | ||
+ | * [[Media:FIC-MATLAB-2017-1-Projeto-2.zip|Projeto 2]] | ||
+ | * [[Media:FIC-MATLAB-2017-1-Projeto-3.zip|Projeto 3]] | ||
+ | * [[Media:FIC-MATLAB-2017-1-Projeto-4.zip|Projeto 4]] | ||
+ | * [[Media:FIC-MATLAB-2017-1-Projeto-5.m|Projeto 5]] | ||
+ | * [[Media:FIC-MATLAB-2017-1-Projeto-6.zip|Projeto 6]] |
Edição atual tal como às 10h12min de 13 de junho de 2017
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
06/Mar - Apresentação da disciplina, professores e alunos; Interface do MATLAB e operadores; Utilização básica (comandos help, clear, …); | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 2
08/Mar - Formatos de exibição; Definições de vetores e matrizes; Funções matemáticas; Plots | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
utilizando d após as funções sin, cos e tan e suas inversas, faz o cálculo em graus
|
Aula 3
13/Mar - Plots; Indexação de vetores e matrizes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 4
15/Mar - Aula de exercícios |
---|
Aula dedicada à execução dos exercícios das aulas anteriores. |
Aula 5
20/Mar - Endereçamento lógico; Concatenação de matrizes; Polinômios | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 6
22/Mar - Texto; Entrada e saída; Estruturas; Células |
---|
|
Aula 7
27/Mar - Operadores; Scripts; Controle de fluxo de dados | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 8
29/Mar - Switch; Estruturas de repetição |
---|
|
Aula 9
03/Abr - Funções; Importação de dados |
---|
Exemplo: usar Celular4g.txt, importar e trabalhar com as funções de matrizes.
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.
|
Aula 10
05/Abr - Gráficos em 2D e 3D | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[X,Y] = meshgrid(-20:0.5:20); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z)
|
Aula 11
10/Abr - Aula de exercícios |
---|
Aula dedicada à execução dos exercícios das aulas anteriores.
|
Aula 12
12/Abr - Processamento de imagens |
---|
Aula 13
17/Abr - Toolbox simbólico |
---|
Básico
Cálculo
Solução de equações
|
Aula 14
19/Abr - Interface gráfica | ||
---|---|---|
|
Aula 15
24/Abr - Projeto |
---|
|
Questões da turma
Exercícios Engenharia de Alimentos
Método explícito |
---|
clear all; close all; clc
alfa = 0.0000971;
II = 10;
N = 200;
L = 0.3;
tempo = 200;
a = 20;
k = 237;
h = 85;
Tf = -300;
T0 = 20;
% Cálculos
deltax = L/II;
deltat = tempo/N;
fon = alfa*deltat/deltax^2;
% Algoritmo
% Convergência
fon
if fon < 0.5
T(1,1:II+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 ii = 2:II
T(n+1,ii) = fon*T(n,ii+1) + (1 - 2*fon)*T(n,ii) + fon*T(n,ii-1);
end
% i = II+1
T(n+1,II+1) = fon*(-2*deltax*h*(T(n,II+1) - Tf))/k + (1 - 2*fon)*T(n,II+1) + 2*fon*T(n,II);
end
end
% Resultados
figure
surf(T)
view(0,90)
xlabel('x'); ylabel('t')
|