32
Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis

Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional

Rodrigo Barbosa de Santis

Page 2: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Introdução Vetores Gráficos Controle e Repetição Polinômios Caixeiro Viajante

Page 3: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

MATLAB (MATrix LABoratory)

Objetivo inicial

Cálculo de matrizes matemáticas

Sistema computacional para resolução de problemas técnicos

Linguagem MATLAB

Page 4: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Vantagens

Fácil de usar

Independe da plataforma

Funções predefinidas

Interface gráfica para usuários (GUI)

Page 5: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Desvantagens

Linguagem interpretada

Custo

Page 6: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Unidade fundamental de dados no MATLAB Coleção de valores em linhas e colunas Vetor (1 dimensão) ou matriz (2 ou mais)

Page 7: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Criando um vetor

Nome da variável (Máx. 19 caracteres)

Recebe =

Dados entre colchetes [ ]

>> array1 = [1 2 3 4] >> array2 = [1 2 3; 4 5 6; 7 8 9] array1 = 1 2 3 4 array2 = 1 2 3 4 5 6 7 8 9

Page 8: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Acessando seus elementos

Para um elemento ▪ Identifique os índices i e j em A(i,j)

Para um conjunto de elementos ▪ Utilize o caracter ( : )

>> display = array2(2,2) % selecionando um elemento display = 5 >> display = array2(2,1:3) %selecionando a segunda linha

Page 9: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Funções de inicialização de variáveis

>> array3 = zeros(2,3) array3 = 0 0 0 0 0 0 >> array4 = input(‘Digite um valor para array4:’) Digita um valor apra array4: >> 99 array4 = 99

Page 10: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Outras formas

Por expressões curtas ▪ Vetor = primeiro:incremento:ultimo

Linspace ▪ Vetor = linspace(primeiro, ultimo, n de elementos)

>> x = 1:2:10 x = 1 3 5 7 9

>> x = linspace(0,10,5) x = 0 2.5000 5.0000 7.5000 10.000

Page 11: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Onde: ‘x’ e ‘y’ são as coordenadas dos pontos

‘Opções de Estilo’ são opções para formatação

NOTA: Os vetores x e y DEVEM ter o mesmo tamanho

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

Page 12: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Ex:

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

Page 13: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Personalizando os gráficos Opções de estilo:

Page 14: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Personalizando os gráficos Título, eixos e comentários

Page 15: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Controle de eixos e de zoom

Modificar limites de eixos

Outras opções

>> axis([ xmin xmax ymin ymax ])

Page 16: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Gráficos sobrepostos

Método 1 – Nova janela com figure

Resultado é dado em duas janelas diferentes:

Figure 1 e Figure 2

>> plot (x,y) >> figure >> plot (y,x)

Page 17: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Gráficos sobrepostos

Método 2 – Plotando no mesmo gráfico

O resultado é outra curva plotada no primeiro gráfico

>> plot (x,y) >> hold on >> plot (y,x) >> hold off

Page 18: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Gráficos sobrepostos

Método 3 – Adicionando vários gráficos

O resultado são vários gráficos em uma mesma Figure

>> subplot(2,2,3) >> plot(x,k) >> subplot(2,2,1) >> plot(x,y) >> subplot(2,2,2) >> plot(y)

Page 19: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

If-elseif-else

if i > 5; % Cond 1 k = 1; % ação ocorre caso a Cond 1 seja verdadeira elseif (I > 1) & (j == 20) % Cond 2 k = 5*i + j; % ação ocorre caso a Cond 2 seja verdadeira else k = 1; % condição ocorre caso Cond e 2 sejam falsas end

Page 20: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Switch-case-otherwise

switch cor case ‘vermelho’ c = [1 0 0]; case ‘verde’ c = [0 1 0]; case ‘azul’ c = [0 0 1]; otherwise error(‘escolha de cor inválida’) end

Page 21: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

For

for m = 1:2:100 Num = 1(m+1) end

Page 22: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

While

% Vamos encontrar todas as potências de 2 abaixo de 10000 v = 1; i = 1; while num < 10000 num = 2^i; v = [ v; num]; i = i + 1; end

Page 23: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Outros operadores

Break

Continue

Error

Page 24: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Criando um polinômio

Definir x como um símbolo (IMPORTANTE)

Criar a função utilizando o em função de x

>> f = 3*x^2 – 15*x + 18; >> f1 = x^3;

>> syms x

Page 25: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Somatório

Comando symsum

>> symsum(f,x,a,b) % a e b são os limites % inferior e superior

Page 26: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Encontrando as raizes

Comando solve

>> f f = 3*x^2 - 15*x + 18 >> raiz = solve (f) raiz= 3 2

Page 27: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Derivada

Comando diff

>> f = 3*x^2 - 15*x + 18 ; % Cria a função >> df = diff(f) % faz a derivada da função df = 6*x-15 >> subplot(2,1,1) >> ezplot (f, [-30 30]) % Plota o gráfico da função >> subplot(2,1,2) >> ezplot (df, [-30 30]) % Plota o gráfico da derivada0

Page 28: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Integral Indefinida

Comando int

▪ Substitua no programa anterior diff por int

Page 29: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Integral Definida

Limites de Integração no comando int

>> f = 3*x^2 - 15*x + 18 % Cria a função como char f = 3*x^2 - 15*x + 18 >> integral = int(f, -30,30) % Faz a integral definida integral= 55080

Page 30: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução
Page 31: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Applegate, D. L., Bixby, R. E., Chvatal, V., & Cook, W. J. (2011). The traveling salesman problem: a computational study. Princeton university press.

Chapman, S. (2008). Essentials of MATLAB programming. Nelson Education.

Da Cunha, C. B., de Oliveira Bonasser, U., & Abrahão, F. T. M. (2002). Experimentos computacionais com heurísticas de melhorias para o problema do caixeiro viajante. In XVI Congresso da Anpet.

MATLAB Documentation, Mathworks. Recuperado em 29, março, 2016 de http://www.mathworks.com/help/matlab/

Travelling Salesman Problem, Mathworks. recuperado em 29, março, 2016 de http://www.mathworks.com/help/optim/ug/travelling-salesman-problem.html

Page 32: Rodrigo Barbosa de Santis - UFJF · 2016-04-18 · Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional Rodrigo Barbosa de Santis Introdução

Rodrigo Barbosa De Santis – [email protected]