Sei sulla pagina 1di 35

Introduo ao MATLAB

COMANDOS, FUNES E
OPERAES BSICAS
INTRODUO
O software MATLAB (MATLAB marca registrada de The MathWorks, Inc.) foi
originalmente desenvolvido para ser um Laboratrio para estudo de Matrizes, porm
atualmente suas capacidades ultrapassam muitas vezes as possibilidades de sua verso original.
Desta forma, o MATLAB hoje um dos principais sistemas interativos e uma das mais
importantes linguagens de programao para computao tcnica e cientfica em geral.
Sua primeira verso foi escrita na Universidade do Novo Mxico e na Universidade de
Stanford, no final da dcada de 70, e destinava-se a cursos de teoria matricial, lgebra linear e
anlise numrica. Hoje, o MATLAB integra anlise numrica, clculo com matrizes,
processamento de sinais, imagens, sons, e construo de grficos em ambiente fcil de usar onde
problemas e solues so expressos matematicamente, ao contrrio dos mtodos de
programao tradicional.
Os usos tpicos do MATLAB incluem:
- Clculos matemticos;
- Desenvolvimento de Algoritmos;
- Modelagem, simulao e confeco de prottipos;
- Anlise, explorao e visualizao de dados;
- Grficos cientficos e de engenharia;
Desenvolvimento de aplicaes, incluindo a elaborao de interfaces grficas com o
usurio.
tambm um sistema interativo cujo elemento bsico de informao uma matriz que
no requer dimensionamento. Esse sistema permite a resoluo de muitos problemas numricos
em apenas uma frao do tempo que se gastaria para escrever um programa semelhante em
outra linguagem, como o Pascal e o Fortran.

O AMBIENTE DO APLICATIVO
A rea de trabalho do MATLAB assemelha-se bastante ao ambiente Windows padro,
com a diferena que o programa oferece uma linha de prompt (como no antigo MS-DOS), onde o
usurio pode digitar comandos.
Os menus do MATLAB so os seguintes:
a) Menu FILE: permite que o usurio abra, feche e salve arquivos ou a rea de trabalho.
Permite ainda, que se alterem as configuraes do software, que se envie arquivos
para impresso, que se abra o editor de janelas e se encerre o programa;
b) Menu EDIT: possui as opes do Windows, tais como undo, copy, paste. Alm disso,
permite que se limpe a rea de trabalho;

http://ramoieeeufpatuc.blogspot.com

Introduo ao MATLAB
c) Menu WINDOWS: menu que permite a alternncia entre as vrias janelas abertas
durante a execuo do programa;
d) Menu HELP: contm os tpicos de ajuda e informaes gerais sobre o software.
Na barra de menu, dois botes se destacam. O primeiro o boto Workspace Browser,
que abre uma janela contendo a relao de todas as variveis, seus nomes, suas classes e seus
tamanhos. O segundo boto o Path Browser, que permite que um novo diretrio seja
adicionado ao path do MATLAB.

CAPTULO 1 COMANDOS, FUNES E OPERAES


BSICAS
Comandos introdutrios
demo
Usado para exibir uma demonstrao do MATLAB;
clock
Fornece o ano, o ms, a hora, o minuto e os segundos;
date
Retorna a data atual;
clc
Retorna o cursor ao lado superior esquerdo;
clear
Elimina todas as variveis no permanentes eventualmente na rea de trabalho corrente. Se
for preciso eliminar somente uma varivel, digamos y, basta digitar o comando clear y;

http://ramoieeeufpatuc.blogspot.com

Introduo ao MATLAB
who
Todas as variveis da rea de trabalho corrente aparecero na tela;
whos
Lista o nome e o tipo das variveis no Workspace ou da varivel fornecida, whos y;
help
Oferece instrues sobre as funes do programa. Se for necessrio obter informaes sobre
uma funo, digamos plot, basta digitar o comando help plot;
home
Move o cursor para o topo da tela

Caracteres especiais
O MATLAB usa os seguintes caracteres especiais:
=
Comando de atribuio;
[]
Usado na formao de vetores e de matrizes;
()
Usado para a quebra da precedncia de operadores em expresses aritmticas;

Usado para separar subscritos e argumentos de funes;


;
Usado para encerrar linhas e para suprimir impresso;
:
Usado para subscrever conjuntos e para a gerao de vetores;
%
Usado para introduzir comentrios.

Variveis: escalares, vetores e matrizes


O MATLAB baseado em manipulao de matrizes (o nome MATLAB vem do ingls
MATrix LABoratory). Neste programa o nome de varivel deve ser alfanumrico comeando
com letra, sendo que letras minsculas e maisculas so diferenciadas.
Exemplos: Freq, V, h2, x4
Obs.: ans uma varivel reservada do MATLAB que armazena o ltimo valor calculado.
http://ramoieeeufpatuc.blogspot.com

Introduo ao MATLAB
Vetores e matrizes so definidos da seguinte forma:
Valores numricos
Devem ser definidos entre [ ].
Vetores coluna
So delimitados por ou ,.
Linhas
So delimitadas por ;.
Exemplos:
>> escalar=27
escalar =
27

>> vetor_coluna=[10;20;30]
vetor_coluna=
10
20
30

>> matrizb=[1.5
3.4
7
1
6.8

2
4.7
2
9]

matrizb=
1.5000

2.0000

4.7000

3.4000

7.0000

2.0000

1.0000

6.8000

9.0000

>> vetor_linha=[1 2 5]
vetor_linha =
1

>>matrizA=[1.2 10 15;3 5.5 2;4 6.8 7]


matrizA =
1.2000

10.0000

15.0000

3.0000

5.5000

2.0000

4.0000

6.8000

