mini curso matlab

95
MINI CURSO MATLAB GET – Engenharia de Produção

Upload: lillith-park

Post on 13-Mar-2016

74 views

Category:

Documents


1 download

DESCRIPTION

MINI CURSO MATLAB. GET – Engenharia de Produção. AGENDA. Objetivo Histórico Layout Help Dados Funções Gráficos Programação. OBJETIVO. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: MINI CURSO MATLAB

MINI CURSO MATLAB

GET – Engenharia de Produção

Page 2: MINI CURSO MATLAB

AGENDA

• Objetivo

• Histórico

• Layout

• Help

• Dados

• Funções

• Gráficos

• Programação

Page 3: MINI CURSO MATLAB

OBJETIVO

Introduzir o MATLAB (MATrix LABoratory) como

ferramenta de programação computacional, usando

como base o cálculo de matrizes, bem como algumas

de suas aplicações.

Page 4: MINI CURSO MATLAB

HISTÓRICO

• Final dos anos 70: Criação da linguagem MATLAB por Clever Moler

• 1983: Criação da ferramenta MATLAB, e da empresa MathWorks, detentora dos seus direitos comerciais

Page 5: MINI CURSO MATLAB

LAYOUT

Page 6: MINI CURSO MATLAB

LAYOUT

Command Window

Page 7: MINI CURSO MATLAB

LAYOUT

Command History Window

Page 8: MINI CURSO MATLAB

LAYOUT

Workspace

Page 9: MINI CURSO MATLAB

LAYOUT

Edit / Debug Window

Page 10: MINI CURSO MATLAB

LAYOUT

Figure Window

Page 11: MINI CURSO MATLAB

HELP

• Ferramenta de ajuda sobre todas as funções, comandos e operadores existentes no MATLAB.

• Escrever na janela de comando:

“help função/comando/operador “

Page 12: MINI CURSO MATLAB

HELP

Help

Page 13: MINI CURSO MATLAB

DADOS

• Linguagem (M-código)

• Simples e objetiva

• Unidade fundamental de dados: matriz (array)

• Índice começa com 1

Page 14: MINI CURSO MATLAB

DADOS• Usa-se o ponto e vírgula ( ; ) ao final de cada linha de

comando caso não se queira mostrar seu processamento na janela de comando

• Para fazer comentários usa-se o símbolo de porcentagem (%)

• Existem inúmeras funções pré-definidas

• Permite ao usuário criar sua própria biblioteca de funções

Page 15: MINI CURSO MATLAB

DADOSÉ possível salvar o código de um programa como um arquivo de texto: MATLAB-Editor

New/M-File

Page 16: MINI CURSO MATLAB

DADOS• Declaração de dados

• Não é necessário declarar o tipo de variável• nome_da_variável=[dados];• Exemplos:

>> matriz1=[1 2 3 4] >> matriz2=[ 3 4 5; 6 7 8]

matriz1 = matriz2 =

1 2 3 4 3 4 5 6 7 8

Page 17: MINI CURSO MATLAB

DADOS• Acessando um elemento da matriz

• nome_da_variavel(linha,coluna)• Exemplo:

>> matriz2=[ 3 4 5; 6 7 8]; >> matriz2(1,2)

ans =4

Page 18: MINI CURSO MATLAB

DADOS• Acessando a última linha ou o último elemento de

uma matriz• Exemplo:

-Último elemento -Última linha>> matriz2(end,end) >>matriz2(end,:)

ans = ans =

8 6 7 8

Page 19: MINI CURSO MATLAB

DADOS• Acessando x elementos de uma linha/coluna da

matriz• Exemplo:

>> matriz2(2,1:2)

ans =

6 7

Page 20: MINI CURSO MATLAB

DADOS

• Outras formas de inicialização de matrizes• nome_da_variável = primeiro:incremento:último• Exemplo:

>> a=1:2:10

a =

1 3 5 7 9

Page 21: MINI CURSO MATLAB

DADOS• nome_da_variavel=linspace

(primeiro,último,número de elementos)• Exemplo:

>> b=linspace(2,10,5)

b =

2 4 6 8 10

Page 22: MINI CURSO MATLAB

DADOS• Operações com escalares e matrizes

• Escalares: Todas as operações (soma, subtração, multiplicação, divisão, potenciação etc) são feitas de forma simples

• Exemplo:

>> a=2; b=3;>> a/b

ans =

0.6667

Page 23: MINI CURSO MATLAB

