rodrigo barbosa de santis - ufjf · 2016-04-18 · universidade federal de juiz de fora programa de...

Post on 12-Aug-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Rodrigo Barbosa de Santis

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

MATLAB (MATrix LABoratory)

Objetivo inicial

Cálculo de matrizes matemáticas

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

Linguagem MATLAB

Vantagens

Fácil de usar

Independe da plataforma

Funções predefinidas

Interface gráfica para usuários (GUI)

Desvantagens

Linguagem interpretada

Custo

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

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

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

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

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

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’)

Ex:

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

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

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

Controle de eixos e de zoom

Modificar limites de eixos

Outras opções

>> axis([ xmin xmax ymin ymax ])

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)

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

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)

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

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

For

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

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

Outros operadores

Break

Continue

Error

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

Somatório

Comando symsum

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

Encontrando as raizes

Comando solve

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

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

Integral Indefinida

Comando int

▪ Substitua no programa anterior diff por int

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

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

Rodrigo Barbosa De Santis – rodrigo.santis@engenharia.ufjf.br

top related