• Nenhum resultado encontrado

Example 7.2: Escreva as seguintes funções no editor doM ATL

N/A
N/A
Protected

Academic year: 2019

Share "Example 7.2: Escreva as seguintes funções no editor doM ATL"

Copied!
10
0
0

Texto

(1)

I nt rodução ao MATLAB

O

M

AT

L

AB, Laborat ório de Mat rizes, é um a poderosa ferram ent a para com put ação num érica e

visualizaçã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

AT

L

AB

est á

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

AT

L

AB

ainda 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

AT

L

AB

perm 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

AT

L

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 do

M

AT

L

AB.

‰ pr ogr a m a s – ut ilizados para arm azenar com andos do

M

AT

L

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

AT

L

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

AT

L

AB

2. 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

(2)

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 inicial

for 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

(3)

Ex a m ple 7 .2: Escreva as seguint es funções no edit or do

M

AT

L

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

AT

L

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 =

(4)

» 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

(5)

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

(6)

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

(7)

‰ 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;

(8)

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') ;

(9)

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

(10)

ƒ 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:

Referências

Documentos relacionados

[r]

[r]

Não se observaram diferenças favoráveis aos tratamentos, quer na germinação quer no número de plantas caídas, ou percentagem de espigas atacadas por moléstias, e

Essa solução veio para at ender ao grande núm ero de am bient es de consum o, aum ent ar a chance de cont at os com o usuário nessa nova m odalidade de

Dada a atualidade da temática, o envelhecimento, e a importância que a família tem na promoção de um envelhecimento ativo, pretendo como o desenvolvimento deste estudo aprofundar

Nessa época a maioria dos caminhoneiros que se aventurava pelas estradas Brasil afora (e não eram essas estradas que você conhece hoje) faziam do pára-choque de seus

Homem é como basculante: quando velho, não levanta mais.. Homem é como vassoura: sem o pau, não serve

** ponderar lopinavir/ritonavir até 28 dias, consoante evolução Sintomas respiratórios e/ou Sintomas sistémicos moderados (MEWS 0-2) + Radiografia de tórax ou TC Torácica -