7.0000

>> f=[1 -4 3,...


5 9 -7]

http://ramoieeeufpatuc.blogspot.com

Introduo ao MATLAB
f=
1

-4

-7

Podemos tambm definir uma matriz usando outra que j est definida. Por exemplo,
considere as seguintes matrizes:
>> B=[1.5,3.1];
>> S=[3.0 B]

Estes comandos equivalem a:


>> S=[3.0 1.5 3.1];

Podemos tambm mudar e adicionar valores na matriz usando uma referncia entre
parnteses. Assim, o seguinte comando:
>> S(2)=-1.0;

Muda o segundo valor da matriz S de 1.5 para -1.0.


A ordem da matriz pode ser alterada. Se executarmos o seguinte comando:
>> S(4) = 5.5

Ento a matriz S ter quatro valores em vez de trs. Se executarmos o comando:


S(8)=9.5;

Ento a matriz S ter 8 elementos, e os valores de S(5), S(6) e S(7) so automaticamente


nulos, j que no foram atribudos valor para eles.

O operador de dois pontos (:)


O uso do operador de dois pontos (:) til na criao de matrizes ou vetores.
Dependendo do argumento, pode significar todas as linhas ou todas as colunas da matrizreferncia. Para o nosso exemplo, temos:
>> dados=[0.1,0.0; 0.1 0.2; 0.3 0.8];
>> x=dados (:,1);
>> y=dados(:,2);

Os elementos do vetor x correspondem primeira coluna de dados. O segundo comando


cria um vetor y cujos elementos correspondem segunda coluna da matriz dados.
Se o operador dois pontos for usado na seguinte notao:
>> V=1:8;

A matriz V contm os valores 1, 2, 3, 4, 5, 6, 7 e 8. O operador : entre os dois nmeros


inteiros gera todos os inteiros entre os dois nmeros especificados. Se for usado para separar
trs nmeros, os dois pontos geraro valores entre o primeiro e terceiro nmeros, usando o
http://ramoieeeufpatuc.blogspot.com

Introduo ao MATLAB
segundo nmero como incremente. A notao abaixo gera um vetor-linha denominado tempo
que contm os nmeros de 0.0 : 0.5 com incrementos de 0.5:
>> tempo=0.0:0.5:5.0;

O incremento tambm pode ser um valor negativo com:


>> valores=10:-1:0;

Os elementos de valores so 10,9,8,7,6,...,0.

Comando input
Para entrar com os valores da matriz, via teclado, utiliza-se o comando input que mostra
um texto e ento espera por uma entrada. Considere o comando:
f=input(Valores de f:);

Quando este comando executado, o texto Valores de f: mostrado na tela. O


usurio pode entrar com uma expresso como [ 2 5 8 ] o qual especifica valores para f. J que o
comando input termina com um ponto-e-vrgula, os valores de f no so imprimidos quando o
comando executado.

Comando format
Por definio, se o elemento de uma matriz for um nmero inteiro, o MATLAB
apresenta o resultado como nmero inteiro. Se o elemento for um nmero real, o MATLAB
apresenta-o com cinco dgitos significativos. Podemos alterar o formato numrico utilizando o
comando format.
Exemplo: seja uma varivel V que armazene a raiz quadrada de 2.
>> V = sqrt(2)

De acordo com o formato numrico escolhido, a varivel A pode estar apresentada sob a
forma:
Comando MATLAB

Varivel V

Descrio

Format long

1.41421356237310

16 dgitos

Format short

1.4142

5 dgitos formato numrico padro

Format short e

1.4142e+000

5 dgitos notao cientfica

Format long e

1.414213562373095e+000

16 dgitos notao cientfica

http://ramoieeeufpatuc.blogspot.com

10

Introduo ao MATLAB

Operadores e funes matemticas


Operaes entre escalares
Clculos aritmticos so identificados usando expresses. Uma expresso pode ser to
simples como uma constante, ou pode ter matrizes e constantes combinadas com operaes
aritmticas. Uma expresso pode ser resolvida e armazenada em uma varivel especfica, como
no comando seguinte, o qual especifica que os valores em u e i sero multiplicados, e o produto
armazenado em uma varivel p:
>> p=u*i

Operaes Aritmticas entre dois Escalares


Operao

Forma Algbrica

MATLAB

Adio

a+b

a+b

Subtrao

a-b

a-b

Multiplicao

ab

a*b

Diviso

a:b

a/b

Exponenciao

ab

a^b

Exemplo: Suponha que queremos calcular a corrente que passa no emissor de um


transistor bipolar de juno, onde ib=20mA e =100. A expresso no MATLAB torna-se a
seguinte:
>> ib=20*(10^(-3));
>> beta=100;
>> ie=(beta+1)*ib;
>> ie
ie=
2.0200

Funes matemticas elementares


As funes matemticas elementares incluem funes para executar um nmero de
clculos comuns como o clculo de valor absoluto e a raiz quadrada. A seguir uma lista destas
funes com uma breve descrio:
abs(x)
Calcula o valor absoluto de x.
sqrt(x)
Calcula a raiz quadrada de x.
http://ramoieeeufpatuc.blogspot.com

11

