Académique Documents
Professionnel Documents
Culture Documents
Ministrantes:
Fernando Eduardo Resende Mattioli
Leandro Resende Mattioli
Lu
as Amaral Sales
Joo Paulo Vieira Bonif
io
Rodrigo Sousa Ferreira
Maio de 2009
Pref
io
O MATLAB (Matrix Laboratory) um ambiente
omputa
ional para
omputao numri
a e gr
a de
alta performan
e utilizado em
l
ulos
om matrizes e vetores. Ele integra: anlises numri
as,
omputao
matri
ial, pro
essamento de sinais e gr
os em um ambiente de f
il uso em que os problemas e as solues
so expressos e obtidos, respe
tivamente, da mesma forma
omo es
ritos matemati
amente, sem o uso da
programao tradi
ional.
O domnio desta ferramenta permite ao usurio soluo de problemas bastante
omplexos, visualizao de
guras em uma, duas ou trs dimenses, simulao de
ir
uitos
omo ltros digitais, moduladores e demoduladores de sinais, et
. As apli
aes so innitas.
Pretende-se,
om esta apostila, in
entivar e orientar o estudo da ferramenta MATLAB. Mas, muito importante ao usurio ter a
ons
in
ia de que o aprendizado gradativo e advm da perseverana.
Boa aprendizagem!
iii
iv
Sumrio
1 Introduo ao MATLAB
1.1
Informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Desktop MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
Operaes bsi as (+ ,- ,* , /, ^) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4
1.5
Outras informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1
1.5.2
Indeterminaes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.3
Ambiente de trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.4
Nmeros omplexos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6
Matrizes e vetores
1.6.1
Vetores
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.2
Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7
Formatos de sada
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.8
11
1.8.1
12
1.9
Polinmios
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.9.1
13
1.9.2
. . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.9.3
Produto de polinmios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.9.4
Diviso de polinmios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.9.5
14
1.9.6
Avaliao de polinmios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.9.7
Derivada
16
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
v
SUMRIO
SUMRIO
2 Gr os
17
2.1
Gr os simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.2
Subgr os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.3
Outras funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.4
20
2.5
Superf ies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.6
Apli ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3 Integrao Numri a
23
3.1
Regra do trapzio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.2
Regra de Simpson
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.3
Exer ios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4 Sistemas de Equaes
4.1
27
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.1.1
Diviso esquerda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.1.2
Inversa
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.2
28
4.3
Exer ios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
5 Matemti a Simbli a
31
5.1
Objetos simbli os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
5.2
O omando subs
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
5.3
Tipos numri os
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
5.4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.5
Cl ulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.5.1
Diferen iao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
5.5.2
35
5.5.3
Limite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
5.5.4
Integrao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5.5.5
Somatrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
5.5.6
Srie de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
5.6
Comando solve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
5.7
40
5.8
Transformadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5.8.1
Transformada de Fourier
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5.8.2
43
5.8.3
Transformada de Lapla e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
5.8.4
Transformada z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
vi
SUMRIO
SUMRIO
6 Arquivos M
45
6.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
6.2
45
6.3
Abordagem de projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
6.4
Programao em MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
6.4.1
Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
6.4.2
Funes lgi as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
6.4.3
Estruturas de programao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
6.4.4
Funes MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
6.4.5
Variveis globais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
6.4.6
Variveis persistentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
6.4.7
Estruturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
6.4.8
60
6.4.9
Importando dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
62
63
7 Interfa
es Gr
as
7.1
7.2
65
Construindo interfa es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
7.1.1
Introduo
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
7.1.2
Programando a interfa e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
7.1.3
68
7.1.4
Menu tools
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
72
7.2.1
Funes e allba ks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
7.2.2
Estruturas Handles
74
7.2.3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 Simulink
74
79
8.1
79
8.2
81
8.2.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
8.3
83
8.4
Criando um subsistema
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
8.5
86
8.6
Simulando um modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
8.6.1
87
8.7
89
8.8
90
8.8.1
Utilizao do blo o
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
8.8.2
92
Introduo
S ope
vii
SUMRIO
SUMRIO
viii
Lista de Figuras
1.1
Janela de omando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
1.3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.1
18
2.2
19
2.3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.4
22
3.1
Funo f (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.2
Funo f (x) = a0 + a1 x + a2 x
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
5.1
37
40
6.1
46
6.2
Editor de s ripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
6.3
. . . . . . . . . . . . . . . . . . . . . . . .
48
6.4
60
6.5
61
6.6
63
6.7
Depurador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
7.1
66
7.2
66
7.3
Ambiente de desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
7.4
Barra de ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
7.5
69
7.6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
5.2
ix
LISTA DE FIGURAS
LISTA DE FIGURAS
7.7
71
7.8
Editor de menus
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
7.9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
73
7.11 Exemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
7.13 Exemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
8.1
79
8.2
80
8.3
80
8.4
81
8.5
81
8.6
Sistema resultante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
8.7
82
8.8
Resultados da simulao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
8.9
Oset no Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
Produ
t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.11 Blo
o Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.10 Blo o
83
84
85
85
8.14 Menu
86
Format do Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.15 Aba Callba
ks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
87
88
Solve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.18 Parmetros da simulao: Data Import/Export . . . . . . . . . . . . . . . . . . . . . . . .
8.19 Blo
o To Workspa
e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.20 Blo
o S
ope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.21 Parmetros do blo
o S
ope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
89
90
91
91
92
Captulo
Introduo ao MATLAB
1.1 Informaes
O MATLAB uma ferramenta poderosa que auxilia a engenharia e outras reas te
nolgi
as na soluo
de problemas matemti
os. O software possui alta performan
e e
ombina pro
essamento, visualizao
e programao de maneira f
il de usar, em um ambiente simples, em que as respostas e problemas so
expressos em notao matemti
a familiar.
O elemento base do MATLAB um vetor (array ) que no pre
isa ser dimensionado. Isso fa
ilita os
l
ulos
om matrizes e vetores reduzindo o tempo de pro
essamento.
O MATLAB possui uma famlia de apli
ativos espe
os (toolboxes ), que so
olees de funes usadas para
resolver determinados problemas tais
omo: otimizao, manipulao algbri
a, redes neurais, pro
essamento
de sinais, simulao de sistemas dinmi
os, entre outros.
CAPTULO 1.
INTRODUO AO MATLAB
1.4444
>> (1+4)/9
>> ans =
0.5556
>> 3\2
>> ans =
0.6667
>> 2^5
>> ans =
32
>> sqrt ( 2 5 )
>> ans =
5
a
os(x)
atan2(x)
exp(x)
round(x)
tanh(x)
a
osh(x)
atanh(x)
x (x)
sign(x)
angle(x)
eil (x)
log(x)
sin(x)
2
asin(x)
os(x)
log10(x)
sind(x)
asinh(x)
osd(x)
sqrt(x)
sinh(x)
CAPTULO 1.
INTRODUO AO MATLAB
1.5.
OUTRAS INFORMAES
Observaes
pi
>>
>>
tan ( pi / 4 )
ans =
>>
>>
os ( pi / 2 )
ans =
1.0000
6 . 1 2 3 2 e 017
eps uma palavra reservada do MATLAB e refere-se um nmero muito pequeno que representa a
pre
iso da mquina;
ao se
olo
ar um ponto-e-vrgula ( ) no nal de uma linha de
omando a resposta pro
essada mas
;
no mostrada.
>> b = tan ( pi / 4 ) ;
>> b
>> b =
1.0000
Bytes
Class
8 double array
8 double array
1.5.2 Indeterminaes
0/0 ou / resultam em
5/0 resulta em
5/ resulta em 0
Inf Inf
NaN
(Not a Number)
Inf
Inf
Para limpar a janela de
omandos do MATLAB digite . Para para a janela de guras digite ;
Para veri
ar as variveis da sua workspa
e e seus tamanhos digite ;
Para liberar todas as variveis do MATLAB digite
lear. Caso queira liberar apenas variveis espe
as,
l
lf
whos
Com os omandos
diary(' :\ aminho\para\arquivo.txt')
efetuadas;
CAPTULO 1.
INTRODUO AO MATLAB
E l t r i a \ t e s t e . txt ' )
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
Usando as reti
n
ias vo
pode
ontinuar uma expresso matemti
a na linha seguinte;
>> 1 2 + 1 2 + . . .
25
>> ans =
49
Usando
>> z = 1 + 3 i
>>z =
1 . 0 + 3.00000000000000 i
As operaes
om nmeros
omplexos se
omportam da mesma maneira que as
om nmeros reais, existindo
as operaes: soma (+), subtrao (-), multipli
ao (*), diviso (/) e poten
iao (^).
>> w = 2 5 j ;
>> z + w
>> ans =
3.00000000000000 2.00000000000000 i
>> z /w
>> ans =
0.44827586206897 + 0 . 3 7 9 3 1 0 3 4 4 8 2 7 5 9 i
4
CAPTULO 1.
INTRODUO AO MATLAB
1.6.
MATRIZES E VETORES
onj(z)
real(z)
imag(z)
isreal (z)
abs(z)
angle(z)
Alm delas, operaes
omo sin(z),
os(z), tan(z), log(z) e outras ans tambm fun
ionam
om valores
omplexos e, em geral, produzem
omo resultados valores
omplexos.
1.6.1 Vetores
Ou ainda
>> w = 1 : 2 : 8
>> w =
1
3
De modo geral, podemos rapidamente
riar um vetor
om vrios elementos utilizando a notao valor_ini
ial:passo:valor_nal.
Caso no seja espe
i
ado o passo, o MATLAB utilizar um passo unitrio.
Podemos transpor vetores linhas
riados desta maneira para
riar vetores
oluna.
Veja ainda o que possvel:
>> [ w' w' . ^ 2 2 . ^w '
>> ans =
1
1
2
3
9
8
5
25
32
7
49
128
1.6.2 Matrizes
Para
riar uma matriz e alo
-la em uma varivel h vrias possibilidades.
CAPTULO 1.
INTRODUO AO MATLAB
Exemplo
>> a = [ 1 2 3 ; 4 5 6 ; 7 , 8 , 9
>> a =
1
2
3
4
5
6
7
8
9
>> [ log ( 2 ) exp (3);8+9 7 7 ^ 2
>> ans =
0.6931
20.0855
10.0000
49.0000
Ou pode-se
riar uma matriz da usando-se [ e mudando de linha.
>> a = [ 1
4 5 6
7 8 9
>> a =
1
4
7
2 3
2
5
8
3
6
9
Para a
essar o valor de um elemento de uma matriz digite a(i,j), onde i o nmero da linha e j o nmero da
oluna ao qual elemento perten
e.
Exemplo
>> a ( 2 , 1 )
>> ans =
4
Para medir o tamanho de uma matriz usamos as funo
e o nmero de
olunas:
Exemplo
>> b = [ 1 2 3 ; 4 5 6
>> b =
1
2
3
4
5
6
>> s i z e ( b )
>> ans =
23
Exemplo
>> a = [ 1
>> a =
1
4
7
2 3;4 5 6;7 8 9
2
5
8
3
6
9
6
CAPTULO 1.
INTRODUO AO MATLAB
>> b = transp ( a )
>> b =
1
4
7
2
5
8
3
6
9
>> [ a b
>> ans =
1
2
3
4
5
6
7
8
9
>> [ a ; b
>> ans =
1
2
3
4
5
6
7
8
9
1
4
7
2
5
8
3
6
9
>>
= [ a ; 8 8 8
>>
=
1
2
3
4
5
6
7
8
9
8
8
8
>>
= [ a [ 8 ; 8 ; 8
>>
=
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
1.6.
7
8
9
8
8
8
MATRIZES E VETORES
CAPTULO 1.
INTRODUO AO MATLAB
3
10
9
%nmero
>>
ans
de
linhas
de
'a '
14
32
50
32
77
122
50
122
194
>> a /2
>> ans =
0.5000
1.0000
2.0000
2.5000
3.5000
4.0000
>> 2\ a
>> ans =
0.5000
1.0000
2.0000
2.5000
3.5000
4.0000
>> a . b %( m u l t i p l i
a o
>> ans =
9
16
21
24
25
24
21
16
9
>> a . / b
ans =
0.1111
0.2500
0.6667
1.0000
2.3333
4.0000
>> a . \ b
deve
ser
igual
ao nmero
de
linhas
elemento ,
produto
de
'b ')
1.5000
3.0000
4.5000
1.5000
3.0000
4.5000
de
elemento
por
0.4286
1.5000
9.0000
es alar )
CAPTULO 1.
>>
INTRODUO AO MATLAB
1.7.
FORMATOS DE SADA
ans
=
9.0000
4.0000
2.3333
1.5000
1.0000
0.6667
0.4286
0.2500
0.1111
>> a^2 %( s e a m a t r i z f o r q u a d r a d a e l a m u l t i p l i
a d a p o r e l a mesma )
>> ans =
30
36
42
66
81
96
102
126
150
>> ans ^( 2) %( e l e v a r uma m a t r i z q u a d r a d a um nmero n e g a t i v o
%s i g n i f i
a
>>
ans
multipli ar
sua
inversa
por
ela
mesma n
vezes )
=
0.6875
0.3125
0.3125
0.3125
0.6875
0.3125
0.3125
0.3125
0.6875
>> a . ^ 2
>> ans =
1
4
9
16
25
36
49
64
81
, 1) = [1 2 3 ; 4 5 6 ; 7 8 9
2
3
5
6
8
9
, 2 ) = [ 8 0 90 6 0 ; 5 9 7 ; 4 4 4
,1) =
2
3
5
6
8
9
,2) =
90
60
9
7
4
4
diag()
sum()
norm()
magi
()
triu()
kron()
eye()
tril ()
pas
al()
ones()
rand()
pinv()
zeros()
toeplitz()
Sele
ione a opo Command Window e altere a opo Numeri
Format (gura 1.3).
Cada uma das opes representa um formato de sada.
9
CAPTULO 1.
INTRODUO AO MATLAB
short :
long :
nmero
om 5 dgitos
nmero
om 15 dgitos para double e 8 para single
short e :
long e :
short g :
long g :
hex :
bank :
+
rational :
ompa
t :
loose :
Podemos tambm alterar o formato da sada om o omando format seguido da opo que desejamos.
Exemplo
>> 1 2 . 3 3 2 3 2 3 3 2 3
>> ans =
12.3323
>> format l o n g
>> 1 2 . 3 3 3 3
>> ans =
12.33330000000000
10
CAPTULO 1.
INTRODUO AO MATLAB
1.8.
Operador
<
<=
>
>=
==
~=
menor que
menor ou igual a
maior que
maior ou igual a
igual
no igual
Exemplo
>> (2 >4) & (5 >4)
>> ans =
11
1.9. POLINMIOS
CAPTULO 1.
Smbolo
Operador
&
|
~
e
ou
no
INTRODUO AO MATLAB
any
all .
any
all
>> p = [ 1 2 3 4 5 ;
>> any ( p>3)
>> ans =
1
>> p = [ 1 2 3 4 5 ;
>> a l l ( p>3)
ans =
0
1.9 Polinmios
O MATLAB representa polinmios
omo vetores de uma linha,
ontendo os
oe
ientes ordenados em ordem
de
res
ente. Por exemplo, o polinmio p(x) = x3 12x2 + 47x 60 representado segundo o
omando
>> p = [ 1 12 47 60
p =
1
12
47
60
12
CAPTULO 1.
INTRODUO AO MATLAB
1.9.
POLINMIOS
roots :
poly :
onv :
razes;
l
ulo do polinmio
ara
tersti
o e remontagem de um polinmio a partir das razes;
produto de polinmios;
de onv :
diviso de polinmios;
residue :
polyval :
avaliao de um polinmio;
polyder :
derivada de um polinmio.
1.9.1.1 Razes
Para
al
ular as razes de um polinmio utiliza-se o
omando roots :
>> r = roots ( p )
r =
5.0000
4.0000
3.0000
ans
poly
(r)
=
12.0000
1.0000
47.0000
60.0000
Se o argumento de poly for uma matriz quadrada, ento este
omando retorna os
oe
ientes do polinmio
ara
tersti
o dessa matriz (item 1.9.2).
1 2
A= 4 5
7 8
3
1 0
6 , I = 0 1
9
0 0
0
0
1
Teremos:
1x
2
5x
pc (x) = det(A xI) = 4
7
8
13
3
6
9x
= x3 15x2 18x
1.9. POLINMIOS
CAPTULO 1.
INTRODUO AO MATLAB
0.0000
(x + 1) (x 2) = x2 x 2
de onv ( y1 , y2 )
Nota-se que o MATLAB apenas retornou o quo
iente da diviso desprezando o valor resto. Para se obter o
valor do resto devemos usar a seguinte sintaxe:
[q,r = de
onv (y1,y2) , dessa forma o quo
iente armazenado no vetor q e o resto no vetor r.
>> [ q , r = de
onv ( y1 , y2 )
q =
1
r =
0
3
Dessa forma temos que o polinmio y1 igual ao produto do dividendo y2 vezes o quo
iente somado ao valor
do resto.
>> y1 =
y1 =
1
onv
( q , y2 ) + r
CAPTULO 1.
INTRODUO AO MATLAB
1.9.
POLINMIOS
9
7
2
B(s)
=
+ 10
A(s)
s+4 s+3 s+1
No MATLAB a funo residue retorna a expanso em fraes par
iais armazenando em vetores assim
omo
a funo de
onv.
A sintaxe da funo residue :
sendo num o vetor-linha que
ontm o polinmio do numerador e analogamente,
den o vetor-linha do polinmio do denominador. Os vetores-
oluna r, p e k so, respe
tivamente, o resduo,
o plo e o termo direto. No por outra razo, o
l
ulo das fraes par
iais tambm
hamado de
l
ulo
de resduos.
[r,p,k = residue(num,dem),
>> B = [ 1 0 80 177 9 5 ;
>> A = [ 1 8 19 1 2 ;
>> [ r , p , k = residue (B, A)
r =
9.0000
7.0000
2.0000
p =
4.0000
3.0000
1.0000
k =
10
Por outro lado, a apli
ao da funo residue
om os argumento
ontendo os vetores r, p e k, permite o
l
ulo dos vetores num e den.
>> [ num , den =
>> r = [ 2 ; 1 ;
>> p = [ 4 ; 2 ;
>> k = 1 0 ;
>> [ num , den =
num =
57
10
den =
1
6
residue ( r , p , k )
residue
(r ,p , k)
72
8
De modo que:
F (s) =
1
10s2 57s + 72
2
+
+ 10 =
s1 s2
s 6s + 8
x um es
alar:
15
1.9. POLINMIOS
CAPTULO 1.
INTRODUO AO MATLAB
>> x = 2 ;
>> f = 2 x^3+3 x^2x+1
f =
27
x um vetor varivel:
>> x = 0 : 0 . 5 : 2 ;
>> f = 2 x .^3+3 x.^2 x+1
f =
1.0000
1.5000
5.0000
13.0000
27.0000
Observao
Utilizando a funo
polyval :
>> x = 0 : 0 . 5 : 2 ;
>> p = [ 2 3 1 1 ;
>> y = polyval ( p , x )
y =
1.0000
1.5000
5.0000
13.0000
27.0000
1.9.7 Derivada
Para obter-se a derivada de um polinmio basta apli
ao da funo polyder :
>> p = [ 2 3 1 1 ;
>> polyder ( p )
ans =
1
6
6
De modo que:
p = 2x3 + 3x2 x + 1
16
dp
= 6x2 + 6x 1
dx
Captulo
Gr
os
2.1 Gr
os simples
Nesta abordagem, visamos ser
apazes de resolver o seguinte problema ao nal do estudo de gr
os simples:
resolver gra
amente as equaes abaixo no domnio 0 < x < 2 :
1. 1 + cos(x) = 2 cos(x/2)
2. cot(x/2) tan(x/2) = 2 csc(x)
Ini
ialmente, devemos
onhe
er a funo que utilizaremos para plotar os gr
os na tela. Trata-se da funo
Sua sintaxe : plot('vetor_dominio','vetor_valores','argumentos').
plot().
Como exemplo ini
ial, pro
ederemos
om a plotagem da funo y = sen(x) para 0 x 2 . O pro
edimento
des
rito abaixo.
Ini
ialmente, so es
olhidos os pontos para a varivel independente x. Esses dados formam o eixo horizontal
do gr
o.
>> x =
linspa e ( 0 , 2 pi , 4 0 ) ;
O seno de
ada ponto es
olhido
al
ulado, forne
endo assim os dados de eixo verti
al.
>> y =
sin ( x ) ;
O primeiro
omando, antes da vrgula, gera o gr
o apresentado abaixo. O outro
omando, aps a vrgula,
habilita a malha pontilhada, para melhor visualizao do gr
o.
>>
plot ( x , y ) , grid
on
A funo plot possui alguns argumentos que podem ser utilizados para adi
ionar aspe
tos visuais aos gr
os.
As tabelas 2.1, 2.2 e 2.3 listam alguns argumentos que personalizam a visualizao dos gr
os.
CAPTULO 2.
ir
ulo
x
mais
estrela
quadrado
diamante
triangulo (em baixo)
triangulo (em
ima)
triangulo (esquerda)
triangulo (direita)
pentgono
hexgono
azul
verde
vermelho
iana
magenta
amarelo
preto
bran
o
18
GRFICOS
CAPTULO 2.
GRFICOS
Slido
Pontilhado
Trao Ponto
Tra
ejado
H outras funes rela
ionadas funo plot(), que tambm personalizam os gr
os gerados (tabela 2.4). A
diferena entre essas funes e os argumentos que os argumentos so utilizados quando se
hama a funo
e essas funes so utilizadas fora da funo plot.
Tabela 2.4: Funes auxiliares funo plot
Des
rio
Funo
title(`texto')
xlabel(`texto')
ylabe(`texto')
gtext(`texto')
text(`texto',X,Y)
>> x = linspa
e ( 0 , 2 pi , 4 0 ) ;
>> y = sin ( x ) ;
>> z =
os ( x ) ;
>> plot ( x , y , ' g : ' , x , z , ' b ' )
>> xlabel ( ' e i x o das a b s
i s s a s ' )
>> ylabel ( ' e i x o das
o r d e n a d a s ' )
>> t i t l e ( ' Funes SENO e COSSENO ' )
>> grid
A gura 2.2 mostra o resultado.
Figura 2.2: Gr
o resultante da utilizao dos argumentos da funo plot e de funes auxiliares.
H tambm outra forma de plotar gr
os, que utilizando a funo fplot() que, desenha gr
os sem a
ne
essidade de
riar dois vetores. Para plotar a funo seno,
omo j zemos, basta utilizar o seguinte
omando:
19
2.2. SUBGRFICOS
CAPTULO 2.
* pi
40)
grid
GRFICOS
on
2.2 Subgr
os
possvel mostrar um
onjunto de eixos
artesianos em uma mesma gura utilizando a funo subplot(m,n,s),
onde m representa a linha, n a
oluna e s a numerao do gr
o. Abaixo temos um exemplo de utilizao
deste
omando para plotar quatro gr
os (resultado na gura 2.3).
>> x = 0 : pi / 1 0 0 : 4 pi ;
>> subplot ( 2 2 1 )
>> plot (
os ( x ) )
>> gtext ( '
o s s e n o ( x ) ' )
>>
>>
>>
>>
subplot ( 2 2 2 )
plot ( sin ( x ) )
axis ( [ 0 500 1 1 )
t i t l e ( ' seno ( x ) ' ) ;
>>
>>
>>
subplot ( 2 2 3 )
plot (
os ( x ) , sin ( x ) )
gtext ( ' s e n ( x ) .
o s ( x ) ' )
>>
>>
>>
subplot ( 2 2 4 )
plot (
os ( 2 x ) , sin ( x ) )
t i t l e ( '
os (2 x ) . sen ( x ) ' )
errorbar(X,Y,E)
ompass(R,I)
plot3
(x , y , z , )
Onde x,y,z so vetores ou matrizes e
o
ara
tere ou string que dene a
or ou estilo de linha.
20
CAPTULO 2.
GRFICOS
2.5. SUPERFCIES
>> p = 0 : pi / 5 0 : 1 0 pi
>> plot3 ( sin ( p ) ,
os ( p ) , p , ' r ' )
>> xlabel ( ' s i n ( p ) ' )
>> ylabel ( '
o s ( p ) ' )
>> zlabel ( ' p ' )
Exemplo
>>mat = zeros ( 1 4 ) ;
>>mesh ( mat )
>>
olormap ( [ 0 1 1 )
>>surf ( mat )
21
2.6. APLICAO
CAPTULO 2.
Vermelho
0
1
1
0
0
1
1
0
0,5
0,5
1
0,49
0
1
0
0
1
0
1
1
0,5
0
0,4
0,83
GRFICOS
Cor
Preto
Bran
o
Vermelho
Verde
Azul
Amarelo
Magenta
Ciano
Cinza-mdio
Vermelho-es
uro
Cobre
Azul-pis
ina
2.6 Apli
ao
A gura 2.4 mostra uma verso simpli
ada de um re
eptor de rdio. O
ir
uito permite a seleo de uma
estao de rdio atravs da alterao da freqn
ia de ressonn
ia do
ir
uito. A tenso na
arga resistiva
varia
om a freqn
ia
onforme a equao abaixo:
VR = q
R2 +
R
L1 2
C
V0
22
Captulo
Integrao Numri
a
3.1 Regra do trapzio
Consideremos uma funo f (x) representada na gura 3.1. Sabidos os valores f (x1 ), f (x2 ), ... , f (x7 ),
quer-se
al
ular a seguinte integral:
Zx7
f (x) dx
x1
Tal integral representa a rea sobre a
urva f (x). Pode-se aproximar a rea sobre a
urva pela soma das
reas dos seis trapzios, que a rea do trapzio
om base x1 x2 e alturas f (x1 ) e f (x2 ), mais a rea do
trapzio de base x2 x3 e alturas f (x2 ) e f (x3 ), e assim por diante. Obtm-se, assim:
rea = (x2 x1 )
f (x1 ) + f (x2 )
f (x3 ) + f (x2 )
+ (x3 x2 )
+
2
2
rea = h
CAPTULO 3.
INTEGRAO NUMRICA
1
1
f (x1 ) + f (x2 ) + f (x3 ) + + f (xn1 ) + f (xn )
2
2
Z90
sen(x)dx
Tabela 3.1: Etapas de
l
ulo pela integrao numri
a via regra do trapzio
ngulo sen(x) Multipli
ador Produto
0
15
30
45
60
75
90
Soma
0
0,2588
0,5000
0,7071
0,8660
0,9659
1,0000
-
1/2
1
1
1
1
1
1/2
-
0
0,2588
0,5000
0,7071
0,8660
0,9659
0,5000
3,7979
Para on luir o l ulo, pre iso multipli ar pelo intervalo h (deslo amento em x):
15
3, 7979 = 0, 9943
180
Para realizar o
l
ulo desta integral no MATLAB, utiliza-se a funo trapz. Esta funo tem dois argumentos:
um vetor x; e um vetor y, de mesmo tamanho de x (
aso y seja uma matriz, ela ter o mesmo nmero de
olunas de x).
>> a n g u l o = 0 : 1 5 : 9 0 ;
>> x=( pi a n g u l o / 1 8 0 ) ;
>> y=sin ( x ) ;
>> z=trapz ( x , y )
z =
0.9943
>> h=pi 1 5 / 1 8 0 ;
>> z=h trapz ( y )
z =
0.9943
angulo = 0 : 5 : 9 0 ;
x = ( pi angle / 1 8 0 ) ;
y = sin ( x ) ;
z = trapz ( x , y )
24
CAPTULO 3.
INTEGRAO NUMRICA
3.2.
REGRA DE SIMPSON
z =
0.9994
>> h=pi 5 / 1 8 0 ;
>> z=h trapz ( y )
z =
0.9994
Como sabemos:
Z90
sen(x)dx = 1
Sendo assim, a funo trapz() retorna o resultado
om erro de exatido e,
omo pode-se notar nos exemplos
a
ima, quanto menor o espaamento h, menor o erro, ou seja, maior a exatido:
>> a n g u l o = 0 : 0 . 0 5 : 9 0 ;
>> x = a n g u l o pi / 1 8 0 ;
>> y = sin ( x ) ;
>> trapz ( x , y )
ans =
1.0000
Para
al
ular a rea sobre a parbola f (x), dividiremos a rea total em duas reas:
25
3.3. EXERCCIOS
CAPTULO 3.
INTEGRAO NUMRICA
segmento AB = f (x );
segmento F C = f (x );
segmento ED = f (x );
h = AE/2 = (x x )/2
1
2
S1 = 2h
f (x1 ) + f (x3 )
2
A rea S2 , rea do segmento de parbola, igual a 2/3 da rea do paralelogramo que
ir
uns
reve a parbola
(paralelogramo HIDBH ), sendo assim,
al
ulada por:
S2 =
2
f (x1 ) + f (x3 )
2
AE CG = 2h f (x2 )
3
3
2
Zx
f (x)dx = S1 + S2
h
[f (x1 ) + 4f (x2 ) + f (x3 )]
3
x0
f (x)dx =
h
[f (x1 ) + 4f (x2 ) + 2f (x3 ) + 4f (x4 ) + + 4f (xn ) + f (xn+1 )]
3
x1
No MATLAB, a funo quad('f ',A,B) aproxima a integral de f (x) no intervalo [A, B] usando a regra de
Simpson
om um erro relativo na ordem de 103 .
Para obter o valor aproximado do integral da funo f (x) = cos(x) exp(x) em [0, 0.5] podemos usar a
funo inline para denir a funo f (x) direitamente na funo quad :
>>
ans
quad ( i n l i n e
=
0.0860
0,
0.5)
R2
a)
x dx
R2
b)
x2 dx
R2
x3 dx
R1h
d)
26
1
(x0,3)2 +0,01
1
(x0,9)2 +0.04
dx
e)
R5
5 dx
0
Captulo
/ diviso direita;
\ diviso esquerda;
matriz inversa;
rank()
3x + 2y z
x + 3y + 2z
xyz
= 10
=5
= 1
3
2 1
x
1 3
2 y =
1 1 1
z
AX =
Existem duas formas de solu
ionar o problema:
10
5
1
B
CAPTULO 4.
SISTEMAS DE EQUAES
4.1.2 Inversa
>> A = [ 3 2 1; 1 3 2 ; 1 1 1 ;
>> B = [ 1 0 5 1 ' ;
>> X = inv (A) B
X =
2.0000
5.0000
6.0000
X A =B ,
ento, a soluo pode ser dada por uma diviso direita:
X = B/A
Seja o seguinte exemplo:
x y
3
2 1
2 = 10 5 1
1 3
1 1 1
>> A = [ 3 2 1; 1 3 2 ; 1 1 1 ;
>> B = [ 1 0 5 1 ;
>> X = B/A
X =
3.0000
15.0000
34.0000
x +2y
a)
x 2y
x +y
z
+z
z
= 1
= 2
= 1
28
x +y
b)
x y
x +2y
+z
z
z
=
=
=
10
5
1
CAPTULO 4.
x +2y
2x y
SISTEMAS DE EQUAES
+z
z
=
=
4.3.
EXERCCIOS
x +2y
2x 3y
d)
2x 2y
2x y
1
5
29
+z
z
z
+z
=
=
=
=
1
2
5
1
4.3. EXERCCIOS
CAPTULO 4.
30
SISTEMAS DE EQUAES
Captulo
sqrt ( 2 ) %r e t o r n a
ans = 1 . 4 1 4 2
um nmero
d e i m a l em p o n t o f l u t u a n t e
De outra maneira, se
onvertermos o nmero 2 para um objeto simbli
o utilizando o
omando sym(), e
ento retirarmos a raiz quadrada deste, teremos:
>> a = sqrt ( sym ( 2 ) )
>> a =
2^(1/2)
O Matlab retorna um valor em notao simbli
a para a operao sem
al
ular verdadeiramente o valor
numri
o. Assim, o programa guarda essa expresso simbli
a na string que representa 2^(1/2).
Podemos obter o valor numri
o de um objeto simbli
o pelo
omando
CAPTULO 5.
MATEMTICA SIMBLICA
>> d o u b l e ( a )
>> ans =
1.4142
Quando
riamos uma frao envolvendo objetos simbli
os, o MATLAB grava em um o numerador e em
outro o denominador.
Sejam os seguintes
omandos:
>> sym ( 2 ) / sym ( 5 )
>> ans =
2/5
A aritmti
a utilizada pelo MATLAB para os dados simbli
os tambm diferente daquele que envolve
outros tipos de dados.
Por m,
onsidere:
>> 2/5 + 1/3
>> ans =
0 ,7333
Se somarmos as mesmas fraes s que agora
omo dados simbli
os, o MATLAB primeiro en
ontra o
denominador
omum para ento pro
essar a soma dos nmeros fra
ionrios pelos pro
edimentos usuais.
>> sym ( 2 ) / sym ( 5 )
>> ans =
11/15
sym ( 1 ) / sym ( 3 )
f = ax2 + bx + c
A soluo dada por:
a
b
x
=
=
=
=
sym (
sym (
sym (
sym (
'a ' )
'b ' )
'
')
'x ' )
ou simplesmente
>> syms a b
x
que uma alternativa mais enxuta ao
omando sym, para ento fazer
Importante
Para
riar uma expresso simbli
a que uma
onstante, s podemos usar o
omando sym.
Por exemplo, para
riar uma expresso
ujo valor 5, digite f = sym('5'). Note que o
omando f
= 5 no dene f
omo uma expresso simbli
a. Se vo
riar uma varivel igual a uma expresso
simbli
a, e ento apli
ar o
omando syms a esta varivel, o MATLAB ir remover a expresso denida
previamente da varivel.
32
CAPTULO 5.
Exemplo
MATEMTICA SIMBLICA
Considere:
>> syms a b
>> f = a + b
retorna
>>f =
a+b
Se vo
inserir:
>> syms f
O MATLAB retornar
>> f =
f
Para determinar quais variveis simbli
as esto presentes na expresso use o
omando
>> f i n d s y m ( )
Exemplo
>> f = 2 x^2 3 x + 1
entre
om o
omando
>>
subs ( f , 2 )
ans
CAPTULO 5.
MATEMTICA SIMBLICA
1/10
Veja tambm:
>> sym ( t , ' e ' )
>> ans =
1/10+ eps /40
>> sym ( t , ' d ' )
>> ans =
.10000000000000000555111512312578
real
Criamos variveis x e y que se in
luem no
onjunto de propriedades matemti
as dos nmeros REAIS.
Isso signi
a que a expresso
>> f = x^2 + y^2
estritamente no negativa.
Desde que z seja uma varivel
omplexa, poder ser operada
omo tal. Assim, os
omandos
>>
onj ( x ) ,
>>
onj ( z ) ,
>> expand ( z
para
*
onj ( z ) )
*
>> z = x + i y
retornaro
x,
x i y ,
x^2+y^2
respe
tivamente. O
omando
onj o operador do
omplexo
onjugado desse toolbox. Se
onj(x) == x
retorna 1, ento x uma varivel real.
5.5 Cl
ulos
O Toolbox de Matemti
a simbli
a tambm in
lui funes que realizam as operaes bsi
as do Cl
ulo.
34
CAPTULO 5.
MATEMTICA SIMBLICA
5.5.
CLCULOS
O
omando
>>
diff ( f )
ans
5
* os ( 5 * x )
exp ( x ) os ( x )
>> g =
diff (g)
ans =
exp ( x )
os ( x ) exp ( x ) sin ( x )
diff (g ,2)
ans =
2 exp ( x ) sin ( x )
O
omando
>>
diff ( f
,t)
ans =
os ( s
* t )* s
diff ( f , s )
ans =
os ( s t )
* *t
diff
( f , t , 2)
35
5.5. CLCULOS
CAPTULO 5.
MATEMTICA SIMBLICA
Que retornar
>>
ans =
sin
* * s ^2
(s t)
Note que di (f, 2) tambm retorna essa resposta j que t est mais prximo de x do que s no alfabeto
(varivel padro).
5.5.3 Limite
O limite uma idia fundamental no Cl
ulo. Lembre-se que o
on
eito da derivada provm dessa noo:
f (x + h) f (x)
h0
h
f (x) = lim
Considere:
>> syms h n x
>> l i m i t ( (
os ( x+h )
os ( x ) ) / h , h , 0
Que retorna
>>
ans =
sin ( x )
e
>> l i m i t ( ( 1 + x/n )^n , n , i n f )
Que retorna
>>
ans =
exp ( x )
Ilustramos dois
asos utilizando noes de limite muito importantes na engenharia: a derivada da funo
trigonomtri
a
osseno e a funo exponen
ial.
lim
x0
fazemos:
>> l i m i t ( x /
abs ( x )
, x, 0,
Que retorna
>>
ans
1
36
x
|x|
CAPTULO 5.
MATEMTICA SIMBLICA
5.5.
CLCULOS
lim
x0+
x
|x|
Que retornar
>>
ans
Como o limite pela direita no igual ao limite pela esquerda,
aso estes no sejam espe
i
ados, o MATLAB
retornar NaN (not a number)
omo resposta.
>>l i m i t ( x /
>> ans =
abs
( x ) , x , 0)
NaN
5.5.4 Integrao
Seja f uma expresso simbli
a, ento
>> i n t ( f )
tentar en
ontrar uma outra expresso simbli
a, F,
uja derivada di(F) = f. Ou seja, int(f ) retorna a
integral indenida (tambm
hamada de anti-derivada) de f (desde que esta exista de forma integrada).
Similar diferen
iao,
>> i n t ( f , v )
Usa o objeto simbli
o v
omo varivel de integrao.
Veja alguns exemplos:
37
5.5. CLCULOS
CAPTULO 5.
MATEMTICA SIMBLICA
>> syms x , n
>> f = x^n
Cal
ulando a integral
>> i n t ( x^n )
Teremos
omo resposta
>>
ans
=
x ^(n +1)/( n+1)
Em
ontraste
om a diferen
iao, a integrao simbli
a uma funo um pou
o mais
ompli
ada. Alguns
dos motivos so:
ans
=
1/2 pi ^ ( 1 / 2 )
* erf ( x )
Isso a
onte
e quando no h nenhuma frmula para a integral envolvendo o Cl
ulo tradi
ional
omo as
funes trigonomtri
as ou mesmo as exponen
iais.
Quando no for possvel en
ontrar uma resposta para a integral da expresso de f, o MATLAB simplesmente
a devolver
>>
ans
=
int ( f )
Zb
f (x) dx
38
CAPTULO 5.
MATEMTICA SIMBLICA
5.6.
COMANDO SOLVE
5.5.5 Somatrios
Podemos
omputar o somatrio de nmeros simbli
os, quando essas existirem, a partir do
omando symsum.
Por exemplo,
>>
>>
>>
>>
syms x k
s 1 = symsum( 1 / k ^ 2 , 1 , i n f )
s 2 = symsum ( x^k , k , 0 , i n f )
s1 =
1/6 pi ^2
>> s 2 =
1/(x 1)
(x a)n
n=0
f n (a)
n!
Podemos en
ontrar a srie de Taylor de uma funao f qualquer usando os
omandos
onforme o exemplo
abaixo:
>> syms x
>> f = 1/(5+4
os ( x ) )
>> T = t a y l o r ( f , 8 )
Que retorna
39
CAPTULO 5.
MATEMTICA SIMBLICA
ans
=
[ 1 / 2 / a ( b+(b^2 4 a
) ^ ( 1 / 2 ) )
[ 1 / 2 / a ( b (b^2 4 a
) ^ ( 1 / 2 ) )
*
*
**
**
Esses so vetores simbli
os
ujos elementos so as solues da equao proposta. Se desejarmos resolver a
equao para uma varivel espe
a, essa deve ser espe
i
ada por um argumento adi
ional. Por exemplo,
se queremos resolver S para b, usaremos o
omando:
>> b = s o l v e ( S , b )
que retornar
>> b =
(a x^2+
) / x
Se quisermos resolver as equaes para f (x) = g (x) devemos fazer omo no exemplo abaixo:
* pi
* pi
CAPTULO 5.
MATEMTICA SIMBLICA
5.7.
2y
t2
As
ondies ini
iais podem ser dadas por equaes adi
ionais. Se estas
ondies no forem espe
i
adas,
as solues in
luiro as
onstantes de integrao C1, C2, et
.
Podemos
hamar dsolve
om o nmero de variveis de sada igual ao nmero de variveis dependentes ou
olo
ar a sada em uma estrutura
ujos
ampos
ontm as solues da equao diferen
ial.
Exemplo 1
O omando:
ans =
tan ( t+C1 )
tan ( t +1/4 pi )
Equaes no-lineares devem apresentar mltiplas solues, mesmo quando as
ondies ini
iais so dadas.
>>x = d s o l v e ( ' (Dx)^2+x^2=1 ' , ' x (0)=0 ' )
que resulta em
>>
x =
[ sin ( t )
[ sin ( t )
Exemplo 2
Aqui teremos uma equao diferen ial de segunda ordem om duas ondies ini iais. Os
omandos
'x ' );
produzem
>> ns =
4/3
* os ( x) 2/3* os ( x)^2+1/3
d3 u
=u
dt3
simplesmente digite
>> u = d s o l v e ( ' D3u=u ' , ' u (0)=1 ' , 'Du(0)= 1 ' , ' D2u ( 0 ) = p i ' , ' x ' )
Tambm podemos resolver vrias equaes diferen
iais ordinrias utilizando dsolve,
omo segue:
41
5.8. TRANSFORMADAS
CAPTULO 5.
* *
MATEMTICA SIMBLICA
* *
' Dg = 4 f +3 g ' )
* * * sin ( 4 * t )+C2* os ( 4 * t ) )
* * * os ( 4 * t )C2* sin ( 4 * t ) )
* *
* *
* *
* *
*
*
5.8 Transformadas
5.8.1 Transformada de Fourier
F = fourier(f) a Transformada de Fourier da espresso simbli
a f
om a varivel independe padro x. O
Matlab retornar uma funo de w
omo padro. A transformada de Fourier apli
ada em uma funo de
x e retorna uma funo de w.
Exemplo 1
>> f = exp( x ^2)
>> f o u r i e r ( f )
r etornar
pi ^ ( 1 / 2 ) exp ( 1/4
*w^2)
Exemplo 2
4 i /(1+u ^2)^2 u
F = fourier(f,u,v) faz de f uma funo de u e F uma funo de v ao invs das variveis padronizadas x e w,
respe
tivamente.
Exemplo 3
>> syms x real
>> f = exp( x^2 abs ( v ) )
>> f o u r i e r ( f , v , u )
* sin ( v ) / v
42
CAPTULO 5.
MATEMTICA SIMBLICA
5.8. TRANSFORMADAS
retorna
Exemplo 1
>> syms a real
>> f = exp(w^2/(4 a ^ 2 ) )
>> F = i f o u r i e r ( f )F = s i m p l e (F)
retorna
a
*exp(x^2* a ^2)/ pi ^ ( 1 / 2 )
Exemplo 2
>> g = exp( abs ( x ) )
>> i f o u r i e r ( g )
retorna
1/(1+ t ^2)/ pi
Exemplo 1
>> f = t ^4
>> l a p l a
e ( f )
retorna
24/ s ^5
Exemplo 2
>> f = exp( a t )
>> l a p l a
e ( f , x )
resulta em:
1/(x + a )
5.8.4 Transformada z
Sintaxes:
43
5.8. TRANSFORMADAS
CAPTULO 5.
>> F = z t r a n s ( f )
>> F = z t r a n s ( f , w)
>> F = z t r a n s ( f , k , w)
Exemplo 1
>> f = n^4
>> z t r a n s ( f )
retorna
Exemplo 2
>> g = a^z
>> s i m p l i f y ( z t r a n s ( g ) )
retorna
w/( w+a )
Exemplo 3
>> f = sin ( a n )
>> z t r a n s ( f , w)
retorna
44
MATEMTICA SIMBLICA
Captulo
Arquivos M
6.1 Caminho de bus
a do MATLAB
Antes de
omear a
riar arquivos M ne
essrio
onhe
er melhor o dispositivo de bus
a do MATLAB.
Quando digitamos um
omando no interpretador do MATLAB, ele veri
ar na seguinte ordem por aquele
nome:
1. Varivel
2. Funo ou
omando pr-denido
3. Arquivo M no diretrio atual
4. Arquivo M na lista de diretrios do
aminho de bus
a
Como pode-se per
eber a es
olha do nome de variveis, funes e arquivos de fundamental importn
ia
para evitar
onitos e at, perda de
omandos importantes uma vez que, por exemplo, uma varivel
om o
nome Input seria a
essada antes da funo
om o mesmo nome.
Para alterar o
aminho de bus
a do MATLAB basta digitar na linha de
omandos o
omando
Uma janela ser aberta apresentando todas as opes (gura 6.1).
editpath.
addpath
path
rmpath
CAPTULO 6.
ARQUIVOS M
Ao salvar um arquivo M esteja
erto sobre sua lo
alizao, pois vo
pre
isar adi
ionar o
aminho do diretrio
lista de diretrios do MATLAB,
aso este ainda no tenha sido adi
ionado.
Como primeiro arquivo M atentemo-nos a seguinte situao:
Problema
Temos uma fonte de 120V
om resistn
ia interna de 50 (gura 6.3). Cal
ular a resistn
ia
de
arga para a qual a potn
ia seja mxima. Desenhar a
urva de potn
ia para vrios valores de potn
ia.
Soluo
PL = I 2 RL
I=
V
RL + RI
Implementando o arquivo M:
1
2
3
4
5
6
7
8
9
10
'
v o l t s = 120;
Ri = 5 0 ;
Rl = 1 : 1 0 0 ;
I = v o l t s . / ( Ri + Rl ) ; %
a l
u l a a
o r r e n t e
Pl = Rl . I . ^ 2 ; %
a l
u l a a p o t n
i a na
a r g a
plot ( Rl , Pl ) ; %p l o t a Rl ( x ) e P l ( y )
t i t l e ( ' G r f i
o R e s i s t n
i a x P o t n
i a na
a r g a ' )
grid on
xlabel ( ' R e s i s t n
i a Rl ' )
ylabel ( ' P o t n
i a na
a r g a ' )
&
46
CAPTULO 6.
ARQUIVOS M
CAPTULO 6.
ARQUIVOS M
Diferente
a~=b
Maior
a>b
Menor
a<b
Maior Igual
a>=b
Menor Igual
a<=b
Erros podem o
orrer ao
omparar variveis devido s aproximaes, feitas pela mquina, j que realiza seus
l
ulos numeri
amente. Dois exemplos so mostrados abaixo:
>> a = 0 ;
>> b = sin ( pi ) ;
>> a == b
ans =
0
O que mostra que o MATLAB, devido os erros a
ima men
ionados, no atribui o valor exato de zero para
o seno de pi. Mas, pelo
omando abaixo, mostra-se que o mdulo da diferena entre este seno e zero da
ordem de 10-15, perfeitamente utilizvel para a maior parte das situaes.
48
CAPTULO 6.
>>
ans
abs ( ab )
=
1
ARQUIVOS M
< 1 e 15
OU
a || b
EX-OU
xor(a,b)
NO
~b
a
0
0
1
1
E
a && b
0
0
0
1
b
0
1
0
1
OU
a || b
0
1
1
1
EX-OU
xor(a,b)
0
1
1
0
NO
~a
1
1
0
0
is har(a)
isempty(a)
isinf(a)
isnan(a)
inf
isnumeri (a)
NaN
Para maiores informaes sobre funes lgi as, re omenda-se pro urar por is* na janela de ajuda do MATLAB.
if
expresso_de_
ontrole
omandos ;
e l s e i f expresso_de_
ontrole2
omandos ;
else
end
omandos ;
49
CAPTULO 6.
ARQUIVOS M
if
expresso_de_
ontrole
omandos ;
i f expresso_de_
ontrole
omandos ;
end
end
Problema
f (x, y) =
x+y
x + y 2
x2 + y
2
x + y2
x0
x0
x<0
x<0
ey0
ey<0
ey0
ey<0
Soluo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'
%P r o p s i t o :
%f ( x , y )
%O b t e n d o
x =
y =
Avaliar
para
x
if
valores
valores
da
funo
de
%C a l u l a
os
diferentes
om o v a l o r de x :
om o v a l o r de y :
' );
' );
else
end
f u n = x^2 + y ^ 2 ;
%E s r e v e n d o
disp ( [
&
resultado
'O v a l o r de f :
'
num2str ( f u n ) ) ;
6.4.3.2 Swit
h
Tambm uma estrutura de tomada de de
iso. Derivou de vrias seqn
ias de if e else. Caso a expresso
se iguale a um dos
asos o blo
o de de
laraes
orrespondente ser exe
utado. Existe um blo
o padro
otherwise que exe
utado quando nenhum dos
asos atendido.
50
CAPTULO 6.
ARQUIVOS M
swit
h ( expresso )
a s e expre_
ase ,
omando ;
omando ;
a s e e x p r e _
a se 2 ,
omando ;
omando ;
ase expres_
ase3 ,
omando ;
omando ;
otherwise
omando ;
omando ;
end
Exemplo
Soluo
1
2
3
4
5
6
7
8
9
10
'
end
&
6.4.3.3 Try/ at h
Esta estrutura fun
iona de maneira que se o blo
o de
omandos dentro de try gerar algum erro o blo
o dentro
de
at
h ser exe
utado. Lembrando que o blo
o dentro de try ser exe
utado normalmente
omo parte da
sequn
ia do programa.
Exemplo
1
2
3
4
5
6
7
8
9
10
'
%I n i i a
matriz
a = [ 1 3 4 5
try
%T e n t a
e x i b i r um e l e m e n t o
%Se
end
hegarmos
disp ( [
&
aqui ,
' ndi e
' );
o o r r e u um e r r o
ilegal :
'
int2str ( i n d e x ) ) ;
51
CAPTULO 6.
ARQUIVOS M
6.4.3.4 Laos
As duas estruturas de lao presentes na linguagem so for e while. Enquanto o for fun
iona
om in
rementao
de variveis o while fun
iona
om teste de
ondies lgi
as, ou seja, o lao for se en
errar quando o
ontador
a
abar e o lao while se en
errar
om o atendimento da
ondio da expresso.
A estrutura do lao for mostrada abaixo:
for
end
n d i
e = e x p r e s s o : [ v e t o r ou m a t r i z
Cdigo_a_ser_exe
utado ;
Ao se utilizar o lao for, uma boa prti
a de programao e que poupa tempo de
l
ulo da mquina a
pr-alo
ao de vetores. Isso pode ser feito, por exemplo,
riando um vetor
omposto somente de zeros,
por meio da funo zeros. O exemplo abaixo demonstra a diferena entre dois laos: o primeiro no utiliza
pr-alo
ao enquanto o segundo utiliza.
Exemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
'
lear
t i
%i n i
i a
for t =1:5 e4
$
ontagem
de
tempo
* *
y ( t ) = sin ( 2 pi t / 1 0 ) ;
end
to
% f i n a l i z a
o n t a g e m d e tempo
pause %a g u a r d a uma t e
l a s e r p r e s s i o n a d a
lear %l i m p a a s v a r i v e i s
ti
y = zeros ( 1 , 5 e4 ) ; %p r a l o
a o do v e t o r
for t =1:1 e4
y ( t ) = sin ( 2 pi t / 1 0 ) ;
end
to
* *
&
Exemplo
1
2
3
4
5
6
'
end
fprintf ( ' Fatorial
&
' );
%f \n ' , n _ f a t o r i a l ) ;
52
CAPTULO 6.
ARQUIVOS M
while
end
expresso
Cdigo_a_ser_exe
utado ;
Exemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'
n = 0;
sum_x = 0 ;
sum_x2 = 0 ;
x = input ( ' Entre
om o p r i m e i r o v a l o r : ' ) ;
while x >= 0
n = n+1;
sum_x = sum_x+x ;
sum_x2 = sum_x2+x ^ 2 ;
x = input ( ' Entre
om o v a l o r s e g u i n t e :
end
x_bar = sum_x/n ;
std_dev = sqrt ( ( n
sum_x2 sum_x ^ 2 ) / ( n
f p r i n t f ( ' Mdia : %f \n
D e s v i o Padro : %f \n
Nmero de Pontos : %f \n ' , x_bar , std_dev , n ) ;
' );
(n 1 ) ) ) ;
&
'
Exemplo
Podemos
al
ular o valor espe
ial no MATLAB (eps ), menor valor que se pode adi
ionar a um
nmero tal que o resultado da soma seja maior do que o nmero ini
ial, utilizando pre
iso nita.
1
2
3
4
5
6
7
8
num = 0 ;
EPS = 1 ;
while (1+EPS)>1
EPS=EPS / 2 ;
num = num + 1 ;
end
num = num 1
EPS = 2 EPS
&
>> exemplo_while2
num =
52
EPS =
2 . 2 2 0 4 4 6 0 4 9 2 5 0 3 1 3e 016
O valor de EPS
al
ulado o mesmo de eps, pre
iso do MATLAB. Neste
l
ulo, num = 52 o nmero de
vezes que o valor EPS foi dividido por 2.
53
CAPTULO 6.
ARQUIVOS M
Exemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'
end
end
%f i m
%f i m
do
do
for
' );
if
om
end %f i m do f o r
om k
disp ( [ 'O maior e l e m e n t o ' num2str ( xmax ) ' , p o s i
i o n a d o
num2str ( l i n h a ) ' e
o l u n a ' num2str (
o l u n a ) )
na l i n h a
'
...
&
fun tion
[ arg_out1 , arg_out2 ,
% Comentrios
% Mais
que
expliquem
bem omo
seus
...)
argumentos
omentrios
Cdigo e x e
u t v e l
O exemplo abaixo
al
ula a distn
ia entre dois pontos no espao
artesiano de duas dimenses.
Exemplo
1
2
3
4
5
'
fun tion
d i s t = d i s t a n i a 2 d ( x1 , y1 , x2 , y2 )
%C a l u l a
%em d u a s
dimenses .
dist =
&
distn ia
sqrt ( ( x1
entre
dois
pontos
( X1 , Y1 )
x2 )^2 + ( y1 y2 ) ^ 2 ) ;
54
$
e
( X2 , Y2 )
CAPTULO 6.
ARQUIVOS M
Para se invo
ar a funo a
ima, o arquivo em que ela est
ontida deve ter o mesmo nome da funo. Neste
aso, o arquivo distan
ia2d.m .
>> d i s t a n
i a 2 d ( 0 , 0 , 3 , 4 )
ans =
5
Caso o arquivo fosse dado ao arquivo da funo outro nome,
omo distan
ia.m, por exemplo, seria ne
essrio
digitar distan
ia(0,0,3,4) para invo
ar a funo
riada. Ou seja,
omum salvar o arquivo da prin
ipal funo
om o nome da prpria, para evitar possveis
onfuses ao invo
-la. Pode-se tambm
riar um s
ript que
invoque a funo, desde que os arquivos do s
ript e da funo estejam, ambos, no
aminho de bus
a do
MATLAB.
Os
omentrios adi
ionados logo abaixo da denio da funo so importantes pois so a fonte de ajuda
para a dada funo no ambiente do MATLAB,
omo mostra o
omando abaixo:
>> help d i s t a n
i a 2 d
Cal
ula a distn
ia
em duas d i m e n s e s .
e n t r e d o i s p o n t o s ( X1 , Y1) e ( X2 , Y2)
Temos abaixo outro exemplo de funo. Esta tem
omo argumentos de entrada
oordenadas
artesianas e
tem
omo sada as
oordenadas polares dos dados de entrada.
Exemplo
1
2
3
4
5
6
'
fun tion
[ r , theta = re t2polar (x , y)
% Converte
oordenadas
%
oordenadas
% vetores
polares .
a r t e s i a n a s em
Fun
io n a
omo a r g u m e n t o s
de
r = sqrt ( x . ^ 2 + y . ^ 2 ) ;
t h e t a = 180/ pi
atan2 ( y , x ) ;
tambm om
entrada .
&
>> [ r , t h e t a = r e
t 2 p o l a r ( [ 1 2 , [ 1 2 )
r =
1 . 4 1 4 2 1 3 5 6 2 3 7 3 0 9 5 e +000
2 . 8 2 8 4 2 7 1 2 4 7 4 6 1 9 0 e +000
theta =
45
45
Exemplo
1
2
3
4
5
6
'
b=%f %f \n ' , a , b ) ;
a = b (1)+2 a ;
b = a. b;
out = a + b ( 1 ) ;
f p r i n t f ( ' \n Exemplo d u r a n t e : a = %f e b = %f %f \n ' , a , b ) ;
&
55
CAPTULO 6.
ARQUIVOS M
S ript
1
2
3
4
5
'
&
a = 2; b = [6 4 ;
f p r i n t f ( ' \ nExemplo a n t e s : a = %f , b = %f %f \n ' , a , b ) ;
out = exemplo_passagem ( a , b ) ;
f p r i n t f ( ' \ nExemplo d e p o i s a= %f b =%f %f \n ' , a , b ) ;
f p r i n t f ( ' \ nExemplo d e p o i s : out %f \n ' , out ) ;
possvel
riar funes sobre
arregadas no MATLAB. Elas podem ter vrias variveis de entrada e sada.
Para isso pre
isaremos das seguintes funes.
nargin
funo;
nargout
narg hk(min_arg,max_arg,narg)
warning
Essa funo retorna o nome atual da varivel que
orresponde a um nmero de argumento
em parti
ular.
inputname
O exemplo abaixo veri
a a quantidade de argumentos passado para a funo polar_value e,
aso o nmero
de argumentos seja maior do que 2 ou menor do que 1, esta retorna um erro. Para o
aso em que h
apenas um argumento de entrada, atribudo o valor 0 para y. Caso apenas um argumento de sada esteja
sendo requerido, apenas a magnitude (mag ) retornada. Ao se requerer dois argumentos de sada, alm da
magnitude, o ngulo tambm forne
ido.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
'
msg =
end
if x
end
y =0;
mag = sqrt ( x . ^ 2 + y . ^ 2 ) ;
i f nargout == 2
angle = atan2 ( y , x ) 1 8 0 / pi ;
end
&
56
CAPTULO 6.
ARQUIVOS M
x = eval(`sin(pi/4)')
x = feval(`sin',pi/4)
Exe
uta a string
omo se ela tivesse sido digitada na linha de
omandos;
Exe
uta a funo passada
omo primeiro argumento, sendo passado
omo
En ontra o zero da funo no intervalo que foi passado omo segundo argumento;
1
2
3
4
5
6
7
'
&
Repare que a funo mystats utiliza a funo mean internamente. Ambas funes esto no mesmo arquivo.
CAPTULO 6.
ARQUIVOS M
Como sqr agora um handle, podemos pass-lo
omo argumento para outras funes.
Como exemplo a funo quad que
al
ula a integral numri
a pelo mtodo da quadratura, pode ser
hamada
neste
aso do seguinte modo:
>>
ans
quad ( s q r
, 0 , 1)
=
3 . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3e 001
Exemplo
1
2
3
4
5
6
7
'
fun tion
ti 2
Start
TIC
TIC ;
prints
See
$
a
stopwat h
any
the
timer .
s t u f f ; TOC
time
required .
a l s o : TOC, CLOCK.
global TICTOC
TICTOC =
lo
k ;
&
Exemplo
1
2
3
4
5
6
7
8
9
10
11
'
fun tion
t = to 2
TOC Read
TOC p r i n t s
t = TOC;
See
also :
global TICTOC
i f nargout < 1
else
end
the
stopwat h
timer .
the
elapsed
time
sin e
TIC was
saves
elapsed
time
in
does
t ,
not
used .
print .
TIC , ETIME .
elapsed_time =
t =
etime ( lo k ,
etime ( lo k ,
TICTOC)
TICTOC ) ;
&
CAPTULO 6.
ARQUIVOS M
Exemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'
fun tion
find_file ( f i l e )
persistent lastDir
i f isempty ( l a s t D i r )
else
end
response =
if
input ( prompt ,
';
[ ' lastDir
' :
' ;
's ' );
~isempty ( r e s p o n s e )
dirName = r e s p o n s e ;
else
end
dirName = l a s t D i r ;
dir ( s t r a t ( dirName ,
f i l e ))
l a s t D i r = dirName ;
&
6.4.7 Estruturas
Assim
omo em outras linguagens de programao, possvel
riar estruturas no MATLAB. So muito teis
pois podem armazenar diferentes tipos de dados no mesmo lo
al.
A sintaxe bsi
a para a
riao de uma estrutura no MATLAB mostrada abaixo:
e s t r u t u r a = s t r u
t ( '
ampo1 ' , v a l o r 1 ,
...)
>>
a r r o
arro =
1 x2 s t r u
t a r r a y w i t h f i e l d s :
mar
a
poten
ia
>>
a r r o ( 1 )
ans =
mar
a : ' f i a t '
poten
ia : [100 200
>>
a r r o ( 1 ) . p o t e n
i a ( 2 )
ans =
200
Similares de
erto modo s estruturas, h tambm as
lulas. Para maior entendimento destas, re
omenda-se
a leitura da Ajuda do MATLAB no tema
ell.
59
CAPTULO 6.
ARQUIVOS M
xls .
Suponhamos agora que temos um arquivo de texto,
om nome de alpha_1.txt,
om as seguintes informaes
ilustradas na gura 6.5.
Nota-se que este arquivo possui 5
olunas
om 12 valores numri
os
ada. Como pro
eder para adquirir
todos estes dados numri
os do arquivo externo, suprimindo as 3 linhas de
abealho? O MATLAB ofere
e
algumas funes que podem realizar estas tarefas. Ser utilizada, nesta apostila, a funo textread. O leitor
interessado pode e deve pro
urar por outras funes que podem possivelmente atender a mesma tarefa de
modo mais otimizado.
60
CAPTULO 6.
ARQUIVOS M
So 5 olunas, ada uma delas ontendo diferentes informaes, assim sendo, faz-se ne essrio salvar
ada
oluna
omo uma diferente varivel. Isto apresentado do lado esquerdo da linha de programao,
em que se atribui a
ada nome de varivel a respe
tiva
oluna do arquivo;
O formato de todos os dados no arquivo de texto de pontos utuantes, o que representado por %f
no MATLAB. Esta notao similar a outras linguagens de programao;
Para que a funo
onsiga separar uma
oluna de outra, pre
iso espe
i
ar o delimitador, no
aso, o
espao (mostrado na rea 'delimiter', ' ' );
Para que no sejam armazenados dados referentes ao
abealho, espe
i
a-se na funo que h 3 linhas
deste, por meio da rea 'headerlines', 3 ;
A partir do momento em que isto feito, todos os dados que antes estavam no arquivo, agora tambm esto
no MATLAB, na forma de variveis. Para esta funo espe
a, textread, os dados so armazenados em
lulas,
uja manipulao em relao a vetores se d, para este
aso, de modo igual. Uma vez que os dados
j esto na rea de trabalho do MATLAB, pode-se trabalhar
om eles da forma desejada (traar gr
os,
efetuar
l
ulos e et
).
Outras funes para leitura de arquivos no MATLAB so: dlmread, texts
an importdata. Todas apresentam
vantagens e desvantagens umas em relao as outras. Uma vantagem da funo textread que no ne
essrio
abrir formalmente o arquivo que se deseja extrair informaes por meio da funo fopen.
Novamente ressaltado que h vrias opes e funes no MATLAB para que se trabalhe
om dados. Uma
leitura mais aprofundada da Ajuda do programa se faz ne
essria para que se obtenha um
onhe
imento
pleno do assunto.
61
CAPTULO 6.
ARQUIVOS M
=
=
=
=
0:0.001:0.1;
1 0 0 0 ; %r e s i s t n
i a d e 1Kohms
10 e 6; %
a p a
i t n
i a d e 10 mi
roF
1 exp( t / (R C ) ) ;
O s
ript a
ima gera os valores da tenso e do tempo para a situao dada. Para exportar os dados para
um arquivo, pre
iso ini
ialmente abrir este arquivo no MATLAB. Para tal, utiliza-se a funo fopen. Esta
funo pode trabalhar
om um arquivo pr-existente ou mesmo
riar um novo.
fid =
fopen ( ' t e n s o e s . t x t
',
' wt ' ) ;
O
omando a
ima faz
om que o identi
ador de abertura de um arquivo
hamado tensoes.txt seja armazenado
na varivel d. O arquivo foi aberto no modo `wt', que permite que se es
reva no mesmo, no formato de
texto. Utilizando este parmetro,
aso exista um texto anterior no arquivo, este ser sobres
rito. Para no
sobres
rever um arquivo, mas sim adi
ionar novos dados ao nal do mesmo, pode-se utilizar o parmetro
`at'. O parmetro `t' em ambos os
asos indi
a que se es
rever no formato de texto, o que importante,
pois alguns programas no operam
orretamente
aso isto no seja expl
ito no arquivo utilizado.
Uma vez
riado o identi
ador de abertuda do arquivo, podemos nele es
rever. A funo fprintf fun
iona na
seguinte sintaxe:
formato ,
variveis ,
...);
f p r i n t f ( f i d , ' tempo
for i = 1 : length ( t )
f p r i n t f ( f i d , '%f
end
f
lose ( ' a l l ' ) ;
t e n s o \n ' ) ;
%f \n ' , t ( i ) , V( i ) ) ;
importante en
errar o arquivo externo no qual se trabalha no MATLAB por meio da funo f
lose para se
evitar de es
rever ou mesmo sobres
rever informaes a
identalmente no arquivo.
A funo fprintf pode ser melhor utilizada, es
olhendo-se adequadamente as ags que melhor se enquadram
para exportar os dados, formatando-os de a
ordo
om a ne
essidade. Para maior entendimento, re
omenda-se
a leitura do arquivo de ajuda desta funo.
H outras funes para que se exporte dados do MATLAB. Dentre elas,
ita-se: dlmread
svwrite e outras.
Embora tenhamos trabalhado apenas
om arquivos de texto, o MATLAB permite que se importe sons,
imagens, exporte guras (funo print ) e outros.
62
CAPTULO 6.
ARQUIVOS M
Cdigo Completo
1
2
3
4
5
6
7
8
9
10
11
12
'
t
R
C
V
=
=
=
=
0:0.001:0.1;
1 0 0 0 ; %r e s i s t n
i a d e 1Kohms
10 e 6; %
a p a
i t n
i a d e 10 mi
roF
1 exp( t / (R C ) ) ;
i = 1: length ( t )
f p r i n t f ( f i d , '% f %f
\n ' ,
t ( i ) , V( i ) ) ;
%e n d
fprintf ( fid
f
lose ( ' a l l
&
, '%f %f \n ' , t , V)
' );
A primeira delas a prpria mensagem de erro na janela de
omando do MATLAB. Esta mensagem mostra
o arquivo, a linha e a
oluna em que o erro o
orreu, alm de
itar brevemente qual o possvel erro. A gura
6.6 ilustra um
aso em que um erro o
orreu:
.m,
mostrada na gura
No editor, possvel mar
ar os pontos de parada do programa (breakpoints ). O programa, que roda de forma
linear verti
al, para em
ada um dos pontos es
olhidos (o que pode ser feito
li
ando-se na linha em que se
deseja parar e pressionando F12 ou mesmo
li
ando no
anto esquerdo, ao lado dos nmeros das respe
tivas
linhas, de modo que estas tenham a mar
ao de um
r
ulo vermelho). O programa s vai de um breakpoint
para o outro ao se pressionar uma te
la. Durante o pro
esso de depurao entre estes pontos, possvel
des
obrir o valor de
ada varivel que j foi ini
ializada ou trabalhada. Para tal, basta passar o mouse sobre
uma determinada varivel e ento seus valores sero mostrados ao lado. possvel tambm visualiz-las
melhor no Workspa
e do MATLAB, j que as variveis utilizadas na funo l apare
em durante a depurao
(e somente nesta etapa).
63
CAPTULO 6.
ARQUIVOS M
64
Captulo
Interfa
es Gr
as
7.1 Construindo interfa
es gr
as
om o MATLAB
7.1.1 Introduo
A interfa
e gr
a um
omponente essen
ial de diversas apli
aes de software. Ela propor
iona ao usurio
uma maior fa
ilidade na anlise de dados e gr
os, na interpretao de resultados e na utilizao das
diversas fun
ionalidades do apli
ativo. Alm disso, possibilita que o programa seja interativo, no sentido de
se terem entradas e sadas de dados em dilogo
om o usurio. Toda a estrutura de
digos fonte omitida,
transpare
endo apenas a apli
abilidade da ferramenta.
A
onstruo de um apli
ativo que possui uma interfa
e gr
a segue as seguintes etapas:
Modelagem :
Programao de ompenentes :
refere-se programao das funes que sero exe utadas por ada
elemento gr o.
O mdulo do MATLAB responsvel pela interfa
e gr
a o GUIDE (Graphi
User Interfa
e Design Environment). Este mdulo ofere
e ao desenvolvedor a possibilidade de se programar a interfa
e gr
a
om um
alto grau de abstrao, permitindo a manipulao visual dos
omponentes da interfa
e e de suas propriedades.
Para a
essar o GUIDE basta digitar guide na janela de
omandos:
>> g u i d e
ou
li
ar no
one GUIDE da barra de ferramentas (7.1).
Aps este
omando, ser aberta a janela mostrada na gura 7.2.
Deve-se es
olher entre
riar um novo projeto ou abrir um projeto existente. Para
riar um projeto em bran
o
deve-se es
olher a opo Blank GUI.
CAPTULO 7.
INTERFACES GRFICAS
66
CAPTULO 7.
INTERFACES GRFICAS
7.1.
CONSTRUINDO INTERFACES
File : Permite, dentre outros,
riar um novo projeto, abrir um projeto existente, salvar e fe
har o arquivo
existente;
Edit :
Contm as opes para refazer e desfazer aes,
opiar,
olar, re
ortar, sele
ionar e dupli
ar aes
ou objetos que esto
ontidos na rea de edio;
View :
Permite abrir o editor de propriedades e funes e abrir o editor de texto (editor de m-les );
Layout :
A barra de ferramentas, lo
alizada abaixo da barra de menus,
ontm atalhos para as opes destes, que
permitem maior agilidade no pro
esso de desenvolvimento.
esquerda da rea de edio, en
ontra-se uma barra de ferramentas que
ontm os elementos gr
os
utilizados na
onstruo das interfa
es. Esta barra de ferramentas est desta
ada na gura 7.4.
As funes asso
iadas a
ada elemento so:
67
CAPTULO 7.
INTERFACES GRFICAS
Push button :
Boto de a ionamento.
Radio button :
Edit text :
Slider :
List Box :
Axes :
Eixos oordenados.
Toggle button :
Che k box :
Stati text :
Frame :
Popup menu :
Lista de opes.
CALLBACK :
Atravs desta propriedade possvel denir uma funo que ser exe
utada quando
o
orrer um evento asso
iado ao elemento gr
o.
68
CAPTULO 7.
INTERFACES GRFICAS
7.1.
CONSTRUINDO INTERFACES
69
CAPTULO 7.
INTERFACES GRFICAS
TAG :
o nome do elemento gr
o. Esta propriedade possui grande importn
ia, pois o nome do
objeto gr
o utilizado em vrias funes.
BACKGROUNDCOLOR :
ENABLE :
FONTSIZE :
FONTWEIGHT :
FOREGROUNDCOLOR :
LISTBOXTOP :
Quando se utiliza o elemento gr
o List Box , esta propriedade permite denir o
nmero mximo e mnimo de opes que podero ser sele
ionadas.
POSITION : Lo
al onde so denidos o tamanho (altura e largura) e a posio (
oordenadas x e y) do
objeto. A origem do sistema de
oordenadas o
anto inferior esquerdo da rea de trabalho.
STRING :
STYLE : Neste lo
al pode-se mudar a fun
ionalidade do objeto para qualquer outra das mostradas na
barra de ferramentas. Um boto pode virar um frame, por exemplo.
TOOLTIPSTRING :
Dene-se um texto que deve apare
er quando o
ursor do mouse se posi
ionar
sobre o objeto. Este
ampo poder
onter um resumo da funo exe
utada pelo elemento gr
o.
VISIBLE :
Pode deixar o objeto visvel ou invisvel. Quando se
li
a duas vezes sobre a rea de trabalho,
veri
a-se que as propriedades referentes janela apare
ero no Property Inspe
tor. As prin
ipais so:
MENUBAR : Pode-se habilitar o menu do MATLAB que prprio para guras. Nele j esto implementadas funes
omo zoom e export.
FILENAME :
NAME :
Neste ampo denido o nome da janela. o nome que apare er no topo da janela.
PAPERSIZE :
RESIZE :
Permite que a janela tenha a opo de ser maximizada, independente do tamanho original
estabele
ido no
omando anterior. Caso esteja desabilitado, teremos a opo maximizar desabilitada.
7.1.4 Menu
tools
O Menu Tools possui outras opes que ajudam na onstruo das interfa es:
ALIGN OBJECTS : Permite alinhar os elementos gr
os que
ompe a janela durante o pro
esso da
implementao. Deve-se sele
ionar os objetos a serem alinhados e ajustar os parmetros de a
ordo
om
a ne
essidade.
MENU EDITOR : Permite a
riao de menus na interfa
e gr
a. Para um novo menu deve-se pro
eder
da seguinte maneira:
CAPTULO 7.
INTERFACES GRFICAS
7.1.
CONSTRUINDO INTERFACES
71
CAPTULO 7.
INTERFACES GRFICAS
7.2.1 Funes e
allba ks
Pode-se adi ionar digo ao m-le riado pelo latex por meio das seguintes onstrues:
OPENING FUNCTION :
Quando se adi
iona
digo a uma opening fun
tion observa-se que ele
exe
utado antes da GUI ( interfa
e gr
a) se tornar visvel para o usurio. Ou seja, por meio desta
onstruo pode-se realizar um pr-pro
essamento para dar mais performan
e ao programa. Veri
a-se
que possvel a
essar todos os elementos gr
os utilizados, pois eles so
riados antes que esta funo
seja exe
utada. Geralmente, a opening fun
tion
riada automati
amente pelo MATLAB e se en
ontra
no m-le
riado pelo GUIDE.
72
CAPTULO 7.
INTERFACES GRFICAS
7.2.
PROGRAMANDO FUNCIONALIDADES
OUTPUT FUNCTION :
allba ks :
CreateF n :
DeleteF n :
ButtonDownF n :
CallBa
k : a prin
ipal funo utilizada na programao da interfa
e gr
a. Ela exe
utada
quando um determinado objeto se torna ativo.
KeyPressF n :
ResizeF n :
O MATLAB exe
uta esta funo quando o usurio pressiona um
onjunto de te
las
que esto asso
iadas a um dado elemento.
funo exe
utada quando o
orre o redimensionamento da janela.
73
CAPTULO 7.
INTERFACES GRFICAS
get(objeto, propriedade) :
determinado objeto.
Exemplo:
Se uma janela
ontm uma
aixa de texto e queremos a
essar o
ontedo desta
aixa de texto,
pro
edemos da seguinte maneiras:
CAPTULO 7.
INTERFACES GRFICAS
7.2.
PROGRAMANDO FUNCIONALIDADES
75
CAPTULO 7.
INTERFACES GRFICAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
'
end
i f nargout
else
end
fun tion
fun tion
fun tion
76
CAPTULO 7.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
'
INTERFACES GRFICAS
7.2.
PROGRAMANDO FUNCIONALIDADES
C = A/B;
set ( handles . text1 , ' String ' ,C)
end
&
77
CAPTULO 7.
78
INTERFACES GRFICAS
Captulo
Introduo ao Simulink
O Simulink uma ferramenta do MATLAB muito til na modelagem, simulao e anlise de Sistemas
Dinmi
os. Esse pa
ote
ontm funes apli
veis a sistemas lineares e no-lineares, modelados de maneira
ontnua e/ou dis
reta no tempo.
A fa
ilidade em se trabalhar
om o Simulink deve-se, dentre outros fatores, possibilidade de
onstruo dos
modelos a partir de diagramas de blo
os, diretamente na interfa
e gr
a do programa.
Uma vez denido o modelo, a simulao pode ser realizada
om diferentes algoritmos de resoluo, es
olhidos
a partir dos menus do SIMULINK ou da linha de
omando do MATLAB. Usando os
ilos
pios (S
opes )
ou outros visualizadores, tm-se o resultado gr
o da simulao, em tempo de exe
uo da mesma. Os
resultados da simulao podem ser exportados para o MATLAB, para posterior anlise ou visualizao.
CAPTULO 8.
SIMULINK
File New
80
CAPTULO 8.
SIMULINK
8.2.
Analisando os blo
os, veri
a-se que eles possuem portas lo
alizadas esquerda e/ou direita, que permitem
a inter
onexo dos blo
os do sistema. As portas lo
alizadas direita so portas de sada, enquanto as portas
lo
alizadas esquerda so portas de entrada. A gura 8.5 ilustra um blo
o que possui os dois tipos de portas.
Start Simulation
Simulation Start
81
CAPTULO 8.
SIMULINK
Nota-se que o parmetro de entrada est em radianos. E, neste exemplo, a entrada o prprio tempo de
simulao.
Agora somaremos 1.5 ao valor da funo en
ontrado. Para isso, utiliza-se o blo
o
Sum.
Math Operations
O sistema deve ser
ongurado, de tal maneira que ele possua o aspe
to da gura 8.9.
82
CAPTULO 8.
SIMULINK
Produ t
Math Operations
Produ t
CAPTULO 8.
SIMULINK
A bibliote
a de Dis
ontinuities
ontm blo
os que des
revem funes no-lineares.
A bibliote
a Ports & Subsystems
ontm blo
os que permitem multiplexar e demultiplexar, en-
trada/sada de sinais externos, passar dados a outras partes do modelo,
riar subsistemas e exe
utar
outras funes.
Atravs do blo
o Subsystem existente na bibliote
a Ports & Subsystems (gura 8.11). Neste
aso,
Subsystem
Subsystem
Agrupar os blo
os existentes em um subsistema (gura 8.12). Neste
aso, deve-se sele
ionar os blo
os
que
onstituiro o subsistema, in
luindo as linhas que sero os pontos de entrada e sada do subsistema.
84
CAPTULO 8.
SIMULINK
Create Subsystem
Ports & Subsystems
Edit
Inport Outport
O menu
CAPTULO 8.
SIMULINK
Format (gura 8.14) possui algumas opes para alterar a apresentao dos blo os em um modelo.
Format do Simulink
Primeiramente, deve-se sele
ionar o blo
o que possuir uma funo asso
iada. Ento, utiliza-se a aba Callba
ks da opo Blo
k Properties do menu Edit,
onforme apresentado na gura 8.15. Observe que para
ada funo sele
ionada na lista da direita, existe um espao a esquerda para o
orpo da funo.
Callba ks
CAPTULO 8.
SIMULINK
Configuration Parameters do
Solver:
CAPTULO 8.
SIMULINK
Solve
Data Import/Export: manipula as entradas e sadas que a simulao possui em relao ao workspa
e
do MATLAB (gura 8.18);
Sinks
Data Import/Export
To Workspa e
CAPTULO 8.
SIMULINK
8.7.
To Workspa e
Comando simget: armazena todas as propriedades de um modelo em uma estrutura. Sua sintaxe bsi
a
:
CAPTULO 8.
SIMULINK
' p a r m e t r o2 ' , v a l o r 2 )
Existem outros
omandos denidos pelo MATLAB que so utilizados para simular,
onstruir e analisar
sistema modelados no Simulink. Para uma
onsulta
ompleta, pro
ure no Captulo 10 do livro Simulink Dynami
System Simulation for Matlab
ontido no CD deste
urso.
S ope se en ontra na bibliote a Sinks e destinado a apresentar os sinais obtidos aps a simulao.
S ope
Impresso;
Parmetros: parmetros de apresentao dos resultados (gura 8.21);
90
CAPTULO 8.
SIMULINK
8.8.
S ope
Number of axes :
Zoom : na barra de ferramentas existem opes para zoom em regio do gr
o, zoom no eixo x ou
zoom no eixo y ;
91
CAPTULO 8.
SIMULINK
To Workspa
e
Configuration Parameters
Sinks
Data Import/Export
92
Format