I nt rodução ao MATLAB
O
M
ATL
AB, Laborat ório de Mat rizes, é um a poderosa ferram ent a para com put ação num érica evisualização gráfica dest inado a aqueles ut ilizadores, fundam ent alm ent e das áreas das
engenharias e ciências, que precisam de um am bient e pot ent e para realizar cálculos
m at em át icos, desenvolver algorit m os, m odelação, sim ulação de prot ót ipos, et c. O M
ATL
ABest á
dot ado de um sist em a int eract ivo e um a linguagem de program ação. Alem de bibliot ecas para
cálculos arit m ét icos básicos, o M
ATL
ABainda oferece um grande núm ero de ferram ent as
especializadas ( t ool- boxes) para a resolução de problem as em áreas específicas, t ais com o
est at íst ica
,
program ação linear
,
sist em as de cont rolo
, et c. Por t udo ist o, o M
ATL
ABperm it e
solucionar m uit os problem as num éricos com um esforço m uit o m enor do esforço que seria
necessário para escrever um program a em um a linguagem de program ação de alt o nível com o
o Pascal, C, et c.
Baseado em m at rizes que não requerem dim ensionam ent o, um dos obj ect ivos principais do
MATLAB é proporcionar ao ut ilizador um a solução sim ples e eficient e de m uit os problem as
com put acionais que envolvem m at rizes e vect ores.
1 . Fich e ir os do M a t la b: M - fich e ir os
M- Ficheiros – são ficheiros do
M
ATL
AB com ext ensão “.m” que cont êm program as (script s) e funções que podem ser cham ados e execut ados na j anela de com andos doM
ATL
AB. pr ogr a m a s – ut ilizados para arm azenar com andos do
M
ATL
AB fu n çõe s – ut ilizados para arm azenar funções e procedim ent os
2 . Am bie n t e de t r a ba lh o e m M
ATL
AB Ja n e la de com a n dos:
Exist em dois m odos de ut ilização:
1. m odo im ediat o - para ent rar variáveis e execut ar os com andos do
M
ATL
AB2. m odo de execução de funções - para ex ecut ar procedim ent os e program as arm azenados em M- ficheiros
Nota: utilize o comando
cd
para mover-se para a directoria onde se encontra o M-ficheiro e
introduza logo o nome do ficheiro para começar a sua execução.
Ja n e la de e diçã o: para a edição dos M- ficheiros
Ja n e la de gr á ficos: par a a visualização e im pressão de gráficos
3 . Tr a ço do pr ogr a m a
dia r y < filenam e> → redirecciona a inform ação de saída para um ficheiro
dia r y on/ off → act iva/ desact iva o t raço do program a
4 . Aj u da
H ELP t opic – dá aj uda no t ópico
5 . Com a n dos de visu a liza çã o e in for m a çã o
; coloca- se no final da linha para suprim ir a repet ição ( echo) do com ando
, coloca- se no final da linha se desej a- se a repet ição ( echo) do com ando
% com ent ário
for m a t sh or t visualiza 4 lugares decim ais
for m a t lon g visualiza 14 lugares decim ais
w h o list a t odas as variáveis
w h a t list a os ficheiros
cle a r apaga o espaço de t rabalho
cle a r va r ia ble s apaga as variáveis
cle a r fu n ct ion s apaga as funções
clc lim pa o display
clg lim pa o gráfico
6 . Com a n dos pa r a a t r ibu ir va lor e s á s va r iá ve is
> > x = 2;
> > y = x^ 2 - 3* x + 2;
7 . Pr ogr a m a çã o e m M ATLAB
Pr ogr a m a s ( scr ipt ) -
um conj unt o de com andos e inst ruções em Mat Lab arm azenadas num M- Ficheiro% < program - nam e>
{ < specificat ion- st at em ent s> } { < execut able- st at em ent s> }
Fu n çõe s
fu n ct ion [ list a de parâm et ros de saída] = n om e ( list a de parâm et ros de ent r ada) { < inst ruções para declaração de variáveis> }
{ < inst ruções de execução> }
Ex a m ple 7 .1 : I m plem ent e a função sr oot para det erm inar as raízes de um núm ero pelo m ét odo de New t on. Grave est a função no M- ficheiro sr oot .m
fu n ct ion r = sroot ( A)
% Mét odo de New t on para det erm inar
A
p0 = 1; % valor inicialfor k= 1: 50,
p1 = ( p0+ A/ p0) / 2; disp( p1) ;
if abs( p1- p0) / p1 < eps, br e a k, e n d; p0 = p1;
e n d
Execut ando a função sr oot na j anela de com andos do MATLAB, obt ém - se:
» sr oot ( 5 )
3
Ex a m ple 7 .2: Escreva as seguint es funções no edit or do
M
ATL
AB e grave- as nos ficheiros f.m and G.m :fu n ct ion y = f( x)
y = exp( - x./ 10) + sin( x) ;
fu n ct ion W = G( Z) % Z is a 1 by 2 vect or x = Z( 1) ;
y = Z( 2) ;
W = [ x.^ 2- y.^ 2 2* x.* y] ;
Execut e as funções f e G na j anela de com andos. Obt ém - se:
» f( pi/ 2 )
ans =
1.85463599915323
» G( [ 2 1 ] )
ans =
3 4
8 . M a t r ize s
Todas as variáveis em
M
ATL
AB são t rat adas com o m at rizes (arrays) . Um escalar é considerado um a m at riz de um por um .8 .1 . I n icia liz a çã o: um a m at riz ( array) pode ser inicializado com zeros, uns ou com valores aleat órios
» Z = z e r os( 1 ,5 ) % I nicializa um vect or com o linha com zeros.
Z =
0 0 0 0 0
» W = z e r os( 3 ,1) % I nicializa um vect or com o coluna com zeros.
W = 0 0 0
» M = on e s( 2 ,4 ) % I nicializa um a m at riz de 2 linhas e 4 colunas com uns.
M =
1 1 1 1 1 1 1 1
» siz e ( M ) % Devolve a dim ensão de um a m at riz: # de linhas, # de colunas
ans = 2 4
8 .2 . Ve ct or e s: podem ser ent rados e arm azenados com o um a m at riz de um a linha ou um a coluna
» V = [ 1 ,2 ,3 ,4 ]
V =
» le n gt h ( V) % o cu m pr im e n t o de u m ve ct or V
ans = 4
» su m ( V) % a som a dos e le m e n t os de V
ans = 10
» m e a n ( V) % a m e dia a r it m é t ica dos e le m e n t os de V
ans = 2.5000
Pode m se r cr ia dos ve ct or e s u t iliz a n do o ope r a dor “:” ( colon )
» X = 1: 20; % um vect or( list a) com núm eros int eiros desde 1 at é 20.
» Y = X.^ 2; % um vect or( list a) com cada núm ero elevado ao quadrado.
» Y( 10: 20) % visualiza os últ im as 11 elem ent os.
ans =
100 121 144 169 196 225 256 289 324 361 400
» x= 1: 4: 20; % um vect or com núm eros int eiros desde 1 t o 20, com increm ent o 4.
x =
1 5 9 13 17
8 .3 . M a t r ize s
» A = [ 1 2 3 4, 5 6 7 8,
9 10 11 12] ;
» A( 1 ,3 ) % se le ccion a r u m e le m e n t o da m a t r iz
ans = 3
» A( 2 :3 , 1 :2 ) % se le ccion a r u m a su b- m a t r iz
ans =
5 6 9 10
Ou t r a s ope r a çõe s sobr e m a t r ize s:
♦ in v → inversa
♦ A’ → t ranspost a
♦ r a n k → caract eríst ica
♦ de t → det erm inant e
♦ e ig → valores e vect ores próprios
♦ n or m → norm a
♦ r a n d → elem ent os aleat órios
♦ e ye → m at riz de ident idade
♦ r ot 9 0 → rot ação dos elem ent os da m at riz
♦ fliplr → invert er m at rix left - t o- right
♦ dia g → ext rair diagonal
♦ t r il → low er t riangular part
♦ t r iu → upper t riangular part
Exem plo: m at riz t ranspost a
» A = [ 1 2, 3 4] ;
» C = inv( A) % det erm ina a m at riz inversa C =
- 2.0000 1.0000 1.5000 - 0.5000
9 . Ope r a dor e s
Ope r a dor e s a r it m é t icos
+ Adição - Subt racção * Mult iplicação / Divisão
^ Pot ência
Ope r a dor e s a r it m é t icos sobr e m a t r iz e s
.+ Som ar por elem ent o .- Subt rair por elem ent o .* Mult iplicação por elem ent o ./ Divisão por elem ent o .^ Pot ência por elem ent o
» A = [ 1 2, 3 4] ;
» A^ 2 % o qu a dr a do da m a t r iz
ans = 7 10 15 22
» A.^ 2 % o qu a dr a do de ca da e le m e n t o da m a t r iz .
ans = 1 4 9 16
Ope r a dor e s Re la cion a is
= = → igual a
~ = → não igual a
< → m enor que
> → m aior que
< = → m enor ou igual a
> = → m aior ou igual a
Ope r a dor e s Lógicos
~ → Not
& → And
| → Or
1 0 . I n st r u çõe s de Con t r olo pa r a pr ogr a m a çã o e m M a t La b
I F – ELSEI F – ELSE - EN D
if ( < expresão- lógica# 1> ) , { < inst ruções execut áveis> }
e lse if ( < expresão- lógica# 2> ) , { < inst ruções execut áveis> } ….
e lse
{ < inst ruções execut áveis> }
e n d
Ciclos
FOR
for variável = expressão
{ < inst ruções execut áveis> } e nd
br e a k → int errom pe o ciclo
Ex e m plo 1 0 .1 :
for k= 1: 100, x= sqrt ( k) ;
if x> 5, br e a k, e nd e n d
Ex e m plo 1 0 .2 :
For loop
sum 1 = 0;
for k = 1: 1: 10000, sum 1 = sum 1 + 1/ k; e nd
» su m 1
sum 1 =
9.78760603604434
Ex e m plo 1 0 .3 :
sum 2 = 0;
for k = 10000: - 1: 1, sum 2 = sum 2 + 1/ k;
e n d
» su m 2
sum 2 =
9.78760603604439
Ex e m plo 1 0 .4 :
for j = 1: 5, for k = 1: 5,
A( j ,k) = 1/ ( j + k- 1) ; e n d
e n d
W H I LE
w h ile < expr essão>
{ < inst ruções execut áveis> } e nd
Ex e m plo 1 0 .5 :
m = 10; k = 0;
w h ile k< = m x = k/ 10;
disp( [ x, x^ 2, x^ 3] ) ; % um a t abela de valores vai ser visualizada k = k+ 1;
e n d
Pa u se : est a inst rução gera um a pausa na execução do program a
1 1 . Gr á ficos
fu n çã o plot ( ) -
gera gráficos em R
2 plot( x,y) → desenha um gráfico que passa pelos pont os ( x( i) ,y( i) )
plot( y) → desenha um gráfico que passa pelos pont os ( i,y( i) )
plot( x,y, S) → S é um st ring que define o color e t ipo da linha.
S pode est ar form ado por o prim eiro elem ent o que ident ifica a cor da linha e o segundo que ident ifica o t ipo de linha:
cor : y – am arelo; m – m agent a, c - azul celest e; r - verm elho; g – verde;
b - azul ; w – branco; k - pr et o
t ipo de lin h a : . ; -; o ; : ; x; - . ; + ; - -; * ; s - quadrado; d –diam ant e; v; ^ ; <; >; et c.
Por exem plo, plot( x1,y1,’r* ’, x2,y2, ‘g’, x2,y2,’: ’) → desenha t rês gráficos com diferent es cores e form at os de linhas.
Ex a m ple 1 1 .1: Escreva um program a em Mat Lab que const rua o gráfico da função y= sin( x) , para x ∈ [ 0, Π] com passo Π / 8 . Grave o progr am a num ficheiro com o nom e Plot Sin.m
O Mat lab per m it e rapidam ent e avaliar funções num largo conj unt o de dados. Por exem plo, se X= [ - 1 0 1] , ent ão sin ( X ) produz o result ado [ sin ( - 1 ) sin( 0 ) sin ( - 1 ) ]. Sim ilarm ent e se X= 0: pi/ 8: pi ent ão Y= sin ( X) produz um a m at riz Y da m esm a dim ensão que X com os correspondent es valores de sin( x) .
% Plot Sin – const rui o gráfico da função y= sin( x) X = 0: pi/ 16: pi;
Y = sin( X) ; figure( 1) ; clf;
hold on;
axis( [ - 0.2 3.2 - 0.1 1.1] ) ; % define os eixos de coordenadas plot ( [ - 0.2 3.2] ,[ 0,0] ,[ 0,0] ,[ - 0.1 1.1] ) ; % desenha os eixos
plot ( X,Y) ; % desenha o gráfico xlabel( 'x') ;
ylabel( 'y') ;
t it le( 'Graph of y = sin( x) ') ; grid;
Execut e o program a Plot Sin. O seguint e gráfico será visualizado:
Com ent ários: O com ando plot requer dois vect ores de igual com prim ent o.
X =
0 0.3927 0.7854 1.1781 1.5708 1.9635 2.3562 2.7489 3.1416 Y =
0 0.3827 0.7071 0.9239 1.0000 0.9239 0.7071 0.3827 0.0000
Ex a m ple 1 1 .2: Escreva um program a em Mat Lab que const rua o gráfico do polinóm io
p( x) = x5 – 10 x4 + 35 x3 – 50 x2 + 24.
Grave o program a num ficheiro com o nom e Plot Poly.m
Execut e o program a Plot Poly. O seguint e gráfico será visualizado: figure( 1) ; clf;
C = [ 1 - 10 35 - 50 24] ; % define um vect or com os coeficient es do polinóm io
X= - 0.2: 0.1: 4.2; % define as abcissas
Y= polyva l( C,X) ; % polyval - função que avalia um polinóm io
axis( [ - 0.2 4.2 - 2.3 4.3] ) ; % define os eixos plot ( [ - 0.2 4.2] ,[ 0,0] ,[ 0,0] ,[ - 2.3 4.3] ) ; % desenha os eixos
plot ( X ,Y) ; % desenha o gráfico hold on;
xlabel( 'x') ; ylabel( 'y') ;
Ex a m ple 1 1 .3: Escreva um program a em Mat Lab onde o utilizador pode ent rar a função para const ruir o gráfico.
Sugest ão: A função f pode ser definida com o t ext o, por exem plo, se f= ’sin( x) ’, ent ão pode ser usado o com ando:
fplot ( f, [ 0 ,1 0 ] )
1 2 . Ou t r a s fu n çõe s do M a t La b
Fu n çõe s M a t e m á t ica s
cos( x ) → cosine ( radians)
sin ( x ) → sine ( radians)
t a n ( x ) → t angent ( radians)
e x p( x ) → exponent ial exp( x)
a cos( x ) → inverse cosine ( radians)
a sin ( x ) → inverse sine ( radians)
a t a n ( x ) → inverse t angent ( radians)
log( x ) → nat ural logarit hm base e
log1 0 ( x ) → com m on logarit hm base 10
sqr t ( x ) → square root
a bs( x ) → absolut e value
r ou n d( x ) → round t o nearest int eger
fix ( x ) → round t owards zero
floor ( x ) → round t owards - ì
ce il( x ) → round t owards + ì
sign ( x ) → signum funct ion
cosh ( x ) → hyperbolic cosine
sin h ( x ) → hyperbolic sine
t a n h ( x ) → hyperbolic t angent
a cosh ( x ) → inverse hyperbolic cosine
a sin h ( x ) → inverse hyperbolic sine
a t a n h ( x ) → inverse hyperbolic t angent
r e a l( z) → real part of com plex num ber z
im a g( z ) → im aginary part of com plex num ber z
a n gle ( z) → argum ent of com plex num ber z
r e m ( p,q) → rem ainder when p is divided by q
Fu n çõe s pa r a An á lise de D a dos
M a x → m axim um value
M in → m inim um value
M e a n → m ean value
M e dia n → m edian value
st d → st andard deviat ion
sor t → sort ing
su m → sum t he elem ent s
pr od → form product of t he elem ent s
cu m su m → cum ulat ive sum of elem ent s
cu m pr od → cum ulat ive product of elem ent s
diff → approxim at e derivat ives ( differences)
h ist → hist ogram
cor r coe f → correlat ion coefficient s
cov → covariance m at rix
Bibliografia: