Mudanças entre as edições de "FIC MATLAB 2018-1"
(→Aula 2) |
|||
(106 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 11: | Linha 11: | ||
:'''Horário:''' Terças e quintas, das 19h às 22h | :'''Horário:''' Terças e quintas, das 19h às 22h | ||
− | :'''Referência Básica:''' | + | :'''Referência Básica:''' William J. Palm III: '''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:''' | + | :'''Referência Complementar:''' Vagner Morais, Cláudio Vieira: '''MATLAB: Curso Completo'''. FCA, 2013. 644. ISBN 9727227058 |
== Conteúdos Abordados == | == Conteúdos Abordados == | ||
Linha 124: | Linha 124: | ||
|- | |- | ||
| ans || Variável temporária que contém a resposta mais recente. | | ans || Variável temporária que contém a resposta mais recente. | ||
− | |||
− | |||
|- | |- | ||
| pi || O número <math>\pi</math>. | | pi || O número <math>\pi</math>. | ||
Linha 199: | Linha 197: | ||
:4. Repita o exercício anterior, substituindo a palavra ''linha'' por ''coluna''. | :4. Repita o exercício anterior, substituindo a palavra ''linha'' por ''coluna''. | ||
− | :5. Crie o vetor ''v = [ | + | :5. Crie o vetor ''v = [2 4 8 16 32 ... 512 1024]'' utilizando o comando ''logspace''. |
Linha 211: | Linha 209: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | |||
− | |||
− | |||
=== Aula 3 === | === Aula 3 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 20/Mar - Operações com matrizes; Plots}} |
* Operações; | * Operações; | ||
Linha 281: | Linha 276: | ||
::e) X<sup>2</sup> | ::e) X<sup>2</sup> | ||
::f) B C (multiplicação elemento a elemento) | ::f) B C (multiplicação elemento a elemento) | ||
+ | |||
+ | :3. Crie o vetor ''v = [1 4 9 16 25 ... 81 100]''. | ||
+ | |||
+ | :4. Crie o vetor ''v = [2 4 8 16 32 ... 512 1024]'' sem utilizar o comando ''logspace''. | ||
+ | |||
+ | :5. Utilize o MATLAB para calcular 12! (isto é, o fatorial do número 12), sem utilizar o comando ''factorial''. | ||
+ | |||
+ | :6. O [https://pt.wikipedia.org/wiki/S%C3%A9rie_harm%C3%B3nica_(matem%C3%A1tica) número harmônico] <math>H_n</math> é definido como sendo a soma ''1 + 1/2 + ... + 1/n''. Utilize o MATLAB para calcular <math>H_{100}</math>. | ||
+ | |||
+ | :7. Seja | ||
+ | :::::<math> | ||
+ | x = 1 + 1/4 + 1/9 + 1/16 + 1/25 + \cdots + 1/10000^2. | ||
+ | </math> | ||
+ | |||
+ | ::Calcule ''x''. Em seguida, calcule <math>\sqrt{6x}</math>. | ||
Linha 360: | Linha 370: | ||
|} | |} | ||
+ | * [[FIC_MATLAB_2018-1/Aula-3|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 4 === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 22/Mar - Exercícios plot; Números aleatórios}} | ||
− | * '''Exercícios''' | + | * '''Exercícios''' (Plots) |
− | :1. | + | :1. Plote, em um mesmo gráfico, as funções |
+ | :::::<math>f(x) = \sqrt{1 - |x - 1|^2}</math> | ||
+ | ::e | ||
+ | :::::<math>\displaystyle{g(x) = \arccos(1 - |x|) - \pi},</math> | ||
+ | ::para <math>-2 \leq x \leq 2</math>. | ||
− | :2. | + | :2. Plote a função <math>\displaystyle{f(x) = x^2 + x - 2}</math> de -4 até 4 e encontrar as raízes por Bhaskara. |
− | :3. Utilize o MATLAB para plotar a função <math>T = 3 \ln (2 t) - 5 e^{0,5 t}</math> ao longo do intervalo <math>1 \leq t \leq 3</math>. Insira um título na plotagem e rotule adequadamente os eixos. A variável ''T'' representa a temperatura em graus Celsius; a variável ''t'' representa o tempo em minutos. | + | :3. Utilize o MATLAB para plotar a função <math>\displaystyle{T = 3 \ln (2 t) - 5 e^{0,5 t}}</math> ao longo do intervalo <math>1 \leq t \leq 3</math>. Insira um título na plotagem e rotule adequadamente os eixos. A variável ''T'' representa a temperatura em graus Celsius; a variável ''t'' representa o tempo em minutos. |
− | :4. Plote as funções <math>u = 100 \log_{10} (60 x + 1)</math> e <math>v = 50 \cos(6 x) \mathrm{sen} (2 x) + 150 x</math> ao longo do intervalo <math>0 \leq x \leq 2</math>. Rotule adequadamente a plotagem e cada uma das curvas, utilizando '''legend'''. A variável ''u'' representa a velocidade de uma Ferrari em km/h. A variável ''v'' representa a velocidade de um Fusca. | + | :4. Plote as funções <math>\displaystyle{u = 100 \log_{10} (60 x + 1)}</math> e <math>\displaystyle{v = 50 \cos(6 x) \mathrm{sen} (2 x) + 150 x}</math> ao longo do intervalo <math>0 \leq x \leq 2</math>. Rotule adequadamente a plotagem e cada uma das curvas, utilizando '''legend'''. A variável ''u'' representa a velocidade de uma Ferrari em km/h. A variável ''v'' representa a velocidade de um Fusca. |
:5. Use a função ''stem'' para plotar os sinais abaixo na mesma figura: | :5. Use a função ''stem'' para plotar os sinais abaixo na mesma figura: | ||
− | :: <math>\cos(x)</math>, para <math>0 \leq x \leq 2 \pi</math> | + | :: <math>\displaystyle{\cos(x)}</math>, para <math>0 \leq x \leq 2 \pi</math> |
− | :: <math>0,5 \sin(x)</math>, para <math>\pi \leq x \leq 3 \pi</math> | + | :: <math>\displaystyle{0,5 \sin(x)}</math>, para <math>\pi \leq x \leq 3 \pi</math> |
:6. A série de Fourier é uma representação em série de funções periódicas em termos de senos e cossenos. A representação em série de Fourier da função | :6. A série de Fourier é uma representação em série de funções periódicas em termos de senos e cossenos. A representação em série de Fourier da função | ||
Linha 383: | Linha 404: | ||
::é | ::é | ||
:::::<math>g(x) = \frac{4}{\pi} \left( \frac{\sin(x)}{1} + \frac{\sin(3x)}{3} + \frac{\sin(5x)}{5} + \frac{\sin(7x)}{7} + \cdots \right)</math>. | :::::<math>g(x) = \frac{4}{\pi} \left( \frac{\sin(x)}{1} + \frac{\sin(3x)}{3} + \frac{\sin(5x)}{5} + \frac{\sin(7x)}{7} + \cdots \right)</math>. | ||
− | ::Plote em um mesmo gráfico a função ''f''(''x'') e sua representação em série ''g''(''x''), utilizando os quatro termos explicitados. | + | ::Plote, em um mesmo gráfico, a função ''f''(''x'') e sua representação em série ''g''(''x''), utilizando os quatro termos explicitados. Considere ''x'' na faixa de <math>-\pi</math> até <math>\pi</math>. |
:7. Fazer o ''plot'' de um sinal de tensão versus tempo, como da figura: | :7. Fazer o ''plot'' de um sinal de tensão versus tempo, como da figura: | ||
Linha 396: | Linha 417: | ||
[[Image:Exercícios Aula 3 FIC Matlab.jpg|600px|center]] | [[Image:Exercícios Aula 3 FIC Matlab.jpg|600px|center]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* Outros comandos relacionados a plotagem: | * Outros comandos relacionados a plotagem: | ||
Linha 415: | Linha 428: | ||
:* Comando ''randn'' para valores normalmente distribuídos | :* Comando ''randn'' para valores normalmente distribuídos | ||
:* Comando ''hist'' e ''histogram'' para cálculo/visualização do histograma | :* Comando ''hist'' e ''histogram'' para cálculo/visualização do histograma | ||
+ | |||
+ | * [[FIC_MATLAB_2018-1/Aula-4|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 5 === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 27/Mar - Endereçamento e concatenação de vetores e matrizes; Repmat e Reshape}} | ||
* Endereçamento de vetores e matrizes | * Endereçamento de vetores e matrizes | ||
Linha 426: | Linha 447: | ||
:* Indexação/submatrizes do lado esquerdo vs do lado direito | :* Indexação/submatrizes do lado esquerdo vs do lado direito | ||
:* Exclusão de linha ou coluna | :* Exclusão de linha ou coluna | ||
+ | |||
+ | |||
+ | * [[FIC_MATLAB_2018-1/Aula-5|Códigos executados na aula]] | ||
Linha 481: | Linha 505: | ||
− | * | + | * Concatenação de vetores e matrizes |
+ | * Comandos ''repmat'', ''reshape'', ''fliplr'' e ''flipud'' | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula 5 === | + | === Aula 6 === |
+ | {{collapse top| bg=lightblue | 29/Mar - Conjuntos; Polinômios; Texto; Entrada e saída de dados}} | ||
+ | |||
+ | * Comandos ''sort'', ''unique'' | ||
+ | * Comandos ''union'' (<math>A \cup B</math>), ''intersect'' (<math>A \cap B</math>), ''setdiff'' (<math>A \setminus B</math>), ''setxor'' (diferença simétrica) | ||
+ | |||
+ | |||
+ | * '''Exercícios''': | ||
+ | |||
+ | :1. Mostre todos os inteiros positivos menores que 100 que são múltiplos de 3 ou de 5. | ||
+ | |||
+ | :2. Mostre todos os inteiros positivos menores que 200 que são múltiplos de 3 e 5. | ||
+ | |||
+ | :3. Mostre todos os inteiros positivos menores que 125 que são múltiplos de 3 ou de 5, mas não de ambos. | ||
+ | |||
+ | |||
+ | * Polinômios | ||
+ | |||
+ | :* Representação de polinômios a partir de vetores | ||
+ | :* Comandos ''polyval'', ''poly'' e ''roots'' | ||
+ | :* Comandos ''conv'' e ''deconv'' para multiplicação e divisão de polinômios | ||
+ | :* Comandos ''polyder'' e ''polyint'' para derivada e integral de polinômios | ||
+ | |||
+ | |||
+ | * '''Exercícios''': | ||
+ | |||
+ | :1. Utilize o MATLAB para obter as raízes do polinômio | ||
+ | :::::<math>\displaystyle{x^3 + 13x^2 + 52x + 6}</math>. | ||
+ | ::Utilize a função ''poly'' para confirmar sua resposta. | ||
+ | |||
+ | :2. Utilize o MATLAB para confirmar que | ||
+ | :::::<math>\displaystyle{(20x^3 - 7x^2 + 5x + 10)(4x^2 + 12x - 3) = 80x^5 + 212x^4 - 124x^3 + 121x^2 + 105x - 30}.</math> | ||
+ | |||
+ | :3. Utilize o MATLAB para confirmar que | ||
+ | :::::<math>\frac{12x^3 + 5x^2 - 2x + 3}{3x^2 - 7x + 4} = 4x + 11</math> | ||
+ | ::com resto de <math>\displaystyle{59x - 41}</math>. | ||
+ | |||
+ | :4. Utilize o MATLAB para confirmar que | ||
+ | :::::<math>\frac{6x^3 + 4x^2 - 5}{12x^3 - 7x^2 + 3x + 9} = 0{,}7108</math> | ||
+ | ::quando <math>x = 2</math>. | ||
+ | |||
+ | :5. Plote o polinômio | ||
+ | :::::<math>\displaystyle{x^3 + 13x^2 + 52x + 6}</math> | ||
+ | ::ao longo da faixa <math>-7 \leq x \leq 1</math>. | ||
+ | |||
+ | |||
+ | * Trabalhando com texto (''string'') | ||
+ | |||
+ | |||
+ | * Entrada/Saída de dados | ||
+ | :* Comando ''input'' para entrada de dados | ||
+ | :* Comando ''disp'' para saída de dados | ||
+ | :* Comandos ''num2str'' e ''str2num'' | ||
+ | :* Entrada de dados sem a tecla ENTER | ||
+ | |||
+ | |||
+ | * '''Exercício''': | ||
+ | |||
+ | :1. Criar uma calculadora de IMC com perguntas (''input'') para massa e altura. Use o ''disp'' para exibir o resultado de forma ''agradável'' ao usuário. | ||
+ | |||
+ | |||
+ | * [[FIC_MATLAB_2018-1/Aula-6|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 7 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 03/Abr - Aula de exercícios}} |
* '''Exercícios''': | * '''Exercícios''': | ||
Linha 529: | Linha 619: | ||
::* O erro da aproximação | ::* O erro da aproximação | ||
− | :3. Se uma bola | + | :3. Se uma bola é lançada da altura <math>h_0 = 28</math> m acima da superfície da terra, com velocidade vertical <math>v_0 = 20</math> m/s, a posição e a velocidade da bola como função no tempo serão dadas pelas equações |
− | :::<math> | + | :::<math>h(t) = \frac{1}{2} g t^2 + v_0 t + h_0</math> |
− | h(t) = \frac{1}{2} g t^2 + v_0 t + h_0 | + | :::<math>\displaystyle{v(t) = g t + v_0}</math> |
− | </math> | + | ::onde ''g'' é a aceleração da gravidade (-9,81 m/s²). Escreva um programa de MATLAB que desenhe a altura e a velocidade como função do tempo, utilizando o comando ''subplot''. Faça com que <math>h_0</math> e <math>v_0</math> sejam parâmetros da script. Não deixe de incluir as legendas apropriadas. |
− | :::<math> | ||
− | v(t) = g t + v_0 | ||
− | </math> | ||
− | ::onde ''g'' é a aceleração da gravidade (-9,81 m/s²). Escreva um programa de MATLAB que desenhe a altura e a velocidade como função do tempo. Faça com que <math>h_0</math> e <math>v_0</math> sejam parâmetros da script. Não deixe de incluir as legendas apropriadas. | ||
:4. Joãozinho depositou <math>v_p = \text{BRL } 1.000,00</math> num fundo de investimento com taxa de juros <math>j = 0{,}8 %</math> ao mês. Faça um gráfico do saldo do investimento. Em quanto tempo o valor depositado será dobrado? Dica: [https://pt.wikipedia.org/wiki/Juro#Juros_compostos (link)] | :4. Joãozinho depositou <math>v_p = \text{BRL } 1.000,00</math> num fundo de investimento com taxa de juros <math>j = 0{,}8 %</math> ao mês. Faça um gráfico do saldo do investimento. Em quanto tempo o valor depositado será dobrado? Dica: [https://pt.wikipedia.org/wiki/Juro#Juros_compostos (link)] | ||
− | * ''' | + | |
+ | * '''Desafios''': | ||
:1. Plote um círculo com raio 2 e centrado no ponto (4,3). Dica: use equações paramétricas. | :1. Plote um círculo com raio 2 e centrado no ponto (4,3). Dica: use equações paramétricas. | ||
− | :2. Repita o Exercício 6 da Aula | + | :2. Repita o Exercício 6 da Aula 4 (Fourier) para um número de termos genérico. |
− | :3. Plote o símbolo do Batman (para quem tem dúvida, [http:// | + | :3. Plote o símbolo do Batman (para quem tem dúvida, [http://guangchuangyu.github.io/blog_images/2011/08/X.png link]). |
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 8 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 05/Abr - Variáveis lógicas; Operadores relacionais e lógicos}} |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * Variáveis lógicas (''booleanas''): | |
− | * | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
:* Comando ''logical'' | :* Comando ''logical'' | ||
Linha 628: | Linha 664: | ||
|} | |} | ||
− | :* Operadores lógicos | + | :* Operadores lógicos: |
:::{| class="wikitable" | :::{| class="wikitable" | ||
Linha 643: | Linha 679: | ||
|} | |} | ||
− | :* | + | :* Comparação de vetores ou matrizes: |
− | + | ::* Comando ''isequal'' | |
− | :: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
:* Comparação de ''strings'': | :* Comparação de ''strings'': | ||
Linha 701: | Linha 729: | ||
::b) Determine os instantes de tempo em que a altura é de no mínimo 15 m. | ::b) Determine os instantes de tempo em que a altura é de no mínimo 15 m. | ||
::c) Determine os instantes de tempo em que a altura é de no mínimo 15 m e, ao mesmo tempo, a velocidade é de no máximo 36 m/s. | ::c) Determine os instantes de tempo em que a altura é de no mínimo 15 m e, ao mesmo tempo, a velocidade é de no máximo 36 m/s. | ||
− | :: | + | ::d) Determine os instantes de tempo em que a altura é de no mínimo 15 m ou a velocidade é de no máximo 36 m/s. |
+ | ::e) Destaque as figuras anteriores com os intervalos calculados na letra c). | ||
+ | |||
+ | * [[FIC MATLAB 2018-1/Aula-8|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 9 === | ||
+ | {{collapse top| bg=lightblue | 10/Abr - Controle de fluxo de dados - ''if'' e ''switch''}} | ||
* Controle de fluxo de dados: | * Controle de fluxo de dados: | ||
Linha 711: | Linha 747: | ||
* '''Exercícios''': | * '''Exercícios''': | ||
− | :1. Crie 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). | + | :1. Crie um programa que recebe do usuário um número ''X''. Se este número for maior que 10, então, o programa deve mostrar o quadrado do número ''X''. Caso contrário, o número ''X'' deve ser exibido junto com uma mensagem de boa noite. |
+ | |||
+ | :2. Escreva um programa no qual o usuário irá entrar com uma ''string'', que irá informar o assunto de uma discussão em um bate-papo da UOL. O programa deverá mostrar uma mensagem de boas vindas relacionada ao tema nos casos em que o tema seja '''cinema''', '''moda''' ou '''gastronomia'''. Se o assunto for '''politica''', '''futebol''' ou '''religiao''', o programa deverá informar que estes assuntos estão proibidos. Qualquer outro assunto é inválido, e deverá receber uma mensagem crítica. | ||
+ | |||
+ | :3. Escreva um programa no qual o usuário fornece três valores: o valor inicial, o valor final e o passo de um intervalo. Crie proteções para que o intervalo seja consistente. Por exemplo, se o valor final for menor que o valor inicial, então o passo deve ser negativo. Ao fim do programa, exiba <math>x^2</math>, onde ''x'' é o intervalo. | ||
+ | |||
+ | :4. Crie 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''). | ::* 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. | ::* Os dados devem ser validados: verificar se o usuário forneceu alguma quantidade negativa. | ||
Linha 719: | Linha 761: | ||
:::# O preço unitário do café é R$10,00. Se comprar 3 ou mais, o preço cai para R$9,25 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. | ||
− | : | + | :5. Implemente uma calculadora com as quatro operações básicas, recebendo a escolha de operação e números com o comando ''input''. Não se esqueça de implementar proteções para as entradas de dados (divisão por zero, vetores, etc). |
− | |||
− | + | :6. Modifique o programa do cálculo do IMC de modo a informar ao usuário o grau de magreza/obesidade do indivíduo (veja [https://pt.wikipedia.org/wiki/%C3%8Dndice_de_massa_corporal#Classifica%C3%A7%C3%A3o aqui]). | |
− | |||
− | |||
− | |||
− | |||
− | |||
* A sentença ''switch'' | * A sentença ''switch'' | ||
Linha 737: | Linha 773: | ||
* '''Exercício''': | * '''Exercício''': | ||
− | :1. Reescreva o código da | + | :1. Reescreva o código da questão 2 anterior (bate-papo da UOL) fazendo o uso da sentença ''switch''. |
+ | :2. Reescreva o código da questão 5 anterior (calculadora) fazendo o uso da sentença ''switch''. | ||
+ | |||
+ | |||
+ | * [[FIC MATLAB 2018-1/Aula-9|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 10 === | ||
+ | {{collapse top| bg=lightblue | 12/Abr - Structs; Cells}} | ||
* Estruturas | * Estruturas | ||
Linha 821: | Linha 866: | ||
− | * [[FIC MATLAB | + | |
+ | * [[FIC MATLAB 2018-1/Aula-10|Códigos executados em sala]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 11 === |
− | {{collapse top| bg=lightblue | | + | |
+ | {{collapse top| bg=lightblue | 17/Abr - Estruturas de repetição - ''for'' e ''while''}} | ||
* Estruturas de repetição: | * Estruturas de repetição: | ||
Linha 891: | Linha 938: | ||
::Plote em um mesmo gráfico a função ''f''(''x'') e sua representação em série ''g''(''x''), utilizando um número de termos definido pelo usuário. | ::Plote em um mesmo gráfico a função ''f''(''x'') e sua representação em série ''g''(''x''), utilizando um número de termos definido pelo usuário. | ||
− | * [[FIC MATLAB | + | |
+ | * [[FIC MATLAB 2018-1/Aula-11|Códigos executados em sala]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 12 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 19/Abr - Funções; Exercícios}} |
* Funções definidas pelo usuário | * Funções definidas pelo usuário | ||
Linha 906: | Linha 954: | ||
*'''Exercícios:''' | *'''Exercícios:''' | ||
− | :1. Adapte os Exercícios 2 e 3 da Aula | + | :1. Adapte os Exercícios 2 e 3 da Aula 11 de modo a utilizar funções. |
:2. Escreva uma função que retorna a média aritmética e a média geométrica de dois dados números. | :2. Escreva uma função que retorna a média aritmética e a média geométrica de dois dados números. | ||
Linha 930: | Linha 978: | ||
− | * | + | * [[FIC MATLAB 2018-1/Aula-12|Códigos executados em sala]] |
− | |||
− | |||
− | + | {{collapse bottom}} | |
+ | === Aula 13 === | ||
+ | {{collapse top| bg=lightblue | 24/Abr - Processamento de imagens}} | ||
− | + | <!--'''Pro futuro:''' Usar ''im2double''!--> | |
− | + | [[Curso Matlab aplicado ao processamento de imagens - Aula 3]] | |
− | + | [[FIC MATLAB 2017-2/Aula-11|Códigos executados em sala]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 14 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 26/Abr - Importação de dados; Gráficos em 2D e 3D}} |
− | ''' | + | * Importação de dados |
+ | :* Comando ''uiimport'' | ||
+ | :* Formato do separador decimal (''.'' ou '','') | ||
+ | : Exemplo: usar [https://wiki.sj.ifsc.edu.br/images/8/84/Celular4g.txt Celular4g.txt], importar e trabalhar com as funções de matrizes. | ||
− | |||
+ | *'''Exercícios''': | ||
− | [ | + | :1. Com o arquivo [https://wiki.sj.ifsc.edu.br/images/f/fe/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. |
− | |||
− | |||
− | |||
− | |||
* '''Gráficos em 2D''' | * '''Gráficos em 2D''' | ||
Linha 1 054: | Linha 1 093: | ||
:3. 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. | :3. 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) = 1000 e^{-0,5t} \mathrm{sen}(3t+2)</math> | + | ::: <math>\displaystyle{x(t) = 1000 e^{-0,5t} \mathrm{sen}(3t+2)}</math> |
− | ::: <math>y(t) = 7 e^{-0,4t} \cos(5t-3)</math> | + | ::: <math>\displaystyle{y(t) = 7 e^{-0,4t} \cos(5t-3)}</math> |
Linha 1 090: | Linha 1 129: | ||
[[Arquivo:FIC_Matlab_Exercicios_plot.pdf|Exercícios]] | [[Arquivo:FIC_Matlab_Exercicios_plot.pdf|Exercícios]] | ||
− | * [[FIC MATLAB | + | * [[FIC MATLAB 2018-1/Aula-14|Códigos executados em sala]] |
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 15 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 03/Mai - Solução de sistemas de equações; Toolbox simbólico}} |
+ | |||
+ | * Sistemas de equações lineares | ||
+ | :* Encontrando a solução de ''Ax = b'' com ''A\b'' | ||
+ | <!-- Talvez falar sobre a função rref - forma escalonada reduzida de linha --> | ||
+ | ::* Exemplo: Balanceamento de equações químicas | ||
+ | |||
+ | :::::<math>C_3 H_8 + O_2 \longrightarrow CO_2 + H_2 O</math> | ||
+ | |||
+ | :::::<math>x (C_3 H_8) + y (O_2) \longrightarrow z (C O_2) + w (H_2 O)</math> | ||
+ | |||
+ | :::::<math>\begin{cases} | ||
+ | 3x = z & \text{(carbono)} \\ | ||
+ | 8x = 2w & \text{(hidrogenio)} \\ | ||
+ | 2y = 2z + w & \text{(oxigenio)} \\ | ||
+ | x + y + z + w = 1 & \text{(normalizacao)} \\ | ||
+ | \end{cases}</math> | ||
+ | |||
+ | :::::<math>\begin{cases} | ||
+ | 3x - z = 0 \\ | ||
+ | 8x - 2w = 0 \\ | ||
+ | 2y - 2z - w = 0 \\ | ||
+ | x + y + z + w = 1 \\ | ||
+ | \end{cases}</math> | ||
+ | |||
+ | <!-- [[Image:MATLAB_Chem_Balance.jpg|300px|center]] --> | ||
+ | |||
+ | |||
+ | * 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'' | |
− | |||
− | |||
− | :* | ||
− | : | ||
− | |||
− | + | :* Mais cálculo | |
− | * Comando '' | + | ::* 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 2018-1/Aula-15|Códigos executados em sala]] | |
− | + | {{collapse bottom}} | |
− | + | === Aula 16 === | |
+ | {{collapse top| bg=lightblue | 08/Mai - Projeto}} | ||
− | + | Aula dedicada ao projeto. | |
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 17 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 10/Mai - Interface gráfica}} |
[[Curso Matlab aplicado ao processamento de imagens - Aula 2|Aula]] | [[Curso Matlab aplicado ao processamento de imagens - Aula 2|Aula]] | ||
Linha 1 304: | Linha 1 379: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | + | [[FIC MATLAB 2018-1/Aula-17|Códigos executados em sala]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 18 === |
− | |||
− | |||
− | |||
− | + | {{collapse top| bg=lightblue | 15/Mai - Projeto}} | |
− | |||
− | |||
− | |||
− | |||
− | {{collapse top| bg=lightblue | | ||
Aula dedicada ao projeto. | Aula dedicada ao projeto. | ||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Aula 19 === | === Aula 19 === | ||
− | |||
− | - | + | {{collapse top| bg=lightblue | 17/Mai - Projeto}} |
− | + | Aula dedicada ao projeto. | |
− | |||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
− | |||
=== Aula 20 === | === Aula 20 === | ||
− | |||
− | - | + | {{collapse top| bg=lightblue | 22/Mai - Projeto}} |
− | + | ||
+ | Aula dedicada ao projeto. | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | |||
− | |||
== Questões da turma == | == Questões da turma == | ||
Linha 1 541: | Linha 1 434: | ||
:batalha naval | :batalha naval | ||
− | {{collapse bottom}} | + | <!--{{collapse bottom}}--> |
Edição atual tal como às 19h09min de 22 de maio de 2018
Informações Básicas
- Código: MLB16470
- Professores: Diego da Silva de Medeiros e Roberto Wanderley da Nóbrega
- Início: 13/Mar/2018
- Término: 22/Mai/2018
- Horário: Terças e quintas, das 19h às 22h
- Referência Básica: William J. Palm III: 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: Vagner Morais, Cláudio Vieira: MATLAB: Curso Completo. FCA, 2013. 644. ISBN 9727227058
Conteúdos Abordados
Aula 1
13/Mar - Apresentação da disciplina; Interface do MATLAB; Operadores; Funções; Constantes especiais | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Observações:
|
Aula 2
15/Mar - Formatos de exibição; Vetores e matrizes | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 3
20/Mar - Operações com matrizes; Plots | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 4
22/Mar - Exercícios plot; Números aleatórios |
---|
|
Aula 5
27/Mar - Endereçamento e concatenação de vetores e matrizes; Repmat e Reshape |
---|
|
Aula 6
29/Mar - Conjuntos; Polinômios; Texto; Entrada e saída de dados |
---|
|
Aula 7
03/Abr - Aula de exercícios | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 8
05/Abr - Variáveis lógicas; Operadores relacionais e lógicos | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 9
10/Abr - Controle de fluxo de dados - if e switch |
---|
|
Aula 10
12/Abr - Structs; Cells | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 11
17/Abr - Estruturas de repetição - for e while | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 12
19/Abr - Funções; Exercícios |
---|
|
Aula 13
24/Abr - Processamento de imagens |
---|
Aula 14
26/Abr - Importação de dados; Gráficos em 2D e 3D | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 15
03/Mai - Solução de sistemas de equações; Toolbox simbólico |
---|
|
Aula 16
08/Mai - Projeto |
---|
Aula dedicada ao projeto. |
Aula 17
10/Mai - Interface gráfica | ||
---|---|---|
|
Aula 18
15/Mai - Projeto |
---|
Aula dedicada ao projeto. |
Aula 19
17/Mai - Projeto |
---|
Aula dedicada ao projeto. |
Aula 20
22/Mai - Projeto |
---|
Aula dedicada ao projeto. |
Questões da turma
Projetos finais
Ideias
Hachuras em gráficos de barras
Implementar uma função em MATLAB que plote um gráfico de barras com hachuras. O comportamento deve ser semelhante ao comando bar, nativo do MATLAB, mas parâmetros poderão ser acrescentados para controle da trama. Um exemplo de resultado pode ser visto na figura abaixo:
Genius®
Implementar uma versão avançada do jogo Genius® construído na aula 9, adicionando sons, elementos gráficos, etc.
Outros
- relógio analógico
- dtmf
- sudoku
- jogo da velha
- contar moedas
- esteganografia
- batalha naval