Você está na página 1de 67

MATLAB

Comandos Bsicos

INTRODUO

Desenvolvido inicialmente na dcada de 70 nas


Universidades do Novo Mxico e Stanford.
Destinado a princpio a cursos de teoria matricial,
lgebra linear e anlise numrica.
Voltado basicamente para matemtica numrica.
Possui vrias ferramentas para aplicao em
diversas reas do conhecimento.

AMBIENTE

PROMPT DE COMANDO
Ao iniciarmos o MATLAB a tela abaixo aparece em
conjunto com o smbolo >> indicando que o software est
pronto para receber comandos:
To get started, select "MATLAB Help" from the
Help menu.

>>

OPERAES BSICAS

OPERADORES RELACIONAIS

CLCULO DE EXPRESSES NUMRICAS


Ao digitarmos a expresso abaixo seguida da
tecla <enter>:
>> 12/2+3*(2^4)

Teremos a resposta:
ans =
54

VARIVEIS
Podemos armazenar valores em variveis no
MATLAB.
Variveis devem ter um nome nico, comeando
com uma letra e podem conter dgitos ou o

smbolo _ (underline).

O MATLAB distinge letras masculas de


minsculas.

EXEMPLOS DE VARIVEIS
>> distancia = 100
distancia =
100
>> tempo = 3
tempo =
3
>> velocidade_media = distancia / tempo
velocidade_media =
33.3333

VARIVEIS
Note que ao digitarmos o nome da varivel, o
smbolo = e o seu valor o matlab armazena a
varivel e a apresenta na tela.
Para suprimir a exibio da varivel adicionamos
um ponto-e-vrgula ao final do comando.
Quando criamos uma expresso e no a
armazenamos em uma varivel o matlab a salva
automaticamente na varivel ans.

VARIVEIS
O

comando who mostra todas as variveis


armazenadas durante uma sesso do
MATLAB.
>> who
Your variables are:
ans
distancia

tempo
velocidade_media

VARIVEIS
O

comando clear apaga uma ou mais


variveis.
>> clear tempo
Apaga somente a varivel tempo.
>> clear velocidade_media distancia
Apaga as variveis velocidade_mdia e
distancia.
>> clear
Apaga TODAS as variveis da sesso.

SALVANDO SESSES
Para salvar uma sesso do MATLAB, v no menu
File e escolha a opo Save Workspace As.
Escolha uma pasta e um nome para o arquivo e
clique em salvar.
Para abrir uma sesso salva anteriormente
escolha novamente o menu File e v na opo
Open. Escolha a pasta onde se encontra o
arquivo, selecione o arquivo e clique em Abrir.

RECUPERANDO COMANDOS
Para evitar redigitao, o Matlab armazena todos
os comandos do usurio durante uma sesso.
Para acessar os comandos anteriores basta
pressionar a tecla (seta para cima) seguidas vezes
at encontrar o comando desejado.
O comando ento pode ser editado e executado
novamente,

VARIVEIS ESPECIAIS
Nome de varivel padro usado para
resultados.
pi
3.1416
eps Menor nmero que somado a 1, cria
um nmero maior do que 1.
inf Infinito.
NaN No nmero.
i e j
realmin menor
1 nmero real positivo
realmax maior nmero real positivo
ans

ALGUMAS FUNES MATEMTICAS


ELEMENTARES
abs(x)

Valor absoluto
acos(x)
Arco cosseno
asin(x)
Arco seno
atan(x)
Arco tangente
cos(x)
Cosseno
exp(x)
Exponencial (ex)
log(x)
Logaritmo natural (base e)
log10(x) Logaritmo na base 10
sin(x)
Seno
sqrt(x)
Raiz quadrada
tan(x)
Tangente

EXPRESSES COM FUNES


>> sin(pi/2)
ans =
1
>> cos(pi/4)^2
ans =
0.5000
>> asin(1)*180/pi
ans =
90

EXEMPLO

Uma identidade trigonomtrica dada por:

onde

EXEMPLO

EXEMPLO
a)

b)