DADOS

• Matrizes:• Soma e Subtração: matrizes de mesma

dimensão• Multiplicação: número de colunas da

primeira igual ao número de linhas da segunda

• Divisão: matrizes com mesmo número de linhas

• Potência: matrizes quadradas

Page 24: MINI CURSO MATLAB

DADOS

• Exemplo:

>> A=[ 1 2 3]A = 1 2 3

>> B=[ 3 4 5]B = 3 4 5

>> A+Bans =4 6 8

>> A/Bans =0.5200

Page 25: MINI CURSO MATLAB

DADOS

• Operadores Relacionais• Realizam operações de comparação entre

variáveis

Sinal Significado

< Menor<= Menor ou igual> maior

>= Maior ou igual== Igual~= Diferente

Page 26: MINI CURSO MATLAB

DADOS

• Operando elemento a elemento• As operações são feitas elemento a elemento• Matrizes quadradas• Antes do sinal da operação desejada coloca-se um ponto ( . )• Exemplo:

>> A./B

ans =

0.3333 0.5000 0.6000

Page 27: MINI CURSO MATLAB

DADOS• Ao utilizar os operadores relacionais, os dados são

retornados em forma de matriz, com 0 para falso e 1 para verdadeiro• Exemplo:

>> d= [12 56 78] >> d>ed = ans = 12 56 78 1 0 1

>> e=[ 2 90 22]e =2 90 22

Page 28: MINI CURSO MATLAB

DADOS

• Concatenação de matrizes/vetores

• Consiste em agrupar as variáveis em uma única matriz

• Horizontal: Mesmo número de linhas• Vertical: Mesmo número de colunas• Pode-se também agrupar somente alguns

elementos de determinadas matrizes

Page 29: MINI CURSO MATLAB

DADOS

• Exemplos

>> A >> C=[A;B]A = C = 1 2 3 1 2 3 3 4 5>> BB = >> C=[B(1,1);A(1,2)] 3 4 5 C = 3>> C=[A B] 2 C = 1 2 3 3 4 5

Page 30: MINI CURSO MATLAB

DADOS – Exercícios1) Declare as seguintes matrizes:

A= B= [ 1 3 5 ] [10] [ 2 4 6 ] [12] [ 9 8 7 ] [14]

2) Realize as operações a. A(:,1) + Bb. A(1 ,:) – B’c. A*B

Page 31: MINI CURSO MATLAB

DADOS – Exercícios

3) Concatene as matrizes utilizando B’ (matriz transposta).

4) Divida os elementos da matriz A por 2.

5) Concatene as duas primeiras linhas da matriz A com a matriz B’ (transposta).

6) Declare uma matriz com 10 elementos entre 0 e 1, usando “linspace”.

Page 32: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 33: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 34: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 35: MINI CURSO MATLAB

FUNÇÕES• Funções Prontas do MATLAB

• Funções de inicialização de matrizesFunções Ações

zeros(m,n) Gera uma matriz m x n de zeros.

ones(n) 

Gera uma matriz n x n de um (1).

ones(m,n) Gera uma matriz m x n de um (1).

ones(size(array2)) Gera uma matriz de um (1) do mesmo tamanho do array2.

eye(m,n) Gera uma matriz identidade m x n

length(array2) Retorna o tamanho do vetor, ou a maior dimensão de um array bidimensional.

size(array2) Retorna dois valores especificando o numero de linhas e colunas em array2. 

input (‘Enter data: ’) Recebe dados de entrada do teclado.

Page 36: MINI CURSO MATLAB

FUNÇÕES• Exemplos

>> eye(2)ans =

1 0 0 1

>> aa =

1 2 3 4 5 6

>> size(a)ans =

2 3

Page 37: MINI CURSO MATLAB

FUNÇÕES

• Funções Trigonométricas

• Funções Exponenciais

Funções Significado

sin Seno

asin Arco seno

cos Cosseno

acos Arco cosseno

tan Tangente

atan Arco tangente

Funções Significado

exp Exponencial

log Logaritmo natural

log10 Logartimo base 10

sqrt Raiz quadrada

Page 38: MINI CURSO MATLAB

FUNÇÕES• Funções Complexas • Funções de Aproximação

Funções Significado

abs Valor absoluto

angle Ângulo de fase

conj Complexo conjugado

imag Parte imaginária

real Parte real

Funções Significado

fix Aproximação na direção de zero

floor Aproxima na direção de -∞