Introduo ao MATLAB
round(x)
Arredonda o valor de x para o inteiro mais prximo.
fix(x)
Arredonda o valor de x para o inteiro mais prximo de zero
floor(x)
Arredonda o valor de x para o inteiro mais prximo de -
ceil(x)
Arredonda o valor de x para o inteiro mais prximo de .
sign(x)
Se x menor que zero, a funo retorna ao valor -1; se x for igual a zero, retorna ao valor
zero; caso contrrio, a funo retorna ao valor 1.
rem(x,y)
Retorna o resto da diviso x/y. Por exemplo, rem(25,4) 1.
exp(x)
Esta funo retorna ao valor de ex, onde e a base para logaritmo natural.
log(x)
Retorna a ln x, o logaritmo natural de x para a base e.
log10(x)
Retorna a log10x, ou seja, o logaritmo de x na base 10.
Exerccio
Calcule as seguintes expresses:
>> round(-2.8);
>> fix(-2.8);
>> floor(-2.8);
>> ceil(-2.8);
>> abs(round(-2.8));
>> sqrt(floor(9.7));
>> rem(13,2);
>> floor(ceil(9.7));
>> log10(100)-log10(0.001);
>> abs(-5.5);
>> round([0:0.3:2,1:0.74:4]);

http://ramoieeeufpatuc.blogspot.com

12

Introduo ao MATLAB
Funes trigonomtricas
As funes trigonomtricas supem que os ngulos estejam representados em radianos.
A seguir uma lista de funes trigonomtricas com uma breve descrio:
sin(x)
Calcula o seno de x, em radianos.
cos(x)
Calcula o cosseno de x, em radianos.
tan(x)
Calcula a tangente de x, em radianos.
asin(x)
Calcula o arcoseno de x.
acos(x)
Calcula o arcosseno de x
atan(x)
Calcula o arcotangente de x.
atan2(x,y)
Calcula o arcotagente do valor de y/x.
Obs.: As outras funes trigonomtricas podem ser calculados usando combinaes, e o
valor de representado por pi.
Funes Hiperblicas
Estas funes so teis em aplicaes como o projeto de alguns tipos de filtros digitais.
O MATLAB inclui vrias funes hiperblicas, como as mostradas abaixo:
sinh(x)
Calcula o seno hiperblico de x.
cosh(x)
Calcula o cosseno hiperblico de x.
tanh(x)
Calcula a tangente hiperblica de x.
asinh(x)
Calcula o seno hiperblico inverso de x.

http://ramoieeeufpatuc.blogspot.com

13

Introduo ao MATLAB
acosh(x)
Calcula o cosseno hiperblico inverso de x.
atanh(x)
Calcula a tangente hiperblica inversa de x.
Operaes aritmticas com nmeros complexos
Os comandos MATLAB reconhecem os nmeros complexos usando i para representar
-1. O comando a seguir define uma varivel complexa:
>> Z=2-0.5*i;

O MATLAB inclui vrias funes que so especficas aos nmeros complexos:


real(x)
Calcula a parte real do nmero complexo x
imag(x)
Calcula a parte imaginria do nmero complexo x.
conj(x)
Calcula o conjugado do nmero complexo x.
abs(x)
Calcula o mdulo do nmero complexo x.
angle(x)
Calcula o ngulo usando o valor de atan2(IMAG(x), real(x)), e portanto o ngulo est entre
- e .
Exerccios
(Clculo) Escolha um valor de x e calcule as expresses abaixo:
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)

y=-1/x
y=tg 2x
y=cos(x/2)
y=1/(x-3)
y=1+2x-x
y=2-x+1
y=||x| - 1|
y=|cos x|
y=sec(x)
z=2x j3x

http://ramoieeeufpatuc.blogspot.com

14

Introduo ao MATLAB
(Variveis complexas) Calcule o mdulo e a fase dos nmeros complexos abaixo:
a)
b)
c)
d)

24+j7
1+j1
-8+j83
4+j3

http://ramoieeeufpatuc.blogspot.com

15

Introduo ao MATLAB

MATRIZES, POLINMIOS E
FUNES ESPECIAIS
MATRIZES
Criao de matrizes especiais
Magic Square
Uma matriz magic square de ordem n uma matriz n n constituda de nmeros
inteiros de 1 a n. Os elementos aij da matriz esto dispostos de forma tal que o somatrio de
cada linha igual ao somatrio de uma coluna.
magic(n)
Matriz magic square de ordem n.
Exemplo:
>>magic(3),magic(2),magic(4)
ans =

Zeros
Esta funo gera uma matriz cujos elementos aij so nulos.
zeros(n)
Gera uma matriz zero, quadrada, de ordem n;
zeros(m,n)
Gera uma matriz zero de ordem mn
Exemplo:
>>zeros(2),zeros(3),zeros(2,3)

Ones
A funo ones gera uma matriz cujo valor dos elementos aij unitrio.
ones(n)
Gera uma matriz quadrada de ordem n;
ones(m,n)
Gera uma matriz de ordem mn.
http://ramoieeeufpatuc.blogspot.com

16

Introduo ao MATLAB
Exemplo:
>>ones(2), ones(4),ones(4,5)

Eye
A matriz identidade pode ser gerada pelo MATLAB atravs da funo eye. Uma matriz
identidade uma matriz escalar de qualquer ordem cujos elementos aij so iguais a 1 para i=j.
eye(n)
Gera uma matriz identidade de ordem n.
eye(m,n)
Gera uma matriz de ordem mn.
Exemplo:
>>eye(3),eye(4),eye(2,3)

Pascal
Cria uma matriz cujas diagonais lembram o tringulo de Pascal. Assim, se usarmos o
comando pascal(4), a seguinte matriz gerada:
1

10

10

20

Rand
Cria matriz de nmeros pseudo-aleatrios uniformemente distribudos entre 0 e 1.
rand(n)
rand(n,m)
>>rand(2),rand(3,2)

Manipulao com matrizes


Transposta
A transposta de uma matriz uma nova matriz onde as colunas so formadas pelas
linhas da matriz original.
A
>>x=magic(3), x; y=rand(4),y

Matriz inversa
Por definio o inverso de uma matriz quadrada A a matriz A-1.
http://ramoieeeufpatuc.blogspot.com