c)

d)

VETORES
O

Matlab pode trabalhar com vetores de


elementos, realizando operaes 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
O

1.8850

2.5133

3.1416

primeiro valor o valor inicial, o segundo o


saltoe o terceiro o valor final.

VETORES

Funo linspace - Gera um vetor linearmente espaado a


partir de um valor inicial, um valor final e um nmero de
elementos.

>> X = linspace(0,pi,6)
X =
0 0.6283 1.2566 1.8850 2.5133 3.1416

OPERAES 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

OPERAES COM VETORES


O

operadores *, / e ^ devem ser precedidos


por um ponto para serem utilizados em
vetores quando queremos realizar uma
operao sobre cada um de seus
elementos.
A^2 significa potncia de matrizes.
A.^2 significa elevar cada elemento do
vetor A ao quadrado.

OPERAES 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 no 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 posio


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 so separados por
espao em branco e as linhas so
separadas por ponto-e-vrgula.

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.

OPERAES COM MATRIZES


Transposio - Utilizamos o operador ' (aspas
simples)
>> M'
ans =
1
2
-7
0
3
1
-1
4
3

OPERAES COM MATRIZES


Determinante

>> det(M)
ans =
-18
Matriz inversa
>> inv(M)
ans =
-0.2778
0.0556
1.8889
0.2222
-1.2778
0.0556

-0.1667
0.3333
-0.1667

OPERAES COM MATRIZES

Todas

as operaes vistas para os vetores


funcionam para as matrizes.
Devemos tomar o cuidado em operaes que
exigem concordncia das dimenses das matrizes.
>> A = [1 2 3];
>> B = [4 5 6];
>> A*B
??? Error using ==> *
Inner matrix dimensions must agree.
>> A*B'
ans =
32

GRFICOS EM DUAS DIMENSES


Podemos gerar grficos a partir de matrizes:
>> X = linspace(0,2*pi,100);
>> Y = sin(X);
>> plot(X,Y)

GRFICOS EM DUAS DIMENSES

Duas linhas no mesmo grfico (seno e cosseno):

>> Z = cos(X);
>> plot(X,Y,X,Z)

GRFICOS EM DUAS DIMENSES


Ttulo para o grfico:
>> title('seno(x) e cosseno(x)')

Nome para o eixo x:


>> xlabel('grau (em radianos)')

Nome para o eixo y:


>> ylabel('variaveis dependentes')

GRFICOS EM DUAS DIMENSES

Resultado:

GRFICOS EM DUAS DIMENSES


Linhas de grade
>> grid

GRFICOS EM TRS DIMENSES


Grficos de Linhas - Funo plot3
>> X = linspace(0, 10*pi, 300);
>> Y = sin(X);
>> Z = cos(X);
>> plot3(X,Y,Z)
>> grid

GRFICOS EM TRS DIMENSES

GRFICOS EM TRS DIMENSES


Grficos de Superfcies - funco mesh
>> v = linspace(-10,10,20);
>> [X, Y] = meshgrid(v,v);
>> Z = X.^2 + Y.^2;
>> mesh(X,Y,Z)
Utilizamos a funo meshgrid para gerar X e Y
como matrizes com valores repetidos que so
utilizadas para gerar a matriz Z.

GRFICOS EM TRS DIMENSES

GRFICOS EM TRS DIMENSES

Funo mesh - superfcies em rede


Funo surf - superfcies coloridas(opacas)
Funo surfl - superfcies coloridas com uma fonte de
luz.
Exemplo 1:
>> surf(X,Y,Z)

Exemplo 2:
>> colormap(gray)
>> surfl(X,Y,Z)

EXEMPLO 1

EXEMPLO 2

ROTAO EM GRFICOS 3D
Para rotacionar um grfico 3D primeiro clique no
boto
presente na janela do grfico.
Aps isto, clique sobre o grfico e mantenha o boto
do mouse pressionado.
Uma caixa ir aparecer indicando a direo do
grfico.
Agora, basta movimentar o mouse para ajustar a
posio desejada do grfico.