ceil Aproxima na direção de +∞

round Aproxima para o inteiro mais próximo

rem Resto da divisão

Page 39: MINI CURSO MATLAB

FUNÇÕES

• Outras funções matemáticas

• Derivada: necessário criar a função como char, usa-se apóstrofe

• Exemplo :

>> f='x^2+3' >> derivada=diff(f)

f = derivada =

x^2+3 2*x

Page 40: MINI CURSO MATLAB

FUNÇÕES

• Integral: Integral Indefinida• Exemplo:

>> f = '3*x^2 - 15*x + 18' % Cria a função como charf =3*x^2 - 15*x + 18

>> integral = int(f) % faz a integral da funçãointegral =x^3-15/2*x^2+18*x

Page 41: MINI CURSO MATLAB

FUNÇÕES• Aleatória: gera matrizes de números aleatórios

rand(i,j) : gera matriz de i linhas, j colunas, com elementos que variam de 0 a 1

randint(i,j,[mínimo máximo]) : gera matriz de i linhas, j colunas, com elementos inteiros que variam de mínimo a máximo

Exemplo:

>>a = rand(1,3) a = [0.0344 0.4387 0.3816]

>>b = randint(1,4,[1 100])b = [77 80 19 49]

Page 42: MINI CURSO MATLAB

FUNÇÕES – Exercícios

1) Calcule a integral de f(x)=cos(x) e de f(x)=3x²+5x

2) Calcule a derivada de f(x)=cos(x) e de f(x)=3x²+5x

Page 43: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 44: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 45: MINI CURSO MATLAB

GRÁFICOS

• Existe uma extensa variedade de formas gráficas para representar vetores e matrizes no MATLAB

• Possível gerar gráficos em duas ou três dimensõesComando Descrição

plot Plotar linear

loglog Gráfico em escala logarítmica

semilogy Gráfico em escala semi-logarítmica (eixo y)

semilogx Gráfico em escala semi-logarítmica (eixo x)

fill Desenhar polígono 2D

polar Gráfico em coordenadas polar

bar Gráfico de barrashist Histograma

Page 46: MINI CURSO MATLAB

GRÁFICOS

• Plot• Mais comum em plotagens bidimensionais

>> plot(x,y,’Opções de Estilo’)

• Exemplo:

>> t = linspace(0,1,1000);>> plot(t,sin(2*pi*t), ’red’)

Page 47: MINI CURSO MATLAB

GRÁFICOS

Gráfico Seno

Page 48: MINI CURSO MATLAB

GRÁFICOS• Para produzir um gráfico linear dos elementos de um

vetor Y pelos índices de X, deve-se utilizar:>>plot(y)

• Exemplo:

>> y = [5 4 6 9]>> plot (y)

%Pontos marcados:%(1,5) (2,4) (3,6) (4,9)

Page 49: MINI CURSO MATLAB

GRÁFICOS

Figure/Exemplo

Page 50: MINI CURSO MATLAB

GRÁFICOS

• A cada comando “plot”, um novo gráfico substitui o anterior. Para que isso não ocorra, existem três opções de comando:

Figure

Hold on/ Hold off

Subplot

Page 51: MINI CURSO MATLAB

GRÁFICOS Figure : Abre uma nova janela onde o novo gráfico será

gerado

Exemplo:

>> x=[ 1 2 3 4];>> y=[ 2 4 6 8];>> plot (x,y)>> figure>> plot (y,x)

Page 52: MINI CURSO MATLAB

GRÁFICOS Hold on / Hold off: sobrepõe gráficos

Exemplo:>>t = linspace(0,1,1000);>>a=sin(2*pi*t);>>b=cos(2*pi*t);>>plot(a);>>hold on>>plot(b);>>hold off

Page 53: MINI CURSO MATLAB

GRÁFICOS

Gráfico Hold on/Hold off

Page 54: MINI CURSO MATLAB

GRÁFICOS Subplot: Adiciona numa mesma janela outros

gráficos

– Divide a janela em a x b gráficos– Coloca a curva no p-ésima gráfico

>>Subplot (a,b,p)

Page 55: MINI CURSO MATLAB

GRÁFICOS Exemplo

>>t = linspace(0,1,1000);>>a=sin(2*pi*t);>>b=cos(2*pi*t);>>subplot(2,1,1)>>plot(a)>>subplot(2,1,2)>>plot(b)

Page 56: MINI CURSO MATLAB

GRÁFICOS

Gráfico Subplot

