FIC MATLAB 2019-2

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Informações Básicas

Código: MLB16470
Professora: Ana Paula Rosa Negri
Início: 27/08/2019
Término: 31/10/2019
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
Tutorial: Bernardo Severo da Silva Filho, Curso de MATLAB 5.1

Conteúdos Abordados

Apresentação da disciplina; Interface do MATLAB; Operadores; Funções; Constantes especiais; Formatos de exibição

Aula 1 - 27 de agosto
  • MATLAB, Octave e Scilab;
  • Interface do MATLAB;
  • Command Window;
  • Workspace;
  • Comando whos;
  • Current Folder;
  • Command History;
  • Editor;
  • Utilização do ponto (.) no lugar de vírgula (,) para números decimais (1,33 -> 1.33);
  • Operadores:
Operação Notação matemática Sintaxe no MATLAB
Adição a+b
Subtração a-b
Multiplicação a*b
Divisão à direita a/b
Exponenciação: a^b
  • ans: Variável temporária que contém a resposta mais recente.
  • Funções Matemáticas
Função Sintaxe no MATLAB
exp(x)
sqrt(x)
abs(x)
log(x)
log10(x)
log2(x)
cos(x)
sin(x)
tan(x)
acos(x)
asin(x)
atan(x)
(maior inteiro ) floor(x)
(menor inteiro ) ceil(x)
(arredondamento para o inteiro maior próximo) round(x)
(sinal de ) 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. Calcule no Matlab:
a)
b)
c)
d) arredonde o item a.
e)
2. Supondo e , calcule:


  • Ajudas:
  • Comandos help, doc e lookfor;
  • Utilizando scripts (arquivo .m);
  • Limpeza:
  • Utilização do ponto e vírgula (;) para não aparecer na Command Window;
  • Comando clear para apagar variáveis;
  • Comando clc para apagar texto na Command Window;
  • Constantes especiais:
Comandos Descrições
pi O número .
1i,1j A unidade imaginária .
Inf Infinito.
NaN Indica um resultado numérico indefinido.
  • Exercício:
1. Supondo e , calcule:
  • Formatos de exibição:
Comando Descrição e exemplo
format short Quatro dígitos decimais (padrão); 13.6745
format long 16 dígitos; 17.27484029463547
format short e Cinco dígitos (quatro decimais) mais o expoente; 6.3792e+03
format long e 16 dígitos (15 decimais) mais o expoente; 6.379243784781294e-04
format bank Dois dígitos decimais; 126.73
format + Positivo, negativo ou zero; +
format rat Aproximação racional; 43/7
format compact Suprime algumas linhas em branco
format loose Restabelece o modo de exibição menos compacto

Vetores e matrizes

Aula 2 - 29 de agosto


  • 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 3x e segunda linha contenha os valores 5x - 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 (');


Operações com matrizes

Aula 3 - 03 de setembro
  • 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:
2. Para as matrizes acima, realize as operações abaixo:
a) B + C
b) A D (multiplicação matricial)
c) C BT A
d) X = BT C
e) X2
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 número harmônico é definido como sendo a soma 1 + 1/2 + ... + 1/n. Utilize o MATLAB para calcular . Resposta: 5.1874.
7. Seja
Calcule x. Em seguida, calcule . Resposta: Aproximadamente .

códigos utilizados em sala

Plots

Aula 4 - 5 de setembro
  • Plots:
  • Comandos plot, stem, bar e stairs de uma função
  • Uso de apenas um parâmetro
  • Comando subplot
  • 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:
Tipo de linha Símbolo
Sólida (padrão) -
Tracejada --
Tracejada com pontos -.
Com pontos :
Cores Símbolo
Preto k
Azul b
Ciano c
Verde g
Magenta m
Vermelho r
Branco w
Amarelo y
Marcadores de dados Símbolo
Ponto .
Asterisco *
Cruz x
Círculo o
Adição +
Quadrado s
Losango d
Triângulo apontando pra cima ^
Triângulo apontando pra baixo v
Triângulo apontando pra direita >
Triângulo apontando pra esquerda <
Estrela de 5 pontas p
Estrela de 6 pontas h


  • Outros comandos relacionados a plotagem:
  • Comando figure
  • Comando subplot
  • Comando close all para fechar todas figuras
  • Exercícios