17

Introduo ao MATLAB
inv(a)
>>Inv(x),inv(y),inv(x),inv(y)

Determinante
No MATLAB, o comando utilizado para se achar o determinante de uma matriz
det(A).
>>det(x), det(y), det(inv(x),det(inv(rand(3)))

Comandos de troca
rot90
Uma matriz A pode sofrer uma rotao de 90 usando-se o comando rot90.
>>B=rot90(x),rot90(y),C=rot90(A,2)

fliplr
Esse comando troca o lado esquerdo com o direito de uma matriz.
>>fliplr(x), fliplr(y)

flipud
Esse comando troca a parte de cima com a parte de baixo de uma matriz.
>>flipud(x), flipud(y), flipud(inv(x))

diag
Esse comando extrai os elementos da diagonal principal da matriz x e os coloca em um vetor
coluna. Desta forma, temos:
>>diag(x), diag(y), diag(inv(rand(3)))

triu
Este comando trata uma matriz preenchendo com zeros nos lugares dos antigos elementos
localizados abaixo da diagonal principal.
>>triu(x), triu(y), triu(rand(2))

Operaes com matrizes


Adio e subtrao
Matrizes de mesma dimenso podem ser somadas ou subtradas. Considere as seguintes
http://ramoieeeufpatuc.blogspot.com

18

Introduo ao MATLAB
matrizes A e B:
>>A=[2 3;4 5;6 7]
>>B=[1 0;2 3;0 4]

Para a realizao da soma dessas duas matrizes utiliza-se o seguinte comando:


>>C = A + B

E para a realizao da subtrao utiliza-se este comando:


>>C = A-B

Exemplo:
>>y = A -1, y=B+3-C

Multiplicao
A multiplicao de duas matrizes corresponde ao somatrio de produtos das linhas i da
primeira matriz e das colunas j da segunda matriz. Como o somatrio de produtos requer que os
vetores tenham o mesmo nmero de elementos, ento o nmero de colunas de A deve ser igual
ao nmero de linhas de B.
No MATLAB podem ser usados os seguintes comandos:
>>A = [2 5 1;0 3 -1];
>>B = [1 0 2;-1 4 -2;5 2 1];
>>C = A*B

Exemplo:
>>x=[1;2;3],y=[ 4;5;6],x*y,x*y,y*x,5*x,3*y

Exponenciao matricial
A exponenciao de uma matriz A, de dimenso n n, uma matriz nn obtida atravs
da funo expm(A). Isto :
>>expm(A) = 1+A+A/2!+A/3!+

Obteno dos quadrados dos elementos de uma matriz


Para uma matriz A, o comando A .^ produz uma nova matriz, cujos novos elementos so
o quadrado de seus elementos correspondentes em A.
Exemplo:
A= [1 2 ; 3 4], B=[1+j 2-2j; 3+4j 5-j], A.^2, B.^2

Multiplicao e diviso de arranjos


A multiplicao de arranjos elementos a elemento identificada pelo smbolo .*. Se x e
http://ramoieeeufpatuc.blogspot.com

19

Introduo ao MATLAB
y tiverem a mesma dimenso, ento a execuo do comando x.*y resulta no arranjo cujos
elementos so o produto de cada um dos elementos individuais de x e y.
>>x=[1 2 3],y=[ 4 5 6 ],z=x.*y

Autovalores
Se A uma matriz nn, ento os n nmeros
que satisfazem a relao Ax = x, so
os autovalores de A. Eles podem ser determinados usando-se o comando eig(A) que retorna os
autovalores sob a forma de um vetor coluna.
>>A = [ 0 1 ; -1 0], eig(A)

ANLISE POLINOMIAL
Representao
Como exemplo, vamos tomar o seguinte polinmio:
f(x)=3x 4 0.5x + x 5.2
Se x assumir valores escalares, podemos escrever:
>>f(x) = 3*x^4 0.5*x^3 + x - 5.2;

Se x for um vetor ou uma matriz devemos escrever:


>>f(x) = 3*x.^4 0.5*x.^3 + x - 5.2;

Onde o tamanho da matriz f ser o mesmo da matriz x.

Equao caracterstica
As razes da equao caracterstica so idnticas aos autovalores da matriz A. A equao
caracterstica da matriz A calculada atravs de p=poly(A).
Por exemplo, se uma matriz A for igual a [ 0 1 0;0 0 1; -6 -11 -6] ento o comando
poly(A) conduz a:
1

11

Razes de polinmios
Achar as razes de um polinmio, isto , os valores para os quais o polinmio igual a
zero, um problema comum em muitas reas do conhecimento, como por exemplo, achar as
razes de equaes que regem o desempenho de um sistema de controle de um brao robtico,
ou analisando a resposta de um motor, e analisando e estabilidade de um filtro digital.
Estas razes podem ser obtidas atravs do comando r = roots(p), sendo p um vetor linha
http://ramoieeeufpatuc.blogspot.com

20

Introduo ao MATLAB
qualquer. As razes podem ser rearrumadas de novo no polinmio original com o comando
q = poly(r).
Exerccio: Ache as razes dos seguintes polinmios:
a) x + 2x + 4
b) 3x - 2x + 5x 20
c) 4x4 2x + 10
d) 8x - 12x + 2

