MATLAB
Comandos Básicos
Introdução
• Desenvolvido inicialmente na década de 70
nas Universidades do Novo México e
Stanford.
• Destinado a princípio a cursos de teoria
matricial, álgebra linear e análise numérica.
• Voltado basicamente para matemática
numérica.
• Possui várias ferramentas para aplicação em
diversas áreas do conhecimento.
Prompt de Comando
• Ao iniciarmos o MATLAB a tela abaixo aparece
em conjunto com o símbolo >> indicando que o
software está pronto para receber comandos:
To get started, select "MATLAB Help" from the
Help menu.
>>
Operações Básicas
•
•
•
•
•
Adição
Subtração
Multiplicação
Divisão
Potenciação
+
–
*
/ ou \
^
Cálculo de Expressões
Numéricas
• Ao digitarmos a expressão abaixo seguida
da tecla <enter>:
>> 12/2+3*(2^4)
• Teremos a resposta:
ans =
54
Variáveis
• Podemos armazenar valores em variáveis no
MATLAB.
• Variáveis devem ter um nome único,
começando com uma letra e podem conter
dígitos ou o símbolo _ (underline).
• O MATLAB distingüe letras maísculas de
minúsculas.
Exemplos de variáveis
>> distancia = 100
distancia =
100
>> tempo = 3
tempo =
3
>> velocidade_media = distancia / tempo
velocidade_media =
33.3333
Variáveis
• Note que ao digitarmos o nome da variável,
o símbolo = e o seu valor o matlab
armazena a variável e a apresenta na tela.
• Para suprimir a exibição da variável
adicionamos um ponto-e-vírgula ao final do
comando.
• Quando criamos uma expressão e não a
armazenamos em uma variável o matlab a
salva automaticamente na variável ans.
Variáveis
• O comando who mostra todas as variáveis
armazenadas durante uma sessão do MATLAB.
>> who
Your variables are:
ans
distancia
tempo
velocidade_media
Variáveis
• O comando clear “apaga” uma ou mais variáveis.
>> clear tempo
Apaga somente a variável tempo.
>> clear velocidade_media distancia
Apaga as variáveis velocidade_média e
distancia.
>> clear
Apaga TODAS as variáveis da sessão.
Salvando Sessões
• Para salvar uma sessão do MATLAB, vá no
menu File e escolha a opção Save
Workspace As. Escolha uma pasta e um
nome para o arquivo e clique em salvar.
• Para abrir uma sessão salva anteriormente
escolha novamente o menu File e vá na
opção Open. Escolha a pasta onde se
encontra o arquivo, selecione o arquivo e
clique em Abrir.
Recuperando Comandos
• Para evitar redigitação, o Matlab armazena
todos os comandos do usuário durante uma
sessão.
• Para acessar os comandos anteriores basta
pressionar a tecla  (seta para cima)
seguidas vezes até encontrar o comando
desejado.
• O comando então pode ser editado e
executado novamente,
Variáveis Especiais
• ans
Nome de variável padrão usado para
resultados.
• pi
3.1416
• eps
Menor número que somado a 1, cria
um número maior do que 1.
• inf
Infinito.
• NaN
Não número.
• iej
1
• realmin menor número real positivo
• realmax maior número real positivo
Algumas Funções Matemáticas
Elementares
•
•
•
•
•
•
•
•
•
•
•
abs(x)
acos(x)
asin(x)
atan(x)
cos(x)
exp(x)
log(x)
log10(x)
sin(x)
sqrt(x)
tan(x)
Valor absoluto
Arco cosseno
Arco seno
Arco tangente
Cosseno
Exponencial (ex)
Logaritmo natural (base e)
Logaritmo na base 10
Seno
Raiz quadrada
Tangente
Expressões com Funções
>> sin(pi/2)
ans =
1
>> cos(pi/4)^2
ans =
0.5000
>> asin(1)*180/pi
ans =
90
Vetores
• O Matlab pode trabalhar com vetores de elementos,
realizando operações sobre eles.
• Definindo um vetor:
>> A = [0 1 2 3 4 5]
A =
0
1
2
3
4
5
>> X = [0 0.2*pi 0.4*pi 0.6*pi 0.8*pi pi]
X =
0
0.6283
1.2566
1.8850
2.5133
3.1416
Vetores
• Outra forma de se criar um conjunto:
>> A = 1:1:5
A =
1
2
3
>> X = 0:pi/5:pi
X =
0 0.6283 1.2566
4
1.8850
5
2.5133
3.1416
• O primeiro valor é o valor inicial, o segundo o
“salto”e o terceiro o valor final.
Vetores
• Função linspace - Gera um vetor linearmente
espaçado a partir de um valor inicial, um valor
final e um número de elementos.
>> X = linspace(0,pi,6)
X =
0 0.6283 1.2566 1.8850 2.5133 3.1416
Vetores
• Função logspace - Gera um vetor
logaritmicamente espaçado a partir de uma
potência inicial, uma potência final e um número
de valores.
>> V = logspace(0,2,5)
V =
1.0000 3.1623 10.0000 31.6228 100.0000
Operações com Vetores
>> B = 2 * A
B =
2
4
6
8
10
>> Y = sin(X)
Y =
0 0.5878 0.9511 0.9511 0.5878 0.0000
>> Z = A.^2
Z =
1
4
9
16
25
Operações com Vetores
• O operadores *, / e ^ devem ser precedidos
por um ponto para serem utilizados em
vetores quando queremos realizar uma
operação sobre cada um de seus elementos.
• A^2 significa potência de matrizes.
• A.^2 significa elevar cada elemento do
vetor A ao quadrado.
Operações com Vetores
• Elevando cada elemento do vetor A ao quadrado:
>> Z = A.^2
Z =
1
4
9
16
25
• Elevando o vetor A ao quadrado:
>> Z = A^2
??? Error using ==> ^
Matrix must be square.
• Teremos um erro pois o vetor A é uma matriz 1x5
e não uma matriz quadrada.
Acesso a Elementos de Vetores
• Acesso a um elemento do vetor:
>> Z(1)
ans =
1
>> Z(2)
ans =
4
>> Z(6)
??? Index exceeds matrix dimensions.
• Temos um erro quando acessamos uma posição
inexistente do vetor.
Acesso a Elementos do Vetor
• Podemos acessar mais de um elemento:
>> Z(1:3)
ans =
1
4
9
>> Z(3:5)
ans =
9
16
25
>> Z(2:4)
ans =
4
9
16
Matrizes
• Podemos criar uma matriz da seguinte forma:
>> M = [1 0 -1; 2 3 4; -7 1 3]
M =
1
0
-1
2
3
4
-7
1
3
• Criamos uma matriz 3x3. Note que os elementos
da linha são separados por espaço em branco e as
linhas são separadas por ponto-e-vírgula.
Matrizes
• Podemos criar matrizes a partir de vetores ou outras
matrizes
>> b = [2 -3 1];
>> Mx = [b' M(:,2:3)]
Mx =
2
0
-1
-3
3
4
1
1
3
• M(:, 2:3) significa a parte da matriz M compreendida por
todas as linhas (:) e as colunas 2 e 3 (2:3).
• A matriz Mx foi gerada concatenando-se o vetor b
transposto e as colunas 2 e 3 da matriz M.
Operações com Matrizes
• Transposição - Utilizamos o operador '
(aspas simples)
>> M'
ans =
1
2
-7
0
3
1
-1
4
3
Operações com Matrizes
• Determinante
>> det(M)
ans =
-18
• Matriz inversa
>> inv(M)
ans =
-0.2778
1.8889
-1.2778
0.0556
0.2222
0.0556
-0.1667
0.3333
-0.1667
Operações com Matrizes
• Todas as operações vistas para os vetores funcionam
para as matrizes.
• Devemos tomar o cuidado em operações que exigem
concordância das dimensões das matrizes.
>> A = [1 2 3];
>> B = [4 5 6];
>> A*B
??? Error using ==> *
Inner matrix dimensions must agree.
>> A*B'
ans =
32
Gráficos em Duas Dimensões
• Podemos gerar gráficos a partir de matrizes:
>> X = linspace(0,2*pi,100);
>> Y = sin(X);
>> plot(X,Y)
Gráficos em Duas Dimensões
• Duas linhas no mesmo gráfico (seno e
cosseno):
>> Z = cos(X);
>> plot(X,Y,X,Z)
Gráficos em Duas Dimensões
• Título para o gráfico:
>> title('seno(x) e cosseno(x)')
• Nome para o eixo x:
>> xlabel('grau (em radianos)')
• Nome para o eixo y:
>> ylabel('variaveis dependentes')
Gráficos em Duas Dimensões
• Resultado:
Gráficos em Duas Dimensões
• Linhas de grade
>> grid
Gráficos em Três Dimensões
• Gráficos de Linhas - Função plot3
>> X = linspace(0, 10*pi, 300);
>> Y = sin(X);
>> Z = cos(X);
>> plot3(X,Y,Z)
>> grid
Gráficos em Três Dimensões
Gráficos em Três Dimensões
• Gráficos de Superfícies - funcão mesh
>> v = linspace(-10,10,20);
>> [X, Y] = meshgrid(v,v);
>> Z = X.^2 + Y.^2;
>> mesh(X,Y,Z)
• Utilizamos a função meshgrid para gerar
X e Y como matrizes com valores repetidos
que são utilizadas para gerar a matriz Z.
Gráficos em Três Dimensões
Gráficos em Três Dimensões
• Função mesh - superfícies em rede
• Função surf - superfícies coloridas(opacas)
• Função surfl - superfícies coloridas com uma
fonte de luz.
• Exemplo 1:
>> surf(X,Y,Z)
• Exemplo 2:
>> colormap(gray)
>> surfl(X,Y,Z)
Exemplo 1
Exemplo 2
Rotação em Gráficos 3D
• Para rotacionar um gráfico 3D primeiro
clique no botão
presente na janela do
gráfico.
• Após isto, clique sobre o gráfico e
mantenha o botão do mouse pressionado.
• Uma caixa irá aparecer indicando a direção
do gráfico.
• Agora, basta movimentar o mouse para
ajustar a posição desejada do gráfico.
Superfícies de Contorno
• Função contour - Gera superfícies de
contorno.
>> contour(X,Y,Z,30)
• Os três primeiros parâmetros são as
matrizes com os dados para os gráficos. O
quarto parâmetro é o número de contornos.
Superfícies de Contorno
Superfícies de Contorno
• Função pcolor - Gráfico de pseudocores
>> pcolor(X,Y,Z)
Matemática Simbólica
• O Matlab não foi desenvolvido
originalmente para trabalhar com
matemática simbólica.
• Outros softwares concorrentes são voltados
para matemática simbólica como
Mathematica e Maple.
• Entretanto o Matlab possui uma “toolbox”
que nos permite trabalhar com expressões
simbólicas.
Variáveis Simbólicas
• Precisamos informar ao Matlab as nossas
variáveis simbólicas:
>> syms x y
>> z = x^2 + y^2
z =
x^2+y^2
• Acima definimos x e y como variáveis
simbólicas com o comando syms e
definimos z como uma expressão simbólica
em função de x e y.
Limite
• Limite em um ponto
>> y = sin(x)/x
y =
sin(x)/x
>> limit(y,x,0)
ans =
1
• A função limit tem como parâmetros: 1)
a função, 2) a variável livre, 3) o ponto onde
deve ser calculado o limite.
Limite
• Limite à esquerda (left) e à direita (right) do ponto:
>> y = tan(x)
y =
tan(x)
>> limit(y,x,pi/2,'left')
ans =
inf
>> limit(y,x,pi/2,'right')
ans =
-inf
Derivada
• Função diff - Usada para diferenciar
funções de uma ou mais variáveis.
>> y = x^3+2*x^2
y =
x^3+2*x^2
>> diff(y,x)
ans =
3*x^2+4*x
• No exemplo acima diff(y,x) deriva a
função y em relação a variável x.
Derivada
• Funções de duas variáveis (derivadas parciais)
>> syms x y
>> z = x^2 + y^2
z =
x^2+y^2
>> diff(z,x)
ans =
2*x
>> diff(z,y)
ans =
2*y
Derivada
• Derivadas de ordens superiores
>> syms y x
>> y = (x^2 -1)/(x-3)
y =
(x^2-1)/(x-3)
>> diff(y,x,2)
ans =
2/(x-3)-4*x/(x-3)^2+2*(x^2-1)/(x-3)^3
• O terceiro parâmetro para a função diff é o número de
vezes que queremos diferenciar y em relação a x.
Integral
• Para integrar uma função utilizamos a
função int:
>> y = x^2
y =
x^2
>> int(y,x)
ans =
1/3*x^3
Integral
• Integral definida
>> int(sin(x),x,0,2*pi)
ans =
0
>> int(sin(x),x,0,pi)
ans =
2
• O terceiro e quarto parâmetros da função int
são os limites inferior e superior de integração.
Simplificar Expressões
• Comando simple:
>> y = (x^3-1)/(x+4)
y =
(x^3-1)/(x+4)
>> diff(y,x)
ans =
3*x^2/(x+4)-(x^3-1)/(x+4)^2
>> simple(y)
ans =
(2*x^3+12*x^2+1)/(x+4)^2
Exibir Expressões
• Comando pretty - Exibe uma expressão
em um formato mais amigável.
ans =
(2*x^3+12*x^2+1)/(x+4)^2
>> pretty(ans)
3
2
2 x + 12 x + 1
---------------2
(x + 4)
Gráficos com Funções
Simbólicas
• Para gerar gráficos com funções baseadas em variáveis
simbólicas utilizamos a função ezplot:
>> syms x
>> y=log(x)
y =
log(x)
>> ezplot(y,0.001,10)
• A função ezplot “acha” automaticamente a variável
livre dentro da expressão da função.
• Precisamos informar apenas a função a ser plotada e o
intervalo de plotagem no caso acima [0.001, 10].
Gráficos com Funções
Simbólicas
Substituição de Variáveis
• Usamos o comando subs para substituir
variáveis por valores ou outras variáveis em
expressões simbólicas:
>> syms a x
>> y = a*x^2
y =
a*x^2
>> subs (y,a,2)
ans =
2*x^2
Resolução de Equações
• Função solve - Resolve uma equação algébrica:
>> syms x; y = -3*x^2+2*x+3;
>> solve(y)
ans =
[ 1/3+1/3*10^(1/2)]
[ 1/3-1/3*10^(1/2)]
>> numeric(ans)
ans =
1.3874
-0.7208
• A função solve resolveu a equação y=0. A função
numeric encontrou valores numéricos para a solução da
equação.
Exercícios
Plotar os gráficos das funções (escolha um
intervalo válido e representativo):
• f(x) = x2 + 2x - 3
• f(x) = ln(x)
• f(x) = ex
• f(x) = tan(x)
• f(x,y) = x3 + y2
Exercícios
• Resolva os sistemas de equações lineares
3x  2 y  z  4

a) x  3z  2
  yz 7

 x  y  2t  2
 y  4z  0

b) 
x

3
t


1

 y  t  4
Exercícios
• Resolva o problema:
Fulano está no alto de um edifício. Ele pega uma
maçã, debruça-se sobre a beirada do terraço e
atira-a no ar diretamente para cima a uma
velocidade inicial v0=20m/s. O terraço encontrase a 30 metros acima do nível do solo. Onde
estará a maçã a um intervalo arbitrário de t
segundos mais tarde? Quando ela alcançará a
altura máxima? Qual será esta altura? Quando a
maçã atingirá o solo? Com qual velocidade?
Considere desprezível a resistência do ar e a
aceleração da gravidade igual a 10 m/s2