A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

GET – Engenharia de Produção

Apresentações semelhantes


Apresentação em tema: "GET – Engenharia de Produção"— Transcrição da apresentação:

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?


Carregar ppt "GET – Engenharia de Produção"

Apresentações semelhantes


Anúncios Google