Operaes aritmticas
Soma e subtrao
Para somar ou subtrair polinmios basta somar ou subtrair seus respectivos coeficientes.
O MATLAB no apresenta um comando especfico para somar polinmios. A soma ou
subtrao padro funciona se ambos os vetores polinomiais forem do mesmo tamanho.
Somemos os polinmios a seguir:
g(x) = x4 3x - x + 2.4
h(x) = 4x - 2x + 5x 16
som(x) = g(x) + h(x)
sub(x) = g(x) h(x)
Produto
O produto dos polinmios a convoluo de seus coeficientes. O produto dos polinmios
a(s) e b(s) pode ser obtido com o comando c=conv(a,b).
Exemplo:
>>a=[1 0 -20.6]; b=[ 1 19.6 151.2]; c=conv(a,b)

Derivada e integral
O comando polyder serve para derivar o polinmio, enquanto que o comando polyint
serve para integrar o polinmio.
Exemplo:
>>p=[ 4 2 2 1 3];
>>pd = polyder(p)

ans = 16 6 4 1
>>polyint(p)
ans =

0.8 0.5 0.66 0.5 3 0

Exerccio: derivar e integrar os seguintes polinmios:


g(x) = x4 - 3x - x + 2.4
h(x) = 4x - 2x + 5x 16
http://ramoieeeufpatuc.blogspot.com

21

Introduo ao MATLAB

Avaliao de polinmios
Para avaliar um polinmio utiliza-se o comando polyval, exemplo: para calcular o
polinmio x + 3x - 5x + 2, entre [-5,5] utilizam-se os comandos abaixo:
>>pn = [ 1 3 -5 2];
>>xn = [ -5:0.1:5];
>>yn = polyval(pn,xn);
>>plot(xn,yn)

Figura 1. Plot(xn, yn)

Ajuste por polinmio (comando polyfit)


Dadas duas sries X e Y, e grau de polinmio N, retorna coeficiente de polinmio de
grau N que melhor aproxima (mtodo mnimos quadrados) a curva gerada por (X,Y).
Exemplo:
>>x=1:10;
>>y=[ 2 3 6 2 1 1 10 4 9 3];
>>p3=polyfit(x,y,3)

% calcula polinmio de grau 3

>>xn = 0:0.1:11;
>>yn = polyval(p3,xn);
>>plot(x,y,bo:,xn,yn,r)

http://ramoieeeufpatuc.blogspot.com

22

Introduo ao MATLAB

Figura 2. plot(x,y,bo:,xn,yn,r)

http://ramoieeeufpatuc.blogspot.com

23

Introduo ao MATLAB

GRFICOS
INTRODUO
O sistema grfico do MATLAB incorpora uma variedade de tcnicas sofisticadas para
apresentao e visualizao de dados. Este sistema construdo atravs de um conjunto de
objetos grficos, tais como linhas e superfcies, cuja presena pode ser controlada pelo ajuste dos
valores das propriedades de cada objeto. Neste captulo mostraremos os recursos disponveis no
MATLAB de criao e manipulao de figuras para apresentao de resultados em formato
grfico.
Engenheiros usam grficos para analisar e resolver problemas e situaes. Por isso
muito importante aprendermos a interpretar e gerar grficos e suas formas. Vamos aprender
como o MATLAB pode nos ajudar a gerar grficos.

1. GRFICOS 2-D
muito comum engenheiros e cientistas usarem grficos x - y. Os dados que ns
plotamos so usualmente lidos por um arquivo ou calculados em nossos programas.
Geralmente assumimos que valores de x representam variveis independentes e que
valores de y representam variveis dependentes. Os valores de y podem ser calculados usando as
funes de x, ou os valores de x e y podem ser retirados de experincia.
1.1 Coordenadas Retangulares
Os pontos retangulares identificam os pontos no sistema de coordenadas cartesianas com
suas posies ao longo dos eixos horizontal e vertical como na figura a seguir.

Basicamente, os grficos so construdos conforme os passos abaixo:


1. Cria-se um vetor X com as coordenadas do eixo das abscissas;
2. Escreve-se a funo desejada, a partir do vetor X, a qual criar um novo vetor Y das
ordenadas;
3. Desenha-se o grfico, o que ser ensinado mais adiante.

http://ramoieeeufpatuc.blogspot.com

24

Introduo ao MATLAB

Os pares ordenados (x,y) assim criados so marcados no grfico e ligados por segmentos
retas (interpolao linear). Observa-se, portanto, que, quanto menor for o incremento do vetor X,
mais pares ordenados sero criados e, consequentemente, melhor ser a preciso do grfico. Em
compensao, uma maior quantidade de memria utilizada.
Entre as inmeras funes existentes, esto listadas abaixo apenas as mais usadas.
plot(x,y)
uma funo bsica de gerao de grficos no MATLAB. Gera grfico bidimensional com
eixos x e y lineares.
Exemplo:
>>x=[0:0.2:10];
>>y=x.^2;
>>plot(x,y)

A funo plot pode ser tambm usada no desenho de mais de um grfico em uma mesma
figura. Para isso, usa-se a seguinte notao:
plot(X1, Y1, X2, Y2, ... , Xn, Yn) ,
onde X1 e Y1 correspondem s coordenadas do grfico 1, X2 e Y2 correspondem s
coordenadas do grfico 2, e assim sucessivamente.

Figura 3. Grfico do plot (x,y)

http://ramoieeeufpatuc.blogspot.com

25

Introduo ao MATLAB
Smbolo
y
m
c
r
g
b
w
k

Cor
amarelo
magenta
azul-claro
vermelho
verde
azul
branca
preta

Smbolo
.

x
+
*

s
d
v
^
<
>
p
h

Marcador
ponto
crculo
xis
cruz
estrela
quadrado
losango
tringulo p/ baixo
tringulo p/ cima
tringulo p/ esquerda
tringulo p/ direita
pentagrama
hexagrama

Smbolo
:
-.
--

Tipo de linha
slida
pontilhada
trao-ponto
tracejada

