Carregar apresentação
A apresentação está carregando. Por favor, espere
1
GET – Engenharia de Produção
MINI CURSO MATLAB GET – Engenharia de Produção
2
AGENDA Objetivo Dados Histórico Funções Layout Gráficos Help
Programação
3
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.
4
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
5
LAYOUT
6
LAYOUT Command Window
7
LAYOUT Command History Window
8
LAYOUT Workspace
9
LAYOUT Edit / Debug Window
10
LAYOUT Figure Window
11
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 “
12
HELP Help
13
DADOS Linguagem (M-código) Simples e objetiva
Unidade fundamental de dados: matriz (array) Índice começa com 1
14
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
15
DADOS É possível salvar o código de um programa como um arquivo de texto: MATLAB-Editor New/M-File
16
DADOS Declaração de dados Não é necessário declarar o tipo de variável
nome_da_variável=[dados]; Exemplos: >> matriz1=[ ] >> matriz2=[ 3 4 5; 6 7 8] matriz1 = matriz2 =
17
DADOS Acessando um elemento da matriz nome_da_variavel(linha,coluna)
Exemplo: >> matriz2=[ 3 4 5; 6 7 8]; >> matriz2(1,2) ans = 4
18
DADOS Acessando a última linha ou o último elemento de uma matriz
Exemplo: -Último elemento -Última linha >> matriz2(end,end) >>matriz2(end,:) ans = ans =
19
DADOS Acessando x elementos de uma linha/coluna da matriz Exemplo:
ans =
20
DADOS Outras formas de inicialização de matrizes
nome_da_variável = primeiro:incremento:último Exemplo: >> a=1:2:10 a =
21
DADOS >> b=linspace(2,10,5) b = 2 4 6 8 10
nome_da_variavel=linspace (primeiro,último,número de elementos) Exemplo: >> b=linspace(2,10,5) b =
22
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
23
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
24
DADOS >> A+B Exemplo: >> A=[ 1 2 3] ans = A = 4 6 8 1 2 3
>> A/B 0.5200 Exemplo: >> A=[ 1 2 3] A = >> B=[ 3 4 5] B =
25
DADOS Operadores Relacionais
Realizam operações de comparação entre variáveis Sinal Significado < Menor <= Menor ou igual > maior >= Maior ou igual == Igual ~= Diferente
26
DADOS Operando elemento a elemento >> A./B ans =
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 =
27
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= [ ] >> d>e d = ans = >> e=[ ] e =
28
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
29
DADOS Exemplos >> A >> C=[A;B] A = C = 1 2 3 1 2 3 3 4 5
>> B B = >> C=[B(1,1);A(1,2)] C = 3 >> C=[A B] C =
30
DADOS – Exercícios 1) Declare as seguintes matrizes: A= B= [ ] [10] [ ] [12] [ ] [14] 2) Realize as operações a. A(:,1) + B b. A(1 ,:) – B’ c. A*B
31
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”.
32
RESOLUÇÃO EXERCÍCIOS
33
RESOLUÇÃO EXERCÍCIOS
34
RESOLUÇÃO EXERCÍCIOS
35
FUNÇÕES Funções Prontas do MATLAB Funções de inicialização de matrizes
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.
36
FUNÇÕES Exemplos >> eye(2) ans = a = 1 0 0 1 1 2 3 4 5 6
>> a a = >> size(a) ans =
37
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
38
FUNÇÕES Funções Complexas Funções de Aproximação 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 Funções Significado abs Valor absoluto angle Ângulo de fase conj Complexo conjugado imag Parte imaginária real Parte real
39
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^ *x
40
FUNÇÕES Integral: Integral Indefinida Exemplo:
>> f = '3*x^2 - 15*x + 18' % Cria a função como char f = 3*x^2 - 15*x + 18 >> integral = int(f) % faz a integral da função integral = x^3-15/2*x^2+18*x
41
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 = [ ] >>b = randint(1,4,[1 100]) b = [ ]
42
FUNÇÕES – Exercícios 1) Calcule a integral de f(x)=cos(x) e de f(x)=3x²+5x Calcule a derivada de f(x)=cos(x) e de f(x)=3x²+5x
43
RESOLUÇÃO EXERCÍCIOS
44
RESOLUÇÃO EXERCÍCIOS
45
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ões Comando 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 barras hist Histograma
46
GRÁFICOS Plot >> plot(x,y,’Opções de Estilo’)
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’)
47
GRÁFICOS Gráfico Seno
48
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 = [ ] >> plot (y) %Pontos marcados: %(1,5) (2,4) (3,6) (4,9)
49
GRÁFICOS Figure/Exemplo
50
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
51
GRÁFICOS Figure : Abre uma nova janela onde o novo gráfico será gerado
Exemplo: >> x=[ ]; >> y=[ ]; >> plot (x,y) >> figure >> plot (y,x)
52
GRÁFICOS >>t = linspace(0,1,1000); >>a=sin(2*pi*t);
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
53
GRÁFICOS Gráfico Hold on/Hold off
54
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)
55
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)
56
GRÁFICOS Gráfico Subplot
57
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')
58
GRÁFICOS Gráfico fplot
59
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)
60
GRÁFICOS text (adiciona um texto na posição indicada)
>>text (x,y, 'texto desejado') Exemplo: >> x=[ ]; >> y=[ ]; >> plot(x,y,'green') >> xlabel('x'); >> ylabel('y'); >> text(8,2,'(8,2)')
61
GRÁFICOS Gráfico Comandos Especiais
62
GRÁFICOS – Exercícios Plote o gráfico da função f(x)=2x², sendo o vetor x=[ ]. Utilize a cor que desejar. Plote o gráfico de f(x)=sin(x) e g(x)=cos(x), sendo x=linspace(0,2pi,1000), em: a. Duas janelas separadas b. No mesmo gráfico c. Na mesma janela, em gráficos separados
63
RESOLUÇÃO EXERCÍCIOS >> clc >> close all
>> clear all >> x=[ ]; >> y=2.*x.^2; >> plot(x,y,'blue')
64
RESOLUÇÃO EXERCÍCIOS
65
RESOLUÇÃO DOS EXERCÍCIOS
2) 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');
66
RESOLUÇÃO EXERCÍCIOS
67
RESOLUÇÃO EXERCÍCIOS 2) 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
68
RESOLUÇÃO EXERCÍCIOS
69
RESOLUÇÃO EXERCÍCIOS 2) c. >> clc close all clear all
x=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');
70
RESOLUÇÃO EXERCÍCIOS
71
PROGRAMAÇÃO Operadores Lógicos:
72
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
73
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”
74
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
75
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 >>
76
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:
77
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>>
78
PROGRAMAÇÃO Processos iterativos If / If-Else if (condição1)
expressão (ões) 1; elseif (condição2) expressão (ões) 2; else expressão (ões) n; end
79
PROGRAMAÇÃO a=100; b=40; if ((a+b)>=120) c=a+b; else c=a*b; end
Exemplo: a=100; b=40; if ((a+b)>=120) c=a+b; else c=a*b; end // O valor de “c” ao final, será 140.
80
PROGRAMAÇÃO a=100; while(a<110) a=a+1; While while (condição)
expressão (ões); end Exemplo: a=100; while(a<110) a=a+1; // Neste caso, serão dados 10 loops.
81
PROGRAMAÇÃO expressão (ões); end a=0; n=5; for i=1:n a=a+1; For
for variavel_de_iteração = inicio : fim expressão (ões); end Exemplo: a=0; n=5; for i=1:n a=a+1; //A variável “a” vai sair do loop com o valor 5.
82
PROGRAMAÇÃO Switch – Case switch variavel case 0 expressão (ões) 1;
otherwise expressão (ões) 4; end
83
PROGRAMAÇÃO a=50; switch a case 0 b=a+100; case 50 b=a; otherwise b=0;
Exemplo: a=50; switch a case 0 b=a+100; case 50 b=a; otherwise b=0; End //Ao final, b terá seu valor igual a 50
84
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)
85
PROGRAMAÇÃO Exemplo: Função: function total = soma(a,b) total= a+b;
m=5; n=3; resultado = soma(m,n); //A variável “resultado” terá valor 8 ao final.
86
PROGRAMAÇÃO tic programa toc Tempo de Simulação (Tic 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
87
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.
88
PROGRAMAÇÃO Editor/Debug
89
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.
90
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 ) 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.
91
RESOLUÇÃO EXERCÍCIOS >> x=[]; %declara o vetor x sendo vazio
for i=1:33 %existem 33 múltiplos de 3 entre 0 e 100 x=[x i*3]; end
92
RESOLUÇÃO EXERCÍCIOS
93
RESOLUÇÃO EXERCÍCIOS 2) >> %multiplos de 3 x=[]; for i=1:33
x=[x i*3]; end %testando os multiplos de 5 no vetor x y=[]; for a=1:33 if(rem(x(a),5)==0) y=[y x(a)];
94
RESOLUÇÃO EXERCÍCIOS
95
Dúvidas?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.