Você está na página 1de 98

Curso de MA1LA8 Ap||cado

Lngenhar|a L|tr|ca














Andr Lu|z Langner
Setembro]2009

L1 LnCLnPA8lA LLL18lCA ul8
2
LsLa aposLlla fol elaborada pelo Crupo L1 Lngenharla LleLrlca da unlversldade lederal do
aran, para a reallzao do Curso de LxLenso, MA1LA8 Apllcado a Lngenharla LleLrlca.

www.eleLrlca.ufpr.br/peL
peL_eleLrla[hoLmall.com






L1 LnCLnPA8lA LLL18lCA ul8
3
Contedo

1. lunes MaLemLlcas LlemenLares .......................................................................................... 4
2. ueflnlo de varlvels ............................................................................................................... 6
3. Apllcaes em Clculo ............................................................................................................. 10
4. veLores e MaLrlzes .................................................................................................................. 14
3. Crflcos ................................................................................................................................... 29
6. ollnmlos ............................................................................................................................... 33
7. A[usLe de Curvas e lnLerpolao ............................................................................................. 43
8. Anllse numerlca .................................................................................................................... 49
9. 1ransformadas......................................................................................................................... 36
10. Lquaes ulferenclals ........................................................................................................... 62
11. Lscrevendo rogramas no MA1LA8 ...................................................................................... 66
12. 1plcos 8slcos em ConLrole................................................................................................. 79





L1 LnCLnPA8lA LLL18lCA ul8
4


1. Funes Matemticas Elementares


1.1 - Introduo


C MA1LA8 e LanLo uma llnguagem de programao quanLo um amblenLe de compuLao
Lecnlca que posslblllLa a anllse e vlsuallzao de dados, clculos maLemLlcos e
desenvolvlmenLo de algorlLmos, enLre ouLras apllcaes. Sua prlmelra verso fol escrlLa no
flnal da decada de 70 nas unlversldades do novo Mexlco e SLanford vlsando fornecer suporLe
a cursos de Leorla maLrlclal, lgebra llnear e anllse numerlca.


1.2 - Iunes L|ementares


As expresses arlLmeLlcas raramenLe requerem ouLros clculos que no se[am a adlo,
subLrao, mulLlpllcao, dlvlso, e exponenclao. or exemplo, mulLas expresses
requerem o uso de logarlLmos, exponenclals, e funes LrlgonomeLrlcas. C MA1LA8 nos
permlLe usar funes para execuLar esLes Llpos de clculos em vez de nos exlglrem calcul-los
usando operaes arlLmeLlcas bslcas. or exemplo, se qulsermos calcular o seno de um
ngulo e armazenar o resulLado em I, podemos usar o segulnLe comando:

I = sin(angle):

A funo sin supe que o argumenLo esL em radlanos. Se o argumenLo conLem um valor em
graus, podemos converL-lo de graus para radlanos denLro da funo referncla:

I = sin (angle*pi/180):





















L1 LnCLnPA8lA LLL18lCA ul8
3


1.3 - Iunes Matemt|cas L|ementares


As funes maLemLlcas elemenLares lncluem funes para execuLar um numero de clculos
comuns como o clculo de valor absoluLo e a ralz quadrada. Alem dlsso, Lambem lnclulmos
um grupo de funes usadas em arredondamenLos. MosLraremos a segulr uma llsLa desLas
funes com uma breve descrlo:



1abela 1.1












L1 LnCLnPA8lA LLL18lCA ul8
6


2. Definio de Variveis

1.1 - Nmeros kea|s


no MA1LA8 e posslvel deflnlr varlvels que sero usadas na sesso de Lrabalho, como no
exemplo abalxo:

~~ a = 10

a =

10

resslonando a Lecla Ln1L8, o MA1LA8 conflrma na Lela o valor lnserldo a menos que se[a
colocado um slnal de ponLo e vlrgula (,) aps o flm da llnha:

~~ I = 20:

Lssa opo e lnLeressanLe para a deflnlo de varlvels exLensas, evlLando que Lodos os seus
valores se[am exlbldos na Lela. uma varlvel complexa e deflnlda especlflcando-se sua parLe
real e a lmaglnrla:

~~ c = 1 -2i

c =

1.0 - 2.0000i

ueflnldas as varlvels e posslvel enLo efeLuar operaes maLemLlcas com elas. As operaes
bslcas so llsLadas abalxo:











L1 LnCLnPA8lA LLL18lCA ul8
7

e alguns exemplos so dados a segulr:

~~ a - I

ans =

80


onde ans e a varlvel padro usada para resulLados. ode-se dlreclonar a salda para ouLra
varlvel da segulnLe forma:

~~ d = a-I

d =

80

Algumas regras devem ser obedecldas na deflnlo de varlvels:
- as varlvels so senslvels a malusculas e mlnusculas,
- devem conLer no mxlmo 31 caracLeres,
- os nomes devem comear com leLras e caracLeres, acenLuados no so permlLldos.

Alguns exemplos de nomes para varlvels so: LoLal_anual2000, medla23, MLulA23,
x1231330. noLe que, segundo as regras aclma, o segundo e o Lercelro exemplo referem-se a
varlvels dlferenLes. Algumas varlvels [ so pre-deflnldas, como pl (n), l e [ ( 1 - ), realmin e
realma (menor e malor numero real uLlllzvel pelo MA1LA8, respecLlvamenLe.


2.2 - Nmeros Comp|exos


no MA1LA8, numeros complexos podem ser formados de vrlas manelras. Alguns exemplos:


~~ c1 = 1-2i

c1 =

1.0000 - 2.0000i

~~ c1 = 1-2j ' j tamIm fnnciona

c1 =

1.0000 - 2.0000i

~~ c2 = 8*(2-sqrt(-1)*8)

c2 =

6.0000 - 9.0000i

L1 LnCLnPA8lA LLL18lCA ul8
8


~~ c8 = sqrt(-2)

c8 =

0 - 1.1112i



~~ c1 = 6-sin(.)*i

c1 =

6.0000 - 0.191i

~~ c = 6-sin(.)*j

c =

6.0000 - 0.191i

nos dols ulLlmos exemplos, os valores-padro do MA1LA8 i=j= foram uLlllzados para
formar a parLe lmaglnrla. L preclso, nesses casos, mulLlpllcar por i ou j, [ que, para o
MA1LA8, sin(0.)i e sin(0.)j no Lm senLldo. A Lermlnao com os caracLeres i ou j,
conforme mosLrado nos dols prlmelros exemplos, s funclona com numeros slmples, no
expresses.

As operaes maLemLlcas com numeros complexos so escrlLas da mesma manelra que
aquelas com numeros reals.

~~ c6 = (c1-c2)/c8

c6 =

-.82 - 1.919i

~~ erifiqne = i2 ' o qnadrado de sqrt(-1) tem de ser ignal a -1'

erifiqne =

-1


Lm geral as expresses com numeros complexos resulLam em numeros complexos. nos casos
em que h uma parLe desprezlvel, real ou lmaglnrla, remanescenLe, voc pode usar,
respecLlvamenLe, as funes real e imag para exLralr a parLe real e a lmaglnrla.

~~ real_c1 = real(c1)

real_c1 =

1

L1 LnCLnPA8lA LLL18lCA ul8
9


~~ imag_c1 = imag(c1)

imag_c1 =

-2
L Lambem Lm as funes aIs que calcula o mdulo de numeros complexo sou o valor
absoluLo de numeros reals. Alem dlsso, a funo angle calcula o ngulo de um numero
complexo em radlanos.



~~ mod_c1 = aIs(c1)

mod_c1 =

2.2861

~~ angnlo_c1 = angle(c1)

angnlo_c1 =

-1.101

~~ grans_c1 = angnlo_c1*180/pi

grans_c1 =

-68.1819























L1 LnCLnPA8lA LLL18lCA ul8
10

3. Aplicaes em Clculo

AnLes de qualquer operao, onde se Lem x, y, z ou qualquer ouLra como varlvel, e preclso
deflnlr sua varlvel, para lsso usa-se o comando: s,ms , dessa forma esLar lndlcando que
qualquer x que for colocado em funes e uma varlvel e no um numero.


3.1 - L|m|tes


ara efeLuar uma operao com llmlLes no MA1LA8, o comando que se deve dar e:
limit(f()..a) onde f(x) e a funo que se quer achar o llmlLe, x e a varlvel e o e o numero no
qual o x esL Lendendo ( x-o ).
Lxemplo: Achar o llmlLe abalxo:



~~ s,ms
~~ limit(((1-2)/(1-2))..2)

ans =

-/8



LlmlLes a esquerda e a dlrelLa

ara calcular llmlLes a esquerda e a dlrelLa, o comando e: limit(f()..a.`left`) e
limit(f()..a.`right`), onde left` e right` so os comandos para calcular a esquerda e a
dlrelLa, respecLlvamenLe.

Lxemplo: Achar os llmlLes abalxo:









L1 LnCLnPA8lA LLL18lCA ul8
11

~~ limit((/(-8))..8.'right')

ans =

Jnf


~~ limit(((-1)/(-1)8)..1.'left')

ans =

-Jnf


3.2 - Der|vadas


ara o clculo de derlvas, o comando no MA1LA8 e: diff(f()). onde f(x) e a funo que se
quer deLermlnar a derlvada.
Lxemplo: uerlvar as funes abalxo:





~~ diff(2*2-8*)

ans =

1*-8

~~ diff(1/(8-))

ans =

1/(8-)2



uerlvadas superlores

As derlvadas superlores so slmples de se calcular no MA1LA8, o comando para Lal operao
e o mosLrado abalxo:
diff(f().2). esse exemplo e para a derlvada segunda da funo f(x), para derlvada Lercelra,
coloca-se 3 no lugar do numero 2, para derlvada quarLa, o numero 4 e asslm por dlanLe.


L1 LnCLnPA8lA LLL18lCA ul8
12

Lxemplo: Achar a derlvada segunda das segulnLes funes:



~~ diff((1/(8-)).2)

ans =

2/(8-)8

~~ diff((1-1/).2)

ans =

-2/8


3.2 - Integra|s


na lnLegrao de funes, o comando que o MA1LA8 reconhece para Lal operao e:
int(f()) , pode - se colocar a funo denLro dos parnLeses, ou enLo deflnlr
uma funo f e slmplesmenLe escrever int(f).
Lxemplo: lnLegrar as funes abalxo:



~~ f = (1/2*(1-2)):
~~ int(f)

ans =

-1/8*1-1/1*2

~~ f = (((2*1)-(8*8)-)/(*2)):
~~ int(f)

ans =

2/21*8-8/11*2-//


L1 LnCLnPA8lA LLL18lCA ul8
13

lnLegrals deflnlda

Ao se calcular lnLegrals deflnldas no MA1LA8, o comando necessrlo fornecer o segulnLe
comando:
int(f().a.I). onde e o llmlLe lnferlor e , o llmlLe superlor da lnLegral.

Lxemplos:



~~ int((2*/(-8)2).0.2)

ans =

1-2*log(8)


~~ int((1-2*-8*2).0.1)

ans =

-1

















L1 LnCLnPA8lA LLL18lCA ul8
14

4. Vetores e Matrizes

1odos os clculos conslderados aLe esLe ponLo envolveram numeros lndlvlduals chamados
escalares. As operaes envolvendo escalares so a base da maLemLlca. Ao mesmo Lempo,
quando se dese[a efeLuar a mesma operao em mals de um numero de uma unlca vez,
operaes escalares repeLldas so lnconvenlenLes e demoradas. ara resolver esLe problema,
o MA1LA8 deflne operaes sobre veLores e maLrlzes.


4.1 - Vetores S|mp|es


Consldere o problema de calcular valores da funo seno ao longo da meLade do seu perlodo,
ou se[a, em . uma vez que e lmposslvel calcular em Lodos os
ponLos dessa falxa (Lem-se um numero lnflnlLo deles!) devemos escolher um numero flnlLos de
ponLos. Asslm esLamos fazendo uma amosLragem da funo. Como exemplo calculemos
a cada 0,1 nessa falxa.
C MA1LA8 manlpula veLores de uma manelra lnLulLlva. or exemplo:

~~ = [0 .1*pi .2*pi .8*pi .1*pi .*pi .6*pi .*pi .8*pi .9*pi pi]

=

olnmns 1 throngh 10

0 0.8112 0.6288 0.912 1.266 1.08 1.880 2.1991 2.188 2.821

olnmn 11

8.1116

~~ , = sin()

, =

olnmns 1 throngh 10

0 0.8090 0.88 0.8090 0.911 1.0000 0.911 0.8090 0.88 0.8090

olnmn 11

0.0000



L1 LnCLnPA8lA LLL18lCA ul8
13

ara crlar um veLor no MA1LA8, Ludo o que voc preclsa fazer e comear com um colcheLe
esquerdo, lnLroduzlr os valores dese[ados separados por espaos (ou vlrgulas) e fechar o
con[unLo com um colcheLe dlrelLo. Cbserve que o calculo dos senos dos valores e felLo
naLuralmenLe. C MA1LA8 enLende que voc quer achar o seno de cada elemenLo em e
coloca os resulLados em um veLor assoclado chamado
uma vez que uLlllzamos os espaos para separar os valores de um veLor, os numeros
complexos lnLroduzldos como elemenLos de um veLor no podem Ler espaos lncluldos, a
menos que as expresses esLe[am enLre parnLeses. or exemplo, [1 -2i 8 1 -6i] conLem
clnco elemenLos, enquanLo os veLores [(1 -2i) 8 1 -6i] e [1-2i 8 1 -6i] conLm quaLro.


4.2 - Lndereamento Vetor|a|


no MA1LA8, Lem-se acesso as componenLes (ou elemenLos) de um veLor usando-se lndlces.

>> x(3)

ans =

0.6283

>> y(3)

ans =

0.9311

ara Ler acesso a um bloco de componenLes ao mesmo Lempo, uLlllza-se a noLao de dols
ponLos:

~~ (1:)

ans =

0 0.8112 0.6288 0.912 1.266

~~ (:end)

ans =

1.880 2.1991 2.188 2.821 8.1116




L1 LnCLnPA8lA LLL18lCA ul8
16

~~ ,(8:-1:1)

ans =

0.88 0.8090 0
~~ (2:2:)

ans =

0.8112 0.912 1.08

~~ ,([8 2 9 1])

ans =

0.8090 0.8090 0.88 0

Aqul, usamos o veLor [8 2 9 1], para exLralr os elemenLos de veLor na ordem que qulsermos.


4.3 - Construo e Vetores


nos exemplos anLerlores, lnLroduzlmos os valores de dlglLando cada um de seus elemenLos.
Lmbora se[a fcll quando possul 11 elemenLos, o que aconLecerla se Llvessemos 111
componenLes? usando-se a noLao de dols-ponLos, duas ouLras manelras de lnLroduzlrmos os
valores de so:

~~ = (0:0.1:1)*pi

=

olnmns 1 throngh 10

0 0.8112 0.6288 0.912 1.266 1.08 1.880 2.1991 2.188 2.821

olnmn 11

8.1116







L1 LnCLnPA8lA LLL18lCA ul8
17


~~ = linspace(0.pi.11)

=

olnmns 1 throngh 10

0 0.8112 0.6288 0.912 1.266 1.08 1.880 2.1991 2.188 2.821

olnmn 11

8.1116
no prlmelro caso anLerlor, a noLao de dols-ponLos (0:0.1:1) crla um veLor que comea em 0,
lncremenLa em 0,1 e Lermlna em 1. Cada elemenLo nesse veLor e mulLlpllcado por n. no
segundo caso a funo linspace e usada para crlar . Cs argumenLos dessa funo so
descrlLos por:

linspace(primeiro_alor. nltimo_alor. nnmero_de_alores)

Ambas as formas so comuns no MA1LA8. A forma de dols-ponLos permlLe especlflcar
dlreLamenLe o lncremenLo enLre ponLos, mas no o numero de ponLos. A funo linspace, por
ouLro lado, permlLe especlflcar o dlreLamenLe o numero de ponLos, mas no o lncremenLo
enLre os ponLos.
Lssas duas formas de deflnlo do orlgem a veLores nos quals os elemenLos esLo espaados
llnearmenLe enLre sl. ara o caso especlal no qual um espaamenLo logarlLmlco e necessrlo o
MA1LA8 apresenLa a funo logspace:

~~ logspace(0.2.11)

ans =

olnmns 1 throngh 10

1.0000 1.819 2.119 8.9811 6.8096 10.0000 1.8189 2.1189 89.810 68.09

olnmn 11

100.0000



Aqul crlamos um veLor comeando em , Lermlnando em e conLendo 11elemenLos. Cs
argumenLos da funo so descrlLos por:

logspace(primeiro_epoente. nltimo_epoente. nnmero_de_alores)

L1 LnCLnPA8lA LLL18lCA ul8
18


Algumas vezes necesslLa-se de um veLor que no se[a convenlenLemenLe descrlLo por uma
relao de espaamenLo llnear ou logarlLmlca. no h uma manelra unlforme para crl-los.
LnLreLanLo, o endereamenLo de veLores e a capacldade de comblnar expresses podem
a[udar a ellmlnar a necessldade de lnLroduzlr elemenLos lndlvlduals, um de cada vez:

~~ a = 1:. I = 1:2:9

a =

1 2 8 1

I =

1 8 9

~~ c = [I a]

c =

1 8 9 1 2 8 1

~~ d = [a(1:8:) 1 0 1]

d =

1 1 1 0 1


4.4 - Cr|entao de Vetores


nos exemplos precedenLes, os veLores conLlnham uma unlca llnha e mulLlplas colunas,
denomlnados veLor llnha. 1ambem e posslvel consLrulr um veLor coluna, que Ler uma unlca
coluna e mulLlplas llnhas.
A manelra mals dlreLa de crlar um veLor coluna e especlflcando elemenLo por elemenLo e
separando os valores com ponLo-e-vlrgula:









L1 LnCLnPA8lA LLL18lCA ul8
19


~~ c = [1:2:8:1:]

c =

1
2
8
1


L comblnando ponLo-e-vlrgula com vlrgula ou espao, podemos crlar uma maLrlz:


~~ d = [1 2 8:1..6: 8.9]
d =
1 2 8
1 6
8 9

CuLra posslbllldade e crlar um veLor llnha e Lranspor o veLor. laz-se lsso usando a aspa
slmples ( ' ).
~~ a = 1:
a =
1 2 8 1
~~ I = a'
I =
1
2
8
1


Alem da forma mals slmples de Lransposlo, o MA1LA8 Lambem fornece o operador de
Lransposlo precedldo de um ponLo. nesse caso e lnLerpreLado como Lransposlo sem
con[ugao complexa.
~~ d = a-i*a
d =
1.0000 - 1.0000i 2.0000 - 2.0000i 8.0000 - 8.0000i 1.0000 - 1.0000i .0000 - .0000i







L1 LnCLnPA8lA LLL18lCA ul8
20


~~ e = d'
e =
1.0000 - 1.0000i
2.0000 - 2.0000i
8.0000 - 8.0000i
1.0000 - 1.0000i
.0000 - .0000i
~~ f = d.'
f =
1.0000 - 1.0000i
2.0000 - 2.0000i
8.0000 - 8.0000i
1.0000 - 1.0000i
.0000 - .0000i


4.S - Matemt|ca Vetor - Lsca|ar


no prlmelro exemplo dado, o veLor fol mulLlpllcado pelo escalar n. CuLras operaes
maLemLlcas slmples enLre escalares e veLores seguem a mesma lnLerpreLao naLural. Adlo,
subLrao, mulLlpllcao e dlvlso por um escalar slmplesmenLe apllca a operao a Lodos os
elemenLos do veLor:



~~ g = [1 2 8 1: 6 8:9 10 11 12]
g =
1 2 8 1
6 8
9 10 11 12
~~ g-2
ans =
-1 0 1 2
8 1 6
8 9 10
SubLral 2 de cada elemenLo de g.
~~ 2*g-1
ans =
1 8
9 11 18 1
1 19 21 28

um mulLlpllca cada elemenLo de g por 2 e subLral 1 de cada elemenLo do resulLado.

L1 LnCLnPA8lA LLL18lCA ul8
21



4.6 - Matemt|ca Vetor-Vetor


Cperaes maLemLlcas enLre veLores e maLrlzes no so slmples quanLo aquelas enLre
escalares e veLores. no MA1LA8, quando dols veLores ou maLrlzes Lm a mesma dlmenso,
adlo, subLrao, mulLlpllcao e dlvlso, apllcam-se de elemenLo em elemenLo. or exemplo:

~~ g ' retorna a matriz g

g =

1 2 8 1
6 8
9 10 11 12

~~ h = [1 1 1 1:2 2 2 2:8 8 8 8] ' cria nma noa matriz

h =

1 1 1 1
2 2 2 2
8 8 8 8




~~ g - h ' soma h e g. elemento por elemento

ans =

2 8 1
8 9 10
12 18 11 1

~~ ans-h 'snItrai h da nltima resposta para oIter g noamente
ans =
1 2 8 1
6 8
9 10 11 12
~~ 2*g-h ' mnltiplica g por 2 e snItrai h do resnltado
ans =
1 8
8 10 12 11
1 1 19 21

L1 LnCLnPA8lA LLL18lCA ul8
22


A mulLlpllcao e a dlvlso elemenLo por elemenLo funclonam de manelra semelhanLe, mas
usam uma noLao dlferenLe:

~~ g.*h

ans =

1 2 8 1
10 12 11 16
2 80 88 86

Aqul mulLlpllcamos as maLrlzes g e h elemenLo por elemenLo usando o slmbolo de
mulLlpllcao escalar ponLuada (.*). Asslm o MA1LA8 execuLa a mulLlpllcao elemenLo por
elemenLo. A mulLlpllcao sem o ponLo slgnlflca mulLlpllcao maLrlclal, que ser dlscuLlda
adlanLe.



A dlvlso elemenLo por elemenLo de veLores ou maLrlzes, ou dlvlso ponLuada, Lambem
requer o uso do ponLo:

~~ g./h
ans =

1.0000 2.0000 8.0000 1.0000
2.000 8.0000 8.000 1.0000
8.0000 8.8888 8.666 1.0000
~~ h.\g

ans =

1.0000 2.0000 8.0000 1.0000
2.000 8.0000 8.000 1.0000
8.0000 8.8888 8.666 1.0000

A dlvlso sem o ponLo e a operao de dlvlso maLrlclal, que e uma operao lnLelramenLe
dlferenLe

A poLenclao de veLores e maLrlzes e deflnlda de vrlas manelras. Como na dlvlso e na
mulLlpllcao, o slmbolo (^) e reservado para a poLenclao de maLrlzes, enquanLo o Lermo (.^)
represenLa a poLenclao elemenLo por elemenLo:




L1 LnCLnPA8lA LLL18lCA ul8
23


~~ g.2

ans =

1 1 9 16
2 86 19 61
81 100 121 111

Lleva ao quadrado cada elemenLo de g.

~~ g.-1

ans =

1.0000 0.000 0.8888 0.200
0.2000 0.166 0.1129 0.120
0.1111 0.1000 0.0909 0.0888


Calcula o lnverso de cada elemenLo de g.

~~ 2.g

ans =

2 1 8 16
82 61 128 26
12 1021 2018 1096


Lleva 2 a cada um dos elemenLos de g.

~~ g.h

ans =

1 2 8 1
2 86 19 61
29 1000 1881 128






L1 LnCLnPA8lA LLL18lCA ul8
24


Lleva os elemenLos de g aos elemenLos de h.

~~ g.(h-1)
ans =
1 1 1 1
6 8
81 100 121 111

MosLra como operaes com escalares e maLrlzes podem ser comblnadas.
MaLrlzes com LlemenLos lguals a Zero ou um

~~ ones(8)

ans =

1 1 1
1 1 1
1 1 1

~~ zeros(2.)

ans =

0 0 0 0 0
0 0 0 0 0

~~ ones(size(g))

ans =

1 1 1 1
1 1 1 1
1 1 1 1

MaLrlz ldenLldade

~~ e,e(8)

ans =

1 0 0
0 1 0
0 0 1



L1 LnCLnPA8lA LLL18lCA ul8
23


~~ e,e(8.2)

ans =

1 0
0 1
0 0


4.7 - D|menso de Vetores e Matr|zes


no caso em que o Lamanho de uma maLrlz, embora desconhecldo, e necessrlo para algum
Llpo de manlpulao, o MA1LA8 fornece duas funes uLels, slze e lengLh:

>> A=[1 2 3 4,3 6 7 8]

A =

1 2 3 4
3 6 7 8

>> s=slze(A)

s =

2 4

>> [l,c]=slze(A)

l =

2


c =

4







L1 LnCLnPA8lA LLL18lCA ul8
26

Cuando h dols argumenLos de salda, a funo size reLorna o numero de llnhas na prlmelra
varlvel e o numero de colunas na segunda.

~~ l=size(A.1) ' nnmero de linhas

l =

2
~~ c=size(A.2) ' nnmero de colnnas

c =

1

~~ length(A)

ans =

1

8eLorna o numero de llnhas ou de colunas (o que for malor)


~~ L=pi:0.01:2*pi:
~~ size(L)


ans =

1 81



~~ length(L)

ans =

81








L1 LnCLnPA8lA LLL18lCA ul8
27

4.8 - S|stemas de Lquaes L|neares


Lm mulLos problemas da Lngenharla e necessrlo a resoluo de slsLemas de equaes
llneares. um exemplo e na anllse de clrculLos eleLrlcos.
CrlglnalmenLe, o MA1LA8 fol escrlLo para slmpllflcar os caulos maLrlclals e de lgebra llnear.
Consldere, por exemplo, o segulnLe slsLema de equaes:


. =

A.x = b
AnallLlcamenLe, a soluo do slsLema e escrlLa como x = .b

A =

1 2 3
4 3 6
7 8 0

>> b = [366,804,331]

b =

366
804
331

C problema s Ler soluo se ela Llver uma lnversa. lsso slgnlflca que o deLermlnanLe da
maLrlz Lem que ser dlferenLe de zero.

>> deL(A)

ans =

27








L1 LnCLnPA8lA LLL18lCA ul8
28

orLanLo a maLrlz possul lnversa, logo possul soluo. L a soluo sal da segulnLe forma:

>> x = lnv(A)*b

x =

23.0000
22.0000
99.0000

Cu aLraves do comando de dlvlso a esquerda:

>> x = A\b

x =

23.0000
22.0000
99.0000
nesse caso, o MA1LA8 uLlllza a faLorao Lu para resolver o slsLema, que e a manelra mals
recomendvel.

Apllcao: 8esolver equaes de ClrculLos LleLrlcos





















L1 LnCLnPA8lA LLL18lCA ul8
29

5. Crficos

A consLruo de grflcos no MA1LA8 e mals uma das facllldades do slsLema. ALraves de
comandos slmples podem-se obLer grflcos bldlmenslonals ou Lrldlmenslonals com qualquer
Llpo de escala e coordenadas.


S.1 - Grf|cos 8|d|mens|ona|s


C comando uLlllzado para fazer grflcos bldlmenslonals no MA1LA8 e o plot. Lsse comando
Lem a segulnLe forma: plot(1. ,1. S1. 2. ,2. S2. ...). onde (n.,n) so con[unLos de dados e
Sn so sequnclas de caracLeres que especlflcam cor, slmbolos uLlllzados e esLllos de llnha.

~~ = linspace(0.2*pi.80):
~~ , = sin():
~~ plot(.,)


llgura 3.1















L1 LnCLnPA8lA LLL18lCA ul8
30

ode-se Lraar dols grflcos slmulLaneamenLe:

~~ z = cos():
~~ plot(.,..z)

llgura 3.2

L posslvel adlclonar ao grflco qualquer LexLo em qualquer poslo usando-se o comando
tet. C formaLo e tet(.,.`teto desejado`). com (.,) represenLando as coordenadas. or
exemplo:

~~ plot(.,)
~~ tet(2.. 0..'sen()')

Se qulser adlclonar um LexLo, mas no qulser perder Lempo lmaglnando as coordenadas a
serem usadas, pode colocar o LexLo com mouse. C comando gtet muda para a [anela de
flguras em uso e desenha nela uma cruz que segue aLe que voc d um cllque com ou mouse
ou presslone uma Lecla.

~~ plot(.,..z)
~~ gtet('cos()')


noLe que o grflco anLerlor fol apagado e subsLlLuldo pelo novo. Abalxo ser mosLrado um
comando a respelLo dlsso. A sequncla de caracLeres que conLem a formaLao da llnha, dos
slmbolos e das cores usadas nos grflcos pode conLer os segulnLes slmbolos:



L1 LnCLnPA8lA LLL18lCA ul8
31


1abela 3.1


Abalxo se v um exemplo de uLlllzao dos caracLeres:

~~ plot(.,.'I:p'..z.'r--'). grid on. legend('sen()'.'cos()')



llgura 3.3

no grflco aclma foram uLlllzadas duas ouLras opes: grid on e legend. C prlmelro adlclona
llnhas de grade ao grflco e o segundo crla uma calxa de legenda no canLo superlor dlrelLo do
grflco. A legenda pode ser movlda com o mouse aps o grflco ser desenhado.

Cs valores mxlmos e mlnlmos dos elxos so conLrolados com o comando
ais ([ min ma ,min ,ma]). no grflco aclma esse comando Lerla o segulnLe efelLo:

~~ ais([1 6. -1 -.]):


L1 LnCLnPA8lA LLL18lCA ul8
32


llgura 3.4

Cs llmlLes normals podem ser resLaurados com o comando ais seguldo da opo anto (ais
anto). Lssa opo, que e o padro usado nos grflcos, adlclona uma "folga" aos llmlLes
mxlmos dos elxos e ,. ara que os llmlLes dos elxos se[am os llmlLes mxlmos dos dados
usa-se a opo tight:

odemos Lambem aLrlbulr nomes aos elxos horlzonLals e verLlcals com os comandos laIel e
,laIel, respecLlvamenLe. C comando title adlclona uma llnha de LexLo ao Lopo do grflco.

~~ laIel('Variel N')
~~ ,laIel('Varieis Y e Z')
~~ title('nras de seno e co-seno')

C MA1LA8 oferece Lambem um comando de zoom. Lssa opo e aLlvada dlglLando-se zoom
on na Lela de comandos. lelLo lsso, a ampllao e felLa ao cllque do mouse sobre o grflco
(boLo esquerdo do mouse). C cllque com o boLo dlrelLo (ou o cllque duplo com o esquerdo)
faz o grflco reLornar ao nlvel de zoom anLerlor. CuLra posslbllldade e "desenhar" a [anela na
qual se dese[a que o zoom se[a felLo. ara lsso manLem-se o boLo esquerdo do mouse
presslonado enquanLo a seLlnha do mouse e arrasLada sobre o grflco. CbLendo-se o Lamanho
de [anela dese[ado o zoom e execuLado asslm que o boLo e solLo. A opo de zoom e
desllgada com o comando zoom off.

um novo comando de grflco, por padro, Lem a sua salda dlreclonada para a flgura [ aberLa,
llmpando-a (apagando os grflcos [ desenhados) e desenhando o novo. ara que os grflcos
anLerlores se[am manLldos faz-se uso do comando hold on.

>> hold on
>> ploL(x,sln(x-pl/2),'kd-')
>> legend('sen(x)','cos(x)','sen(x-pl/2)')
>> ylabel('varlvels ?,Z e sen(x-pl/2)')



L1 LnCLnPA8lA LLL18lCA ul8
33


llgura 3.3

L para desaLlvar, basLa dlglLar hold off na Lela de comandos.
ara que a flgura aLual se[a manLlda e a salda dos comandos grflcos se[a dlreclonada para
ouLra [anela, uLlllza-se o comando fignre. 1endo vrlas flguras aberLas, a salda dos comandos
grflcos e especlflcada fazendo-se: fignre(n), onde n e o numero da flgura para a qual os
comandos dlglLados devem ser dlreclonados.


L posslvel que vrlos grflcos se[am desenhados na mesma [anela, mas com con[unLo de elxos
separados, aLraves do comando snIplot(aIc). C parmeLro a e o numero de llnhas dese[ado, I
especlflca o numero de colunas e c e o lndlce que lndlca a poslo nessa "maLrlz" para onde a
salda do grflco ser dlreclonada, a conLar da esquerda para a dlrelLa e de clma para balxo.

~~ fignre. snIplot(811). plot(.,). grid on. title('seno')
~~ snIplot(812). plot(.z).grid on. title('co-seno')
~~ snIplot(818). plot(.sin(-pi/2)). grid on. title('sen(-pi/2)')



llgura 3.6


L1 LnCLnPA8lA LLL18lCA ul8
34

Crflcos com ouLras escalas podem ser crlados aLraves dos comandos loglog, semilog e
semilog,. LxlsLem Lambem ouLros Llpos de grflcos no MA1LA8. So eles: area. pie.
pareto. polar. Iar. stairs. hist. stem. errorIar. compass. feather. rose. fill e plotmatri.
ara malores lnformaes sobre cada um deles e Lambem sobre grflcos com ouLras escalas
consulLe a a[uda vla comando help: help hist. help pie. help loglog. help semilog. eLc.


S.2 - Grf|cos 1r|d|mens|ona|s


Cs grflcos Lrldlmenslonals so desenhados, usando-se as funes mesh (malha) e meshdom
(domlnlo de malhas). or exemplo, para desenhar o grflco de (....z = x*exp( -x^2 - y^2........)
no domlnlo (....-1<x,y>1.....) dlglLamos os comandos a segulr:
~~ = -1:.1:1:
~~ ,, = :
~~ [.,] = meshgrid(.,,):
~~ z = .*ep(-.2-,.2):
~~ mesh(z):


























L1 LnCLnPA8lA LLL18lCA ul8
33

. Polinmios

6.1 - ka|zes


LnconLrar as ralzes de um pollnmlo, lsLo e, os valores para os quals o pollnmlo e lgual a
zero, e um problema comum em mulLas reas do conheclmenLo. C MA1LA8 e capaz de
resolver esse problema, alem de apresenLar ouLras ferramenLas para a manlpulao
pollnomlal. no MA1LA8, um pollnmlo e represenLado por um veLor llnha conLendo seus
coeflclenLes em ordem decrescenLe. or exemplo, o pollnmlo
e lnLroduzldo como:

~~ p = [1 -12 0 2 116]

p =

1 -12 0 2 116

Cbserve que os Lermos com coeflclenLe zero devem ser lncluldos, pols o MA1LA8 no Lem
como saber quals Lermos Lm coeflclenLes zero. uessa forma, as ralzes do pollnmlo so
enconLradas usando-se a funo roots:

~~ r = roots(p)

r =

11.18
2.028
-1.221 - 1.162i
-1.221 - 1.162i

! que LanLo um pollnmlo quanLo suas ralzes so veLores no MA1LA8, adoLa-se a conveno
de colocar os pollnmlos como veLores llnha e as ralzes como veLores coluna.
uadas as ralzes de um pollnmlo, Lambem e posslvel consLrulr o pollnmlo assoclado. no
MA1LA8, o comando pol, execuLa essa Larefa:

~~ pp = pol,(r)

pp =

1.0000 -12.0000 -0.0000 2.0000 116.0000











L1 LnCLnPA8lA LLL18lCA ul8
36

6.2 - Mu|t|p||cao


A mulLlpllcao pollnomlal e efeLuada por melo da funo con (que faz a convoluo enLre
dols veLores). Conslderemos o produLo de dols pollnmlos
e :


Lsse resulLado e .

A mulLlpllcao de mals de dols pollnmlos requer o uso repeLldo de con.

~~ a = [1 2 8 1]: I = [1 1 9 16]:
~~ c = con(a.I)

c =

1 6 20 0 81 61


6.3 - Ad|o


C MA1LA8 possul uma funo dlreLa para somar pollnmlos. C operador-padro de soma
pode ser usado se ambos os veLores pollnomlals forem do mesmo Lamanho. Somemos os
pollnmlos a() e I() dados aclma:

~~ d = a - I

d =

2 6 12 20

que e . Cuando os dols pollnmlos forem de ordens
dlferenLes, aquele que Llver menor ordem Ler de ser preenchldo com coeflclenLes lguals a
zero, a flm de Lorn-lo da mesma ordem do pollnmlo de ordem mals alLa. Consldere a adlo
dos pollnmlos c e d aclma:

~~ e = c - [0 0 0 d]

e =

1 6 20 2 81 96 81

que e . Cs zeros lnLroduzldos no
lnlclo do veLor d so necessrlos para que os coeflclenLes assoclados a poLnclas semelhanLes
de possam se allnhar.





L1 LnCLnPA8lA LLL18lCA ul8
37


6.4 - Mu|t|p||cao por um esca|ar


ara mulLlpllcar um pollnmlo por um escalar (sendo ele poslLlvo ou negaLlvo), basLa
deflnlr o pollnmlo pelos seus coeflclenLes e efeLuar a mulLlpllcao.

~~ f = [8 -6 1]:
~~ g = 8*f

g =

9 -18 8


6.S - D|v|so


Lm alguns casos especlals, e necessrlo dlvldlr um pollnmlo por ouLro. no MA1LA8, lsso
pode ser felLo com a funo decon. usando-se os pollnmlos I e c de nosso exemplo
anLerlor:

~~ [q r] = decon(c.I)

q =

1 2 8 1


r =

0 0 0 0 0 0 0


6.6 - Der|vadas


C MA1LA8 apresenLa a funo pol,der para a derlvao de pollnmlos:

~~ h = [1 6 20 18 69 2 11]

h =

1 6 20 18 69 2 11

~~ i = pol,der(g)

i =

6 80 80 111 188 2



L1 LnCLnPA8lA LLL18lCA ul8
38


6.7 - C|cu|o de o||nm|os


! que e posslvel somar, subLralr, mulLlpllcar, dlvldlr e derlvar pollnmlos com base nos
veLores llnha de seus coeflclenLes, voc deve Lambem ser capaz de calcul-los. no MA1LA8,
lsso pode ser felLo usando-se a funo pol,al. LsLe comando possul dols argumenLos. C
prlmelro argumenLo conLem os coeflclenLes do pollnmlo em quesLo e o segundo argumenLo
conLem a maLrlz para a qual dese[amos avallar o pollnmlo.

~~ = linspace(-1.8):
~~ p = [1 1 - -10]:
~~ = pol,al(p.):
~~ plot(.). title('8 - 12 - - 10'). laIel('')





llgura 6.1


















L1 LnCLnPA8lA LLL18lCA ul8
39


6.8 - o||nm|os kac|ona|s


s vezes, voc pode se deparar com razes enLre pollnmlos (funes de Lransferncla so
um exemplo). no MA1LA8, essas razes so manlpuladas conslderando-se os dols pollnmlos
separadamenLe. or exemplo:

~~ n = [1 -10 100] ' nnmerador

n =

1 -10 100

~~ d = [1 10 100 0] ' denominador

d =

1 10 100 0

~~ z = roots(n) ' as razes de n()/d()

z =

.0000 - 8.6608i
.0000 - 8.6608i

~~ p = roots(d) ' os plos de n()/d()

p =

0
-.0000 - 8.6608i
-.0000 - 8.6608i


CuLra operao comum conslsLe em deLermlnar a expanso em fraes parclals de um
pollnmlo raclonal.

~~ [r.p.L] = residne(n.d)

r =

0.0000 - 1.11i
0.0000 - 1.11i
1.0000
p =

-.0000 - 8.6608i
-.0000 - 8.6608i
0
L = []

L1 LnCLnPA8lA LLL18lCA ul8
40

nesse caso, a funo residne reLorna os coeflclenLes r dos reslduos (ou da expanso em
fraes parclals), seus plos assoclados p e o Lermo pollnomlal dlreLo L. Como a ordem do
numerador e menor que a do denomlnador, no h Lermos dlreLos. ara esLe exemplo, a
expanso em fraes parclals do pollnmlo raclonal dado anLerlormenLe e:






Conheclda essa lnformao, o pollnmlo raclonal pode ser obLldo usando-se novamenLe a
funo residne:

~~ [nn.dd] = residne(r.p.L)

nn =

1.0000 -10.0000 100.0000


dd =

1.0000 10.0000 100.0000 0






Lxerclclo: ueLermlne v(L) para L0, sabendo que v(0) = 1 [v].


llgura 6.2

Soluo: uLlllzando a anllse nodal, a equao do clrculLo flca da segulnLe forma.







L1 LnCLnPA8lA LLL18lCA ul8
41

Apllcando a 1ransformada de Laplace:











no MA1LA8:

>> n = [1 2 1],
>> d = [1 3 1 3],

>> [r,p,k] = resldue(n,d)

r =

0.4000
0.3000 - 0.1000l
0.3000 + 0.1000l


p =

-3.0000
0.0000 + 1.0000l
0.0000 - 1.0000l


k =

[]












L1 LnCLnPA8lA LLL18lCA ul8
42

Asslm a equao flnal flca:






Apllcando a 1ransformada lnversa de Laplace:

























L1 LnCLnPA8lA LLL18lCA ul8
43

7. A|uste de Curvas e Interpolao

Lm dlversas reas do conheclmenLo, com frequncla se Lorna necessrlo descrever os dados
obLldos experlmenLalmenLe orlundos de um experlmenLo ou fenmeno flslco. Lssas
lnformaes podem ser Lomadas como coordenadas de ponLos que deflnem uma cerLa funo
anallLlca f(x). odemos alnda usar esLes ponLos para esLlmar valores da funo que no
esLe[am denLre os lnlclals. CuLro problema de engenharla e quando no e necessrlo que a
funo v dlreLamenLe para Lodos os ponLos dados e slm, para uma esLlmaLlva mals
aproprlada do comporLamenLo da funo. P duas alLernaLlvas para resolver esLe problema.
na lnLerpolao, parLe-se do pressuposLo de que os dados esLe[am correLos e procura-se
alguma manelra de descrever o que aconLece enLre os ponLos dados, o ouLro meLodo e
chamado de a[usLe de curvas ou regresso, que Lem como ob[eLlvo achar alguma curva suave
que melhor se a[usLe aos dados, mas que no necessarlamenLe passe por qualsquer dos
ponLos.


7.1 - A[uste de Curvas ou kegresso


no MA1LA8, a funo pol,fit resolve o problema do a[usLe de curvas pelo meLodo dos
mlnlmos quadrados. ara exempllflcar o uso dessa funo, lnlclemos com os segulnLes dados:

~~ = [0 .1 .2 .8 .1 . .6 . .8 .9 1]:
~~ , = [-.11 1.98 8.28 6.16 .08 .81 .66 9.6 9.18 9.80 11.2]:

ara usar o pol,fit, Lemos de fornecer os dados anLerlores e a ordem ou grau do pollnmlo
que a nosso ver melhor se a[usLa aos dados. Se escolhermos n = 1 para o grau do pollnmlo, a
melhor aproxlmao llnear ser enconLrada. lsso e frequenLemenLe chamado de regresso
||near. or ouLro lado, se escolhermos n = 2, um pollnmlo quadrLlco ser enconLrado. or
enquanLo vamos escolher um pollnmlo quadrLlco:

~~n = 2:
~~ p = pol,fit(.,.n)

p =

-9.8108e-000 2.0129e-001 -8.161e-002


A salda pol,fit e um veLor llnha com os coeflclenLes do pollnmlo. Aqul a soluo e
. ara podermos comparar a soluo do a[usLe de curva
aos ponLos dados, Lracemos ambas as curvas:

~~ i = linspace(0.1.100): (crla os dados do elxo x para Lraar o pollnmlo.)
~~ z = pol,al(p.i): (chama a funo do MA1LA8 para calcular o pollnmlo p nos ponLos
em xl. )
~~ plot(.,.'-o'.i.z.':') (mosLra os dados orlglnals (x,y), marcando os ponLos com 'o' e
unlndo-os com reLas. Alem dlsso, Lraa o pollnmlo deflnldo pelos dados xl e z, usando uma
llnha ponLllhada.)
~~ laIel(''). ,laIel(' , = f()'). title('Ajnste de cnra de segnnda ordem') (coloca nomes
nos elxos e no grflco.)

L1 LnCLnPA8lA LLL18lCA ul8
44



llgura 7.1


A escolha do pollnmlo e, de cerLa forma, arblLrrla. So necessrlos dols ponLos para deflnlr
uma reLa ou um pollnmlo de prlmelra ordem. So necessrlos Lrs ponLos para deflnlr um
pollnmlo quadrLlco ou de segunda ordem. Segulndo-se essa progresso, necesslLa-se de n+1
ponLos para especlflcar de forma unlca um pollnmlo de ordem n. uessa forma, no caso
anLerlor, em que h 11 ponLos, poderlamos escolher um pollnmlo aLe a declma ordem.



~~ pp = pol,fit(.,.10):
~~ format short ' mnda o formato de isnalizao de nnmeros
~~ pp.' ' mostra os coeficientes do polinmio como nm colnna

ans =

1.0e-006 *

-0.1611
2.296
-1.88
.8288
-1.2918
2.0211
-0.6082
0.1090
-0.0106
0.0001
-0.0000




L1 LnCLnPA8lA LLL18lCA ul8
43

Cue Lal represenLar graflcamenLe essa soluo e compar-la com os dados orlglnals e o a[usLe
de curva quadrLlco?

~~ zz = pol,al(pp.i): ' calcnla o polinmio de dcima ordem
~~ plot(.,.'o'.i.z.':'.i.zz) ' representa graficamente os dados
~~ laIel('').,laIel(' , = f()'). title('Ajnste de cnras de segnnda e dcima ordem')



llgura 7.2



7.2 - Interpo|ao


A lnLerpolao e deflnlda como sendo uma forma de esLlmar os valores de uma funo enLre
aqueles dados por alguma Labela de ponLos. A lnLerpolao e uma ferramenLa vallosa quando
no se pode calcular rapldamenLe uma funo nos ponLos lnLermedlrlos dese[ados. or
exemplo, lsso ocorre quando os ponLos dados resulLam de medles experlmenLals ou de
procedlmenLos compuLaclonals demorados.
ara llusLrar a lnLerpolao, conslderemos o segulnLe exemplo: o llmlar de audlo, lsLo e, o
nlvel mlnlmo de som percepLlvel ao ouvldo humano varla com a frequncla. Medldas Llplcas
so:

~~ Hz = [20:10:100 200:100:1000 100 2000:1000:10000]: ' freqnncias em Hertz
~~ nps = [6 66 9 1 19 16 18 10 88 22 11 9 6 8. 2. 1.1 0. 0 -1 -8 -8 - -2 2 9 11 12]:
'nel de pressao do som em deciIis (dL)
~~ semilog(Hz.nps.'-o')
~~ laIel('Jreqnncia. Hz')
~~ ,laIel('Nel relatio de presso do som. dL')
~~ title('Limiar da andio hnmana')
~~ grid on

L1 LnCLnPA8lA LLL18lCA ul8
46



llgura 7.3

Com base na flgura..., a audlo humana e mals senslvel a sons por volLa de 3 kPz. Com esses
dados, vamos esLlmar, por dlferenLes modos, o nlvel de presso do som em uma frequncla de
2,3 kPz.

~~ s = interp1(Hz.nps.2.e8) ' interpolao linear

s =

-.000

~~ s = interp1(Hz.nps.2.e8.'linear') ' interpolao linear noamente

s =

-.000

~~ s = interp1(Hz.nps.2.e8.'cnIic') ' interpolao cnIica

s =

-6.0188

~~ s = interp1(Hz.nps.2.e8.'splines') ' interpolao por splines

s =

-.8690

~~ s = interp1(Hz.nps.2.e8.'nearest') ' izinho mais primo

s=
-8

L1 LnCLnPA8lA LLL18lCA ul8
47

Cbserve as dlferenas nesses resulLados. C prlmelro dos dols resulLados reLorna exaLamenLe
o que e mosLrado na flgura em 2,3 kPz, [ que o MA1LA8 lnLerpola llnearmenLe enLre os
ponLos dados em grflcos. As resposLas da lnLerpolao cublca e lnLerpolao usando splines
so prxlmas enLre sl, uma vez que ambas a[usLam cublcas, lsLo e, pollnmlos de Lercelra
ordem, alnda que de modos dlferenLes. C plor resulLado fol aquele fornecldo pelo vlzlnho mals
prxlmo, pols, nesse caso, o valor obLldo nada mals e que o dado de enLrada mals prxlmo do
valor dado.
Lm mulLos casos a lnLerpolao llnear e suflclenLe. or essa razo, esLe e meLodo usado por
deflnlo no MA1LA8. Apesar de o meLodo do vlzlnho mals prxlmo Ler produzldo aqul
resulLados rulns, ele e frequeLemenLe usado quando a velocldade e lmporLanLe ou o con[unLo
de dados e grande. C meLodo que consome mals Lempo e o splines. orem, em geral, ele
produz melhores resulLados.
Lmbora o exemplo anLerlor Lenha conslderado somenLe um unlco ponLo de lnLerpolao, o
interp1 pode manlpular um numero arblLrrlo de valores. ue faLo, uma das apllcaes mals
comuns de lnLerpolao por splines e a suavlzao de dados. lsLo e, dado um con[unLo de
ponLos, usa-se a lnLerpolao por splines para calcular os dados em lnLervalos menores. or
exemplo:


~~ Hzi = linspace(2e8.e8): ' olhando mnito perto do mnimo
~~ npsi = interp1(Hz.nps.Hzi.'cnIic'): ' interpolando perto do mnimo
~~ i = find(Hz~=2e8 & Hz=e8): ' determinando os ndices dos dados originais perto do
mnimo
~~ semilog(Hz(i).nps(i).'-o'.Hzi.npsi) ' representando graficamente dados elhos e noos
~~ laIel('Jreqnncia. Hz')
~~ ,laIel('Nel relatio de presso do som. dL')
~~ title('Limiar da andio hnmana')
~~ grid on

na flgura..., allnha azul corresponde a lnLerpolao llnear, a llnha conLlnua, a lnLerpolao
cublca e os dados orlglnals enconLram-se marcados com o`. 8uscando uma resoluo mals
reflnada no elxo das frequnclas e usando lnLerpolao cublca, Lemos uma esLlmaLlva mals
suave do nlvel de presso do som. Lm parLlcular, observe que a lncllnao da soluo cublca
no muda abrupLamenLe nos ponLos dados.


llgura 7.4

L1 LnCLnPA8lA LLL18lCA ul8
48



Com esses dados podemos fazer uma esLlmaLlva melhor da frequncla de malor
senslbllldade:

~~ [npsi_min.i] = min(npsi) ' mnimo e ndice do mnimo

npsi_min =

-8


i =

81

~~ Hz_min = Hzi(i) ' freqnncia no mnimo

Hz_min =

8000


C ouvldo humano e mals senslvel a sons prxlmos de 3,0 kPz.


Cbservao: no se pode pedlr resulLados fora do llmlLe da varlvel lndependenLe, por
exemplo, interp1(Hz.nps.1e) conduzlrla a um erro ( resulLarla em NaN). Segundo, a varlvel
lndependenLe Lem de ser monotn|ca. lsLo e, a varlvel lndependenLe preclsa sempre crescer
ou sempre decrescer. Lm nosso exemplo, Pz e monotn|ca.





















L1 LnCLnPA8lA LLL18lCA ul8
49

8. Anlise Numrica


8.1 - Grf|cos


ALe agora , os grflcos de uma funo Lm sldo gerados slmplesmenLe calculando-se a funo
em cerLo domlnlo e armazenando os resulLados em veLores. ara mulLos casos, lsso e
suflclenLe. LnLreLanLo, algumas vezes uma funo e lnvarlvel e deslnLeressanLe em um cerLo
domlnlo, e apresenLa um comporLamenLo compllcado em ouLro. Se empregarmos a Lecnlca
Lradlclonal para elaborao de grflcos nesse caso, poderemos obLer um grflco que
represenLe mal a naLureza verdadelra da funo. C MA1LA8 possul uma funo lnLellgenLe
para a elaborao de grflcos chamada fplot. Lssa funo calcula culdadosamenLe a funo a
funo e cerLlflca-se de suas pecullarldades esLe[am bem represenLadas no grflco de salda.
Como enLrada, essa funo preclsa saber o nome da funo (na forma de sLrlng de caracLeres)
e o domlnlo do grflco (na forma de um veLor de dols elemenLos). or exemplo:

~~ fplot('hnmps'. [0 2])
~~ title('JPLOT de hnmps')

LsLe exemplo e o arqulvo M da funo hnmps`, fornecldo com o MA1LA8.

no caso de funes slmples que podem ser expressas apenas como uma sLrlng de caracLeres,
como , fplot pode crlar o grflco da funo a ser Lraada como uma sLrlng
compleLa de caracLeres e usar como varlvel lndependenLe:

~~ f = '2*ep(-)*sin()':
~~ fplot(f.[0 8])
~~ title(f). laIel('')


8.2 - M|n|m|zao


Alem das lnformaes vlsuals fornecldas pelos grflcos. Com frequncla e necessrlo
deLermlnar ouLros aLrlbuLos. Lm mulLas apllcaes e necessrlo deLermlnar os exLremos de
uma funo, lsLo e, seus mxlmos (plcos) e mlnlmos (vales). no MA1LA8 lsso se d aLraves da
funo fmlnbnd:

~~ fn = '2*ep(-)*sin()': ' defina fnno para min
~~ min = fminInd(fn.2.) ' procnre o mnimo no domnio 2

min =

8.920







L1 LnCLnPA8lA LLL18lCA ul8
30

~~ = min: ' defina para eal de fn
~~ ,min = eal(fn) ' calcnle fn em min

,min =

-0.029



~~ f = '-2*ep(-)*sin()': ' defina a fno para ma
~~ ma = fminInd(f.0.8) ' procnre mnimo no domnio 08

ma =

0.81

~~ = ma: ' defina para eal de fn
~~ ,ma = eal(fn)

,ma =

0.6118


8.3 - Determ|nao de ka|zes


As vezes e lmporLanLe deLermlnar onde a funo se anula ou assume algum ouLro valor
consLanLe.
Mals uma vez, o MA1LA8 fornece uma soluo numerlca para o problema. A funo fzero
procura o zero de uma funo unldlmenslonal. ara llusLrar o uso dessa funo, uLlllzemos o
exemplo de hnmps novamenLe:

~~ zero = fzero('hnmps'.1.2) ' procnre o zero primo a 1.2

zero =

1.299

~~ ,zero = hnmps(zero) ' calcnle hnmps em zero

,zero =

0

L Lambem e posslvel enconLrar a ralzes em funes crladas pelo prprlo usurlo:

~~ zero = fzero(f.1.2)

zero =

-.916e-081

L1 LnCLnPA8lA LLL18lCA ul8
31

A funo fzero pode Lambem ser usada para deLermlnar onde a funo e lgual a uma
consLanLe qualquer. 8asLa uma redeflnlo. or exemplo, para achar onde a funo e
lgual a consLanLe , deflna a funo como . LnLo, usando em
fzero, pode-se enconLrar o valor de para o qual e zero o que ocorre onde !


8.4 - Integrao


C MA1LA8 possul Lrs funes para deLermlnar numerlcamenLe a lnLegral de uma funo em
um domlnlo flnlLo: trapz. qnad e qnadl. A funo trapz aproxlma a lnLegral de uma funo
somando a rea de Lrapezlos formados a parLlr de ponLos da curva.

~~ = -1:0.1:2: ' determinando o interalo da fnno
~~ , = hnmps():
~~
~~ area = trapz(.,)

area =

2.911

Como ocorre na lnLerpolao llnear, essa aproxlmao Lorna-se melhor a medlda que o
numero de Lrapezlos aumenLa.

~~ = -1:0.0:2: ' aproimao melhor
~~ , = hnmps():
~~
~~ area = trapz(.,)

area =

26.6218

As funes qnad e qnadl, se baselam no concelLo maLemLlco de quadraLura. Llas funclonam
da mesma manelra. Ambas calculam a funo a ser lnLegrada usando lnLervalos com
comprlmenLos adequados para aLlnglr os resulLados preclsos. Alem dlsso, ambas fazem
aproxlmaes de ordem superlor a um Lrapezlo, sendo que qnadl e mals rlgorosa do que
qnad.

~~ area = qnad('hnmps'.-1.2) ' rea entre -1 e 2

area =

26.810

~~ area = qnadl('hnmps'.-1.2)

area =

26.810


L1 LnCLnPA8lA LLL18lCA ul8
32

orem as vezes e necessrlo calcular lnLegrals de funes deflnldas pelo prprlo usurlo. lsso
se faz aLraves do comando inline:

~~ JJN = inline('1./(.8-2*-)')

JJN =

Jnline fnnction:
JJN() = 1./(.8-2*-)

~~ area = qnad(JJN.-2.1)

area =

-0.98

~~ area = qnadl(JJN.8.)

area =

0.018


ueve-se Lomar o culdado de quando usar o comando inline, usar o ponLo (.) anLes das
operaes de mulLlpllcao, dlvlso e exponenclao, ao dlglLar a funo.


S para vlsuallzar a funo:

~~ = linspace(0.10.100):
~~ , = JJN():
~~ plot(.,)


8.S - D|ferenc|ao


A dlferenclao numerlca normalmenLe e evlLada sempre que posslvel, em especlal se os
dados a serem derlvados foram obLldos experlmenLalmenLe, devldo a sua senslbllldade a
grandes varlaes. nesse caso, e melhor efeLuar um a[usLe de curvas pelos mlnlmos
quadrados e enLo derlvar o pollnmlo resulLanLe.

~~ = [0 .1 .2 .8 .1 . .6 . .8 .9 1]:
~~ , = [-.11 1.98 8.28 6.16 .08 .81 .66 9.6 9.18 9.80 11.2]:
~~ n = 2: ' ordem do ajnste
~~ p = pol,fit(.,.n) ' acha os coeficientes do polinmio

p =

-9.8108 20.1298 -0.081



L1 LnCLnPA8lA LLL18lCA ul8
33


~~ i = linspace(0.1.100):
~~ z = pol,al(p.i): ' calcnla o polinmio
~~ plot(.,.'o'..,.i.z.':')
~~ laIel(''). ,laIel(' , = f()'). title('Ajnste de cnra de segnnda ordem')



llgura 8.1

nesse caso, a derlvada e enconLrada usando-se a funo de derlvada pollnomlal pol,der:

~~ pd = pol,der(p)

pd =

-19.621 20.1298


A derlvada de e . uma
vez que a derlvada de um pollnmlo e ouLro pollnmlo de ordem lnferlor, a derlvada pode
Lambem ser calculada e represenLada em um grflco:


~~ z = pol,al(pd.i): ' calcnla a deriada
~~ plot(i.z)
~~ laIel('').,laIel('d,/d'). title('Deriada do polinmio de ajnste')



L1 LnCLnPA8lA LLL18lCA ul8
34


llgura 8.2




nesse caso, o a[usLe pollnomlal fol de segunda ordem, fazendo com que a derlvada
resulLanLe se[a de prlmelra ordem. Como resulLado, a derlvada e uma llnha reLa, slgnlflcando
que ela muda llnearmenLe com .

C MA1LA8 possul uma funo para calcular uma derlvada mulLa grosselra a parLlr dos dados
que descrevem uma dada funo. Lssa funo, chamada diff, calcula a dlferena enLre os
elemenLos de um con[unLo. ! que a derlvada e deflnlda como:



A derlvada de pode ser aproxlmada por:



Cue e a dlferena flnlLa em dlvldlda pela dlferena em . uma vez que o diff calcula
dlferenas enLre componenLes de veLores, a derlvao pode ser aproxlmada no MA1LA8.

~~ d, = diff(,)./diff(): ' calcnla as diferenas e nsa a diiso de etores
~~ d = (1:length()-1): ' cria nm noo etor para o eio j qne d, tem comprimento
menor do qne ,
~~ plot(d.d,)
~~ title('Deriada aproimada nsando DJJJ')
~~ ,laIel('d,/d'). laIel('')




L1 LnCLnPA8lA LLL18lCA ul8
33




llgura 8.3

! que dlff calcula a dlferena enLre componenLes de um veLor, o resulLado da salda conLem
uma componenLe a menos que o veLor orlglnal. Asslm, para represenLar graflcamenLe a
derlvada, uma componenLe do veLor deve ser descarLada. Comparando-se os dols ulLlmos
grflcos, flca bvlo que aproxlmar a derlvada por dlferenas flnlLas quase sempre leva a
resulLados rulns.






















L1 LnCLnPA8lA LLL18lCA ul8
36

9. Transformadas

As Lransformadas so usadas com mulLa frequncla em Lngenharla para mudar o campo de
referncla enLre o domlnlo do Lempo e o domlnlo s, domlnlo da frequncla ou domlnlo Z. P
mulLas Lecnlcas para anallsar esLados de equlllbrlo e slsLemas que sofrem mudanas mulLo
suaves no domlnlo do Lempo, mas os slsLemas complexos quase sempre podem ser anallsados
mals facllmenLe em ouLros domlnlos.


9.1 - Iunes Degrau e Impu|so


Cs problemas de Lngenharla frequenLemenLe fazem uso da funo uegrau u(L) e lmpulso (L)
na descrlo de slsLemas. A funo uegrau ku(L - a), onde k e uma consLanLe, e deflnlda como
ku(L - a) = 0 para L < a e ku(L - a) = k para L >a . Lls um grflco da funo uegrau ku(L - a):



llgura 9.1

A funo lmpulso d(L) e a derlvada da funo uegrau u(L). A funo uegrau k d(L-a) e deflnlda como
k(L-a) = 0 para L < a e para L=a.


Cuando represenLada em grflco ela e comumenLe represenLada como uma seLa de
ampllLude k em L = a . Lls o grflco de k( (L-a):



llgura 9.2

L1 LnCLnPA8lA LLL18lCA ul8
37


A noLao das funes degrau e lmpulso usam nomes de maLemLlcos famosos que
empregaram essas funes exLenslvamenLe em seus Lrabalhos. A funo degrau e chamada de
Heaiside(t) e a funo lmpulso e chamada de Dirac(t).


~~ s,ms L a t ' cria as arieis
~~ n = L*s,m('Heaiside(t-a)') ' cria nma fnno degran

n =

L*heaiside(t-a)


~~ d = diff(n) ' encontra a deriada da fnno degran

d =

L*dirac(-t-a)


~~ int(d) ' integra a fnno impnlso

ans =

L*heaiside(t-a)


9.2 - 1ransformada de Lap|ace


A Lransformada de Laplace reallza a operao


ara Lransformar , no domlnlo de Lempo, em , no domlnlo .
A Lransformada de Laplace da funo co-seno amorLeclda e enconLrada
usando-se a fnno laplace:

~~ s,ms a s t w
~~ f = ep(-a*t)*cos(w*t) ' cria nma epresso f(t)

f =

ep(-a*t)*cos(w*t)


~~ L = laplace(f) ' encontra a transformada de laplace

L =

(s-a)/((s-a)2-w2)

L1 LnCLnPA8lA LLL18lCA ul8
38



~~ prett,(L)

s - a
-------------
2 2
(s - a) - w

~~ laplace(s,m('Dirac(t)')) ' a transformada da fnno impnlso

ans =

1


~~ laplace(s,m('Heaiside(t)')) ' a transformada da fnno degran

ans =

1/s

L a Lransformada lnversa de Laplace e obLlda com o uso da funo ilaplace:


~~ ilaplace(L) ' transformada inersa

ans =

ep(-a*t)*cos(w*t)


~~ prett,(ans)

ep(-a t) cos(w t)





9.3 - 1ransformada de Iour|er


A 1ransformada de lourler e sua lnversa so mulLo usadas em anllse de clrculLos para
deLermlnar as caracLerlsLlcas de um slsLema em ambos os domlnlos de Lempo e de frequncla.
C MA1LA8 usa as funes fonrier e ifonrier para Lransformar expresses enLre domlnlos. A
1ransformada de lourler e sua lnversa so deflnldas como:



L1 LnCLnPA8lA LLL18lCA ul8
39



C MA1LA8 usa um 'w' para represenLar o nas expresses slmbllcas.
~~ s,ms t w
~~ f = t*ep(-t2)

f =

t*ep(-t2)


~~ J = fonrier(f)

J =

-1/2*i*pi(1/2)*w*ep(-1/1*w2)


~~ prett,(J)

1/2 2
-1/2 J pi w ep(- 1/1 w )
~~ ifonrier(J)

ans =

*ep(-2)


~~ prett,(ans)

2
ep(- )


lrequenLemenLe, ao uLlllzar a Lransformada de lourler para soluclonar problemas de
engenharla, as expresses lncluem a funo degrau e/ou a funo lmpulso.
Consldere, por exemplo, a funo . A Lransformada de lourler
pode ser enconLrada por melo de:


~~ s,ms w t
~~ fonrier(s,m('ep(-t)*Heaiside(t)-8*Dirac(t)'))

ans =

(1-8*i*w)/(1-i*w)






L1 LnCLnPA8lA LLL18lCA ul8
60

~~ prett,(ans)

1 - 8 J w
---------

1 - w J
~~ ifonrier(ans)

ans =

ep(-)*heaiside()-8*dirac()


~~ prett,(ans)

ep(-) heaiside() - 8 dirac()


9.4 - 1ransformada 2


As Lransformadas de Laplace e lourler so usadas para anallsar slsLemas de Lempo conLlnuos.
1ransformadas Z, por ouLro lado, so usadas para anallsar slsLemas de Lempo dlscreLo. A
1ransformada Z e deflnlda como:



Cnde z e um numero complexo.
A 1ransformada z e a 1ransformada z lnversa so obLldas usando-se as funes
ztrans e inztrans. C formaLo e slmllar ao das funes de Lransformadas de Laplace e
lourler.

~~ s,ms n z
~~ f = 2n/-(-)n/

f =

1/*2n-1/*(-)n


~~ prett,(f)

n n
1/ 2 - 1/ (-)
~~ C = ztrans(f)

C =

1/11*z/(1/2*z-1)-1/*z/ep(log()-i*pi)/(z/ep(log()-i*pi)-1)



L1 LnCLnPA8lA LLL18lCA ul8
61

~~ prett,(C)

z z
1/11 --------- - 1/ -------------------------------------------
1/2 z - 1 / z \
ep(log() - pi J) |------------------ - 1|
\ep(log() - pi J) /

~~ simplif,(C) ' simplifica a epresso

ans =

z/(z-2)/(z-)


~~ prett,(ans)

z
---------------
(z - 2) (z - )
~~ iztrans(C)

ans =

1/*2n-1/*(-)n


~~ prett,(ans)

n n
1/ 2 - 1/ (-)













L1 LnCLnPA8lA LLL18lCA ul8
62

10. Equaes Diferenciais

10.1 - Uma 0n|ca Lquao D|ferenc|a|


Lquaes dlferenclals ordlnrlas, as vezes, so dlflcels de ser resolvldas. C MA1LA8 possul
uma ferramenLa poderosa para enconLrar solues para equaes dlferenclals. A funo
dsole calcula solues slmbllcas para equaes dlferenclals ordlnrlas. A slnLaxe de dsole e
um LanLo dlferenLe daquela usada pela malorla das ouLras funes. Cs parmeLros passados a
dsole preclsam ser sLrlngs de caracLeres represenLando equaes, ou se[a, preclsam ser
expresses conLendo o slnal de lgualdade (=).
uma vez que esLamos Lrabalhando com equaes dlferenclals, preclsamos deflnlr uma
manelra de lnclulr derlvadas em uma expresso. Ao especlflcar uma equao, usamos a leLra D
para represenLar a prlmelra derlvada, e D2, D8, eLc. para represenLar derlvadas de ordem
superlor. Cualquer leLra aps o D malusculo e conslderado uma varlvel dependenLe. A
equao e represenLada pela expresso D2,=0`. Caso a varlvel lndependenLe no se[a
especlflcada, t e usada. or exemplo a soluo da equao pode ser enconLrada
por melo de:
~~ clear ' elimina as arieis do espao de traIalho
~~ dsole('D,=1-,2') ' encontra a solno geral
ans =
tan(t-1)

Lm que C1 e uma consLanLe de lnLegrao. Se resolvemos a mesma equao com a condlo
lnlclal , obLeremos:

~~ dsole('D,=1-,2. ,(0)=1') ' inclni nma condio inicial
ans =
tan(t-1/1*pi)

A varlvel lndependenLe pode ser especlflcada da segulnLe forma:

~~ dsole('D,=1-,2. ,(0)=1'.'') ' acha a solno em relao a
ans =
tan(-1/1*pi)
1enLemos, agora, resolver uma equao dlferenclal de segundo ordem com duas condles
lnlclals:








L1 LnCLnPA8lA LLL18lCA ul8
63

~~ , = dsole('D2,=cos(2*t)-,. D,(0)=0. ,(0)=1')

, =

1/8*cos(t)-1/8*cos(2*t)



lrequenLemenLe, uma equao dlferenclal a ser resolvlda conLem Lermos de mals de uma
ordem, sendo apresenLado da segulnLe forma:



A soluo geral, nesse caso, e dada por:

~~ , =dsole('D2,-2*D,-8*,=0')

, =

1*ep(8*t)-2*ep(-t)

Apllcando as condles de conLorno , Lemos:

~~ , = dsole('D2,-2*D,-8*,=0'.',(0)-0'.',(1)=1')

, =

1/(ep(8)-ep(-1))*ep(8*t)-1/(ep(8)-ep(-1))*ep(-t)


~~ , = simple(,) ' parece qne podemos simplificar ,

, =

(ep(8*t)-ep(-t))/(ep(8)-ep(-1))


~~ prett,(,)

ep(8 t) - ep(-t)
------------------
ep(8) - ep(-1)



vamos agora Lraar o grflco do resulLado em uma reglo parLlcular:

~~ ezplot(,. [-6.2])



L1 LnCLnPA8lA LLL18lCA ul8
64


llgura 10.1




10.2 - S|stemas de Lquaes D|ferenc|a|s


A funo dsole Lambem e capaz de resolver um slsLema de equaes dlferenclals. Cuando
apllcada a um slsLema de equaes dlferenclals, a funo dsole reLorna os resulLados em uma
esLruLura ou veLor, do mesmo modo que a funo sole.


Aqul Lemos um par de equaes dlferenclals de prlmelra ordem:



A soluo geral do slsLema e:

~~ [f.g] = dsole('Df=8*f-1*g. Dg=-1*f-8*g')

f =

ep(8*t)*(1*sin(1*t)-2*cos(1*t))


g =

ep(8*t)*(1*cos(1*t)-2*sin(1*t))







L1 LnCLnPA8lA LLL18lCA ul8
63

AcrescenLando as condles lnlclals (....f(0)=0 e g(0)=1.......), obLemos:

~~ S = dsole('Df=8*f-1*g. Dg=-1*f-8*g. f(0)=0. g(0)=1')

S =

f: [11 s,m]
g: [11 s,m]

~~ S.f

ans =

ep(8*t)*sin(1*t)


~~ S.g

ans =

ep(8*t)*cos(1*t)



Lxemplo: 8esolvendo uma equao dlferenclal de segundo ordem

vamos resolver o problema de valor lnclal:




~~ , = dsole('2*D2,-**D,-*,=10-1/. ,(1)=1. D,(1)=0'.'')

, =

-/1/-1/1*(8*-1*log()-1)/


~~ , = simple(,)

, =

2-(-1-log())/


~~ prett,(,)

-1 - log()
2 - -----------
N

L1 LnCLnPA8lA LLL18lCA ul8
66

11. Escrevendo Programas no MATLAB

11.1 - Arqu|vos M


ara resolver problemas slmples, e cmodo e eflclenLe uLlllzar o MA1LA8 como se fosse uma
calculadora, enLrando-se com os comandos dlreLamenLe no prompL. Cu se[a, cada llnha de
comando e lnLroduzlda na !anela de Comandos e processada lmedlaLamenLe. LnLreLanLo, a
medlda que o numero de comandos aumenLa, ou quando se dese[a mudar o valor de uma ou
mals varlvels e execuLar novamenLe os comandos, o melhor e uLlllzar o MA1LA8 como uma
llnguagem de programao, ou se[a, uLlllzar o MA1LA8 para execuLar sequnclas de comandos
armazenadas em arqulvos de roLelro (sctlpt). Lsses arqulvos que conLm as declaraes do
MA1LA8 so chamados arqulvos ".m" ( ou M-flles ), como, por exemplo, exemp|o1.m. Lsses
M-flles so os programas fonLes do MA1LA8 e conslsLem de sequnclas de comandos normals
do MA1LA8, posslblllLando lnclulr ouLros arqulvos ".m" escrlLos no formaLo LexLo (ASCll).

ara escrever um programa (ou arqulvo .m ) no MA1LA8, escolha I||e na barra de menu.
uenLro do menu I||e escolha New e seleclone M-f||e. Abre-se, enLo, um edlLor de LexLos,
onde pode-se escrever os comandos do MA1LA8. ara edlLar um arqulvo [ exlsLenLe,
seleclone a opo Cpen M-I||e, a parLlr do menu I||e. Cs arqulvos podem, Lambem, ser
edlLados fora do MA1LA8 uLlllzando qualquer edlLor de LexLo.


CLkADCk CCMLN1kIC
< Menor
<= Menor ou lgual a
> Malor
>= Malor ou lgual a
== lgual
~= ulferenLe
& L (ooJ)
| Cu (ot)
~ no (oot)
1abela 11.1 - Cperadores Lglcos 8elaclonals

















L1 LnCLnPA8lA LLL18lCA ul8
67

Lscreva, por exemplo, o programa abalxo :

%=====================================================
% Exemplo de programao no MATLAB
% Este exemplo plota uma funo seno nas sequintes
% condies:
% sen(x)
% 2*sen(x)
% 2*sen(x+45)
% 2*sen(x-90)
% 2*sen(2*x)
%==============================================
%
x=0:360;
%
% Seno com amplitude A=1 e defasagem phi=0 graus
A=1;
phi=0;
y=A*sin(2*pi*x/360+2*pi*phi/360);
% Seno com amplitude A=2 e defasagem phi=0 graus
A=2;
z=A*sin(2*pi*x/360+2*pi*phi/360);
% Seno com amplitude A=2 e defasagem phi=45 graus
phi=45;
v=A*sin(2*pi*x/360+2*pi*phi/360);
% Seno com amplitude A= 2 e defasagem phi=-90 graus
phi=-90;
w=A*sin(2*pi*x/360+2*pi*phi/360);
% Seno com amplitude A= 2 e defasagem phi=0 graus
phi=0;
u=A*sin(2*pi*2*x/360+2*pi*phi/360);
% Plotagem do resultado
plot(x,y,'k-',x,z,'k--',x,v,'k-.',x,w,'k.',x,u, 'ko')
grid
xlabel('Valores de x em graus')
ylabel('y,z,v,w e u')
title('Estudo de defasagem e amplitude de um seno')
legend('sen(x)','2*sen(x)','2*sen(x+45)','2*sen(x-90)','2*sen(2*x)');


uma vez escrlLo o programa, enLre no menu I||e da [anela do edlLor de LexLos e escolha a
opo Save as... nesLa opo do menu, salve o programa como ptoq1.m no seu dlreLrlo de
Lrabalho. Lm segulda, volLe a [anela de comandos do MA1LA8 e use o comando cJ ou a opo
Set ath... do menu I||e para lr ao dlreLrlo onde o programa ptoq1.m fol salvo. Lm segulda,
dlglLe o nome do arqulvo (sem a exLenso .m) para execuLar o programa:


~~ prog1










L1 LnCLnPA8lA LLL18lCA ul8
68

11.2 - Iunes do M-I||es


or causa da grande uLllldade dos M-flles, o MA1LA8 possul dlversas funes que Lornam os
M-flles alnda mals lnLeressanLes. LsLas funes esLo llsLadas na Labela 11.2:


1abela 11.2 - lunes M-llles




% Exemplo 1 de utilizao da funo M-file input
%=========================================
%Plota uma funo y=ax^2 + bx + c no intervalo -5<x<5
clear
aux='s';
while aux == 's',
a=input('a =');
b=input('b =');
c=input('c =');
x=-5:0.1:5;
y=a*x.^2+b*x+c;
plot(y)
figure(1)
pause
clc
close
aux=input('Plotar outro ? (s/n) = => ','s');
end


8epare, alem do uso do comando |nput, o uso do caracLer (comenLrlo) no LexLo, do
comando c|ear (apaga Lodos os dados da memrla), pause (provoca uma pausa na execuo
do arqulvo aLe que qualquer Lecla se[a dlglLada), c|c (llmpa a !anela de Comando), f|gure(1)
(mosLra a !anela Crflca numero 1) e c|ose (fecha Lodas as !anelas Crflcas).






L1 LnCLnPA8lA LLL18lCA ul8
69


% Exemplo 2 de utilizao da funo M-file input
%=========================================
% Programa para traar a curva :
%
% y=A.sin(x+phi),
%
%sendo que os valores de x[rad], A e phi[graus] devem ser
%entrados via teclado durante a execuo do programa
%
A=input('Entre com o valor de A: ');
phi=input('Entre com o valor de phi [graus]: ');
%
x = 0:.1*pi:2*pi;
y=A*sin(x+pi*phi/180);
plot(x,y,'r');
grid on
title('Exemplo de utilizao da funo input')
xlabel('x em rad/s')
ylabel('y=A.sin(x+phi)')


11.3 - Gerenc|amento de Arqu|vos


C MA1LA8 possul uma serle de comandos para gerenclamenLo de arqulvos, Lals como llsLar
os nomes de arqulvos, vlsuallzar, deleLar, eLc. na Labela abalxo Lem-se um resumo dos
prlnclpals comandos :


1abela 11.3 - Comandos para CerenclamenLos de Arqulvos









L1 LnCLnPA8lA LLL18lCA ul8
70

11.4 - Contro|es de I|uxo


11.4.1 - LsLruLuras Condlclonals

uma esLruLura condlclonal permlLe a escolha do grupo de comandos a serem execuLados
quando uma dada condlo for saLlsfelLa ou no, posslblllLando desLa forma alLerar o fluxo
naLural de comandos. LsLa condlo e represenLada por uma expresso lglca.


11.4.1.1 - LsLruLura |f-end


A esLruLura condlclonal mals slmples do MA 1LA8 e:
|f <cond|o>
<comandos>
Lnd

Se o resulLado da expresso lglca <condlo> for 1 ( verdadelro ) enLo a llsLa de <comandos>
ser execuLada. Se o resulLado for 0 ( falso ) os <comandos > no sero execuLados. or
exemplo, consldere o arqulvo estcond1.m cu[o conLeudo e:



% Programa estcond1.m
a = input('Entre com o valor de a : ');
if a >= 0
b = sqrt(a)
end

ara execuL-lo basLa fornecer o seu nome na rea de Lrabalho:

~~ estcond1
Jntre com o alor de a : 2

I =

1.1112


nesLe exemplo, a ralz quadrada de a ser aLrlbulda a b somenLe se o valor de a for malor ou
lgual a 0 .












L1 LnCLnPA8lA LLL18lCA ul8
71

11.4.1.2 - LsLruLura |f-e|se-end

no caso de haver duas alLernaLlvas, uma ouLra esLruLura condlclonal deve ser usada:
|f <cond|o>
<comandos 1>
e|se
<comandos 0>
end
Se o resulLado da expresso lglca <condlo > for 1 ( verdadelro ) enLo a llsLa <comandos 1>
ser execuLada. Se <condlo> for 0 ( falso ) enLo ser a llsLa <comandos 0> a ser execuLada.
or exemplo, o programa do arqulvo estcond2.m


% programa estcond2.m
a = input('Entre com o valor de a : ');
if a > 0
b = log(a)
else
b = exp(a)
end

Cuando execuLado ser:

~~ estcond2
Jntre com o alor de a :

I =

1.6091


Se a for poslLlvo, enLo o logarlLmo naLural de a ser aLrlbuldo a b e se a for negaLlvo ou nulo,
enLo b ser lgual ao exponenclal de a .


Lxemplo: loLe uma funo reLangular uLlllzando-se a esLruLura lf-else-eoJ.

%
x = linspace(0,2*pi,100); % Criou-se 100 amostras entre 0 e 2*pi
%
for n = 1:100
if x(n)<=pi
f(n) = 1; % Faz f(t)=1 para 0<t<=pi, i.e.,as primeiras 50
amostras de f(t) so iguais a 1
else
f(n) = -1; % Faz f(t) = -1 para pi<t<=2*pi, i.e., as ltimas
50 amostras de f(t) so iguais a -1
end
end
plot(x,f, 'ko'); grid on
title('Funo retangular')
xlabel('t em radianos')
ylabel('f(t)')



L1 LnCLnPA8lA LLL18lCA ul8
72

11.4.1.3 - LsLruLura |f-e|se|f-end

Cuando houver mals de duas alLernaLlvas, a esLruLura |f-e|se-end do MA1LA8 Lorna-se
|f <cond|o 1>
<comandos 1>
e|se|f <cond|o 2>
<comandos 2>
e|se|f <cond|o 3>
<comandos 3>
.
.
.
e|se
<comandos 0>
Lnd


A llsLa <comandos 1> ser execuLada se <condlo 1> for lgual a 1 (verdadelro), [ a llsLa
<comandos 2> ser execuLada se <condlo 2> for 1 e asslm para as ouLras condles. Se
nenhuma das condles for 1 enLo <comandos 0> ser execuLada.
Cuando a prlmelra <condlo> for saLlsfelLa e os <comandos> execuLados, a esLruLura lf-elself-
end ser abandonada, ou se[a, o conLrole do processamenLo ser Lransferldo para o comando
lmedlaLamenLe aps o end . or exemplo, estcond3.m



a = input('Entre com o valor de a : ');
if a <= -10
b = exp(a)
elseif a < 0
b = 1/a
elseif a <= 10
b = a^2
elseif a < 100
b = sqrt(a)
else
b = 10
end

Quando executado ser:


~~ estcond8
Jntre com o alor de a : 1

I =

16



uesLe modo fol execuLado o prlmelro comando para o qual a condlo a<=10 fol saLlsfelLa, ou
se[a, apesar da condlo a<100 ser Lambem verdadelro, o comando referenLe a ela no fol

L1 LnCLnPA8lA LLL18lCA ul8
73

execuLado. Asslm, na esLruLura lf-elself-end e execuLada somenLe uma unlca llsLa de
comandos.

11.4.2 - Lstruturas de repet|o


A esLruLura de repeLlo faz com que uma sequncla de comandos se[a execuLada
repeLldamenLe aLe que uma dada condlo de lnLerrupo se[a saLlsfelLa. C MA1LA8 possul
duas esLruLuras de repeLlo: as esLruLuras for-end e a wh||e-end

for <varivel>=<arranjo>
<comandos>
End

Cnde <var|ve|> e a varlvel-de-conLrole que assume Lodos os valores conLldos no veLor llnha
<arran[o> . Asslm, o numero de repeLles da llsLa <comandos > e lgual ao numero de
elemenLos no veLor <arran[o>. A varlvel-de-conLrole no pode ser redeflnlda denLro da
esLruLura for-end .
C lao for e o conLrolador de fluxo mals slmples e usado na programao MA1LA8.

Anallsando a expresso:


for i=1:5
X(i)=i^2
end

ode-se noLar que o lao for e dlvldldo em Lrs parLes:
- A prlmelra parLe (|=1) e reallzada uma vez, anLes de o lao ser lnlclallzado.
- A segunda parLe e o LesLe ou condlo que conLrola o lao, (|<=S).
- LsLa condlo e avallada, se verdadelra, o corpo do lao (k(|)=|^2) e execuLado.
A Lercelra parLe aconLece quando a condlo se Lorna falsa e o lao Lermlna.
C comando end e usado como llmlLe lnferlor do corpo do lao.
vamos conslderar um exemplo, execuLando o programa esLrep1.m abalxo:


n = input('Valor de n :');
s = 0;
n2 = n^2;
for i = 1:2:2*n-1
s = s + i;
end
n2,s


~~ estrep1
Valor de n :

n2 =

2


s =

L1 LnCLnPA8lA LLL18lCA ul8
74


2

LsLe exemplo mosLra que a soma dos n prlmelros numeros lmpares e lgual ao quadrado de n,
pols para n=3 a varlvel-de-conLrole l assume os valores 1 3 3 7 9. ueve ser observado o uso do
( , ) para suprlmlr a exlblo de resulLados lnLermedlrlos no clculo de s .

ara mosLrar que as esLruLuras for-end podem esLar encadeadas, consldere, por exemplo, os
programas abalxo:

%estrep2.m
n = input('Ordem do quadrado mgico :');
A = magic(n);
Soma_Linhas = zeros(n,1);
Soma_Colunas = zeros(1,n);
for i = 1:n
for j = 1:n
Soma_Linhas(i) = Soma_Linhas(i) + A(i,j);
Soma_Colunas(j) = Soma_Colunas(j) + A(i,j);
end
end
A, Soma_Linhas, Soma_Colunas


~~ estrep2
Ordem do qnadrado mgico :1

A =

16 2 8 18
11 10 8
9 6 12
1 11 1 1


Soma_Linhas =

81
81
81
81


Soma_olnnas =

81 81 81 81





Cumpre observar que o MA 1LA8 possul comandos para deLermlnar esLes somaLrlos de um
modo mals slmples, aLraves do comando sum que fornece a soma das colunas de uma maLrlz.
L comum consLrues em que con[unLos de laos for so usados prlnclpalmenLe com maLrlzes:

L1 LnCLnPA8lA LLL18lCA ul8
73


%estrep3.m
for i = 1:8
for j = 1:8
A(i,j) = i+j;
B(i,j) = i-j;
end
end
C = A+B;
A,B,C


~~ estrep8


11.4.2.2 - LsLruLura wh||e-end


A esLruLura whlle-end, ao conLrrlo da for-end, repeLe um grupo de comandos um numero
lndeflnldo de vezes. Sua slnLaxe e
wh||e <cond|o>
<comandos>
end
LnquanLo a expresso lglca <condlo> for verdadelra a llsLa <comandos> ser repeLlda. no
lao wh||e apenas a condlo e LesLada. or exemplo, na expresso

a = 1; b = 15;
while a<b
clc
a = a+1
b = b-1
pause(1)
end
disp('fim do loop')


A condlo a<b e LesLada. Se ela for verdadelra o corpo do lao, ser execuLado. LnLo a
condlo e LesLada novamenLe, e se verdadelra o corpo ser execuLado novamenLe.
Cuando o LesLe se Lornar falso o lao Lermlnar, e a execuo conLlnuar no comando que
segue o lao aps o end.

Ao conLrrlo do loop fot, que execuLa um con[unLo de comandos um numero flxo de vezes, o
loop wblle execuLa um con[unLo de comandos um numero lndeflnldo de vezes. Cs comandos
enLre as lnsLrues wblle e eoJ so execuLadas enquanLo Lodos os elemenLos na exptesso
forem verdadelras.






11.4.2.3 - Comando break (esLruLuras com lnLerrupo no lnLerlor)



L1 LnCLnPA8lA LLL18lCA ul8
76

A esLruLura wh||e-end permlLe que um grupo de comandos se[a repeLldo um numero
lndeLermlnado de vezes. no enLanLo, a condlo de lnLerrupo e LesLada no lnlclo da
esLruLura. Lm vrlas slLuaes em programao se faz necessrlo lnLerromper a execuo da
repeLlo verlflcando a condlo no lnLerlor da esLruLura e no no seu lnlclo. C comando break
lnLerrompe a execuo de uma esLruLura wh||e-end ou forend e Lransfere a execuo para o
comando lmedlaLamenLe segulnLe ao end. Lm repeLles anlnhadas, o break lnLerrompe a
execuo apenas da esLruLura mals lnLerna.
uma repeLlo com condlo de lnLerrupo no lnLerlor pode Ler a forma
wh||e 1
<comandos 1>
If <condlo>
break
end
<comandos 2>
end


A esLruLura wh||e-end e execuLada lndeflnldamenLe a prlnclplo pols a condlo do wh||e e
sempre verdadelra. ConLudo, quando a <condlo> do |f for saLlsfelLa o comando break ser
execuLado causando a lnLerrupo da repeLlo wh||e-end. or exemplo, o programa no
arqulvo esLrep4.m

while 1
a=input('Entre com a, a>0 :');
if a<=0
break
end
disp(rats(a ))
end

LlsLa conLlnuamenLe a represenLao raclonal de um numero fornecldo enquanLo esLe for
poslLlvo. uesLe modo,

~~ estrep1
Jntre com a. a~0 :pi
8/118
Jntre com a. a~0 :sqrt(2)
1898/98
Jntre com a. a~0 :-8











11.3 - Subprograma funcLlon



L1 LnCLnPA8lA LLL18lCA ul8
77

CuLro Llpo de arqulvo de roLelro e usado para o prprlo usurlo crlar novas funes para o
MA1LA8. na realldade, vrlas funes do MA1LA8 so arqulvos.m. uma funo e crlada no
MA1LA8 como um arqulvo .m, porem comeando sempre com o segulnLe cabealho:

funcLlon [votlvels Je solJo] = Nome_Jo_looo (votlvels Je eottoJo)


function y = funcao1(x)
y= 1./( (x-1).^2 + 0.1) + 1./( (x-2).^2 + 0.05) - 1;
end


~~ area = qnad('fnncao1'.0.2)

area =

12.211


C8S: Deve-se tomar o cu|dado de sempre d|g|tar o ponto antes das operaes de
mu|t|p||cao, d|v|so, exponenc|ao e |ogar|t|m|zao.

11.4 - lmporLando uados do Lxcel


L posslvel Lambem Lrabalhar com dados que no esLe[am no MA1LA8. MulLas vezes dados
so fornecldos numa planllha do Lxcel. Cuando se Lm mulLos dados, e lnvlvel dlglLar Lodos
os dados, na forma de veLor, no MA1LA8.
ra lsso que exlsLe um comando de lelLura do Lxcel, no qual os dados so passados
auLomaLlcamenLe para o promp de comando.

% Planilha onde os dados sero gravados
plan = ('AlgunsDados.xls');
%% Matriz Dados_Trad
guia = 'dados';

% Leitura do arquivo de dados
M = xlsread(plan,guia);
vento = M(:,1);

% Histograma com a Distribuio das Velocidades de Vento
hist(M,0:.1:15);

% Mdia Aritmtica
M = mean(M)

% Desvio Padro
D = std(M)



11.3 - lmporLando uados de Arqulvo de 1exLo


As vezes Lambem e necessrlo lmporLar dados que esLo num arqulvo de LexLo Llpo LxL.

L1 LnCLnPA8lA LLL18lCA ul8
78


or exemplo: dlglLe alguns dados num arqulvo de LexLo e salve no dlreLrlo que o MA1LA8 esL
usando.
C8S: Cs dados devem ser dlglLados separados por vlrgula.

~~ t,pe dados.tt

1.2.8.1..6..8.9.0
~~ test = dlmread('dados.tt'.'.')

test =

1 2 8 1 6 8 9 0

~~ test2 = test -

test2 =

8 9 10 11 12 18 11 1 16


L para salvar esLe novo arqulvo:

~~ dlmwrite('test2.tt'.test2.'.')


























L1 LnCLnPA8lA LLL18lCA ul8
79

12. Tpicos Bsicos em Controle

12.1 - kesposta em Irequnc|a


A resposLa em frequncla envolve colocar em grflco a ampllLude e a fase da funo de
Lransferncla ou obLer os grflcos de 8ode de ampllLude e fase de .
C MA1LA8 Lem o comando Iode para execuLar essa funo. ara esLe comando Lemos que
especlflcar, prlmelro, na forma de nnm e den, onde esLes so os veLores dos coeflclenLes
do numerador e denomlnador, respecLlvamenLe, em poLnclas decrescenLes de . A forma
geral da funo de 8ode e:
Iode(nnm.den.range):
onde range e um lnLervalo de frequnclas especlflcadas para o grflco. Se range for omlLldo, o
MA1LA8 seleclonar auLomaLlcamenLe o lnLervalo de frequnclas. Jange pode ser llnear ou
logarlLmlco. Mas para resposLa em frequncla, a escala logarlLmlca e mals usada.
range = logspace(1.1000.0):


llusLremos lsso por melo de um exemplo:








~~ nnm = [1 0 0 0]:
~~ den = [1 11.8 88.1 21]:
~~ w = logspace(-1.8):
~~ Iode(nnm. den. w)
~~ title('Crfico de Lode para nm filtro passa-altas')



L1 LnCLnPA8lA LLL18lCA ul8
80


llgura 12.1



12.2 - Iormas de kepresentar um S|stema


SlsLemas conLlnuos e dlscreLos so represenLados de forma conslsLenLe pelo MA1LA8. Cs
slsLemas podem ser represenLados na forma de uma funo de Lransferncla, de zeros e plos
e por melo do espao de esLado. A represenLao por melo do espao de esLado Lalvez se[a a
mals naLural das formas de deflnlr um slsLema no MA1LA8, [ que ela e descrlLa pelas maLrlzes
A, 8, C e u.

~~ nnm = 10. [1 10]: -1 [8 0]}:
~~ den = [1 10]. [1 6 10]: [1 0].[1 8 8]}:

8epresenLam o segulnLe slsLema com duas enLradas e duas saldas:

= .

Modelos de zeros e plos usam veLores celulares de mesmo Llpo para armazenar os zeros e
plos e um veLor numerlco comum para ganhos. or exemplo, os veLores:

~~ L = [1 8]:
~~ z = [].[-1]}:
~~ p = [0].[-10.-2]}:

uescrevem o segulnLe slsLema com duas enLradas e uma salda:

.


L1 LnCLnPA8lA LLL18lCA ul8
81

Cbserve que a maLrlz vazla [ ] e usada aclma para represenLar a ausncla de zeros flnlLos na
prlmelra funo de Lransferncla.


12.3 - Cb[etos em L1I


Alem de represenLar slsLemas em Lermos de seus veLores de dados, como mosLrado
anLerlormenLe, o MA1LA8 permlLe que esses ulLlmos se[am agrupados em ob[eLos llneares
lnvarlanLes no Lempo ou, slmplesmenLe, ob[eLos L1l (lloeot, 1lme-lovotloot Object). uesLa
foma flca mals fcll manlpul-los.

~~ men_sist = zpL(z.p.L)

Zero/pole/gain from inpnt 1 to ontpnt:
1
-
s

Zero/pole/gain from inpnt 2 to ontpnt:
8 (s-1)
------------
(s-10) (s-2)


Crla um ob[eLo L1l que usa a represenLao de zeros e plos, chamado men_sist, e que conLem
o slsLema com duas enLradas e uma salda descrlLos pelos modelos de zeros e plos. ve[a
como a forma na qual o slsLema e mosLrado e fcll de enLender.

~~ H = tf(nnm.den)

Transfer fnnction from inpnt 1 to ontpnt...
10
1: ------
s - 10

-1
2: --
s

Transfer fnnction from inpnt 2 to ontpnt...
s - 10
1: --------------
s2 - 6 s - 10

8 s
2: -------------
s2 - 8 s - 8


Crla um ob[eLo L1l que usa uma funo de Lransferncla a parLlr dos veLores celulares nnm e
den fornecldos anLerlormenLe.

L1 LnCLnPA8lA LLL18lCA ul8
82


llnalmenLe os ob[eLos L1l que usam o espaos de esLado so crlados da segulnLe forma:

~~ a = [0 1: -2 -1]: I = [0:1]: c = [1 1]: d = 0: ' define as matrizes do espao de estado
~~ sistema2 = ss(a.I.c.d)

a =
1 2
1 0 1
2 -2 -1

I =
n1
1 0
2 1

c =
1 2
,1 1 1

d =
n1
,1 0

ontinnons-time model.

nesse caso, so exlbldas na Lela as componenLes assoclados a cada elemenLo, bem como uma
mensagem que lndlca se LraLar de um slsLema conLlnuo no Lempo.
ara crlar slsLemas dlscreLos no Lempo, zpk, Lf e SS, basLa especlflcar o perlodo de
amosLragem assoclado ao slsLema como o ulLlmo parmeLro dessas funes. or exemplo:

~~ sist_discr = tf([1 0.2].[1 -1].0.01)

Transfer fnnction:
z - 0.2
-------
z - 1

Sampling time: 0.01

Lsse slsLema dlscreLo no Lempo usa um perlodo de amosLragem de 0,01 segundo.












L1 LnCLnPA8lA LLL18lCA ul8
83


12.4 - kecuperao de Dados


uma vez crlado um ob[eLo L1l, seus dados podem ser exLraldos por melo das funes tffata,
zpLdata, e ssdata.

~~ [nz.dz] = tfdata(sist_discr) ' etrai os dados em etores celnlares

nz =

[12 donIle]

dz =

[12 donIle]

~~ [nz.dz] = tfdata(sist_discr.'') ' etrai os dados em etores

nz =

1.0000 0.2000

dz =

1 -1

~~ [z.p.L] = zpLdata(sist_discr) ' tamIm possel etrair de ontras formas'

z =

[-0.2000]

p =

[1]

L =

1


~~ [z.p.L] = zpLdata(sist_discr.'')

z =

-0.2000

p =

1


L1 LnCLnPA8lA LLL18lCA ul8
84

L =

1

~~ [a.I.c.d] = ssdata(sist_discr) ' tamIm possel etrair marizes nnmricas de espao
de estado

a =

1

I =

1

c =

1.2000

d =

1


12.S - Converso de Cb[etos L1I


Alem de posslvel exLralr os dados ob[eLos L1l usando formas de represenLao que no
aquela empregada para deflnl-los, esses ob[eLos podem ser converLldos para as ouLras formas
usando a prprlas funes de crlao. or exemplo:



~~ t = tf(100.[1 6 100]) ' cria nma fnno de transferncia

Transfer fnnction:
100
---------------
s2 - 6 s - 100

~~ sst = ss(t)

a =
1 2
1 -6 -12.
2 8 0

I =
n1
1 1
2 0


L1 LnCLnPA8lA LLL18lCA ul8
83

c =
1 2
,1 0 8.12

d =
n1
,1 0

ontinnons-time model.
~~ zpLt = zpL(t)

Zero/pole/gain:
100
-----------------
(s2 - 6s - 100)


12.6 - Ar|tmt|ca dos Cb[etos L1I


C emprego dos ob[eLos L1l Lambem permlLe que voc use a arlLmeLlca dos dlagramas de
blocos. or exemplo, se a funo de Lransferncla Lem reallmenLao unlLrla e deflnlda por
, a funo de Lransferncla em malha fechada e . no MA1L8 lsso e deflnldo
da segulne forma,

~~ g = tf(100.[1 6 0]) ' fnno de tranferncia

Transfer fnnction:
100
---------
s2 - 6 s

~~ t = g/(1-g) ' fnno de transferncia em malha fechada

Transfer fnnction:
100 s2 - 600 s
------------------------------
s1 - 12 s8 - 186 s2 - 600 s

~~ t = minreal(t) ' cancelando zeros e plos

Transfer fnnction:
100
---------------
s2 - 6 s - 100








L1 LnCLnPA8lA LLL18lCA ul8
86

12.7 - An||se de S|stemas


C Loolbox de slsLemas de ConLrole lnclul vrlas funes desLlnadas a anllse e ao pro[eLo de
slsLemas. ara compreender alguns recursos dlsponlvels, consldere os segulnLes ob[eLos em
L1l para malhas aberLas e fechadas:




~~ g = tf(100.[1 6 0]) ' fnno de tranferncia em malha aIerta

Transfer fnnction:
100
---------
s2 - 6 s

~~ t = g/(1-g) ' fnno de transferncia em malha fechada

Transfer fnnction:
100 s2 - 600 s
------------------------------
s1 - 12 s8 - 186 s2 - 600 s

~~ t = minreal(t) ' cancelando zeros e plos

Transfer fnnction:
100
---------------
s2 - 6 s - 100

~~ g = zpL([].[0.-.-10].100) ' nm sistema em malha aIerta

Zero/pole/gain:
100
--------------
s (s-) (s-10)

~~ t = minreal(g/(1-g)) ' nm sistema em malha fechada

Zero/pole/gain:
100
---------------------------------
(s-11.88) (s2 - 8.622s - 8.89)

~~ pole(t)

ans =

-11.880
-1.8110 - 2.812i
-1.8110 - 2.812i

L1 LnCLnPA8lA LLL18lCA ul8
87


um grflco de 8ode de um slsLema em malha aberLa, no qual so ldenLlflcados as margens de
ganho e de fase, e dado por:

~~ margin(g)


llgura 12.2

um grflco slmples do slsLema em malha fechada e dado por:

~~ Iode(t)


llgura 12.3






L1 LnCLnPA8lA LLL18lCA ul8
88

A resposLa do slsLema ao degrau unlLrlo e:

~~ step(t)






llgura 12.4



























L1 LnCLnPA8lA LLL18lCA ul8
89

12.8 - An||se Avanada de S|stemas {5imu/ink)


ara lnlclar cllque no boLo s|mu||nk, slLuado abalxo do help, ou dlglLando s|mu||nk no
prompL de comando.




Asslm e aberLa a prlnclpal [anela do S|mu||nk, onde esLo dlsposLas as blblloLecas de blocos.
ara os propslLos desLa aula lnLroduLrla, sero necessrlos apenas os blocos da blblloLeca
S|mu||nk. Lxpandlndo a blblloLeca S|mu||nk, enconLra-se a sua llsLa de sub-blblloLecas. ara
esLa lnLroduo, uLlllzaremos apenas as sub-blblloLecas Cont|nuous (slsLemas conLlnuos),
Math (MaLemLlca), S|nks (Saldas de slmulao) e Sources (LnLradas de slmulao).
12.8.1 - A 8lblloLeca S|mu||nk]Cont|nuos


Lxpandlndo a sub-blblloLeca Cont|nuous, enconLra-se uma llsLa de blocos de funes
apllcvels a slsLemas conLlnuos. LnLre esLes blocos enconLram-se derlvao e lnLegrao
numerlcas (fundamenLals para a slmulao de slsLemas em espao de Lempo), slsLemas em
espao de esLados, funes de Lransferncla (para a slmulao de slsLemas em espao de
frequnclas) e o bloco zeros-e-plos (funes de Lransferncla com numerador e denomlnador
faLorados)


12.8.2 - A blblloLeca S|mu||nk]Math


Lxpandlndo a sub-blblloLeca Math, enconLra-se uma llsLa de funes maLemLlcas Lrlvlals,
para uLlllzao nos modelos. 1odo o processamenLo das enLradas val exlglr a uLlllzao de
funes maLemLlcas. MulLas delas esLo conLldas nesLa blblloLeca (por exemplo, somaLrlo,
funes LrlgonomeLrlcas, eLc).



12.8.3 - A 8lblloLeca S|mu||nk]S|nks

A sub-blblloLeca S|nks possul uma llsLa de saldas de slmulao (vlsuallzao em dlsplay, em
grflco ou envlo para varlvels do workspace).





L1 LnCLnPA8lA LLL18lCA ul8
90

12.8.4 - A 8lblloLeca S|mu||nk]Sources

A sub-blblloLeca Sources possul uma llsLa de enLradas de slmulao
(geradores de enLradas na forma de rampa, pulsos, randmlco, escala de Lempo,
eLc).


12.9 - Lxemplos de rogramao no S|mu||nk

A programao no S|mu||nk segue uma lnLerface grflca mulLo lnLulLlva e fcll de usar:


ara abrlr o amblenLe de programao basLa cllcar no boLo cteote oew moJel. LsLe
slmbollzado por uma folha de papel em branco.







1 Lxemplo: avallar o comporLamenLo da funo senoldal ao longo do Lempo.







Slmulando






L1 LnCLnPA8lA LLL18lCA ul8
91













Agora para somar 1,3 ao valor da funo:








A[usLe auLomLlco de escala:



L1 LnCLnPA8lA LLL18lCA ul8
92












Agora mulLlpllcar o resulLado por -1:








L1 LnCLnPA8lA LLL18lCA ul8
93





Nota: Ao c||car duas vezes em c|ma do b|oco, abre-se a conf|gurao de|e.







CbLer o mdulo do resulLado




















L1 LnCLnPA8lA LLL18lCA ul8
94


AlLerando os parmeLros de slmulao





























L1 LnCLnPA8lA LLL18lCA ul8
93




usando Lempo lnlclal lgual a 10 e flnal lgual a 30





L posslvel Lambem melhorar o faLor de reflnamenLo da onda









L1 LnCLnPA8lA LLL18lCA ul8
96


Crlando um subslsLema






Agora vamos lmplemenLar uma funo LrlgonomeLrlca, adlclonar um ganho na salda, e
comblnar os slnals aLraves de um mulLlplexador (esLe enconLra-se na blblloLeca s|gna| rout|ng)







L1 LnCLnPA8lA LLL18lCA ul8
97


C8S: As funes tr|gonomtr|cas necess|tam de uma fonte de entrada.

1ambem e posslvel mosLrar mals slnals pelo osclloscplo. ara lsso basLa dar um duplo cllque
em clma dele e alLerar sua conflgurao.
























L1 LnCLnPA8lA LLL18lCA ul8
98




kefernc|as



Cula do usurlo MA1LA8 3 - verso do LsLudanLe: uuane Panselman & 8ruce LlLlefleld


MA1LA8 para Lngenharla - unl-8P Curso Lngenharla de 1elecomunlcaes: Adrlana Marla
1onlnl & uanlela naufel ScheLLlno


Slmullnk - Semana da Lscola de Culmlca: Carlos Andre vaz !unlor

Você também pode gostar