Tabela 1: Formatao, em grficos, de cor, marcador e tipo de linha.


A formatao de cor, marcador e tipo de linha dos grficos tambm pode ser configurada
pelo usurio. Para isso usa-se a seguinte notao:
plot(X1, Y1, Conf1, X2, Y2, Conf2, ... , Xn, Yn, Confn) ,
onde, no lugar de Conf1, Conf2, ... , Confn, usam-se os caracteres especificados pela Tabela
1.
Exemplo:
>>plot(x,y,ko--,x,10*x,*)

Para criar grficos em janelas diferentes, usa-se o comando figure(n) antes do comando
plot, onde n o nmero da janela de figuras. Caso contrrio, cada novo grfico criado ser
plotado na ltima janela aberta (grfico corrente). Para apagar o grfico da janela corrente sem
fech-la, escreve-se o comando clf.

Figura 4. Grfico de plot(X,Y,ko,X,10*X,*).


http://ramoieeeufpatuc.blogspot.com

26

Introduo ao MATLAB
subplot
Divide a janela de figuras em uma matriz m x n de sub-janelas, selecionando uma das
sub-janelas pelo seu nmero correspondente. Esses nmeros esto ordenados sucessivamente ao
longo das linhas. As entradas dessa funo so respectivamente o nmero de linhas e colunas da
janela e a posio do par de eixos corrente.
Exemplo:
>>subplot(2,2,1)
>>plot(x,x.^2)
>>subplot(2,2,2)
plot(x,10*x)
>>subplot(2,2,3)
>>plot(x,log10(x+1))

Figura 5. Par de eixos 1, 2 e 3 da janela de figuras.

semilogx(x,y)
Este comando gera grfico usando escala linear para y e escala logartmica para x.
semilogy(x,y)
Este comando gera grfico usando escala linear para x e escala logartmica para y.
loglog(x,y)
Este comando gera grficos com escala logartmica para ambos os eixos.
Exemplo:
>>x=[0:0.2:10];
>>clf
>>semilogx(x,10*x)

http://ramoieeeufpatuc.blogspot.com

27

Introduo ao MATLAB

Grficos mltiplos
plotyy
Plota duas curvas no mesmo grfico com diferentes escalas para o eixo y. A primeira delas
tem escala esquerda, e a segunda tem escala direita.
Exemplo:
>>plotyy(x,y,x,cos(x));

Quando se executa este comando a curva correspondente a x, y e a curva correspondente


so plotadas no mesmo grfico. O MATLAB diferencia as curvas por cores.

Figura 6. Parbola e cosseno com diferentes escalas para o eixo y.

Grficos polares
Grficos polares so teis quando valores so representados por ngulo e magnitude.
Quando se trabalha com coordenadas polares, um ponto representado por um ngulo
e uma
magnitude r. O valor de
geralmente dado entre 0 e 2 . A magnitude um valor positivo
que representa a distncia do eixo que fornece o ngulo at o ponto.
O comando no MATLAB para gerar grficos polares :
polar( , r)
Este comando generaliza grficos polares com ngulo
correspondente.

(em radiano) e magnitude r

Exemplo 1:
>>ang=[0:.1:2*pi];
>>raio=10*ang;
>>polar(ang, raio);

http://ramoieeeufpatuc.blogspot.com

28

Introduo ao MATLAB

Figura 7. Grfico da funo polar.

Exemplo 2:
>>theta=0:2*pi/100:2*pi;
>>r=theta/(2*pi);
>>polar(theta,r)

O MATLAB tambm trabalha com alguns tipos especiais de grficos, tais como:
bar(x,y)
Este comando gera grficos de barras com elementos do vetor y localizados no vetor x,
contm o mesmo espao entre os vetores.
stairs(x,y)
Este comando gera um grfico de degraus com os elementos do vetor y localizados no vetor
x, contendo o mesmo espao entre os valores.
stairs(y)
Este comando gera um grfico de degraus com os elementos do vetor y.
Quando se trata de grficos 2-D, interessante citarmos a funo:
comet(y)
Dados x e y, ele gera grfico com exibio de trajetria animada.

GRFICOS 3-D
Para gerar um arquivo que representa uma superfcie 3-D, primeiramente calculamos os
valores de x e y que representam as variveis independentes e depois calculamos os valores de z
que representa os valores da superfcie. Nesta seo apresentaremos as principais funes de
criao e manipulao de grficos tridimensionais.
http://ramoieeeufpatuc.blogspot.com

29

Introduo ao MATLAB
Tratando-se de dimenses espaciais comearemos com a funo:
plot3
Plota pontos e linhas em 3D, a partir de trs vetores de coordenadas de mesmo tamanho.
Exemplo
>>t=0:0.1:10*pi;
>>plot3(t.*sin(t),t.*cos(t),t);

Figura 8. Grfico do comando plot3.

O comando meshgrid tem os argumentos do vetor x e y, ou seja, transforma o domnio


especificado pelos vetores x e y em vetores que podem ser usados em clculos de funo de duas
variveis e construo de grfico 3D.
meshgrid
Dados dois vetores x e y, ele retorna duas matrizes, Mx e My, contendo a malha de
coordenadas necessrias para gerao de superfcies.
Exemplo:
>>x=1:3;
>>y=1:3;
>>[Mx,My]=meshgrid(x,y)
>>Mx =
1

My =
1

http://ramoieeeufpatuc.blogspot.com

30

Introduo ao MATLAB
1

A funo acima citada utilizada para gerar dados para todas as outras funes 3D, tais
como:
mesh(mx,my,mz)
Gera malha em 3D, a partir de trs matrizes.
Exemplo:
>> [X,Y] = meshgrid(-2:.2:2, -2:.2:2);
>> Z = X .* exp(-X.^2 - Y.^2);
>> mesh(X,Y,Z)