Page 57: MINI CURSO MATLAB

GRÁFICOS

• fplot• O comando fplot pode ser utilizado para plotar

gráficos de funções• fplot(‘função’,[intervalo de valores], opções de

estilo);• Exemplo>> fplot('cos(x)',[0,pi],'green')

Page 58: MINI CURSO MATLAB

GRÁFICOS

Gráfico fplot

Page 59: MINI CURSO MATLAB

GRÁFICOS

• Existem alguns comandos para melhorar a aparência dos gráficos e auxiliar na identificação dos dados

• title (inclui um título ao gráfico)• xlabel (permite que o eixo das abscissas do gráfico seja identificado)• ylabel (permite que o eixo das ordenadas do

gráfico seja identificado)

Page 60: MINI CURSO MATLAB

GRÁFICOS

• text (adiciona um texto na posição indicada)>>text (x,y, 'texto desejado')

• Exemplo:>> x=[ 4 8 12 16];>> y=[ 1 2 3 4];>> plot(x,y,'green')>> xlabel('x');>> ylabel('y');>> text(8,2,'(8,2)')

Page 61: MINI CURSO MATLAB

GRÁFICOS

Gráfico Comandos Especiais

Page 62: MINI CURSO MATLAB

GRÁFICOS – Exercícios

1) Plote o gráfico da função f(x)=2x², sendo o vetor x=[ 0 1 2 3 4 ]. Utilize a cor que desejar.

2) Plote o gráfico de f(x)=sin(x) e g(x)=cos(x), sendo x=linspace(0,2pi,1000), em:

a. Duas janelas separadasb. No mesmo gráficoc. Na mesma janela, em gráficos separados

Page 63: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

1) >> clc>> close all>> clear all>> x=[0 1 2 3 4];>> y=2.*x.^2;>> plot(x,y,'blue')

Page 64: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 65: MINI CURSO MATLAB

RESOLUÇÃO DOS EXERCÍCIOS2) a. >> clc>>close all>> clear all>>x=linspace(0,2*pi,1000);>>y=sin(x);>>z=cos(x);>>plot(x,y,'green');>>figure>>plot(x,z,'red');

Page 66: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 67: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS2)b.>> clc>>close all>>clear all>>x=linspace(0,2*pi,1000);>>y=sin(x);>>z=cos(x);>>plot(x,y,'green');>>hold on>>plot(x,z,'red');>>hold off

Page 68: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 69: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS2)c.>> clcclose allclear allx=linspace(0,2*pi,1000);y=sin(x);z=cos(x);subplot(1,2,1);plot(x,y,'green');subplot(1,2,2);plot(x,z,'red');

Page 70: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 71: MINI CURSO MATLAB

PROGRAMAÇÃO

• Operadores Lógicos:

Page 72: MINI CURSO MATLAB

PROGRAMAÇÃO

• Comandos de limpeza

CLC – Limpa a tela de programação

CLEAR ALL – Limpa todas as variáveis armazenadas

CLOSE ALL – Fecha todas as janelas abertas

Page 73: MINI CURSO MATLAB

PROGRAMAÇÃO

• Indentação Permite que o código digitado no editor seja

organizado de acordo com a hierarquia dos comandos

A hierarquização é feita tendo como base o espaçamento das margens de cada linha

Para indentar um código, basta selecioná-lo, clicar com o botão direito do mouse e escolher a opção “Smart Indent”

Page 74: MINI CURSO MATLAB

PROGRAMAÇÃO

• Saída de dados

• Existem alguns comandos que possibilitam a saída de dados, bem como permitem que o usuário os insira

• Os mais utilizados são disp, input, fprintf

Page 75: MINI CURSO MATLAB

PROGRAMAÇÃO disp

• O comando disp permite que mensagens sejam exibidas ao usuário

• disp(‘mensagem a ser exibida’);• Exemplo

>> disp('MINI CURSO DE MATLAB');MINI CURSO DE MATLAB>>

Page 76: MINI CURSO MATLAB

PROGRAMAÇÃO input

• O comando input permite que o usuário insira dados• Usado para trocar o valor de variáveis sem alterar o

código do programa• Exemplo

>> b=input('Insira o valor de b:');Insira o valor de b:

Page 77: MINI CURSO MATLAB

PROGRAMAÇÃO fprintf

• Método mais simples para saída de dados• Permite a combinação de frases com variáveis

numéricas de uma dimensão (escalar ou elemento de matriz)