1. Plote, em um mesmo gráfico, as funções
e
para .
2. Plote a função de -4 até 4. Para certificar que o plot está correto, calcule na mão as raízes da função, e compare com os pontos onde a curva cruza o eixo horizontal (onde )
3. Utilize o MATLAB para plotar a função ao longo do intervalo . 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 e ao longo do intervalo . 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:
, para
, para
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
é
.
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 até .
7. Fazer o plot de um sinal de tensão versus tempo, como da figura:
Não esquecer de nomear os eixos.
Exercícios Aula 3 FIC Matlab.jpg
8. Desafio: Resolva a questão 6, apresentando a resposta para um número genérico "N" de termos.


Endereçamento de vetores e matrizes

Aula 5 - 10 de setembro
  • 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


  • 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.
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]);

Códigos executados em sala


Concatenação de matrizes; Texto; Entrada e saída de dados

Aula 6 - 12 de setembro
  • Concatenação de vetores e matrizes
  • Comandos repmat, reshape, fliplr e flipud
  • Trabalhando com texto (string)
  • Conversão de dados (comandos double() e char())
  • 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.


  • Conjuntos
  • Comandos sort, unique
  • Comandos union (), intersect (), setdiff (), setxor (diferença simétrica)
  • 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
  • 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 para cálculo/visualização do histograma
  • Exercícios:
1. Mostre todos os inteiros positivos
a) menores que 100 que são múltiplos de 3 ou de 5.
b) menores que 200 que são múltiplos de 3 e 5.
c) menores que 125 que são múltiplos de 3 ou de 5, mas não de ambos.
2. Utilize o MATLAB para obter as raízes do polinômio
.
Utilize a função poly para confirmar sua resposta.
3. Utilize o MATLAB para confirmar que
4. Utilize o MATLAB para confirmar que
com resto de .
5. Utilize o MATLAB para confirmar que
quando .
6. Plote o polinômio
ao longo da faixa .

Códigos executados em sala


Revisão de conceitos e exercícios

Aula 7 - 17 de setembro
  • 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.


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 na semana?
c) Quantos dispositivos foram fabricados na semana?
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:
Crie uma figura contendo 3 plots:
  • A função seno verdadeira
  • A aproximação de Bhaskara I
  • O erro da aproximação
3. Se uma bola é lançada da altura m acima da superfície da terra, com velocidade vertical m/s, a posição e a velocidade da bola como função no tempo serão dadas pelas equações
onde g é a aceleração da gravidade (-9,81 m/s²). A bola atingirá o solo em
Escreva um programa de MATLAB que desenhe a altura e a velocidade como função do tempo, para utilizando o comando subplot. Faça com que e sejam parâmetros da script. Não deixe de incluir as legendas apropriadas.
4. Joãozinho depositou num fundo de investimento com taxa de juros ao mês. Faça um gráfico do saldo do investimento. Em quanto tempo o valor depositado será dobrado? Dica: (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 com um número genérico de termos somados em .
3. Plote o símbolo do Batman (para quem tem dúvida, link).

Códigos executados em sala

Variáveis lógicas; Operadores relacionais e lógicos

Aula 8 - 19 de setembro
  • Variáveis lógicas (booleanas):
  • Comando logical
  • Endereçamento lógico de vetores e matrizes


  • Operadores:
  • Operadores relacionais:
Operador Significado
< Menor que
<= Menor ou igual a
> Maior que
>= Maior ou igual a
== Igual a
~= Não é igual a
  • Operadores lógicos:
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.
Temperatura
Cidade 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 e um ângulo com a horizontal são dadas, em funcão do tempo t, por
respectivamente, em que g é a aceleração da gravidade. O projétil atinge o solo quando , o que ocorre no tempo . Suponha que °, m/s e m/s².
a) Plote os gráficos da altura e da velocidade do projétil, de até .
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).

Comandos executados em sala de aula

Controle de fluxo de dados - if e switch

Aula 9 - 24 de setembro
  • Uso de scripts:
  • Editor de texto (Editor)
  • Seções (%%)


  • 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 , 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:
  1. O preço unitário do arroz é R$15,00. Se comprar 3 ou mais, o preço cai para R$14,00 cada.
  2. 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.
  3. 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 (Aula 6) de modo a informar ao usuário o grau de magreza/obesidade do indivíduo (veja 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.