Figura 9. Grfico do comando mesh.

surf(mx,my,mz)
Gera superfcie a partir de coordenadas 3D.
Exemplo:
>> surf(X,Y,Z);

As cores, tanto da superfcie quanto da malha em 3D, esto codificadas de acordo com a
altura relativa dos pontos no eixo z. Quanto maior for z, mais avermelhada ser a cor, e quanto
menor for z, mais azulada ela ser.

http://ramoieeeufpatuc.blogspot.com

31

Introduo ao MATLAB

Figura 10. Grfico do comando surf.

Grficos 3D Especiais:
cylinder(raio,n)
Cria um cilindro de altura 1, onde os parmetros de entrada so o raio e o nmero de faces
(N).
sphere(n)
Cria uma esfera de raio 1. N o nmero de faces.
Entre outras funes importantes acerca da criao de grficos no MATLAB, podemos
citar as seguintes:
ezplot3(x(t),y(t),z(t))
Gera grfico 3D a partir das equaes paramtricas x(t), y(t) e z(t).
Exemplo
>>ezplot3(cos(4*t),sin(2*t),1./(t+1))

ezcontour, ezcontourf, ezmesh, ezmeshc, ezsurf, ezsurfc


Geram grficos 3D a partir de equaes de funes com duas variveis.
Exemplo:
>>equacao=cos(x)*y;
>>subplot(2,3,1)
http://ramoieeeufpatuc.blogspot.com

32

Introduo ao MATLAB
>>ezcontour(equacao)

% curva de nvel de superfcie

>>subplot(2,3,2)
>>ezcontourf(equacao) % rea de nvel de superfcie
>>subplot(2,3,3)
>>ezmesh(equacao)

% malha

>>subplot(2,3,4)
>>ezmeshc(equacao)

% malha com curva de nvel

>>subplot(2,3,5)
>>ezsurf(equacao)

% superfcie

>>subplot(2,3,6)
>>ezsurfc(equao)

% superfcie com curva de nvel

Exerccio
Gerar 12 pontos de uma funo para os valores de x comeando de x=0 e incrementando
de 0.5;
y = 5x.^2:
a) Gerar o grfico linear desta funo;
b) Gerar o grfico desta funo com escala logartmica x;
c) Gerar o grfico desta funo com escala logartmica y;
d) Gerar o grfico loglog desta funo;

REFERNCIAS
Grupo PET TELE. Apostila de Introduo ao Matlab/Octave. Universidade Federal Fluminense
(2011). Disponvel em: < http://www.telecom.uff.br/pet/petws/downloads/apostilas/MATLA
B.pdf>. Acessado em 17 de junho de 2012.
RIBEIRO, J. M & COVACIC, M. R. Introduo ao MATLAB. Universidade Estadual Paulista
UNESP (2007). Disponvel em: < http://www.ebah.com.br/content/ABAAABOecAI/intro
ducao-ao-matlab-unesp-ilha-solteira>. Acessado em 17 de junho de 2012.

http://ramoieeeufpatuc.blogspot.com

33

Introduo ao MATLAB

PROGRAMAO
CONTROLE DE FLUXO
As linguagens imperativas de programao de computadores caracterizam-se pela
execuo sequencial de comandos. Elas possuem ainda recursos que permitem o controle de
fluxo de execuo de comandos com base em estruturas de tomada de deciso. Nesta seo,
sero vistas as estruturas mais comuns.

OPERADORES RELACIONAIS
Operadores Relacionais
O MATLAB tem operadores relacionais que podem ser usados para comparar duas
matrizes de mesma ordem ou para comparar uma matriz e um escalar, como os mostrados a
seguir:
Operador
<
<=
>

Descrio
Menor que
Menor ou igual a
Maior que

>=

Maior ou igual a

==

Igual a (no sentido de condio)

~=

No igual a

A finalidade dos operadores fornecer respostas a perguntas do tipo falso/verdadeiro.


Assim, se a comparao for verdadeira, atribui-se o valor 1; se for falsa, o valor 0.
Considere a expresso lgica a seguir:
>> a < b

Se a e b forem escalares, ento o valor da expresso ser 1 (verdadeira) se a for menor


que b; caso contrrio, a expresso ser 0 (falsa). Se a e b forem vetores com os valores a seguir:
a = [ 2 4 6]
b = [ 3 5 1]

Ento, o valor de a<b ser o vetor [1 1 0], enquanto o valor de a~=b ser [1 1 1].

ESTRUTURAS CONDICIONAIS
Uma estrutura condicional permite a seleo de um conjunto de comandos a serem
http://ramoieeeufpatuc.blogspot.com

34

Introduo ao MATLAB
executados quando uma dada condio for ou no satisfeita, podendo assim modificar o fluxo
natural de comandos. As trs estruturas condicionais bsicas do MATLAB esto listadas a
seguir.

Estrutura if 1
if condio
comandos
end

Estrutura if 2
if condio1
comandos1
else
comandos2
end

Estrutura if 3
if condio1
comandos1
elseif condio2
comandos2
elseif condio3
comandos3
...
else
comandosN
end

As estruturas 1 e 2 so casos particulares da estrutura 3. As condies so formadas


