Mudanças entre as edições de "FIC MATLAB 2018-2"
Linha 18: | Linha 18: | ||
− | === Apresentação da disciplina; Interface do MATLAB; Operadores; Funções; Constantes especiais; Formatos de exibição === | + | == Conteúdos Abordados == |
− | {{collapse top| bg=lightblue | 11/Set}} | + | |
+ | === 1 - Apresentação da disciplina; Interface do MATLAB; Operadores; Funções; Constantes especiais; Formatos de exibição === | ||
+ | {{collapse top| bg=lightblue | 11/Set - }} | ||
* MATLAB e Octave; | * MATLAB e Octave; | ||
Linha 107: | Linha 109: | ||
:::<math>d = \frac{x + y}{e^{\frac{x}{y}} \log_{10}(\pi)}</math> | :::<math>d = \frac{x + y}{e^{\frac{x}{y}} \log_{10}(\pi)}</math> | ||
− | :::<math> | + | :::<math>d = 5{,}2 \cos^2 \left( \frac{x + y}{e^{\frac{x}{y}} \log_{10}(\pi)} \right)</math> |
+ | |||
* Ajudas: | * Ajudas: | ||
Linha 160: | Linha 163: | ||
* [[FIC_MATLAB_2018-2/Aula-1|Códigos executados na aula]] | * [[FIC_MATLAB_2018-2/Aula-1|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 2 - Vetores e matrizes === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 13/Set}} | ||
+ | |||
+ | |||
+ | * Definições de vetores; | ||
+ | |||
+ | * Definições de matrizes; | ||
+ | |||
+ | * Comandos ''length'' e ''size''; | ||
+ | |||
+ | * Arranjo de vetores: | ||
+ | :* Utilizando dois pontos (:); | ||
+ | ::* Definição de passo; | ||
+ | :* Comandos ''linspace'' e ''logspace''; | ||
+ | |||
+ | |||
+ | * '''Exercícios:''' | ||
+ | |||
+ | :1. Crie os vetores descritos abaixo usando dois métodos diferentes: | ||
+ | ::a) Início: 5, Fim: 28, com 100 elementos regularmente espaçados. | ||
+ | ::b) Início: 5, Fim: 14, com passo de 0,2. | ||
+ | ::c) Início: -2, Fim: 5, com 50 elementos regularmente espaçados. | ||
+ | ::d) Início: 100, Fim: 12, com 100 elementos regularmente espaçados. | ||
+ | |||
+ | :2. Crie os vetores descritos abaixo: | ||
+ | ::a) Início: 10, Fim: 1000, com 50 elementos logaritmicamente espaçados. | ||
+ | ::b) Início: 0,01, Fim: 1, com 20 elementos logaritmicamente espaçados. | ||
+ | |||
+ | :3. Crie um vetor '''x''' que tenha 6 valores entre 0 e 10. Em seguida, crie uma matriz '''A''' cuja primeira linha contenha os valores 3'''x''' e segunda linha contenha os valores 5'''x''' - 20. | ||
+ | |||
+ | :4. Repita o exercício anterior, substituindo a palavra ''linha'' por ''coluna''. | ||
+ | |||
+ | :5. Crie o vetor ''v = [2 4 8 16 32 ... 512 1024]'' utilizando o comando ''logspace''. | ||
+ | |||
+ | |||
+ | * Definições de matrizes ''eye'', ''zeros'' e ''ones''; | ||
+ | :* Usando ''length'' e ''size'' na criação de matrizes; | ||
+ | |||
+ | * Matriz transposta ( .' ) e matriz Hermitiana ('); | ||
+ | |||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-2|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 3 - Operações com matrizes; Plots === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 18/Set}} | ||
+ | |||
+ | * Operações; | ||
+ | :* Soma e diferença; | ||
+ | :* Produto matricial; | ||
+ | :* Produto e divisão elemento a elemento; | ||
+ | :* Potenciação; | ||
+ | :* Funções (''sin'', ''log'', etc) aplicadas a matrizes; | ||
+ | :* Operações entre matrizes e escalares; | ||
+ | :* Comandos ''sum'' e ''prod''; | ||
+ | :* Mínimo (''min''), máximo (''max''), média (''mean'') e norma (''norm''); | ||
+ | :* Determinante (''det'') e inversa (''inv'') de uma matriz; | ||
+ | |||
+ | |||
+ | * '''Exercícios:''' | ||
+ | |||
+ | :1. Defina as matrizes abaixo: | ||
+ | |||
+ | :::<math> | ||
+ | |||
+ | A = \begin{bmatrix} | ||
+ | 1 & 2 & 3 & 4 & 5\\ | ||
+ | 6 & 7 & 8 & 9 & 10\\ | ||
+ | 11 & 12 & 13 & 14 & 15\\ | ||
+ | 16 & 17 & 18 & 19 & 20 | ||
+ | \end{bmatrix} | ||
+ | |||
+ | \qquad | ||
+ | |||
+ | B = \begin{bmatrix} | ||
+ | 1/2 & 1/3\\ | ||
+ | 1/4 & 1/5\\ | ||
+ | 1/6 & 1/7\\ | ||
+ | 1/8 & 1/9 | ||
+ | \end{bmatrix} | ||
+ | |||
+ | \qquad | ||
+ | |||
+ | C = \begin{bmatrix} | ||
+ | -1/12 & 1/{-3}\\ | ||
+ | 0 & 0\\ | ||
+ | 1 & 17\\ | ||
+ | 2 & 19 | ||
+ | \end{bmatrix} | ||
+ | |||
+ | \qquad | ||
+ | |||
+ | D = \begin{bmatrix} | ||
+ | \sqrt 2\\ | ||
+ | \pi\\ | ||
+ | e\\ | ||
+ | \sqrt 3\\ | ||
+ | 42 | ||
+ | \end{bmatrix} | ||
+ | |||
+ | </math> | ||
+ | |||
+ | :2. Para as matrizes acima, realize as operações abaixo: | ||
+ | ::a) B + C | ||
+ | ::b) A D (multiplicação matricial) | ||
+ | ::c) C B<sup>T</sup> A | ||
+ | ::d) X = B<sup>T</sup> C | ||
+ | ::e) X<sup>2</sup> | ||
+ | ::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>. | ||
+ | |||
+ | |||
+ | * Plots: | ||
+ | :* Comandos ''plot'', ''stem'', ''bar'' e ''stairs'' de uma função | ||
+ | ::* Uso de apenas um parâmetro | ||
+ | :* Comando ''hold'' para manter a curva no gráfico | ||
+ | :* Comando ''grid'' para mostrar linhas em forma de grade | ||
+ | :* Nomes aos eixos com ''xlabel'' e ''ylabel'' | ||
+ | :* Comando ''title'' | ||
+ | :* Comandos ''axis'', ''xlim'' e ''ylim'' para ajuste de eixos | ||
+ | :* Comando ''legend'' | ||
+ | |||
+ | :* Especificadores de linha, cores e marcadores: | ||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! '''Tipo de linha''' | ||
+ | ! '''Símbolo''' | ||
+ | |- | ||
+ | | Sólida (padrão) || - | ||
+ | |- | ||
+ | | Tracejada || -- | ||
+ | |- | ||
+ | | Tracejada com pontos || -. | ||
+ | |- | ||
+ | | Com pontos || : | ||
+ | |} | ||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! '''Cores''' | ||
+ | ! '''Símbolo''' | ||
+ | |- | ||
+ | | Preto || k | ||
+ | |- | ||
+ | | Azul || b | ||
+ | |- | ||
+ | | Ciano || c | ||
+ | |- | ||
+ | | Verde || g | ||
+ | |- | ||
+ | | Magenta || m | ||
+ | |- | ||
+ | | Vermelho || r | ||
+ | |- | ||
+ | | Branco || w | ||
+ | |- | ||
+ | | Amarelo || y | ||
+ | |} | ||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! '''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 | ||
+ | |} | ||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-3|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 4 - Exercícios plot; Números aleatórios === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 20/Set}} | ||
+ | |||
+ | * '''Exercícios''' (Plots) | ||
+ | |||
+ | :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. 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>\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>\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: | ||
+ | :: <math>\displaystyle{\cos(x)}</math>, para <math>0 \leq x \leq 2 \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 | ||
+ | :::::<math>f(x) = | ||
+ | \begin{cases} | ||
+ | -1, & -\pi \leq x \leq 0 \\ | ||
+ | 1, & 0 \leq x \leq \pi | ||
+ | \end{cases}</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. 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: | ||
+ | :::::<math>f(t) = | ||
+ | \begin{cases} | ||
+ | \sin(2 \pi t / 63), & \text{de } t = 1s \text{ ate } t = 63s \\ | ||
+ | 0, & \text{de } t = 64s \text{ ate } t = 80s \\ | ||
+ | 1, & \text{de } t = 81s \text{ ate } t = 100s \\ | ||
+ | -1, & \text{de } t = 101s \text{ ate } t = 120s | ||
+ | \end{cases}</math> | ||
+ | :: Não esquecer de nomear os eixos. | ||
+ | [[Image:Exercícios Aula 3 FIC Matlab.jpg|600px|center]] | ||
+ | |||
+ | |||
+ | * Outros comandos relacionados a plotagem: | ||
+ | :* Comando ''figure'' | ||
+ | :* Comando ''subplot'' | ||
+ | :* Comando ''close all'' para fechar todas figuras | ||
+ | |||
+ | * Números aleatórios | ||
+ | :* Comando ''randi'' para valores inteiros uniformemente distribuídos | ||
+ | :* Comando ''rand'' para valores uniformemente distribuídos | ||
+ | :* Comando ''randn'' para valores normalmente distribuídos | ||
+ | :* Comando ''hist'' e ''histogram'' para cálculo/visualização do histograma | ||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-4|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 5 - Endereçamento e concatenação de vetores e matrizes; Repmat e Reshape === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 25/Set}} | ||
+ | |||
+ | * Endereçamento de vetores e matrizes | ||
+ | :* Indexação de um elemento | ||
+ | ::* Índice | ||
+ | ::* Subscrito | ||
+ | :* Submatrizes | ||
+ | ::* Índice | ||
+ | ::* Subscrito | ||
+ | :* Palavra-chave ''end'' | ||
+ | :* Indexação/submatrizes do lado esquerdo vs do lado direito | ||
+ | :* Exclusão de linha ou coluna | ||
+ | |||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-5|Códigos executados na aula]] | ||
+ | |||
+ | |||
+ | * '''Exercícios:''' | ||
+ | |||
+ | :1. Crie uma matriz '''A''' de tamanho 15 x 15 de inteiros. | ||
+ | ::a) Extraia o elemento da segunda linha e quarta coluna de '''A''', armazenando na variável ''u'' | ||
+ | ::b) Crie um vetor '''v''' formado pelos elementos da segunda coluna de '''A''' | ||
+ | ::c) Crie um vetor '''w''' formado pelos elementos da última linha de '''A''' | ||
+ | ::d) Crie uma matriz '''B''' formada pelos elementos da segunda até a décima coluna de '''A''' | ||
+ | ::e) Crie uma matriz '''C''' formada pelos elementos da quinta até a penúltima linha de '''A''' | ||
+ | ::f) Crie uma matriz '''D''' formada pelos elementos da sétima até a penúltima linha e das 3 últimas colunas de '''A''' | ||
+ | ::g) Crie uma matriz '''E''' formada pelas linhas pares e colunas múltiplas de 3 de '''A''' | ||
+ | ::h) Crie uma matriz '''F''' formada pelas linhas 1 a 7 e mais a 13 e pelas colunas 4, 5 e 1 de '''A''' | ||
+ | |||
+ | :2. Assuma que a matriz '''C''' seja definida como abaixo e determine o conteúdo das seguintes submatrizes. Descubra a saída dos comandos antes de executá-los. | ||
+ | |||
+ | :::<math> | ||
+ | C = \begin{bmatrix} | ||
+ | 1{,}1 & -3{,}2 & 3{,}4 & 0{,}6 \\ | ||
+ | 0{,}6 & 1{,}1 & -0{,}6 & 3{,}1 \\ | ||
+ | 1{,}3 & 0{,}6 & 5{,}5 & 0{,}0 | ||
+ | \end{bmatrix} | ||
+ | </math> | ||
+ | |||
+ | ::a) C(2, :) | ||
+ | ::b) C(:, end) | ||
+ | ::c) C(1:2, 2:end) | ||
+ | ::d) C(6) | ||
+ | ::e) C(4:end) | ||
+ | ::f) C(1:2, 2:4) | ||
+ | ::g) C([1 3], 2) | ||
+ | ::h) C([2 2], [3 3]) | ||
+ | |||
+ | :3. Determine a saída no ''command window'' após a execução dos comandos abaixo. Descubra a saída dos comandos antes de executá-los. | ||
+ | |||
+ | ::: A = [1 2 3; 4 5 6; 7 8 9] | ||
+ | ::: A([3 1], :) = A([1 3], :) | ||
+ | ::: A([1 3], :) = A([2 2], :) | ||
+ | ::: A = A(:, [2 2]) | ||
+ | |||
+ | :4. Determine o conteúdo da matriz '''A''' após a execução das seguintes declarações. Descubra a saída dos comandos antes de executá-los. | ||
+ | |||
+ | ::a) A = eye(3,3); | ||
+ | ::: b = [1 2 3]; | ||
+ | ::: A(2, :) = b; | ||
+ | |||
+ | ::b) A = eye(3,3); | ||
+ | ::: b = [4 5 6]; | ||
+ | ::: A(:, 3) = b'; | ||
+ | |||
+ | ::c) A = eye(3,3); | ||
+ | ::: b = [7 8 9]; | ||
+ | ::: A(3, :) = b([3 1 2]); | ||
+ | |||
+ | |||
+ | * Concatenação de vetores e matrizes | ||
+ | * Comandos ''repmat'', ''reshape'', ''fliplr'' e ''flipud'' | ||
+ | |||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-5|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 6 - Conjuntos; Polinômios; Texto; Entrada e saída de dados === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 27/Set}} | ||
+ | |||
+ | * 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-2/Aula-6|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 7 - Aula de exercícios === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 02/Out}} | ||
+ | |||
+ | * '''Exercícios''': | ||
+ | |||
+ | :1. 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. | ||
+ | |||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! ''' ''' | ||
+ | ! '''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 recebeu 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? | ||
+ | |||
+ | :2. A aproximação de Bhaskara I para a função seno '''em graus''' é dada por: | ||
+ | |||
+ | :::<math> | ||
+ | \sin(x^{\circ}) \approx \frac{4 x (180 - x)}{40500 - x (180 - x)} ~~~ \text{para } 0 \leq x \leq 180 | ||
+ | </math> | ||
+ | |||
+ | ::Crie uma figura contendo 3 plots: | ||
+ | ::* A função seno original | ||
+ | ::* A aproximação de Bhaskara I | ||
+ | ::* O erro da aproximação | ||
+ | |||
+ | :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>h(t) = \frac{1}{2} g t^2 + v_0 t + h_0</math> | ||
+ | :::<math>\displaystyle{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, 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. | ||
+ | |||
+ | :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. | ||
+ | :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://guangchuangyu.github.io/blog_images/2011/08/X.png link]). | ||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-7|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 8 - Variáveis lógicas; Operadores relacionais e lógicos === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 04/Out}} | ||
+ | |||
+ | * Variáveis lógicas (''booleanas''): | ||
+ | :* Comando ''logical'' | ||
+ | |||
+ | * Endereçamento lógico de vetores e matrizes | ||
+ | |||
+ | |||
+ | * Operadores: | ||
+ | |||
+ | :* Operadores relacionais: | ||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! '''Operador''' | ||
+ | ! '''Significado''' | ||
+ | |- | ||
+ | | < || Menor que | ||
+ | |- | ||
+ | | <= || Menor ou igual a | ||
+ | |- | ||
+ | | > || Maior que | ||
+ | |- | ||
+ | | >= || Maior ou igual a | ||
+ | |- | ||
+ | | == || Igual a | ||
+ | |- | ||
+ | | ~= || Não é igual a | ||
+ | |} | ||
+ | |||
+ | :* Operadores lógicos: | ||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! '''Operador''' | ||
+ | ! '''Nome''' | ||
+ | |- | ||
+ | | & || AND | ||
+ | |- | ||
+ | | ǀ || OR | ||
+ | |- | ||
+ | | ~ || NOT | ||
+ | |- | ||
+ | | xor(a,b) || XOR | ||
+ | |} | ||
+ | |||
+ | :* Comparação de vetores ou matrizes: | ||
+ | ::* Comando ''isequal'' | ||
+ | |||
+ | :* Comparação de ''strings'': | ||
+ | ::* Comandos ''strcmp'' e ''strcmpi'' | ||
+ | |||
+ | |||
+ | * Comando ''find'' | ||
+ | |||
+ | |||
+ | * '''Exercícios''': | ||
+ | |||
+ | :1. Sejam ''x = [1 7 5 3 8 2]'' e ''y = [1 8 2 3 9 1]''. Encontre os resultados dos seguintes comandos '''antes''' de executá-los: | ||
+ | ::a) ''z = x < 6'' | ||
+ | ::b) ''z = x <= y'' | ||
+ | ::c) ''z = x == y'' | ||
+ | ::d) ''z = x ~= y'' | ||
+ | |||
+ | :2. A tabela abaixo mostra as temperaturas diárias (em Celsius) em três cidades diferentes. | ||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! '''Cidade \ Temperatura''' | ||
+ | ! '''Dia 1''' | ||
+ | ! '''Dia 2''' | ||
+ | ! '''Dia 3''' | ||
+ | ! '''Dia 4''' | ||
+ | ! '''Dia 5''' | ||
+ | ! '''Dia 6''' | ||
+ | ! '''Dia 7''' | ||
+ | |- | ||
+ | | Palhoça || 10 || 13 || 6 || 5 || -1 || 10 || 4 | ||
+ | |- | ||
+ | | São José || 19 || 13 || 3 || 5 || 1 || 22 || 14 | ||
+ | |- | ||
+ | | Biguaçu || 30 || 2 || 3 || -1 || 10 || -2 || 40 | ||
+ | |} | ||
+ | |||
+ | :Determine em quais dias: | ||
+ | ::a) A temperatura na Palhoça é maior que 8 °C. | ||
+ | ::b) A temperatura em São José se encontra entre 1 °C e 15 °C (incluindo ambos os extremos). | ||
+ | ::c) Fez mais frio na Palhoça que em São José. | ||
+ | ::d) Biguaçu foi a cidade mais quente de todas. | ||
+ | |||
+ | :3. A altura e a velocidade de um projétil lançado com uma velocidade <math>v_0</math> e um ângulo com a horizontal <math>a</math> são dadas, em funcão do tempo ''t'', por | ||
+ | :::<math>h(t) = v_0 \, t \, \mathrm{sen}(a) + \frac{1}{2} \, g \, t^2,</math> | ||
+ | :::<math>v(t) = \sqrt{v_0^2 + 2 \, v_0 \, g \, t \, \mathrm{sen}(a) + g^2 \, t^2},</math> | ||
+ | :respectivamente, em que ''g'' é a aceleração da gravidade. O projétil atinge o solo quando <math>h(t) = 0</math>, o que ocorre no tempo <math>t_\mathrm{hit} = -2 (v_0 / g) \mathrm{sen}(a)</math>. Suponha que <math>a = 30</math>°, <math>v_0 = 40</math> m/s e <math>g = -9{,}81</math> m/s². | ||
+ | ::a) Plote os gráficos da altura e da velocidade do projétil, de <math>t = 0</math> até <math>t = t_\mathrm{hit}</math>. | ||
+ | ::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. | ||
+ | ::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-2/Aula-8|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 9 - Controle de fluxo de dados - ''if'' e ''switch'' === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 09/Out}} | ||
+ | |||
+ | * Controle de fluxo de dados: | ||
+ | |||
+ | :* As sentenças ''if'', ''else'' e ''elseif'' | ||
+ | |||
+ | |||
+ | * '''Exercícios''': | ||
+ | |||
+ | :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''). | ||
+ | ::* 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. | ||
+ | |||
+ | :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'' | ||
+ | :* Um único valor | ||
+ | :* Múltiplos valores | ||
+ | |||
+ | |||
+ | * '''Exercício''': | ||
+ | |||
+ | :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-2/Aula-9|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 10 - Structs; Cells === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 11/Out}} | ||
+ | |||
+ | * 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 | ||
+ | |||
+ | |||
+ | * '''Exercícios:''' | ||
+ | |||
+ | :1. Crie um arranjo de estruturas que contenha os os seguintes campos de informação concernentes a pontes rodoviárias em uma cidade: localização da ponte, carga máxima (toneladas), ano de construção, ano agendado para a manutenção. | ||
+ | |||
+ | ::a) Insira os dados abaixo na estrutura: | ||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! style="font-weight: bold;" | Localização | ||
+ | ! style="font-weight: bold;" | Carga máxima | ||
+ | ! style="font-weight: bold;" | Ano de construção | ||
+ | ! style="font-weight: bold;" | Agendamento para a manutenção | ||
+ | |- | ||
+ | | Smith St. | ||
+ | | 80 | ||
+ | | 1928 | ||
+ | | 2011 | ||
+ | |- | ||
+ | | Hope Ave. | ||
+ | | 90 | ||
+ | | 1950 | ||
+ | | 2013 | ||
+ | |- | ||
+ | | Clark St. | ||
+ | | 85 | ||
+ | | 1933 | ||
+ | | 2012 | ||
+ | |- | ||
+ | | North Rd. | ||
+ | | 100 | ||
+ | | 1960 | ||
+ | | 2012 | ||
+ | |} | ||
+ | |||
+ | ::b) Edite o arranjo de estruturas para mudar de 2012 para 2018 o ano agendado para a manutenção da ponte Clark St. | ||
+ | |||
+ | ::c) Adicione a seguinte ponte ao arranjo de estruturas: | ||
+ | |||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! style="font-weight: bold;" | Localização | ||
+ | ! style="font-weight: bold;" | Carga máxima | ||
+ | ! style="font-weight: bold;" | Ano de construção | ||
+ | ! style="font-weight: bold;" | Agendamento para a manutenção | ||
+ | |- | ||
+ | | Shore Rd. | ||
+ | | 85 | ||
+ | | 1997 | ||
+ | | 2014 | ||
+ | |} | ||
+ | |||
+ | :2. Crie uma estrutura que contenha todas as informações necessárias para construir um diagrama de um conjunto de dados. No mínimo, a estrutura deve conter os seguintes campos: | ||
+ | |||
+ | ::* '''x_data''': dado referente ao eixo "x" | ||
+ | ::* '''y_data''': dado referente ao eixo "y" | ||
+ | ::* '''title''': título do diagrama | ||
+ | ::* '''x_label''': rótulo do eixo "x" | ||
+ | ::* '''y_label''': rótulo do eixo "y" | ||
+ | ::* '''x_range''': faixa de valores exibidos no eixo "x" | ||
+ | ::* '''y_range''': faixa de valores exibidos no eixo "y" | ||
+ | |||
+ | :: Você pode adicionar outros campos que aumentem seu controle sobre o diagrama final. | ||
+ | |||
+ | :: Depois de criar essa estrutura, escreva um programa no MATLAB que use a estrutura para gerar um gráfico. O programa deve aplicar características iniciais inteligentes se alguns campos de dados estiverem faltando. | ||
+ | |||
+ | |||
+ | * Arranjo de células: texto e números | ||
+ | :* Comando ''celldisp'' e ''cellplot'' | ||
+ | |||
+ | |||
+ | * '''Exercícios''': | ||
+ | |||
+ | :1. Repita os exercícios anteriores de estruturas usando células | ||
+ | |||
+ | |||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-10|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 11 - Estruturas de repetição - ''for'' e ''while'' === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 16/Out}} | ||
+ | |||
+ | * Estruturas de repetição: | ||
+ | :* Laços ''for'' | ||
+ | :* Laços ''while'' | ||
+ | :* Sentenças ''break'' e ''continue'' | ||
+ | |||
+ | |||
+ | * '''Exercícios:''' | ||
+ | |||
+ | :1. Acrescente à calculadora a possibilidade de continuar realizando cálculos até que o usuário solicite a saída digitando 's'. | ||
+ | |||
+ | :2. Escreva um programa que calcule o fatorial de um número, utilizando ''for'' e ''while''. | ||
+ | |||
+ | :3. Escreva um programa que calcule os ''n'' primeiros termos da sequência de Fibonacci, dispondo-os num vetor. | ||
+ | |||
+ | :4. Considere os códigos abaixo: | ||
+ | |||
+ | :::{| class="wikitable" | ||
+ | ! style="font-weight: bold;" | Símbolo | ||
+ | ! style="font-weight: bold;" | A | ||
+ | ! style="font-weight: bold;" | B | ||
+ | ! style="font-weight: bold;" | C | ||
+ | ! style="font-weight: bold;" | D | ||
+ | ! style="font-weight: bold;" | E | ||
+ | ! style="font-weight: bold;" | F | ||
+ | |- | ||
+ | | style="font-weight: bold;" | Código 1 | ||
+ | | 000 | ||
+ | | 001 | ||
+ | | 010 | ||
+ | | 011 | ||
+ | | 100 | ||
+ | | 101 | ||
+ | |- | ||
+ | | style="font-weight: bold;" | Código 2 | ||
+ | | 00 | ||
+ | | 10 | ||
+ | | 11 | ||
+ | | 010 | ||
+ | | 0110 | ||
+ | | 0111 | ||
+ | |} | ||
+ | |||
+ | ::a) Escreva um programa que codifique uma sequência de símbolos, gerando a sequência de bits correspondente. Seu programa deverá funcionar tanto para o código 1 quanto para o código 2. Teste seu programa com a seguinte ''string'': F A D A B A B A C A. | ||
+ | |||
+ | ::b) Escreva um programa que decodifique uma ''string'' recuperando a sequência de símbolos original. Teste seu programa com a seguinte sequência de bits: | ||
+ | |||
+ | ::: '''Código 1''': 001000001000101100011100 | ||
+ | ::: '''Código 2''': 10001000011101100100110 | ||
+ | |||
+ | ::c) Junte os dois códigos anteriores num único programa, onde o usuário seleciona a operação (codificação ou decodificação), o código (1 ou 2), e entra com o dado a ser operado. | ||
+ | |||
+ | :5. Escreva um programa que implementa o jogo [https://www.youtube.com/watch?v=8nOQ8mcOTLY Genius®]. O programa deverá gerar uma sequência aleatória de letras e/ou números e exibir um por um na tela, limpando-a em seguida. Após isso, aguardará o usuário entrar com a sequência. | ||
+ | |||
+ | :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 | ||
+ | :::::<math>f(x) = | ||
+ | \begin{cases} | ||
+ | -1, & -\pi \leq x \leq 0 \\ | ||
+ | 1, & 0 \leq x \leq \pi | ||
+ | \end{cases}</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 um número de termos definido pelo usuário. | ||
+ | |||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-11|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 12 - Funções; Exercícios === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 18/Out}} | ||
+ | |||
+ | * Funções definidas pelo usuário | ||
+ | :* Único retorno | ||
+ | :* Múltiplos retornos | ||
+ | :* Comando ''return'' | ||
+ | |||
+ | |||
+ | *'''Exercícios:''' | ||
+ | |||
+ | :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. | ||
+ | |||
+ | :3. 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%. | ||
+ | |||
+ | :4. Fazer o ''plot'' de um sinal de tensão versus tempo, como da figura, usando os conceitos da aula de hoje. | ||
+ | :::::<math>f(t) = | ||
+ | \begin{cases} | ||
+ | \sin(2 \pi t / 63), & \text{de } t = 1s \text{ ate } t = 63s \\ | ||
+ | 0, & \text{de } t = 64s \text{ ate } t = 80s \\ | ||
+ | 1, & \text{de } t = 81s \text{ ate } t = 100s \\ | ||
+ | -1, & \text{de } t = 101s \text{ ate } t = 120s | ||
+ | \end{cases}</math> | ||
+ | :: Não esquecer de nomear os eixos. | ||
+ | [[Image:Exercícios Aula 3 FIC Matlab.jpg|400px|center]] | ||
+ | |||
+ | :5. Escreva uma função que implementa a [https://pt.wikipedia.org/wiki/Cifra_de_C%C3%A9sar Cifra de César]. A entrada da função deve ser: | ||
+ | ::* O ''string'' a ser codificado/decodificado; | ||
+ | ::* O deslocamento a ser aplicado em cada letra do ''string'', podendo ser um inteiro positivo (deslocamento para a direita) ou negativo (deslocamento para a esquerda). | ||
+ | |||
+ | :6. Escreva uma função que retorna todos os números primos menores ou iguais a um dado inteiro ''n''. Utilize o algoritmo do [https://pt.wikipedia.org/wiki/Crivo_de_Erat%C3%B3stenes Crivo de Erastótenes]. | ||
+ | |||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-12|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 13 - Processamento de imagens === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 23/Out}} | ||
+ | |||
+ | <!--'''Pro futuro:''' Usar ''im2double''!--> | ||
+ | |||
+ | [[Curso Matlab aplicado ao processamento de imagens - Aula 3]] | ||
+ | |||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-13|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 14 - Importação de dados; Gráficos em 2D e 3D === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 25/Out}} | ||
+ | |||
+ | * 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''' | ||
+ | |||
+ | :* Revisão: Comandos ''plot'', ''stem'', ''bars'' e ''stairs'' | ||
+ | |||
+ | :* Comandos ''semilogx'', ''semilogy'' e ''loglog'' | ||
+ | |||
+ | ::* Exemplo: Resposta em frequência de um [https://en.wikipedia.org/wiki/Low-pass_filter filtro passa-baixa] de segunda ordem: | ||
+ | |||
+ | :::<math>H(\omega) = \dfrac{1}{\sqrt{1 + \omega^2}}</math> | ||
+ | |||
+ | :* Comando ''polar'' | ||
+ | |||
+ | ::* Exemplo: [https://pt.wikipedia.org/wiki/Rosa_polar Rosas polares]: | ||
+ | ::: <math>\rho = \mathrm{cos}(k \theta)</math>, onde ''k'' é um parâmetro. | ||
+ | |||
+ | ::* Números complexos e funções ''abs'' e ''angle'' | ||
+ | |||
+ | :* Comando ''plotyy'' para plotar gráficos com dois eixos em '''y'''. | ||
+ | |||
+ | :* Letras gregas nos gráficos: | ||
+ | :::{| class="wikitable" | ||
+ | ! '''Letra''' | ||
+ | ! '''Representação''' | ||
+ | |- | ||
+ | | <math> \alpha </math> || \alpha | ||
+ | |- | ||
+ | | <math> \beta </math> || \beta | ||
+ | |- | ||
+ | | <math> \gamma </math> || \gamma | ||
+ | |- | ||
+ | | <math> \delta </math> || \delta | ||
+ | |- | ||
+ | | <math> \epsilon </math> || \epsilon | ||
+ | |- | ||
+ | | <math> \kappa </math> || \kappa | ||
+ | |- | ||
+ | | <math> \lambda </math> || \lambda | ||
+ | |- | ||
+ | | <math> \mu </math> || \mu | ||
+ | |- | ||
+ | | <math> \nu </math> || \nu | ||
+ | |- | ||
+ | | <math> \omega </math> || \omega | ||
+ | |- | ||
+ | | <math> \phi </math> || \phi | ||
+ | |- | ||
+ | | <math> \pi </math> || \pi | ||
+ | |- | ||
+ | | <math> \chi </math> || \chi | ||
+ | |- | ||
+ | | <math> \psi </math> || \psi | ||
+ | |- | ||
+ | | <math> \rho </math> || \rho | ||
+ | |- | ||
+ | | <math> \sigma </math> || \sigma | ||
+ | |- | ||
+ | | <math> \tau </math> || \tau | ||
+ | |- | ||
+ | | <math> \upsilon </math> || \upsilon | ||
+ | |- | ||
+ | | <math> \Sigma </math> || \Sigma | ||
+ | |- | ||
+ | | <math> \Pi </math> || \Pi | ||
+ | |- | ||
+ | | <math> \Lambda </math> || \Lambda | ||
+ | |- | ||
+ | | <math> \Omega </math> || \Omega | ||
+ | |- | ||
+ | | <math> \Gamma </math> || \Gamma | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | <!-- | ||
+ | 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>. | ||
+ | --> | ||
+ | |||
+ | * '''Exercícios''': | ||
+ | |||
+ | :1. Plote '''em vermelho''' a função polar | ||
+ | :::<math>\rho = \dfrac{\mathrm{sen}(\theta) \sqrt{|\cos(\theta)|}} {\mathrm{sen}(\theta) + 7/5} - 2 \mathrm{sen}(\theta) + 2</math>, de <math>-\pi \leq \theta \leq \pi</math>. | ||
+ | |||
+ | :2. Plote o gráfico da função <math>\sqrt{x}</math> utilizando todos os quatro tipos de combinações de eixos (linear/logarítmico). | ||
+ | |||
+ | :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>\displaystyle{x(t) = 1000 e^{-0,5t} \mathrm{sen}(3t+2)}</math> | ||
+ | ::: <math>\displaystyle{y(t) = 7 e^{-0,4t} \cos(5t-3)}</math> | ||
+ | |||
+ | |||
+ | * '''Gráficos em 3D''' | ||
+ | |||
+ | :* Gráficos de linha em 3D | ||
+ | ::* Comando ''plot3'' | ||
+ | |||
+ | :::* Exemplo: Equações paramétricas para uma [https://pt.wikipedia.org/wiki/H%C3%A9lice_(geometria) hélice circular]: | ||
+ | ::::: <math>x = a \cos(t)</math> | ||
+ | ::::: <math>y = a \sin(t)</math> | ||
+ | ::::: <math>z = b t </math> | ||
+ | |||
+ | ::* Comando ''view'' | ||
+ | ::* Rótulo no eixo z: ''zlabel'' | ||
+ | |||
+ | :* Gráficos de superfície | ||
+ | ::* Comando ''meshgrid'' para criar uma malha 3D | ||
+ | ::* Comando ''surf'' para plot de função de ''f(x,y)'' | ||
+ | :::* Comando ''shading'', com parâmetros ''flat'', ''faceted'' e ''interp'' | ||
+ | :::* Comando alternativo ''mesh'' | ||
+ | |||
+ | :::* Exemplo: Símbolo da Itapema FM incompleto: | ||
+ | ::::: [X,Y] = meshgrid(-20:0.5:20); | ||
+ | ::::: R = sqrt(X.^2 + Y.^2) + eps; | ||
+ | ::::: Z = sin(R)./R; | ||
+ | ::::: surf(X,Y,Z) | ||
+ | |||
+ | :* Curva de níveis: | ||
+ | |||
+ | ::* Comandos ''contour'', ''surfc'' e ''meshc'' | ||
+ | |||
+ | |||
+ | [[Arquivo:FIC_Matlab_Exercicios_plot.pdf|Exercícios]] | ||
+ | |||
+ | * [[FIC_MATLAB_2018-2/Aula-14|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 15 - Solução de sistemas de equações; Toolbox simbólico === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 30/Out}} | ||
+ | |||
+ | * 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 ''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-2/Aula-15|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 16 - Interface gráfica === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 01/Nov}} | ||
+ | |||
+ | [[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) | ||
+ | |||
+ | % 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}} | ||
+ | |||
+ | [[FIC_MATLAB_2018-2/Aula-16|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 17 - Projeto === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 06/Nov}} | ||
+ | |||
+ | Aula dedicada ao projeto. | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 18 - Projeto === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 08/Nov}} | ||
+ | |||
+ | Aula dedicada ao projeto. | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 19 - Projeto === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 13/Nov}} | ||
+ | |||
+ | Aula dedicada ao projeto. | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === 20 - Projeto === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 15/Nov}} | ||
+ | |||
+ | Aula dedicada ao projeto. | ||
{{collapse bottom}} | {{collapse bottom}} |
Edição das 17h15min de 18 de setembro de 2018
Informações Básicas
- Código: MLB16470
- Professores: Diego da Silva de Medeiros e Roberto Wanderley da Nóbrega
- Início: 11/Set/2017
- Término: 20/Nov/2017
- Horário: Terças e quintas, 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
Conteúdos Abordados
1 - Apresentação da disciplina; Interface do MATLAB; Operadores; Funções; Constantes especiais; Formatos de exibição
11/Set - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Observações:
|
2 - Vetores e matrizes
13/Set |
---|
|
3 - Operações com matrizes; Plots
18/Set | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
4 - Exercícios plot; Números aleatórios
20/Set |
---|
|
5 - Endereçamento e concatenação de vetores e matrizes; Repmat e Reshape
25/Set |
---|
|
6 - Conjuntos; Polinômios; Texto; Entrada e saída de dados
27/Set |
---|
|
7 - Aula de exercícios
02/Out | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
8 - Variáveis lógicas; Operadores relacionais e lógicos
04/Out | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
9 - Controle de fluxo de dados - if e switch
09/Out |
---|
|
10 - Structs; Cells
11/Out | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
11 - Estruturas de repetição - for e while
16/Out | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
12 - Funções; Exercícios
18/Out |
---|
|
13 - Processamento de imagens
14 - Importação de dados; Gráficos em 2D e 3D
25/Out | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
15 - Solução de sistemas de equações; Toolbox simbólico
30/Out |
---|
|
16 - Interface gráfica
01/Nov | ||
---|---|---|
|
17 - Projeto
06/Nov |
---|
Aula dedicada ao projeto. |
18 - Projeto
08/Nov |
---|
Aula dedicada ao projeto. |
19 - Projeto
13/Nov |
---|
Aula dedicada ao projeto. |
20 - Projeto
15/Nov |
---|
Aula dedicada ao projeto. |
Vetores e matrizes
13/Set |
---|
|
Operações com matrizes; Plots
18/Set | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Números aleatórios; Endereçamento de vetores e matrizes
20/Set |
---|
|
Aula de exercícios
25/Set | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Concatenação de matrizes; Polinômios; Conjuntos; Texto; Entrada e saída de dados
27/Set |
---|
|
Variáveis lógicas; Operadores; Controle de fluxo de dados - if
02/Out | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Controle de fluxo de dados - switch; Structs; Cells
04/Out | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Estruturas de repetição - for e while
09/Out | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Funções; Importação de dados; Solução de sistemas de equações
11/Out |
---|
|
Processamento de imagens
16/Out |
---|
Pro futuro: Usar im2double! |
Gráficos em 2D e 3D
18/Out | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Toolbox simbólico
23/Out |
---|
Básico
Cálculo
Solução de equações
|
Interface gráfica
25/Out | ||
---|---|---|
|
Projeto
30/Out |
---|
Aula dedicada ao projeto. |
Projeto
01/Nov |
---|
Aula dedicada ao projeto. |
Projeto
06/Nov |
---|
Aula dedicada ao projeto. |
Próximos episódios |
---|
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