Mudanças entre as edições de "FIC MATLAB 2017-2"
(→Aula 1) |
|||
(134 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
== Informações Básicas == | == Informações Básicas == | ||
+ | |||
+ | :'''Código:''' MLB16470 | ||
:'''Professores:''' [[Diego da Silva de Medeiros]] e [[Roberto Wanderley da Nóbrega]] | :'''Professores:''' [[Diego da Silva de Medeiros]] e [[Roberto Wanderley da Nóbrega]] | ||
Linha 17: | Linha 19: | ||
=== Aula 1 === | === Aula 1 === | ||
− | {{collapse top| bg=lightblue | 05/Set - Apresentação da disciplina | + | {{collapse top| bg=lightblue | 05/Set - Apresentação da disciplina; Interface do MATLAB; Operadores; Funções; Constantes especiais}} |
* MATLAB e Octave; | * MATLAB e Octave; | ||
Linha 24: | Linha 26: | ||
:* ''Command Window''; | :* ''Command Window''; | ||
:* ''Workspace''; | :* ''Workspace''; | ||
+ | ::* Comando ''whos''; | ||
:* ''Current Folder''; | :* ''Current Folder''; | ||
:* ''Command History''; | :* ''Command History''; | ||
Linha 31: | Linha 34: | ||
* Operadores: | * Operadores: | ||
− | ::{| | + | :::{| class="wikitable" |
− | |||
! '''Operação''' | ! '''Operação''' | ||
− | ! ''' | + | ! '''Notação matemática''' |
+ | ! '''Sintaxe no MATLAB''' | ||
|- | |- | ||
− | | | + | | Adição || <math> a+b </math> || a+b |
|- | |- | ||
− | | | + | | Subtração || <math> a-b </math> || a-b |
|- | |- | ||
− | | | + | | Multiplicação || <math> ab </math> || a*b |
|- | |- | ||
− | + | | Divisão à direita || <math> \frac{a}{b} </math> || a/b | |
|- | |- | ||
− | + | | Divisão à esquerda || <math> \frac{b}{a} </math> || a\b | |
|- | |- | ||
− | | | + | | Exponenciação: || <math> a^b </math> || a^b |
|} | |} | ||
* Funções Matemáticas | * Funções Matemáticas | ||
− | ::{| | + | :::{| class="wikitable" |
! '''Função''' | ! '''Função''' | ||
− | ! '''Sintaxe no | + | ! '''Sintaxe no MATLAB''' |
|- | |- | ||
| <math> e^x </math> || exp(x) | | <math> e^x </math> || exp(x) | ||
Linha 59: | Linha 62: | ||
| <math>\sqrt{x}</math> || sqrt(x) | | <math>\sqrt{x}</math> || sqrt(x) | ||
|- | |- | ||
− | | | + | | <math>|x|</math> || abs(x) |
+ | |- | ||
+ | | <math>\ln(x)</math> || log(x) | ||
+ | |- | ||
+ | | <math>\log_{10}(x)</math> || log10(x) | ||
+ | |- | ||
+ | | <math>\log_{2}(x) </math> || log2(x) | ||
+ | |- | ||
+ | | <math>\cos(x)</math> || cos(x) | ||
|- | |- | ||
− | | <math>\ | + | | <math>\mathrm{sen}(x)</math> || sin(x) |
|- | |- | ||
− | | <math>\ | + | | <math>\mathrm{tg}(x)</math> || tan(x) |
|- | |- | ||
− | | | + | | <math>\cos^{-1}(x)</math> || acos(x) |
|- | |- | ||
− | | | + | | <math>\mathrm{sen}^{-1}(x)</math> || asin(x) |
|- | |- | ||
− | | | + | | <math>\mathrm{tg}^{-1}(x)</math> || atan(x) |
|- | |- | ||
− | | | + | | <math>\lfloor x \rfloor</math> (maior inteiro <math>\leq x</math>) || floor(x) |
|- | |- | ||
− | | | + | | <math>\lceil x \rceil</math> (menor inteiro <math>\geq x</math>) || ceil(x) |
|- | |- | ||
− | | | + | | <math>\mathrm{round}(x)</math> (arredondamento para o inteiro maior próximo) || round(x) |
+ | |- | ||
+ | | <math>\mathrm{sign}(x)</math> (sinal de <math>x</math>) || sign(x) | ||
|} | |} | ||
− | + | Observações: | |
+ | :* Utilizando ''d'' após as funções ''sin'', ''cos'' e ''tan'' e suas inversas, faz o cálculo em graus; | ||
+ | :* Utilizando ''h'' após as funções ''sin'', ''cos'' e ''tan'' e suas inversas, tem-se suas versões hiperbólicas; | ||
− | * | + | |
+ | * '''Exercício:''' | ||
::1. Supondo <math>x = 11,6</math> e <math>y = -17</math>, calcule: | ::1. Supondo <math>x = 11,6</math> e <math>y = -17</math>, calcule: | ||
Linha 90: | Linha 106: | ||
:::<math>d = 5{,}2 \cos^2 \left( \frac{x + y}{e^{\frac{x}{y}} \log_{10}(\pi)} \right)</math> | :::<math>d = 5{,}2 \cos^2 \left( \frac{x + y}{e^{\frac{x}{y}} \log_{10}(\pi)} \right)</math> | ||
+ | |||
* Ajudas: | * Ajudas: | ||
− | :* ''help'', ''doc'' e ''lookfor'' | + | :* Comandos ''help'', ''doc'' e ''lookfor''; |
* Utilizando ''scripts'' (arquivo .m); | * Utilizando ''scripts'' (arquivo .m); | ||
Linha 102: | Linha 119: | ||
* Variáveis e constantes especiais: | * Variáveis e constantes especiais: | ||
− | ::{| | + | :::{| class="wikitable" |
! '''Comandos''' | ! '''Comandos''' | ||
! '''Descrições''' | ! '''Descrições''' | ||
Linha 119: | Linha 136: | ||
|} | |} | ||
− | * | + | * [[FIC_MATLAB_2017-2/Aula-1|Códigos executados na aula]] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 2 === | === Aula 2 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 12/Set - Formatos de exibição; Vetores e matrizes}} |
− | * Formatos de exibição | + | * Formatos de exibição: |
− | {| | + | |
+ | :::{| class="wikitable" | ||
! '''Comando''' | ! '''Comando''' | ||
! '''Descrição e exemplo''' | ! '''Descrição e exemplo''' | ||
Linha 174: | Linha 169: | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * 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''. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ''' | + | * Definições de matrizes ''eye'', ''zeros'' e ''ones''; |
+ | :* Usando ''length'' e ''size'' na criação de matrizes; | ||
− | * | + | * Matriz transposta ( .' ) e matriz Hermitiana ('); |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * [[FIC_MATLAB_2017- | + | * [[FIC_MATLAB_2017-2/Aula-2|Códigos executados na aula]] |
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 3 === | === Aula 3 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 14/Set - Operações com matrizes; Plots}} |
− | * | + | |
− | :* Comandos ''plot'', ''stem'' e '' | + | * Operações; |
− | :* Comando ''hold | + | :* Soma e diferença; |
− | :* Comando ''grid | + | :* 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) | ||
+ | |||
+ | |||
+ | * 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'' | :* Nomes aos eixos com ''xlabel'' e ''ylabel'' | ||
:* Comando ''title'' | :* Comando ''title'' | ||
− | :* | + | :* Comandos ''axis'', ''xlim'' e ''ylim'' para ajuste de eixos |
− | |||
− | |||
− | |||
− | |||
:* Comando ''legend'' | :* Comando ''legend'' | ||
− | |||
− | |||
− | * Especificadores de linha, cores e marcadores: | + | :* Especificadores de linha, cores e marcadores: |
− | {| | + | :::{| class="wikitable" |
! '''Tipo de linha''' | ! '''Tipo de linha''' | ||
! '''Símbolo''' | ! '''Símbolo''' | ||
Linha 275: | Linha 301: | ||
|} | |} | ||
− | {| | + | :::{| class="wikitable" |
! '''Cores''' | ! '''Cores''' | ||
! '''Símbolo''' | ! '''Símbolo''' | ||
Linha 296: | Linha 322: | ||
|} | |} | ||
− | {| | + | :::{| class="wikitable" |
! '''Marcadores de dados''' | ! '''Marcadores de dados''' | ||
! '''Símbolo''' | ! '''Símbolo''' | ||
Linha 327: | Linha 353: | ||
|} | |} | ||
− | * Exercícios | + | |
− | : | + | * '''Exercícios''' |
− | : | + | |
− | + | :1. Faça o plot de algumas das funções matemáticas vistas na aula 1. Use cores, ''hold on'', etc | |
− | + | ||
− | + | :2. Plotar a função <math>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. | |
− | :: | + | |
− | :: | + | :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. |
− | :: | + | |
− | + | :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>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. | ||
+ | |||
+ | :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. | :: Não esquecer de nomear os eixos. | ||
[[Image:Exercícios Aula 3 FIC Matlab.jpg|600px|center]] | [[Image:Exercícios Aula 3 FIC Matlab.jpg|600px|center]] | ||
+ | |||
+ | |||
+ | * [[FIC_MATLAB_2017-2/Aula-3|Códigos executados na aula]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 4 === | ||
+ | |||
+ | {{collapse top| bg=lightblue | 19/Set - Números aleatórios; Endereçamento de vetores e matrizes}} | ||
+ | |||
+ | * 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 | ||
* Endereçamento de vetores e matrizes | * Endereçamento de vetores e matrizes | ||
Linha 349: | Linha 416: | ||
::* Índice | ::* Índice | ||
::* Subscrito | ::* Subscrito | ||
+ | :* Palavra-chave ''end'' | ||
:* 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 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | * [[ | + | * '''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]); | ||
− | |||
− | [[ | + | * [[FIC_MATLAB_2017-2/Aula-4|Códigos executados na aula]] |
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 5 === | === Aula 5 === | ||
− | |||
− | + | {{collapse top| bg=lightblue | 21/Set - Aula de exercícios}} | |
− | + | ||
− | * | + | * '''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 1''' | ||
Linha 400: | Linha 503: | ||
− | :Utilize o MATLAB para responder essas questões: | + | ::Utilize o MATLAB para responder essas questões: |
− | ::a) Quanto cada trabalhador | + | :::a) Quanto cada trabalhador recebeu na semana? |
− | ::b) Qual foi o salário total pago? | + | :::b) Qual foi o salário total pago? |
− | ::c) Quantos dispositivos foram fabricados? | + | :::c) Quantos dispositivos foram fabricados? |
− | ::d) Qual é o custo médio para se produzir um dispositivo? | + | :::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? | + | :::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? | + | :::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 estacionária é lançada da altura <math>h_0</math> acima da superfície da terra, com velocidade vertical <math>v_0</math>, 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> | ||
+ | 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)] | ||
+ | |||
+ | * '''Desafio''': | ||
+ | |||
+ | :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 3 (Fourier) para um número de termos genérico. | ||
+ | :3. Plote o símbolo do Batman (para quem tem dúvida, [http://www.isrs2011.org/thumbnail/b/batman-symbol-coloring-pages-clipart-best-4.jpeg link]). | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 6 === | ||
+ | {{collapse top| bg=lightblue | 26/Set - Concatenação de matrizes; Polinômios; Conjuntos; Texto; Entrada e saída de dados}} | ||
+ | |||
+ | * Concatenação de vetores e matrizes | ||
+ | * Comandos ''repmat'' e ''reshape'' | ||
+ | |||
+ | |||
+ | * 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 múltiplos de 3 ou 5 menores que 100 | ||
+ | :2. Mostre todos os inteiros positivos múltiplos de 3 e 5 menores que 200 | ||
+ | :3. Mostre todos os inteiros positivos múltiplos de 3 ou 5 mas não de ambos menores que 125 | ||
− | |||
− | |||
− | |||
* Polinômios | * Polinômios | ||
:* Representação de polinômios a partir de vetores | :* Representação de polinômios a partir de vetores | ||
:* Comandos ''polyval'', ''poly'' e ''roots'' | :* 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 | |
− | :* Comandos ''polyder'' e ''polyint'' | + | |
− | + | ||
− | + | * '''Exercícios''': | |
+ | |||
[[Imagem:Matlab_poly_EX1.jpg|thumb|600px|center]] | [[Imagem:Matlab_poly_EX1.jpg|thumb|600px|center]] | ||
[[Imagem:Matlab_poly_EX2.jpg|thumb|600px|center]] | [[Imagem:Matlab_poly_EX2.jpg|thumb|600px|center]] | ||
Linha 433: | Linha 572: | ||
[[Imagem:Matlab_poly_EX5.jpg|thumb|600px|center]] | [[Imagem:Matlab_poly_EX5.jpg|thumb|600px|center]] | ||
− | |||
− | + | * Trabalhando com texto (''string'') | |
− | + | ||
− | + | * Entrada/Saída de dados | |
− | * Entrada/Saída de dados | ||
:* Comando ''input'' para entrada de dados | :* Comando ''input'' para entrada de dados | ||
− | :* Comando ''disp'' e '' | + | :* 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_2017-2/Aula-6|Códigos executados na aula]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 7 === | === Aula 7 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 28/Set - Variáveis lógicas; Operadores; Controle de fluxo de dados - ''if''}} |
+ | |||
+ | * Variáveis lógicas: | ||
+ | :* Comando ''logical'' | ||
+ | |||
+ | * Endereçamento lógico de vetores e matrizes | ||
+ | |||
* Operadores: | * Operadores: | ||
− | |||
− | |||
− | |||
:* Operadores relacionais: | :* Operadores relacionais: | ||
− | {| | + | :::{| class="wikitable" |
− | ! '''Operador | + | ! '''Operador''' |
! '''Significado''' | ! '''Significado''' | ||
|- | |- | ||
Linha 489: | Linha 623: | ||
:* Operadores lógicos (vetores): | :* Operadores lógicos (vetores): | ||
− | {| | + | :::{| class="wikitable" |
! '''Operador''' | ! '''Operador''' | ||
! '''Nome''' | ! '''Nome''' | ||
Linha 495: | Linha 629: | ||
| & || AND | | & || AND | ||
|- | |- | ||
− | | | + | | ǀ || OR |
|- | |- | ||
| ~ || NOT | | ~ || NOT | ||
Linha 504: | Linha 638: | ||
:* Operadores lógicos ''curto-circuito'': | :* Operadores lógicos ''curto-circuito'': | ||
− | {| | + | :::{| class="wikitable" |
! '''Operador''' | ! '''Operador''' | ||
! '''Nome''' | ! '''Nome''' | ||
Linha 510: | Linha 644: | ||
| && || AND | | && || AND | ||
|- | |- | ||
− | | | + | | ǀǀ || OR |
|} | |} | ||
+ | |||
+ | :* 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. | ||
+ | ::c) 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. | ||
+ | |||
* Controle de fluxo de dados: | * Controle de fluxo de dados: | ||
:* As sentenças ''if'', ''else'' e ''elseif'' | :* As sentenças ''if'', ''else'' e ''elseif'' | ||
− | + | ||
+ | |||
+ | * '''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). | ||
::* 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 524: | Linha 712: | ||
:::# 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. | ||
− | + | :2. 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). | |
− | * [[FIC MATLAB 2017- | + | |
+ | * [[FIC MATLAB 2017-2/Aula-7|Códigos executados em sala]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 8 === | === Aula 8 === | ||
− | |||
− | * | + | {{collapse top| bg=lightblue | 03/Out - Controle de fluxo de dados - ''switch''; Structs; Cells}} |
+ | |||
+ | * A sentença ''switch'' | ||
+ | :* Um único valor | ||
+ | :* Múltiplos valores | ||
+ | |||
+ | |||
+ | * '''Exercício''': | ||
+ | |||
+ | :1. Reescreva o código da calculadora da aula anterior fazendo o uso da sentença ''switch'' | ||
+ | |||
+ | |||
+ | * 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 2017-2/Aula-8|Códigos executados em sala]] | |
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 9 === | ||
+ | {{collapse top| bg=lightblue | 05/Out - Estruturas de repetição - ''for'' e ''while''}} | ||
* Estruturas de repetição: | * Estruturas de repetição: | ||
Linha 545: | Linha 826: | ||
:* Sentenças ''break'' e ''continue'' | :* 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. | ||
− | * [[FIC MATLAB 2017- | + | :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 2017-2/Aula-9|Códigos executados em sala]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | === Aula | + | === Aula 10 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 10/Out - Funções; Importação de dados; Solução de sistemas de equações}} |
+ | |||
+ | * 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 9 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. | :: Não esquecer de nomear os eixos. | ||
− | [[Image:Exercícios Aula 3 FIC Matlab.jpg| | + | [[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]. | ||
+ | |||
+ | |||
+ | * 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. | ||
+ | |||
+ | |||
+ | * 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 --> | ||
+ | |||
+ | [[Image:MATLAB_Chem_Balance.jpg|300px|center]] | ||
+ | |||
+ | |||
+ | * [[FIC MATLAB 2017-2/Aula-10|Códigos executados em sala]] | ||
+ | {{collapse bottom}} | ||
− | + | === Aula 11 === | |
− | + | {{collapse top| bg=lightblue | 17/Out - 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 12 === |
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 19/Out - Gráficos em 2D e 3D}} |
+ | |||
+ | * '''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'' | ::* 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: | :* Letras gregas nos gráficos: | ||
− | {| | + | :::{| class="wikitable" |
! '''Letra''' | ! '''Letra''' | ||
! '''Representação''' | ! '''Representação''' | ||
Linha 664: | Linha 1 039: | ||
--> | --> | ||
− | + | * '''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>x(t) = 1000 e^{-0,5t} \mathrm{sen}(3t+2)</math> | |
− | + | ::: <math>y(t) = 7 e^{-0,4t} \cos(5t-3)</math> | |
− | |||
− | |||
− | + | * '''Gráficos em 3D''' | |
− | |||
− | :* | + | :* Gráficos de linha em 3D |
− | + | ::* Comando ''plot3'' | |
− | |||
− | ::* Comando | ||
− | :* | + | :::* 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 2017- | + | * [[FIC MATLAB 2017-2/Aula-12|Códigos executados em sala]] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{collapse bottom}} | {{collapse bottom}} | ||
=== Aula 13 === | === Aula 13 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 24/Out - Toolbox simbólico}} |
'''Básico''' | '''Básico''' | ||
Linha 760: | Linha 1 111: | ||
* Comando ''taylor'': Séries de Taylor | * Comando ''taylor'': Séries de Taylor | ||
− | * | + | * Comando ''symsum'': Somatórios / séries |
* Outros: ''dsolve'', ''fourier'', ''laplace'', ''partfrac'' | * Outros: ''dsolve'', ''fourier'', ''laplace'', ''partfrac'' | ||
Linha 769: | Linha 1 120: | ||
− | [[FIC MATLAB 2017- | + | [[FIC MATLAB 2017-2/Aula-13|Códigos executados em sala]] |
{{collapse bottom}} | {{collapse bottom}} | ||
Linha 775: | Linha 1 126: | ||
=== Aula 14 === | === Aula 14 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 26/Out - Interface gráfica}} |
[[Curso Matlab aplicado ao processamento de imagens - Aula 2|Aula]] | [[Curso Matlab aplicado ao processamento de imagens - Aula 2|Aula]] | ||
Linha 949: | Linha 1 300: | ||
=== Aula 15 === | === Aula 15 === | ||
− | {{collapse top| bg=lightblue | | + | {{collapse top| bg=lightblue | 31/Out - Projeto}} |
− | + | Aula dedicada ao projeto. | |
− | + | ||
− | + | * [[FIC MATLAB 2017-2/Aula-15|Códigos executados em sala]] | |
− | + | ||
− | + | {{collapse bottom}} | |
− | + | ||
− | + | === Aula 16 === | |
+ | {{collapse top| bg=lightblue | 07/Nov - Projeto}} | ||
+ | |||
+ | Aula dedicada ao projeto. | ||
+ | |||
+ | * [[FIC MATLAB 2017-2/Aula-16|Códigos executados em sala]] | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | === Aula 17 === | ||
+ | {{collapse top| bg=lightblue | 09/Nov - Projeto}} | ||
+ | |||
+ | Aula dedicada ao projeto. | ||
+ | |||
+ | * [[FIC MATLAB 2017-2/Aula-17|Códigos executados em sala]] | ||
{{collapse bottom}} | {{collapse bottom}} | ||
+ | |||
+ | |||
+ | {{collapse top| bg=lightgreen | Próximos episódios}} | ||
<!-- | <!-- | ||
Linha 1 138: | Linha 1 506: | ||
--> | --> | ||
+ | {{collapse bottom}} | ||
== Questões da turma == | == 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: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | [[Arquivo:MATLAB-hachuras.png|thumb|200px|center]] | |
− | + | ==== 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 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Edição atual tal como às 14h54min de 15 de novembro de 2017
Informações Básicas
- Código: MLB16470
- Professores: Diego da Silva de Medeiros e Roberto Wanderley da Nóbrega
- Início: 05/Set/2017
- Término: 21/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
Aula 1
05/Set - Apresentação da disciplina; Interface do MATLAB; Operadores; Funções; Constantes especiais | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Observações:
|
Aula 2
12/Set - Formatos de exibição; Vetores e matrizes | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 3
14/Set - Operações com matrizes; Plots | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 4
19/Set - Números aleatórios; Endereçamento de vetores e matrizes |
---|
|
Aula 5
21/Set - Aula de exercícios | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 6
26/Set - Concatenação de matrizes; Polinômios; Conjuntos; Texto; Entrada e saída de dados |
---|
|
Aula 7
28/Set - Variáveis lógicas; Operadores; Controle de fluxo de dados - if | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 8
03/Out - Controle de fluxo de dados - switch; Structs; Cells | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 9
05/Out - Estruturas de repetição - for e while | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 10
10/Out - Funções; Importação de dados; Solução de sistemas de equações |
---|
|
Aula 11
17/Out - Processamento de imagens |
---|
Pro futuro: Usar im2double! |
Aula 12
19/Out - Gráficos em 2D e 3D | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Aula 13
24/Out - Toolbox simbólico |
---|
Básico
Cálculo
Solução de equações
|
Aula 14
26/Out - Interface gráfica | ||
---|---|---|
|
Aula 15
31/Out - Projeto |
---|
Aula dedicada ao projeto. |
Aula 16
07/Nov - Projeto |
---|
Aula dedicada ao projeto. |
Aula 17
09/Nov - Projeto |
---|
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