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 – [email protected]