pelos operadores lgicos e relacionais. Abaixo mostrado um exemplo de um script com uma
estrutura if.
Exemplo:
A=2; B=3;
if A==B
display(A e B iguais.) % Exibir texto na janela de comando.
else
display((A e B diferentes.)
end

Quando se faz uso repetido de testes de igualdade com apenas um argumento comum,
costuma-se usar a estrutura switch-case. Essa estrutura tem a seguinte forma:
switch var_teste
case expresso_teste1
comandos1
case {expresso_teste2, expresso_teste3, expresso_teste4 }
comandos2
otherwise
comandos3
end

Se os testes de igualdade resultarem em falso para todos os casos, os comandos de


otherwise (que opcional) sero executados. O exemplo abaixo demonstra uma aplicao da
estrutura switch-case.
http://ramoieeeufpatuc.blogspot.com

35

Introduo ao MATLAB
Exemplo:
clear all
num=input(Escrever um inteiro: ); %Exibe texto e l valor
para a varivel.
switch num
case 1
y=1
case {2,2.5}
y=2
case tres
y=3
case {quatro, Quatro, QUATRO}
y=4
otherwise
y=0
end

Estruturas de Repetio
Uma estrutura de repetio faz com que uma sequncia de comandos seja executada
repetidamente enquanto se satisfaa uma dada condio. O MATLAB possui duas estruturas de
repetio: for e while.
Estrutura for
for varivel=inic:incr:fim
comandos
end

Estrutura while
while condio
comandos
end

A condio da estrutura for que varivel seja menor ou igual a fim. Enquanto satisfeita
essa condio, ao trmino de cada loop de comandos, varivel incrementada de incr. O
incremento incr considerado unitrio caso seja omitido.
Abaixo, segue um exemplo de clculo de mdia, usando-se, de forma comparativa, as
duas estruturas.
Exemplo:
clear all
x=input(Vetor de amostras: );
copmr=length(x); % retorna o comprimento do vetor
soma_f=0;
for k=1:copmr

http://ramoieeeufpatuc.blogspot.com

36

Introduo ao MATLAB
soma_f=soma_f+x(k)
end
media_f=soma_f./compr;

soma_w=0;
k=1;
while k<=compr
soma_w=soma_w+x(k)
k=k+1;
end
media_w=soma_w./compr;

disp(Media do for: ); %Exibe string


disp(media_f); %Exibe valor da varivel
disp(Media do while: );
disp(media_w);

Tomada de decises
Estrutura If Else End
if expresso
Comandos
end

Se a expresso lgica for verdadeira, os comandos entre if e end so executados. Como


exemplo, temos:
if a < 50
count = count +1;
sum = sum + a;
end

Suponha que a seja um escalar. Se a < 50, ento count incrementada por 1 e a
adicionada sum; caso contrrio, os comandos no sero executados. A prxima estrutura
contm um parmetro if dentro de outro parmetro if:

if expresso 1
grupo de comandos A
if expresso 2
grupo de comandos B
http://ramoieeeufpatuc.blogspot.com

37

Introduo ao MATLAB
end
grupo de comandos C
end
grupo de comandos D

Se a expresso 1 for verdadeira, os grupos de comandos A e C so executados. Se a


expresso 2 tambm for verdadeira, o grupo de comandos B executado antes do grupo de
comandos C. Se a expresso 1 for falsa, imediatamente salta-se para os comandos D. Como
exemplo, temos:
if a < 50
count = count + 1
sum = sum + a;
if b > a
b = 0;
end
end

Novamente, suponha que a e b sejam escalares. Ento, se a < 50 aumentaremos count


por 1 e adicionaremos a sum. Se b > a, ento b ser igual a zero. Se a no for menor que 50,
ento pula-se diretamente para o segundo end. Se a e nem b forem escalares, ento b maior
que a somente se cada par de elementos correspondentes de a e b so valores nos quais b > a. Se
a ou b um escalar, ento a matriz comparada ao escalar.
Instruo Else
Esta instruo permite que executemos um comando se a expresso lgica verdadeira e
um diferente comando se a expresso falsa. A forma geral do comando if combinada
instruo else mostrada a seguir:
if expresso
grupo de comandos A
else
grupo de comandos B
end

Se a expresso lgica verdadeira, ento o grupo de comandos A executado. Caso


contrrio, o grupo de comandos B executado.
Quando h muitas alternativas a serem executadas, pode ser mais difcil determinar
quais expresses lgicas devem ser verdadeiras (ou falsas) para executar cada grupo de
comandos. Neste caso, a clusula elseif frequentemente usada para simplificar o programa
lgico:
if expresso 1
grupo de comandos A

http://ramoieeeufpatuc.blogspot.com

38

Introduo ao MATLAB
elseif expresso 2
grupo de comandos B
elseif expresso 3
grupo de comandos C
end

Se a expresso 1 for verdadeira, somente o grupo de comandos A executado. Se a


expresso 1 for falsa e a expresso 2 for verdadeira, ento somente o segundo grupo de
comandos executado. Se as expresses 1 e 2 forem falsas e a expresso 3 for verdadeira, ento
somente o grupo de comandos C executado. Se mais de uma expresso lgica for verdadeira, a
primeira que for verdadeira determina qual grupo de comandos ser executado. Se nenhuma das
expresses lgica for verdadeira, ento nenhum dos comandos dentro da estrutura if
executado.

REFERNCIAS
Grupo PET TELE. Apostila de Introduo ao Matlab/Octave. Universidade Federal Fluminense
(2011). Disponvel em: < http://www.telecom.uff.br/pet/petws/downloads/apostilas/MATLA
B.pdf>. Acessado em 17 de junho de 2012.
RIBEIRO, J. M & COVACIC, M. R. Introduo ao MATLAB. Universidade Estadual Paulista
UNESP (2007). Disponvel em: < http://www.ebah.com.br/content/ABAAABOecAI/intro
ducao-ao-matlab-unesp-ilha-solteira>. Acessado em 17 de junho de 2012.

http://ramoieeeufpatuc.blogspot.com

39

Potrebbero piacerti anche