2. Ementa
1. Conceitos Básicos
2. Tipos de Variável
3. Criação de Matrizes
4. Operações Básicas
5. Criação e Manipulação de Gráficos
6. Funções
7. Equações Diferenciais
8. Loops (while, for) e Bifurcações (if)
2Curso de MATLAB Básico
3. 1. Conceitos Básicos
3
Janela de
comandos
Diretório Atual
Ambiente de
Trabalho
Arquivos no
diretório atual
Histórico de
comandos
Curso de MATLAB Básico
4. 1. Conceitos Básicos
• Arquivos “.m”
são usados para escrever programas e funções
• clear all – apaga todas as variáveis
• close all – fecha todas as figuras
• clc – apaga os comandos na janela de comandos
• “;” no final do comando – não apresenta o resultado na
tela
• input(‘texto’) – solicita informação ao usuário
• disp(‘texto’) – apresenta um texto ao usuário
4Curso de MATLAB Básico
5. 2. Tipos de Variável
• String – A = ‘texto’
• Número – B = 1234.56789
• Boolean – C = 0 ou 1
• Vetor – D = [1,2,3,4,5,6,7,8,9]
• Matriz – E = [1,2,3 ; 4,5,6 ; 7,8,9]
• Estrutura – ALUNO.nome = ‘nome1’
ALUNO.idade = 12
ALUNO.cpf = 123456
Curso de MATLAB Básico 5
6. 3. Criação de Matrizes
• [ digitação entre colchetes ]
vírgula – muda de coluna
ponto-e-vírgula – muda de linha
• linspace(início, final, N) – cria um vetor com N
pontos entre os valores inicial e final desejados
• A:p:B – cria um vetor que vai de A até B variando
de p em p
6Curso de MATLAB Básico
7. 3. Criação de Matrizes
• A=[0.998,0.382,0.384;0.182,0.388,0.129]
• eye(M,N) - cria uma matriz identidade M x N
• zeros(M,N) - cria uma matriz M x N de zeros
• ones(M,N) - cria uma matriz M x N de uns
• rand(M,N) - cria uma matriz M x N com valores
aleatórios entre 0 e 1
7Curso de MATLAB Básico
8. 3. Criação de Matrizes
• B(2,2) = 1
• B(4) = 2
• B(end) = 3
8Curso de MATLAB Básico
Inserção e
modificação de
valores nas
matrizes
9. 3. Criação de Matrizes
• x = B(2,2)
• x = B(4)
• x = B(end)
9Curso de MATLAB Básico
Extração de
valores das
matrizes
10. Exercícios
• Criar um programa que peça ao usuário um valor N e
monte uma matriz aleatória N x N com números de 0 a 1.
• Criar um programa que peça ao usuário valores N, A, B, e
monte uma matriz aleatória N x N com números de A a B.
• Criar um programa que peça ao usuário valores M, N, e
monte uma matriz identidade M x N.
• Criar um programa que peça ao usuário quatro elementos
A1,1, A1,2, A2,1, A2,2 e monte uma matriz 2x2.
10Curso de MATLAB Básico
12. 4. Operações Básicas
• C = A*B
• D = C*B
• E = A^2
• F = C^2
12Curso de MATLAB Básico
Operações
entre matrizes
13. 4. Operações Básicas
• C = A*B
• D = A.*B
• E = A^2
• F = A.^2
• G = B/A
• H = B./A
13Curso de MATLAB Básico
Operações
ponto-a-ponto
entre matrizes
14. 4. Operações Básicas
• inv(A) inverte a matriz A
• A’ transpõe a matriz A
• det(A) calcula o determinante da matriz A
• size(A) apresenta as dimensões da matriz A
• length(A) apresenta a maior dimensão da matriz A
• sort(A) ordena as linhas de um vetor ou uma matriz
em ordem crescente dos valores da primeira coluna
14Curso de MATLAB Básico
15. 4. Operações Básicas
• C = [A , B]
• D = [A ; B]
• E = [A(:,1) , B(:,2)]
• F = [A(2,:) ; B(1,:)]
• G = [A(1,1) , B(1,1)]
• H = [A(2) , B(4)]
15Curso de MATLAB Básico
Concatenação e
particionamento
de matrizes
16. Exercícios
• Resolver o seguinte sistema linear:
x + y + z = 6
x – y + 4z = 11
x + 2y + 3z = 14
primeiro pelo método do determinante e depois pelo método da
equação matricial.
Obs.: na forma matricial, sendo A a matriz dos coeficientes, X a
das incógnitas e B a dos resultados, temos
A*X = B -> X = A-1*B
16Curso de MATLAB Básico
17. 5. Criação e Manipulação de Gráficos
plot(
x1, y1, ‘format1’,
x2, y2, ‘format2’,
xN, yN, ‘formatN’
)
Cria um gráfico com várias curvas (x1,y1), (x2,y2),
etc, com formatos descritos pelos strings ‘format1’,
‘format2’, etc.
17Curso de MATLAB Básico
18. 5. Criação e Manipulação de Gráficos
• Formatos
‘cormarcadorlinha’
18Curso de MATLAB Básico
19. 5. Criação e Manipulação de Gráficos
Outros tipos de gráficos
• errorbar(x1, y1, e1, ‘format1’, ...) – cria gráficos
com barras de erro descritas pelos vetores “e”
• plot3(x1, y1, z1, ‘format1’, ...) – cria gráficos de
curvas 3d
• comet(x1, y1) – cria um gráfico animado 2D com
um cometa que anda pela curva
• comet3(x1, y1, z1) – cria um gráfico animado 3D
com um cometa que anda pela curva
19Curso de MATLAB Básico
20. 5. Criação e Manipulação de Gráficos
Outros tipos de gráficos
• subplot(m, n, i) – cria uma janela com uma matriz m x
n de gráficos, e ativa o gráfico de número i
• pie([a b c], [1 0 1]) – cria um gráfico de pizza com os
valores já normalizados, e destaca as fatias “a” e “c”
• bar(x1, y1) – cria um gráfico de barras
• contour(X,Y,Z,[a b c]) – cria um gráfico 2D com as
curvas de nível de valor a, b, c da superfície definida
por X, Y, Z
20Curso de MATLAB Básico
21. 5. Criação e Manipulação de Gráficos
• figure(N) – ativa o gráfico de número N
• hold on – permite que seja plotado outro gráfico
na mesma figura sem sobrescrevê-la
• xlabel(‘nome’) – muda o nome do eixo x
• ylabel(‘nome’) – muda o nome do eixo y
• zlabel(‘nome’) – muda o nome do eixo z
21Curso de MATLAB Básico
22. 5. Criação e Manipulação de Gráficos
• title(‘nome’) – muda o título do gráfico
• legend(‘nome1’, ‘nome2’, ...) – insere uma legenda
• axis([x_min x_max y_min y_max z_min z_max]) –
muda os limites dos eixos
• grid on / grid off – liga ou desliga a grade do gráfico
ativo
22Curso de MATLAB Básico
23. 5. Criação e Manipulação de Gráficos
x = xinicial:passo:xfinal
y = yinicial:passo:yfinal
[X,Y] = meshgrid(x,y)
Z = funcao(X,Y)
• surf(X,Y,Z) para plotar uma superfície com as faces
preenchidas
• mesh(X,Y,Z) para plotar uma superfície apenas com
as linhas de grade, sem preenchimento
23Curso de MATLAB Básico
24. 5. Criação e Manipulação de Gráficos
• shading flat – muda o sombreamento para básico, com cada
face de uma cor, e sem linhas;
• shading interp – muda o sombreamento para interpolado,
com uma transição suave entre as faces, e sem linhas;
• shading faceted – muda o sombreamento para facetado,
com cada face de uma cor e com linhas (é o padrão);
• colormap(‘mapa’) – muda o mapa de cores; para saber quais
os mapas disponíveis, use “help graph3d”.
24Curso de MATLAB Básico
25. Exercícios
• Plotar um gráfico 2D com as funções seno, cosseno
e tangente, num intervalo entre 0 e 2*pi.
• Plotar um gráfico 3D com:
x = t*sin(t)
y = t*cos(t)
z = t
onde t varia de 0 a 20π.
• Plotar uma superfície 3D de um paraboloide.
25Curso de MATLAB Básico
26. 6. Funções
• function [res1, res2] = nome_funcao (arg1, arg2)
>> cálculos a serem realizados <<
res1 = (...)
res2 = (...)
Cria-se um arquivo “.m”, no diretório de trabalho
iniciado pelo cabeçalho típico de funções, e a função
pode ser acessada por qualquer rotina usando
nome_funcao(argumentos).
Curso de MATLAB Básico 26
27. 6. Funções
• function resultado = nome_funcao (arg1, arg2)
global x y z w
Quando se define alguma variável como global tanto
na rotina principal quanto na função, ela adquire o
mesmo valor ao ser usada nos dois ambientes.
Curso de MATLAB Básico 27
28. 6. Funções
• Raiz da função
fzero(‘funcao’, chute_inicial) para qualquer função
roots([A B C D]) para polinômios Ax³ + Bx² + Cx + D
• Valor mínimo da função
fminsearch(‘funcao’, chute_inicial)
Curso de MATLAB Básico 28
30. Exercícios
Gere dados experimentais xexp, yexp e zexp usando a rotina:
xexp=1:100;
yexp=normpdf(xexp,50,20);
yexp=yexp+0.001*rand(size(yexp))-0.0005;
zexp=cumsum(yexp);
total=max(zexp);
yexp=yexp/total;
zexp=zexp/total*0.999;
x e z são as variáveis independentes, e y é a variável dependente
para a qual a curva deve ser ajustada.
30Curso de MATLAB Básico
31. Exercícios
• A partir destes dados experimentais para x, y e z, ajuste os
parâmetros A e B da correlação y = A*exp(B/x)*(1-z) obtendo
o menor erro quadrático possível entre os valores
experimentais e estimados de y.
• Estime primeiramente os parâmetros por ajuste linear,
linearizando a equação, e em seguida utilize estes parâmetros
como ponto de partida para um ajuste não linear (usando o
comando fminsearch).
• Plote, em um gráfico, a curva experimental (xexp, yexp), a
curva ajustada por regressão linear e a curva ajustada por
regressão não linear.
31Curso de MATLAB Básico
32. 7. Equações Diferenciais
• dx/dt = 2x + 1
function y = dxdt(t, x)
y = 2*x + 1
• dx1/dt = 2x1 + 1
• dx2/dt = 5x2 + 2x1
function y = dxdt(t, x)
y = [2*x(1) + 1 ; 5*x(2) + 2*x(1)]
Curso de MATLAB Básico 32
33. 7. Equações Diferenciais
• Resolução de Equações diferenciais
t = [tinicial : Δt : tfinal]’ - vetor de tempo
[t, x] = ode23s(‘funcao’, t, xinicial) - método antigo
[t, x] = ode45(‘funcao’, t, xinicial) - método novo
• Quaisquer parâmetros podem ser passados para
a função da seguinte forma:
function y = dxdt(t, x, flag, par)
[t, x] = ode45(‘funcao’, t, xinicial, [ ], par)
Curso de MATLAB Básico 33
35. Exercícios
• Deseja-se criar um programa onde:
– o usuário insere a vazão de entrada de água
– o programa calcula Co(t) para várias Fe
Fe = 100 ; 200 ; 300 ; 400 ; 500 L/min
t = 0 a 60 min
– é gerado um gráfico com estas curvas
– são indicados os limites desejados p/ Co
35Curso de MATLAB Básico
36. Exercícios
• Equação diferencial
𝑑𝐶
𝑑𝑡
=
𝐹𝑒 𝐶𝑒
𝑉
−
(𝐹𝑒+𝐹𝑎)𝐶
𝑉
function y = dCdT(t, C, flag, par)
Fe=par(1); Fa=par(2); V=par(3); Ce=par(4);
y = (Fe*Ce)/V - (Fe+Fa)*C/V;
36Curso de MATLAB Básico
37. Exercícios
• Programa principal
clc; clear all; close all;
Fa = input('Informe a vazão de entrada de água ->
');
V=10000; Ce=800;
t=0:1:60'; vazao=100:100:500;
cores=['b' 'g' 'c' 'm' 'k'];
Cmin=250*ones(61,1); Cmax=300*ones(61,1);
plot(t, Cmin, 'r--', t, Cmax, 'r--'); hold on;
37Curso de MATLAB Básico
38. Exercícios
• Programa principal (continuação)
for i=1:5;
Fe=vazao(i);
[T,y] =ode45('dCdT', t, 275, [], [Fe Fa V Ce]);
plot(t, y, cores(i));
end
hold off
xlabel('Tempo (min)');
ylabel('Concentração (g/L)');
legend('Cmin', 'Cmax', 'Fe=100', 'Fe=200',
'Fe=300', 'Fe=400', 'Fe=500');
38Curso de MATLAB Básico
41. 8. Loops (while, for) e Bifurcações (if)
• while / end
Repete as mesmas ações enquanto a condição continuar
sendo verdadeira.
• for / end
Repete as mesmas ações um determinado número de vezes.
• if / elseif / else / end
Faz determinadas ações se a condição A ou B ou C for
verdadeira, e outras ações caso nenhuma seja verdadeira.
Curso de MATLAB Básico 41
42. 8. Loops (while, for) e Bifurcações (if)
• Outra forma de bifurcação é a função Switch:
switch S % define S como um “interruptor”
case 1
% ações caso S seja igual a 1
case 2
% ações caso S seja igual a 2
case N
% ações caso S seja igual a N
end
Curso de MATLAB Básico 42
43. Exercícios
• Encontrar a raiz de funções, usando:
– Método de Newton-Raphson
– Método da Autorrecursão
– Método da Bisseção
– Método da Secante
• Encontrar o valor máximo de funções, usando:
– Método da Busca Sucessiva em 1 dimensão
– Método da Busca Sucessiva em 2 dimensões
• O usuário deve modificar as funções em arquivos “.m”
correspondentes, e fornecer os dados necessários.
43Curso de MATLAB Básico