SUPERFCIES DE CONTORNO
Funo contour - Gera superfcies de contorno.
>> contour(X,Y,Z,30)

Os trs primeiros parmetros so as matrizes


com os dados para os grficos. O quarto
parmetro o nmero de contornos.

SUPERFCIES DE CONTORNO

SUPERFCIES DE CONTORNO

Funo pcolor - Grfico de pseudocores


>> pcolor(X,Y,Z)

MATEMTICA SIMBLICA
O Matlab no foi desenvolvido originalmente para
trabalhar com matemtica simblica.
Outros softwares concorrentes so voltados para
matemtica simblica como Mathematica e Maple.
Entretanto o Matlab possui uma toolbox que nos
permite trabalhar com expresses simblicas.

VARIVEIS SIMBLICAS
Precisamos informar ao Matlab as nossas variveis
simblicas:
>> syms x y
>> z = x^2 + y^2
z =
x^2+y^2
Acima definimos x e y como variveis simblicas
com o comando syms e definimos z como uma
expresso simblica em funo de x e y.

LIMITE

Limite em um ponto
>> y = sin(x)/x
y =
sin(x)/x
>> limit(y,x,0)
ans =
1
A funo limit tem como parmetros: 1) a funo,
2) a varivel 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

Funo diff - Usada para diferenciar funes de


uma ou mais variveis.
>> 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 funo y
em relao a varivel x.

DERIVADA

Funes

de duas variveis (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 parmetro para a funo diff o
nmero de vezes que queremos diferenciar y em
relao a x.

INTEGRAL

Para integrar uma funo utilizamos a funo 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 parmetros da funo int so os
limites inferior e superior de integrao.

SIMPLIFICAR EXPRESSES
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 EXPRESSES

Comando pretty - Exibe uma expresso em um


formato mais amigvel.

ans =
(2*x^3+12*x^2+1)/(x+4)^2
>> pretty(ans)
3
2
2 x + 12 x + 1
---------------2
(x + 4)

GRFICOS COM FUNES SIMBLICAS


Para

gerar grficos com funes baseadas em


variveis simblicas utilizamos a funo ezplot:
>> syms x
>> y=log(x)
y =
log(x)
>> ezplot(y,0.001,10)
A funo ezplot acha automaticamente a
varivel livre dentro da expresso da funo.
Precisamos informar apenas a funo a ser
plotada e o intervalo de plotagem no caso acima
[0.001, 10].

GRFICOS COM FUNES SIMBLICAS

SUBSTITUIO DE VARIVEIS

Usamos o comando subs para substituir variveis por


valores ou outras variveis em expresses simblicas:
>> syms a x
>> y = a*x^2
y =
a*x^2
>> subs (y,a,2)
ans =
2*x^2

RESOLUO DE EQUAES

Funo

solve - Resolve uma equao algbrica:

>> 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 funo solve resolveu a equao y=0. A funo
numeric encontrou valores numricos para a

soluo da equao.

EXERCCIOS
Plotar os grficos das funes (escolha um intervalo
vlido e representativo):
f(x) = x2 + 2x - 3
f(x) = ln(x)
f(x) = ex
f(x) = tan(x)
f(x,y) = x3 + y2

EXERCCIOS

Resolva os sistemas de equaes lineares

3 x 2 y z 4

a ) x 3 z 2
yz 7

x y 2t 2
y 4z 0

b)
x

3
t

y t 4

EXERCCIOS

Resolva o problema:
Fulano est no alto de um edifcio. Ele pega uma ma,
debrua-se sobre a beirada do terrao e atira-a no ar
diretamente para cima a uma velocidade inicial v0=20m/s.
O terrao encontra-se a 30 metros acima do nvel do solo.
Onde estar a ma a um intervalo arbitrrio de t
segundos mais tarde? Quando ela alcanar a altura
mxima? Qual ser esta altura? Quando a ma atingir o
solo? Com qual velocidade? Considere desprezvel a
resistncia do ar e a acelerao da gravidade igual a 10
m/s2