• Exemplo

>> a=10;>> fprintf('o valor de a é %d',a);o valor de a é 10>>

Page 78: MINI CURSO MATLAB

PROGRAMAÇÃO• Processos iterativos

If / If-Else

if (condição1)expressão (ões) 1;elseif (condição2)expressão (ões) 2;elseexpressão (ões) n;end

Page 79: MINI CURSO MATLAB

PROGRAMAÇÃOExemplo:a=100;b=40;

if ((a+b)>=120)c=a+b;

else c=a*b;

end// O valor de “c” ao final, será 140.

Page 80: MINI CURSO MATLAB

PROGRAMAÇÃO

Whilewhile (condição)expressão (ões);end

Exemplo:a=100;while(a<110)

a=a+1;end// Neste caso, serão dados 10 loops.

Page 81: MINI CURSO MATLAB

PROGRAMAÇÃO

Forfor variavel_de_iteração = inicio : fimexpressão (ões);end

Exemplo:a=0; n=5;for i=1:n

a=a+1;end//A variável “a” vai sair do loop com o valor 5.

Page 82: MINI CURSO MATLAB

PROGRAMAÇÃOSwitch – Case

switch variavelcase 0expressão (ões) 1;case {1, 2}expressão (ões) 2;case 3expressão (ões) 3;otherwiseexpressão (ões) 4;

end

Page 83: MINI CURSO MATLAB

PROGRAMAÇÃO

Exemplo:a=50;switch a

case 0b=a+100;case 50b=a;otherwiseb=0;

End//Ao final, b terá seu valor igual a 50

Page 84: MINI CURSO MATLAB

PROGRAMAÇÃO

• Criando Funções

function saida = nome_da_funcao(entrada) expressões;

*Os arquivos de função devem ser salvos com o mesmo nome dado à função*Se houver mais de uma entrada, separar por vírgulas*Se não deseja retornar nada, colocar apenas o nome e a(s) entrada(s)

Page 85: MINI CURSO MATLAB

PROGRAMAÇÃO

Exemplo:

Função: function total = soma(a,b)

total= a+b;

Programa:m=5; n=3;resultado = soma(m,n);

//A variável “resultado” terá valor 8 ao final.

Page 86: MINI CURSO MATLAB

PROGRAMAÇÃO

• Tempo de Simulação (Tic Toc)

tic

programa

toc

*A utilização do tic toc na programação faz com que o MATLAB mostre o tempo de duração da simulação que ocorreu entre eles

Page 87: MINI CURSO MATLAB

PROGRAMAÇÃO

• Modo Debug• É usado para acompanhar o desenvolvimento do

programa, passo a passo, no Editor, após este ter sido salvo.

• Utilizando:• Clicar no traço ao lado do número referente à linha a partir

da qual se deseja acompanhar. Aparecerá uma bolinha vermelha.

• Clicar em “Debug” no Barra de Menu e em “Run”. Aparecerá uma setinha verde na linha em que o programa está parado.

• Dar F10 para que o programa prossiga para a próxima linha.

Page 88: MINI CURSO MATLAB

PROGRAMAÇÃO

Editor/Debug

Page 89: MINI CURSO MATLAB

PROGRAMAÇÃO

• Observações:

• Para terminar o modo debug, clicar em “Debug” e em “Exit Debug Mode”.

• A cada passo do modo debug, pode-se ver os valores contidos em cada variável ao posicionar a seta do mouse em cima dela.

Page 90: MINI CURSO MATLAB

PROGRAMAÇÃO - Exercícios

1) Faça um programa, utilizando alguma estrutura de repetição, que armazene, em um vetor, todos os números múltiplos de 3, de 0 a 100.

2) Do vetor criado no exercício anterior, faça um programa que crie outro vetor, com apenas os números múltiplos de 5. Ou seja, o vetor novo terá os múltiplos de 3 e 5.

Page 91: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

1) >> x=[]; %declara o vetor x sendo vaziofor i=1:33 %existem 33 múltiplos de 3 entre 0 e 100

x=[x i*3];end

Page 92: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 93: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS2) >> %multiplos de 3x=[];for i=1:33

x=[x i*3];end%testando os multiplos de 5 no vetor xy=[];for a=1:33

if(rem(x(a),5)==0)y=[y x(a)];end

end

Page 94: MINI CURSO MATLAB

RESOLUÇÃO EXERCÍCIOS

Page 95: MINI CURSO MATLAB

Dúvidas?