Você está na página 1de 113

Curso de Especializao em Novos Produtos

EST

UNIVERSIDADE DO ESTADO DO AMAZONAS


ESCOLA SUPERIOR DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA ELTRICA

CURSO DE ESPECIALIZAO EM PROJETO DE NOVOS


PRODUTOS

g a1 e

2015 Prof. Eng. Victor Vermehren Valenzuela, D.Sc.

Apostila de MATLAB R2010a

SUMRIO
1. PREFCIO ............................................................................................................................. ..... 5
2. APRESENTAO ...................................................................................................................... 6
2.1.

UTILIZANDO O HELP ..................................................................................................... 6

3. FORMATAO .......................................................................................................................... 9
4. MATRIZES ................................................................................................................................ 10
4.1.

DECLARAO ............................................................................................................. 10

4.2.

SOMA ......................................................................................................................... 10

4.3.

MULTIPLICAO .......................................................................................................... 11

4.4.

MATRIZES PR-D EFINIDAS ........................................................................................... 12

4.5.

PROPRIEDADES DE MATRIZES ...................................................................................... 14

4.6.

T RABALHANDO COM MATRIZES ..................................................................................... 16

5. VETORES ................................................................................................................................. 22
5.1.

DECLARAO ............................................................................................................. 22

5.2.

OPERAES ............................................................................................................... 23

5.3.

SISTEMAS DE C OORDENADAS ...................................................................................... 26

6. M-FILE .......................................................................................................................... ............ 30


6.1.

D EFINIO .................................................................................................................. 30

6.2.

ORGANIZAO ............................................................................................................ 31

6.3.

OPERAES NO M-FILE .............................................................................................. 32

7. FUNES MATEMTICAS ..................................................................................................... 37


7.1.

FUNES ELEMENTARES ............................................................................................ 37

7.2.

PROPRIEDADES FUNDAMENTAIS .................................................................................. 37

7.3.

NMEROS C OMPLEXOS ............................................................................................... 39

7.4.

FUNES T RIGONOMTRICAS ...................................................................................... 40

7.5.

APROXIMAO INTEIRA ............................................................................................... 42

8. GRFICOS ............................................................................................................................... 44
.

8.1.

GRFICOS BIDIMENSIONAIS ......................................................................................... 44

8.2.

GRFICOS T RIDIMENSIONAIS ....................................................................................... 48

8.3.

CONFIGURAO .......................................................................................................... 52

9. MATEMTICA SIMBLICA ..................................................................................................... 64


10.OPERAES MATEMTICAS BSICAS .............................................................................. 67
10.1.

EXPRESSES N UMRICAS ....................................................................................... 67

10.2.

POLINMIOS ........................................................................................................... 68

10.3.

SOLUCIONANDO EQUAES OU S ISTEMAS ............................................................... 70

11.CLCULO DIFERENCIAL ....................................................................................................... 73


11.1.

LIMITES .................................................................................................................. 73

11.2.

DIFERENCIAO ..................................................................................................... 73

11.3.

INTEGRAO .......................................................................................................... 74
Pgina 2 de 114

Apostila de MATLAB R2010a


11.4.

INTEGRAIS DEFINIDAS PELA REGRA T RAPEZOIDAL .................................................... 75

11.5.

INTEGRAIS DEFINIDAS PELA REGRA DE SIMPSON ...................................................... 76

11.6.

INTEGRAO DUPLA ............................................................................................... 77

11.7.

INTEGRAO T RIPLA ............................................................................................... 77

11.8.

OUTRAS FUNES .................................................................................................. 77

12.SRIES NUMRICAS .............................................................................................................. 80


12.1.

SOMATRIO ........................................................................................................... 80

12.2.

SRIE DE T AYLOR ................................................................................................... 80

13.ANLISE DE SINAIS................................................................................................................ 82
13.1.

T RANSFORMAO DE VARIVEL INDEPENDENTE ....................................................... 82

13.2.

FUNES PR-DEFINIDAS ....................................................................................... 84

13.3.

CONVOLUO ........................................................................................................ 90

13.4.

EQUAES DE D IFERENAS .................................................................................... 92

13.5.

FFT (T RANSFORMADA RPIDA DE F OURIER)............................................................ 93

13.6.

FILTROS DIGITAIS ................................................................................................... 96

14.SIMULINK ................................................................................................................................. 99
14.1.

INICIANDO O SIMULINK ............................................................................................ 99

14.2.

CRIANDO UM MODELO ........................................................................................... 100

14.3.

ASPECTOS SOBRE A SOLUO DOS SISTEMAS ........................................................ 103

14.4.

MODELAGEM DE SISTEMAS ................................................................................... 104

15.REFERNCIAS BIBLIOGRFICAS ...................................................................................... 114

Pgina 3 de 114

Apostila de MATLAB R2010a


1. PREFCIO

Esta apostila foi desenvolvida no curso de Engenharia Eltrica da


Universidade do Estado do Amazonas (UEA) com o objetivo de introduzir os
alunos nos fundamentos de MATLAB.
Nese intuito de promover uma introduo ao MATLAB que viesse a
facilitar o desempenho dos estudantes da graduao e p s - g r a d u a o
na realizao de seus trabalhos e na sua vida profissional, elaborou-se este
Curso de MATLAB que est atualmente na terceira edio. Durante essas
edies foram contemplados estudantes dos mais variados cursos da Escola
Superior de Tecnologia da UEA.

Pgina 4 de 114

Apostila de MATLAB R2010a


2. APRESENTAO

O MATLAB (MATrix LABoratory) uma linguagem de alto desempenho


para computao tcnica. Integra computao, visualizao e programao em
um ambiente de fcil uso onde problemas e solues so expressos em
linguagem matemtica. Usos tpicos:
Matemtica e computao;
Desenvolvimento de algoritmos;
Aquisio de dados;
Modelagem, simulao e prototipagem;
Anlise de dados, explorao e visualizao;
Construo de interface visual do usurio.

2.1. Utilizando o HELP


Indubitavelmente, a melhor apostila tutorial sobre o MATLAB que possa
existir o HELP do prprio MATLAB. Todas as informaes possveis h no
HELP, principalmente sobre as toolboxes, sobre funes, SIMULINK e entre
outros.
O HELP pode ser aberto de vrias formas. A primeira atravs da
barra de menu, como mostrado na Figura 1:

Figura 1 HELP do MATLAB sendo acessado pela barra de menu.

Pgina 5 de 114

Apostila de MATLAB R2010a


Outra forma pela tecla de atalho F1. Uma terceira forma pelo boto
START, posicionado logo abaixo do COMMAND HISTORY, de acordo com a
Figura 2.

Figura 2 HELP do MATLAB sendo acessado pelo boto START.

Dando continuidade, quando se deseja obter informaes sobre uma


dada funo, possvel consultar diretamente no HELP ou pelo COMMAND
WINDOW. Para isso, basta digitar help e em seguida a funo requerida, de
acordo com o exemplo abaixo:

>> help dirac


DIRAC Delta function.
DIRAC(X) is zero for all X, except X == 0 where it is
infinite.
DIRAC(X) is not a function in the strict sense, but rather
a
distribution with int(dirac(x-a)*f(x),-inf,inf) = f(a) and
diff(heaviside(x),x) = dirac(x).
See also heaviside.
Overloaded functions or methods (ones with the same name in
other directories)
help sym/dirac.m
Reference page in Help browser
doc dirac

Veja que as informaes sobre a funo dirac aparecem no prprio


COMMAND WINDOW. Se for necessrio consultar a pgina do HELP, basta
utilizar o comando doc e em seguida o nome da funo. Por exemplo:

Pgina 6 de 114

Apostila de MATLAB R2010a


>> doc dirac

Depois de efetuado este comando, ir aparecer a janela do HELP com


o seguinte:

Figura 3 HELP da funo dirac.

Pgina 7 de 114

Apostila de MATLAB R2010a


3. FORMATAO

No MATLAB no h necessidade de declarar o tipo das variveis


utilizadas no programa, mas o usurio pode escolher qual o formato que vai ser
utilizado. So usados os comandos mostrados na Tabela 1:
Tabela 1 - Formato das variveis

Comando MATLAB

Varivel

Descrio

Format long

3.141592653589793

Com 16 dgitos

Format short

3.1416

Com 5 dgitos

Format short e

3.1416e+000

Com 5 dgitos notao


cientfica

Format long e

3.141592653589793e+000

Com 16 dgitos em
notao cientfica

Format +

Retorna + para valores


positivos e - para
valores negativos

Format rat

355/113

Aproximao racional

Format hex

400921fb54442d18

Formato hexadecimal

Pgina 8 de 114

Apostila de MATLAB R2010a


4. MATRIZES

4.1. Declarao
A declarao de matrizes feita da seguinte maneira:
>> a = [1:10]

%cria o vetor linha [1 2 3 4 5 6 7 8 9

>> b = [0:0.5:3]

%cria o vetor [0 0.5 1 1.5 2 2.5 3]

10]
>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A =
16

13

10

11

12

15

14

>>A(1,2);

%Elemento de linha 1 e coluna 2

>>A(:,3);

%Elementos da coluna 3

>>A(1,:);

%Elementos da linha 1

O MATLAB tambm aceita a concatenao de matrizes, por exemplo:


>> a=[ 4 1 ; 3 4];
>> b= [ 2

3; 4 5];

>> c=[a b];


c =
4

Obs.: bom lembrar que o MATLAB tem como primeiro ndice do vetor
o nmero 1, diferente de outras linguagens que usam o primeiro ndice como 0.

4.2. Soma
A soma de todos os elementos de uma matriz com um nmero feita
da seguinte maneira:
>> c =

Pgina 9 de 114

Apostila de MATLAB R2010a


4

>> c+1
ans =

A soma de matrizes feita da maneira tradicional:


>> d=[ 1 2 7 8 ; 4 7 5 8] ;
>> e=[ 5 -4 7 0; 3 -1 6 -4];
>> d+e
ans =
6

-2

14

11

4.3. Multiplicao
Usa-se o sinal da multiplicao:
>> a=[1 4 2; 7 8 5; 9 5 4];
>>

b=[4 2 -5; 0 1 3; 8 -2 1];

>>

c=a*b

c =
20

68

12

-6

68

15

-26

Obs.: Se for desejado realizar outra operao matemtica (exceto a


soma e a subtrao) entre os elementos com mesmo ndice das matrizes devese colocar um ponto antes do operador. Observe os exemplos abaixo:

>> a=[1 4 2; 7 8 5; 9 5 4];


>> b=[4 2 -5; 0 1 3; 8 -2 1];
>> c=a.*b
c =
4

-10
Pgina 10 de 114

Apostila de MATLAB R2010a


0

15

72

-10

>> b./a
ans =
4.0000

0.5000

-2.5000

0.1250

0.6000

0.8889

-0.4000

0.2500

>> a.^2
ans =
1

16

49

64

25

81

25

16

Exerccio 1-

Declare as matrizes A, B e C abaixo:

A 1 2 3 4 5 6 7 B 3 6 9 12 15 18 21

0 5 10 15 10 5 0
C

1 2 3 4 5 6 7

Atravs das matrizes acima, determine as matrizes a seguir utilizando


os comandos j mencionados.
D 4 5 6 7
E 7 6 5 4

4 5 6 7
F

7 6 5 4
4
7
G
6

5
7

5
6
7

12
15
H
18

21

5
I
6

0 25 100
K
9
1 4
0 5 10
J

1 2 3
0 24 99
M

2 5 10

0 24 99
L

2 5 10

Pgina 11 de 114

Apostila de MATLAB R2010a

4.4. Matrizes pr-Definidas


ones

Definio: Esta funo gera uma matriz cujos valores so unitrios.


Sintaxe:
ones(n) Gera uma matriz quadrada de ordem n cujos termos so
unitrios.
ones(m,n) Gera ma matriz m x n cujos termos so unitrios.
>>ones(2)
ans =
1

zeros

Definio: Esta funo gera uma matriz cujos valores so nulos.


Sintaxe:
zeros(n) Gera uma matriz quadrada de ordem n cujos termos so
nulos.
zeros(m,n) Gera uma matriz m x n cujos termos so nulos.
>>zeros(2)
ans =
0

eye

Definio: Gera uma matriz identidade.


Sintaxe:
eye(n) Gera uma matriz identidade n x n.
eye(m,n) Gera uma matriz de ordem m x n cujos termos que
possuem i = j, so unitrios

Pgina 12 de 114

Apostila de MATLAB R2010a

>>eye(2)
ans =
1

vander

Definio: Calcula a matriz de Vandermonde a partir de um vetor dado.


Sintaxe:
vander(A) Calcula a matriz de Vandermonde a partir de A.
A=[1 2 3 4];
>> vander(A)
ans =
1

27

64

16

rand

Definio: Cria uma matriz com valores aleatrios.


Sintaxe:
rand(m) Cria uma matriz m x m com valores aleatrios entre 0 e 1.
rand(m,n) Cria uma matriz m x n com valores aleatrios entre 0 e 1.
rand(2)
ans =
0.9501

0.6068

0.2311

0.4860

Pgina 13 de 114

Apostila de MATLAB R2010a


4.5. Propriedades de matrizes
(apstrofo)

Definio Calcula a matriz transposta.


Sintaxe:
A Gera a matriz transposta de A.
>>A=[1 1; 2 3]
>>A =
1

>> A'
ans =
1

det

Definio: Calcula o determinante de uma matriz.


Sintaxe:
det(A) Calcula o determinante da matriz A.
>>det(A)
ans =
1

trace

Definio: Retorna um vetor com a soma dos elementos da diagonal


principal de uma matriz.
Sintaxe:
trace(A) Retorna a soma dos elementos da diagonal principal da
matriz A.
A =
1

>> trace(A)
ans =
2
Pgina 14 de 114

Apostila de MATLAB R2010a


inv

Definio: Determina a matriz inversa dada.


Sintaxe:
inv(A) Retorna a matriz inversa da matriz A.
>> A = [5 8; 4 9]
A =
5

>> inv(A)
ans =
0.6923

-0.6154

-0.3077

0.3846

Pgina 15 de 114

Apostila de MATLAB R2010a


eig

Definio: Calcula os autovalores e autovetores de uma matriz.


Sintaxe:
eig(A) Retorna os autovalores de uma matriz quadrada A.
[a, b] = eig(A) Retorna em a, uma matriz com os autovetores e, em
b, uma matriz com os autovalores associados.
>> A=[1 -1; 4 1]
A =
1

-1

>> [a,b]=eig(A)
a =
0 - 0.4472i
-0.8944

0 + 0.4472i
-0.8944

b =
1.0000 + 2.0000i
0

Exerccio 2 - Resolva

0
1.0000 - 2.0000i

seguinte

sistema

de

equaes

lineares:

2x1 1.5x2 x3 13.20


x1 6x2 2x3 21.64
2x2 4x3 26.62

4.6. Trabalhando com matrizes


size

Definio: Retorna as dimenses de uma matriz.


Sintaxe:
[m,n] = size(A) Retorna, em m, o nmero de linhas e, em n, o
nmero de colunas da matriz A.
>> A=[1 1; 2 3];

Pgina 16 de 114

Apostila de MATLAB R2010a


>> [m,n]=size(A)
m =
2
n =
2

find

Definio: Procura os elementos em uma matriz de tal modo a


respeitar a lgica fornecida, retornando os ndices que descrevem estes
elementos.
Sintaxe:
ind = find(X) -> Retorna os ndices de elementos no-nulos na matriz X.
[row,col] = find(X, ...) Retorna, em row, uma matriz coluna com os
ndices das linhas dos elementos da matriz X e, em col, a matriz coluna
contendo os ndices correspondentes s colunas dos elementos da matriz X.
[row,col,v] = find(X, ...) Retorna, em row, uma matriz coluna com os
ndices das linhas dos elementos da matriz X e, em col, a matriz coluna
contendo os ndices que descrevem as colunas dos elementos da matriz X e,
em v, a matriz contendo os elementos de X.
A=[1 1; 0 3];
>> find(A)
ans =
1
3
4
>> X = [3 2 0; -5 0 7; 0 0 1];
>> [r,c,v] = find(X>2);
>> [r c]
ans =
1

Veja no ultimo caso acima que r e c retornam em os ndices das linhas


e das colunas correspondentes aos elementos que respeitam a expresso
oferecida.

Pgina 17 de 114

Apostila de MATLAB R2010a


Obviamente, os elementos a11 e a23 so os nicos maiores que 2.
sort

Definio: Retorna o vetor dado ou elementos de uma matriz em


ordem crescente ou decrescente.
Sintaxe:
sort(A,dim) Retorna os elementos das colunas (dim = 1) ou da linha
(dim = 2) da matriz A em ordem crescente.
sort(A,mode) Retorna os elementos das colunas da matriz A em
ordem crescente (mode = ascend) ou em ordem decrescente (mode =
descend).
>> sort(A)
ans =
1

fliplr

Definio: Espelha as colunas de uma matriz.


Sintaxe:
fliplr(A) Espelha as colunas da matriz A.
>> A=[1 2;3 4]
A =
1

>> fliplr(A)
ans =
2

flipud

Definio: Espelha as linhas de uma matriz.


Sintaxe:
flipud(A) Espelha as linhas da matriz A.

Pgina 18 de 114

Apostila de MATLAB R2010a

>> A=[1 2;3 4]


A =
1

>> flipud(A)
ans =
3

Exerccio 3 - Crie um vetor A de 50 elementos aleatrios e em seguida crie


a partir deste, outro vetor B obedecendo aos seguintes critrios:
a. Conter somente os elementos de A maiores que 0.5;
b. Os elementos devem de B estar em ordem decrescente.
Exerccio 4 - Realize as seguintes operaes no MATLAB, a partir das
matrizes dadas, e interprete o resultado.

5 8 6
A 9 2 10
7 6 1

7
B 1
6

5.5 8.1 4.9


C 2.1
D 7.4
4 19.20
1.3 4.5 3.8

a)

E det A I com 6

b)

F A1B

c)

A \ B A F

d)

A F

e)

BT C

f)

D B A/ A

Exemplo 1 - Dado o circuito da Figura 4, calcule as tenses nos ns 1 e 2:

Pgina 19 de 114

Apostila de MATLAB R2010a


R3

R1
1
V

V1
10Vdc

R2

R4
10

I1
2Adc

Figura 4 Exemplo de circuito eltrico.

1
i v
R
i G v

101 11 15 12

1
2 2

v1

1
1

v
2
10 2
1

G 1 i G 1 G v
v G 1 i

>> i=[10/1 ; 2]
i =
10
2
>> G=[1/1+1/5+1/2 -1/2 ; -1/2 1/2+1/10 ]
G =
1.7000

-0.5000

-0.5000

0.6000

>> v=inv(G)*i
v =
9.0909
10.9091

Pgina 20 de 114

Apostila de MATLAB R2010a


Os resultados obtidos podem ser confirmados por intermdio da Figura 5
11.0V

10.5V

10.0V

9.5V

9.0V
0s

0.1ms
0.2ms
V(R2:1)
V(R4:1)

0.3ms

0.4ms

0.5ms

0.6ms

0.7ms

0.8ms

0.9ms

1.0ms

Time

Figura 5 Formas de onda das tenses dos ns 1 e 2.

Pgina 21 de 114

Apostila de MATLAB R2010a


5. VETORES
5.1. Declarao
possvel trabalhar com vetores no MATLAB, cuja representao
feita baseando-se numa matriz linha. Por exemplo, para obter o vetor (1,3,8),
basta iniciarmos com:
>> R=[1 3 8]
R =
1

Portanto, todas as operaes se tornam possveis a partir do uso de


funes apropriadas. importante salientar que certas funes exigem a
declarao de vetores por matriz coluna, entretanto, nada que uma consulta no
help para ajudar.
Uma operao bsica com vetores na determinao do nmero de
elementos, a partir da funo length, assim como no clculo do seu mdulo,
usando a funo norm, ambas definidas abaixo. Logo depois, sero dadas
algumas funes que trabalham com vetores.
length

Definio: Retorna o nmero de elementos que compem o vetor.


Sintaxe:
length (A) Calcula o numero de termos do vetor A.
>>A=[8 9 5 7];
>> length(A)
ans =
4

Pgina 22 de 114

Apostila de MATLAB R2010a


norm

Definio: Retorna o mdulo do vetor.


Sintaxe:
norm(A) Calcula o mdulo do vetor A.
>> x = [0 5 1 7];
>> sqrt(0+25+1+49)

% Forma Euclidiana

ans =
8.6603
>> norm(x) % Usando norm
ans =
8.6603

5.2. Operaes
Quando se deseja calcular o produto vetorial (ou cruzado) de vetores,
utiliza-se a funo cross, apresentada a seguir:
cross

Definio: Calcula o produto vetorial entre A e B.


Sintaxe:
C = cross(A,B) Retorna, em C, o produto vetorial dos vetores tridimensionais
A e B.
De modo anlogo, define-se a funo dot como a responsvel pelo
produto escalar de dois vetores dados, conforme definio a seguir.
dot

Definio: Determina o produto escalar entre dois vetores.


Sintaxe:
C = dot(A,B) Retorna, em C, o produto escalar dos vetores n-dimensionais A
e B.

Pgina 23 de 114

Apostila de MATLAB R2010a


>> a = [1 7 3];
>> b = [5 8 6];
>> c = cross(a,b)
>> d = dot(a,b)

Alm disso, qualquer outra operao possvel, como soma e


subtrao, mas se deve atentar ao fato de que ambos os

vetores devem

possuir a mesma dimenso.


Dando continuidade, sero definidas algumas funes que podero ser
teis quando se trabalha com vetores ou at mesmo com matrizes.
min

Definio: Retorna os valores mnimos de um vetor ou o das colunas


de uma matriz.
Sintaxe:
min(A) Retorna em um vetor linha os menores valores de cada linha
da matriz A.
min(A,B) Retorna uma matriz com os menores valores de cada
posio correspondente de ambas as matrizes
[a,b]=min(A) Retorna, em a, os menores valores de cada coluna e,
em b, a posio dos mesmos nas suas respectivas colunas.
>> A=[1 4; 2 4];
>> [a,b]=min(A)
a =
1

b =

max

Definio: Retorna os valores mximos de um vetor ou o das colunas


de uma matriz.
Sintaxe:
max(A) Retorna em um vetor linha os maiores valores de cada linha
da matriz A.

Pgina 24 de 114

Apostila de MATLAB R2010a


max(A,B) Retorna uma matriz com os maiores valores de cada
posio correspondente de ambas as matrizes.
[a,b]=max(A) Retorna, em a, os maiores valores de cada coluna e,
em b, a posio dos mesmos nas suas respectivas colunas.
>> [a,b]=max(A)
a =
2

b =

sum

Definio: Calcula o somatrio dos elementos de um vetor ou o


somatrio das colunas de uma matriz.
Sintaxe:
sum(A) Retorna a(o) soma/produto dos elementos de um vetor ou
a(o) soma/produto das colunas de uma matriz
>> sum(A)
ans =
3

prod

Definio: Calcula o produtrio dos elementos de um vetor ou o


produtrio das colunas de uma matriz.
Sintaxe:
prod(A) Retorna a(o) soma/produto dos elementos do vetor A ou
a(o) soma/produto das colunas da matriz A.
>> prod(A)
ans =
2

16

Pgina 25 de 114

Apostila de MATLAB R2010a


Exerccio 5 - Os trs vrtices de um tringulo esto em A (6,-1,2), B (-2,3,4) e C (-3,1,5). Determine o vetor unitrio perpendicular ao plano no qual o
tringulo est localizado. Tambm determine o ngulo BAC no vrtice A.

Exerccio 6 - Declare a matriz X no MATLAB e determine:

6 2 45

X 65 32 9
3 8 1

a) Um vetor Y que tenha o valor mnimo das trs primeiras colunas;


b) A soma dos elementos de Y;
c) Um vetor Z que tenha o valor mximo das trs primeiras linhas;
d) O produtrio dos elementos do vetor Z;
e) Calcule o mdulo dos elementos de cada linha.

5.3. Sistemas de Coordenadas


Existem funes, no MATLAB, que possibilitam as transformadas de
coordenadas, conforme listadas a seguir:
cart2pol

Definio: Converte do cartesiano para o polar/cilndrico. Observe a


Figura 6.
Sintaxe:
[theta,rho,z] = cart2pol(x,y,z) Converte o ponto de coordenadas
cartesianas (x,y,z) para coordenadas cilndricas (theta,rho,z).
[theta,rho] = cart2pol(x,y) Converte o ponto de coordenadas
cartesianas (x,y) para coordenadas polares (theta,rho).

Pgina 26 de 114

Apostila de MATLAB R2010a

Figura 6 Transformao entre coordenadas cartesianas e polares/cilndricas.

pol2cart

Definio: Converte do sistema de coordenadas polares/cilndricas


para o sistema cartesiano.
Sintaxe:
[x,y] = pol2cart(theta,rho) Converte o ponto de coordenadas polares
(theta,rho) para coordenadas cartesianas (x,y).
[x,y,z] = pol2cart(theta,rho,z) Converte o ponto de coordenadas
cilndricas (theta,rho,z) para coordenadas cartesianas (x,y,z).
cart2sph

Definio: Transforma do sistema de coordenadas cartesianas para o


sistema de coordenadas esfricas. Observe a Figura 7.
Sintaxe:
[theta,phi,r] = cart2sph(x,y,z) Converte o ponto de coordenadas
cartesianas (x,y,z) para coordenadas esfricas (theta,phi,r).

Pgina 27 de 114

Apostila de MATLAB R2010a

Figura 7 Transformao entre coordenadas cartesianas e esfricas.

sph2cart

Definio: Transforma do sistema de coordenadas esfricas para o


sistema de coordenadas cartesianas.
Sintaxe:
[x,y,z] = sph2cart(theta,phi,r) Converte o ponto de coordenadas
esfricas (theta,phi,r) para cartesianas (x,y,z).
Um exemplo para o uso destas funes na utilizao das equaes
de potenciais eltricos para determinadas distribuies de carga que so
simtricos a um sistema de coordenadas. Vejamos o exemplo abaixo.
Exemplo 2 - Um dipolo eltrico formado colocando uma carga de 1 nC em
(1,0,0) e uma outra carga de -1 nC em (-1,0,0). Determine as linhas
equipotenciais geradas a partir dessa configurao.
>> [x,y,z] = meshgrid(-0.5:.012:0.5);
>> [teta,fi,r] = cart2sph(x,y,z);
v = (1e-9*0.2*cos(teta))./(4.*pi.*8.85e-12.*r.^2);
>> contourslice(x,y,z,v,[-0.5:0.5],[-0.5:0.5],[-0.5:0.5]);
>> colormap hsv

Pgina 28 de 114

Apostila de MATLAB R2010a

0.5
0.4
0.3
0.2
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.5
-0.5

-0.4

-0.3

-0.2

-0.1

0.1

0.2

0.3

0.4

0.5

Figura 8 Linhas equipotenciais.

Pgina 29 de 114

Apostila de MATLAB R2010a


6. M-FILE

6.1. Definio
O M-File uma ferramenta do MATLAB que auxilia a criao de
funes e scripts. Para criar um novo M-File deve-se entrar no menu File e
escolher a opo New M-File:

Ser aberto um editor de textos. Este mais um ambiente de


programao do MATLAB. Os comandos usados nesse editor so os mesmos
do Command Window e podem ser utilizadas as variveis j presentes no
Workspace. Uma grande utilidade do M-File facilitar a vida do usurio,
atravs da execuo de scripts, que so arquivos que possuem uma lista de
comandos que devem ser executados sequencialmente (tambm chamados de
procedimentos). Assim, quando se quiser executar mais de uma vez um
conjunto de comandos sequenciais relativamente grandes e trabalhosos para
serem digitados, no ser necessrio digit-los um a um na Command
Window, basta digitar os comandos no M-File, salvar o arquivo e execut-lo.
Segue um exemplo de script para calcular a distncia entre dois pontos:

p=[1 2];
q=[4 5];
temp=((p(1)-q(1))^2+(p(2)-q(2))^2);
distancia=sqrt(temp);

O primeiro passo para executar um script salv-lo. O M-File salva os


arquivos do M-File no seu diretrio padro, com a extenso .m. Para salvar
Pgina 30 de 114

Apostila de MATLAB R2010a


deve-se entrar no menu File e escolher a opo Save. Existem duas opes
para se executar o script, a primeira clicar no boto Run, que est localizado
no CE ntro da Barra de Ferramentas do M-File, em verde:

A outra opo usar o atalho F5. As conseqncias da execuo so as


mesmas que seriam observadas se os comandos tivessem sido executados na
Command Window: as variveis declaradas estaro todas disponveis no
Workspace e os resultados de cada operao estaro presentes na tela.
O M-FILE um ambiente de programao, portanto existem algumas
funes, bem parecidas com as da linguagem C, por exemplo, que podem ser
utilizadas.

6.2. Organizao
Para uma melhor organizao podemos fazer comentrios utilizando o
smbolo %, ou selecionando o texto inteiro e teclando Crtl+R, ou %{ para
abrir o comentrio por bloco e %} para fechar.
Podemos ainda utilizar o smbolo %% para que, no mesmo M-File, o
usurio possa rodar apenas algumas partes do programa. Para rodar somente
a parte selecionada, tecle Ctrl+Enter e para rodar o programa inteiro clique em
F5 ou em:
Exemplo:

Pgina 31 de 114

Apostila de MATLAB R2010a

Ao teclar Ctrl+Enter somente a Primeira Parte ser executada

6.3. Operaes no M-File

IF

Definio: Operao condicional. Executa as funes contidas no


comando. Pode ser utilizado com else, que executa caso a condio declarada
for falsa, e com elseif, que executa a funo caso outra condio
posteriormente declarada for verdadeira.
Para mais de uma condio, utiliza-se para e, &&, e para ou, ||.
Sintaxe:
if <condio>
[Comandos]
elseif <condio>
[Comandos]
else
[Comandos]
end
for

Definio: Comando de iterao. Permite que um conjunto de


instrues seja executado at que a condio seja satisfeita.
Sintaxe:
for <condio>
[Comandos]
end
while

Definio: Comando de iterao. Executa um bloco de instrues


enquanto a condio for verdadeira.
Sintaxe:
while <condio>
Pgina 32 de 114

Apostila de MATLAB R2010a


[Comandos]
end
switch

Definio: Operao condicional. Testa sucessivamente o valor da


expresso dada e direciona para o caso especificado. Funciona como um bloco
de ifs
Sintaxe:
switch <condio>
case caso1
[Comandos]
case {caso1, caso2, caso3, ...}
[Comandos]
otherwise

(Caso no seja nenhuma das outras

condies)
[Comandos]
end
a = 3;
switch a
case {2}
disp('Resposta um')
case {3}
disp(' Resposta dois')
case '5'
disp(' Resposta tres')
otherwise
disp('Resposta ?')
end

disp

Definio: Escreve no command window um texto ou o valor de um


vetor, sem escrever seu nome.
Sintaxe:
disp(x)

Pgina 33 de 114

Apostila de MATLAB R2010a

input

Definio: Pede uma entrada do usurio pelo command window.


Sintaxe:
entrada = input(O que deseja?)
X = input('Entre um nmero\n')
num = 10*X

Command Window:
Entre um nmero
23
X =
23
num =
230

break

Definio: Quebra um lao for ou while.


Sintaxe:
break
for i = 0:5
if i == 1
break
end
i = i + 1
end

Command Window:
i =
0
i =
1

Pgina 34 de 114

Apostila de MATLAB R2010a


continue

Definio: Passa para o prximo lao de um for ou while.


Sintaxe:
continue
for i = 0:3
if i == 1 && i == 2
continue
end
i = i + 1
end

Command Window:
i =
1
i =
4

Operadores Lgicos

Definio: Operadores lgicos

Entradas

and

or

not

xor

A&B

A|B

~A

xor(A,B)

Funes em M-File

Outra importante funo do M-File a criao de funes. A declarao


inicial da seguinte forma:

Pgina 35 de 114

Apostila de MATLAB R2010a

function [saida1, saida2, ...] = nome(entrada1, entrada2, ...)


%declarao do cdigo
...

Segue um exemplo:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Funo exemplo
% A funo recebe um vetor qualquer e retorna dois valores
% vetor2 = vetor multiplicado por 2
% e v1 = o valor do primeiro elemento do vetor
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [vetor2, v1]= funcao(vetor)
vetor2=vetor*2; %multiplica o vetor por 2
v1=vetor(1); %retorna o primeiro elemento do vetor de entrada

Para chamar a funo basta digitar na janela de comando o nome da


funo com as entradas entre parnteses. importante lembrar de salvar o
arquivo com mesmo nome da funo!
Na janela de comandos do MATLAB podemos colocar um vetor como exemplo:

>> A=[2 5 -8 4 1 6]
A =
2 5 -8 4 1 6
>> [x,y]=funcao(A)
x =
4 10 -16 8 2 12
y =
2

Pgina 36 de 114

Apostila de MATLAB R2010a


7. FUNES MATEMTICAS

7.1. Funes Elementares


O MATLAB contm um conjunto de funes que executam algumas
funes matemticas elementares, como mdulo e raiz quadrada. A seguir
disponibilizaremos uma lista de funes com uma breve descrio:

Funo
log(X)

Descrio
Determina o logaritmo natural de X

log10(X)

Determina o logaritmo de X na base 10

log2(X)

Calcula o logaritmo de X na base 2

exp(X)

Determina a expresso de eX

sqrt(X)

Retorna a raiz quadrada de X

7.2. Propriedades Fundamentais


O MATLAB possui tambm funes que possibilitam os clculos
elementares de matemtica, tais como mmc, mdc e entre outros. Por exemplo,
as funes gcd e lcm retornam o mximo divisor comum e o mnimo mltiplo
comum, respectivamente. Vejamos abaixo essas e outras funes similares:
gcd

Definio: Determina o mximo divisor comum entre dois parmetros.


Sintaxe:
G = gcd(A,B) Retorna, em G, o mximo divisor comum entre A e B.
lcm

Definio: Determina o mnimo mltiplo comum entre dois parmetros.


Sintaxe:
G = lcm(A,B) Retorna, em G, o mnimo mltiplo comum entre A e B.

Pgina 37 de 114

Apostila de MATLAB R2010a


factorial

Definio: Retorna o fatorial de um argumento.


Sintaxe:
factorial(N) Calcula o fatorial de N.
nchoosek

Definio: Desenvolve a fatorao binomial.Sintaxe:


C = nchoosek(n,k) Retorna o nmero de combinaes de n tomada
k a k.
primes

Definio: Devolve uma lista com uma quantidade desejada de


nmeros primos.
Sintaxe:
p = primes(n) Devolve uma lista com n de nmeros primos.
mod

Definio: Calcula a congruncia entre dois argumentos.


Sintaxe:
M = mod(X,Y) Retorna, em M, a congruncia entre os argumentos X
e Y.
rem

Definio: Determina o resto da diviso de dois argumentos.


Sintaxe:
R = rem(X,Y) Retorna, em R, o resto da diviso de X por Y.
perms

Definio: Desenvolve todas as permutaes possveis dos


argumentos dados.
Sintaxe:
P = perms(v) v pode ser uma matriz com os nmeros nos quais
deseja permut-los.

Pgina 38 de 114

Apostila de MATLAB R2010a


7.3. Nmeros Complexos
O MATLAB proporciona um conjunto de funes que auxilia o
manuseio de nmeros complexos. Inicialmente, para definir um nmero
complexo utilizam-se os operadores i e j (voltado mais para a engenharia). Por
exemplo, para definir a=5+8i , faz-se:
>> a=5+8i
a =
5.0000 + 8.0000i
>> a=5+8j
a =
5.0000 + 8.0000i

H outra forma de definir um nmero complexo no MATLAB, atravs


da funo complex. A sua vantagem est na maior liberdade que se tem para
alterar a parte imaginria, real, mdulo ou at mesmo a fase do nmero, no
ponto de vista computacional. A definio dessa funo descrita como:
complex

Definio: Retorna um nmero complexo a partir da sua parte real e


da sua parte imaginria.
Sintaxe:
c = complex(a,b) Retorna, em c, o nmero complexo de parte real a
e parte imaginria b.
Quando se deseja trabalhar com mdulo, ngulo de fase, conjugado,
ou entre outros, tornam-se fceis de serem calculados quando se utiliza a
funo adequada. Na Tabela 2 sero denotadas algumas

funes que

possibilitam isso.

Pgina 39 de 114

Apostila de MATLAB R2010a


Tabela 2 Funes com nmeros complexos.

Funo
abs(X)

Descrio
Retorna o mdulo do nmero complexo X

angle(X)

Retorna a fase do complexo X

conj(X)

Calcula o conjugado do nmero complexo X

imag(X)

Determina a parte imaginria de X

real(X)

Determina a parte real de X

Exerccio 7 -

Determine todos os parmetros intrnsecos ao nmero

complexo 9e (53i ) .

7.4. Funes Trigonomtricas


Quando trabalhamos com trigonometria, o MATLAB dispe de funes
que operam neste ramo matemtico. Tabela 3 resume bem algumas funes
que possuem este fim.
Tabela 3 Funes trigonomtricas.

Funo

Descrio

cos(X)

Cosseno do argumento X em radianos

sin(X)

Seno do argumento X em radianos

tan(X)

Tangente do argumento X em radianos

sec(X)

Secante do argumento X em radianos

csc(X)

Cossecante do argumento X em radianos

cot(X)

Cotangente do argumento X em radianos

Veja acima que estas funes retornam um valor correspondente a um


argumento em radianos. Quando for desejado entrar com um argumento em
grau, basta utilizar o sufixo d em cada funo. Por exemplo, o seno de 30.

Pgina 40 de 114

Apostila de MATLAB R2010a


>> sind(30)
ans =
0.5000

Entretanto, quando deseja calcular o arco correspondente a um valor


pra uma dada funo, basta utilizar o prefixo a diante as funes. Como
exemplo, determinemos o arco-tangente de 1 em radianos:
>> atan(1)
ans =
0.7854

Caso queiramos saber em grau, faramos:


>> atand(1)
ans =
45

Por fim, quando se deseja determinar a funo hiperblica, basta


utilizar o sufixo h na funo dada. Vejamos no comando a seguir:
>> cosh(3)
ans =
10.0677

De fato, o resultado coerente, pois:


>> (exp(3)+exp(-3))/2
ans =
10.0677

A Tabela 4 resume bem o uso de sufixo e prefixo nas funes


trigonomtricas:

Pgina 41 de 114

Apostila de MATLAB R2010a


Tabela 4 Uso de sufixo e prefixo nas funes trigonomtricas.

Prefixo

Sufixo

Descrio

Exemplo

Determina o arco de um valor

atan

Determina com um argumento em graus

cosd

Determina a funo hiperblica

sinh

7.5. Aproximao Inteira


Na biblioteca de funes do MATLAB, h uma variedade que trabalha
no intuito do arredondamento de nmeros. Indubitavelmente, a mais importante
a round, que arredonda para o inteiro mais prximo. Obviamente, esta
importncia depende do ambiente prtico no qual a funo est sendo
submetida. Abaixo segue uma lista de funes que tratam com aproximaes
numricas.
round

Definio: Arredonda os elementos de uma matriz ou de um vetor para


o inteiro mais prximo desses elementos. Tambm vlido para nmeros
complexos.
Sintaxe:
Y = round(X) Retorna, em Y, os inteiros mais prximos dos
elementos de X.
ceil

Definio: Arredonda os elementos de uma matriz ou de um vetor para


o inteiro imediatamente maior que os respectivos elementos .
Sintaxe:
B = ceil(A) Retorna, em B, os inteiros imediatamente maiores que os
elementos de A.
floor

Pgina 42 de 114

Apostila de MATLAB R2010a


Definio: Arredonda os elementos de uma matriz ou de um vetor para
o inteiro imediatamente menor que os respectivos elementos.
Sintaxe:
B = floor(A) Retorna, em B, os inteiros imediatamente menores que
os elementos de A.

fix

Definio: Arredonda os elementos de uma matriz ou de um vetor para


o inteiro mais prximo de tal modo que esteja em direo ao zero.
Sintaxe:
B = fix(A) Retorna, em B, os inteiros mais prximos, em direo ao
zero, dos elementos de A.

Pgina 43 de 114

Apostila de MATLAB R2010a


8. GRFICOS

8.1. Grficos Bidimensionais


ezplot

Definio: Plota a expresso simblica f ( x) no domnio padro


2 x 2. Observe a Figura 9.
Sintaxe:
ezplot(f) Plota a expresso f ( x) .
>> ezplot('sin(x)')

sin(x)

0.5

-0.5

-1

-6

-4

-2

0
x

Figura 9 Grfico sin(x) gerado pela funo ezplot.

plot

Definio: Plota as colunas de um vetor versus os ndices de cada


elemento, se o vetor for real. Se for complexo, plota a parte real pela parte
imaginria de cada elemento. Observe a Figura 10.
Sintaxe:
plot(X) Se X for real, plota as colunas de X pelos ndices de cada
elemento.

Pgina 44 de 114

Apostila de MATLAB R2010a


plot(X) Se X for complexo, plota a parte real pela parte imaginria de
cada elemento. equivalente a plot(real(X),imag(X)).
plot(X,Y) Plota os elementos de X pelos de Y.
>> t = 0:pi/50:10*pi;
>> plot(t,sin(t))

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1

10

15

20

25

30

35

Figura 10 Grfico sin(t) gerado pela funo plot.

line

Definio: Cria uma linha no grfico atual. Observe a Figura 11.


Sintaxe:
line(X,Y) Cria uma linha definida nos vetores X e Y no grfico atual.
line(X,Y,Z) Cria uma linha no espao tridimensional.
>> x=-2:0.01:5;
>> line(x,exp(x))

Pgina 45 de 114

Apostila de MATLAB R2010a

150

100

50

0
-2

-1

Figura 11 Grfico ex gerado pela funo line.

stem

Definio: Plota uma sequncia de dados discretos. Veja a Figura 12


Sintaxe:
stem(Y) Plota a sequncia de dados do vetor Y em um domnio
discreto ao longo do eixo-x.
stem(X,Y) Plota X em funo de Y em um domnio discreto. X e Y
devem ser vetores ou matrizes de mesmo tamanho.
>> x=-4:4;
>> y=exp(x);
>> stem(y)

Pgina 46 de 114

Apostila de MATLAB R2010a

60

50

40

30

20

10

Figura 12 Grfico e gerado pela funo stem.

compass

Definio: Plota vetores de componentes cartesianas a partir da


origem de um grfico polar. Observe a Figura 13.
Sintaxe:
compass(U,V) Plota o vetor de componentes cartesianas U e V
partindo da origem do grfico polar.
>> compass(2,3)

Pgina 47 de 114

Apostila de MATLAB R2010a

90
4
120

60
3

150

30

180

210

330

240

300
270

Figura 13 Grfico polar gerado pela funo compass.

8.2. Grficos Tridimensionais


ezplot3

Definio: Plota uma curva espacial de trs equaes paramtricas no


domnio padro 0 t 2. Observe a Figura 14.
Sintaxe:
ezplot3(x,y,z) Plota a curva paramtrica x x(t) , y y(t ) e z z(t) .
>> ezplot3('cos(t)','sin(t)','t')

Pgina 48 de 114

Apostila de MATLAB R2010a

Figura 14 Grfico cos(t), sin(t), t gerado pela funo ezplot3.

plot3

Definio: Plota tridimensionalmente um grfico. Observe a Figura 15.


Sintaxe:
plot(X,Y,Z) Plota uma ou mais linhas no espao tridimensional
atravs de pontos cujas coordenadas so elementos dos vetores ou matrizes
X,Y e Z.

>> t = 0:pi/50:10*pi;
>> plot3(cos(t),sin(t),t)

Pgina 49 de 114

Apostila de MATLAB R2010a

35
30
25
20
15
10
5
0
1
0.5
0
-0.5
-1

-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

Figura 15 Grfico cos(t), sin(t), t gerado pela funo plot3.

ezsurf

Definio: Plota a superfcie de um grfico de uma funo de duas


variveis no domnio padro 2 x 2 e 2 y 2 . Observe a Figura 16.
Sintaxe:
ezsurf(X,Y,Z) Plota a superfcie paramtrica x x s, t , y y s, t e
z z s, t no domnio 2 s 2 e 2 t 2.
>> ezsurf('1/sqrt(x^2 + y^2)')

Pgina 50 de 114

Apostila de MATLAB R2010a

Figura 16 Superfcie

1
2

x y2

gerada pela funo ezsurf.

meshgrid

Definio: Prepara a criao de uma superfcie de um grfico


tridimensional.
Sintaxe:
[X,Y] = meshgrid(x,y) Transforma o domnio especificado pelos
vetores x e y em matrizes de vetores X e Y, as quais podem ser usadas para
preparar a plotagem de superfcie de um grfico tridimensional de uma funo
de duas variveis.
>> [X,Y]=meshgrid(-6:0.1:6,-6:0.1:6);
>> Z=1./(sqrt(X.^2+Y.^2));

surf

Definio: Plota a superfcie de um grfico de uma funo de duas


variveis cujo domnio determinado pelo usurio. Observe a Figura 17.
Sintaxe:
surf(X,Y,Z) Plota a superfcie paramtrica de Z em funo de X e Y.

Pgina 51 de 114

Apostila de MATLAB R2010a


>> surf(X,Y,Z)

Figura 17 Superfcie

1
2

x y2

gerada pela funo surf.

8.3. Configurao
text
Definio: Cria objetos de texto em locais especficos do grfico.
Observe a Figura 18.
Sintaxe:
text(x,y,string) Escreve string no local (x,y). Pode-se modificar string
das mais diversas formas.
>> plot(0:pi/20:2*pi,sin(0:pi/20:2*pi))
>> text(pi,0,' \leftarrow sin(\pi)','FontSize',18)

Pgina 52 de 114

Apostila de MATLAB R2010a

1
0.8
0.6
0.4
0.2

sin()

0
-0.2
-0.4
-0.6
-0.8
-1

Figura 18 Grfico sin(x) gerado pela funo plot com texto gerado pela funo text.

title
Definio: D um ttulo ao grfico. Observe a Figura 19.
Sintaxe:
title(string) Adiciona o ttulo string ao grfico atual.
>> compass(2,3)
>> title('Grfico Polar')

Pgina 53 de 114

Apostila de MATLAB R2010a

Grfico Polar
90
4
120

60
3

150

30

180

210

330

240

300
270

Figura 19 Grfico polar gerado pela funo compass com ttulo gerado pela funo title

axis
Definio: Determina os limites dos eixos coordenados X, Y e Z.
Observe a Figura 20.
Sintaxe:
axis([xmin xmax ymin ymax zmin zmax]) define o eixo X de xmin a
xmax, o eixo Y de ymin a ymax e o eixo Z de zmin a zmax.
>> t = 0:pi/50:10*pi;
>> plot3(cos(t),sin(t),t)
>> axis([-1.5 1.5 -1.5 1.5 -1 34])

Pgina 54 de 114

Apostila de MATLAB R2010a

35
30
25
20
15
10
5
0
1
0.5
0
-0.5
-1

-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

Figura 20 Grfico cos(t), sin(t), t gerado pela funo plot3 com eixos ajustados pela funo axis.

grid
Definio: Adiciona ou remove as linhas de grade em um grfico.
Observe a Figura 21.
Sintaxe:
grid on Adiciona as linhas de grade em um grfico.
grid off Remove as linhas de grade em um grfico.
>> t = 0:pi/50:10*pi;
>> plot3(cos(t),sin(t),t)
>> grid on

Pgina 55 de 114

Apostila de MATLAB R2010a

Figura 21 Grfico cos(t), sin(t), t gerado pela funo plot3 com linhas de grade geradas pela funo grid.

hold
Definio: Determina se objetos so adicionados ao grfico ou
substituem o existente. Observe a Figura 22.
Sintaxe:
hold on Adiciona objetos no mesmo grfico
hold off Substitui os objetos existentes em um grfico pelos atuais.
>> x=-6:0.01:6;
>> y=sin(x);
>> plot(x,y)
>> hold on
>> t=-6:0.01:2;
>> k=exp(t);
>> plot(t,k)

Pgina 56 de 114

Apostila de MATLAB R2010a

-1
-6

-4

-2

Figura 22 Grficos sin(x) e ex gerados pela funo plot e ezplot


respectivamente e colocados na mesma janela de grfico pela funo hold.

legend
Definio: Adiciona uma legenda ao grfico. Observe a Figura 23.
Sintaxe:
legend(string1,string2) Adiciona as legendas string1 e string2 ao
grfico atual.
>> x=-6:0.01:6;
>> y=sin(x);
>> plot(x,y)
>> hold on
>> t=-6:0.01:2;
>> k=exp(t);
>> plot(t,k)
>> legend('Grfico 1: y=sen(x)','Grfico 2: y=exp(x)')

Pgina 57 de 114

Apostila de MATLAB R2010a

Figura 23 Grficos sin(x) e ex gerados pela funo plot com legenda.

xlabel, ylabel, zlabel


Definio: D um ttulo aos eixos X, Y e Z. Observe a Figura 24.
Sintaxe:
xlabel(string) D o ttulo string ao eixo X.
ylabel(string) D o ttulo string ao eixo Y.
zlabel(string) D o ttulo string ao eixo Z.
>> t = 0:pi/50:10*pi;
>> plot3(cos(t),sin(t),t)
>> xlabel('x=cos(t)')
>> ylabel('y=sin(t)')
>> zlabel('z=t')

Pgina 58 de 114

Apostila de MATLAB R2010a

35
30
25

z=t

20
15
10
5
0
1
0.5
0
-0.5

y=sin(t )

-1

-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

x=cos (t)

Figura 24 Grfico cos(t), sin(t), t gerado pela funo plot3 com ttulos nos eixos coordenados.

xlim, ylim, zlim


Definio: Estipula os limites dos eixos X,Y e Z. Observe a Figura 25.
Sintaxe:
xlim([xmin xmax]) define o eixo X de xmin a xmax.
ylim([ymin ymax]) define o eixo Y de ymin a ymax.
zlim([zmin zmax]) define o eixo Z de zmin a zmax.
>> t = 0:pi/50:10*pi;
>> plot3(cos(t),sin(t),t)
>> xlim([-1.5 1.5])
>> ylim([-1.5 1.5])
>> zlim([-1 34])

Pgina 59 de 114

Apostila de MATLAB R2010a

30
25
20
15
10
5
0
1.5
1

1.5

0.5

1
0

0.5
0

-0.5

-0.5

-1

-1
-1.5

-1.5

Figura 25 Grfico cos(t), sin(t), t gerado pela funo


plot3 com eixos ajustados pelas funes xlim, ylim e zlim.

figure
Definio: Cria uma nova janela para plotar grficos.
Sintaxe:
figure Abre uma nova janela de grfico, definindo-a como janela
atual.
subplot
Definio: Divide a janela do grfico em uma matriz definida pelo
usurio, podendo trabalhar com qualquer um. Observe a Figura 26.
Sintaxe:
h = subplot(m,n,p) ( ou subplot(mnp)) Divide em m linhas, n colunas,
plotando o grfico na posio p. Caso tenha uma matriz retangular, a contagem
inicia-se no sentido anti-horrio do grfico superior esquerdo.
subplot(m,n,p,'replace') Se o grfico j existe, deleta o grfico
especificado, substituindo por outro grfico desejado.
>> subplot(2,1,1),ezplot('sin(x)')
>> subplot(2,1,2),ezplot('exp(x)')

Pgina 60 de 114

Apostila de MATLAB R2010a

sin(x)
1

0.5

-0.5

-1
-6

-2

-4

0
x

exp(x)
250
200
150
100
50
0
-4

-3

-2

-1

Figura 26 Janela de grfico dividida atravs da funo subplot.

Exerccio 8 - Plote as funes a seguir com os respectivos comandos e itens

5sin( x) plot; 4sin x 3 ezplot; 3sin(2 x) stem


a) Todas as funes no mesmo grfico;
b) Cada funo em uma janela diferente;
c) Todas as funes na mesma janela, mas em grficos diferentes.
Exemplo 3 - Criao de arquivo em formato AVI. Note as Figuras 27 e 28.

aviobj=avifile('Filme Seno.avi','fps',50);
hold on;
grid on;
x=-4*pi:0.1:4*pi;
for k=1:1:size(x,2)-1 xx=[x(k)
x(k+1)]; yy=[sin(x(k))
sin(x(k+1))];
h=plot(xx,yy);
set(h,'EraseMode','xor');

Pgina 61 de 114

Apostila de MATLAB R2010a


axis ([-10 10 -1.5 1.5]);
frame=getframe(gca);
aviobj=addframe(aviobj,frame);
end
aviobj=close(aviobj);

Figura 27 Janela de criao de arquivo em formato AVI do grfico sin(x).

aviobj=avifile('Complexo.avi','fps',50);
hold off; grid
on;
t=0:0.01:4*pi;
x=cos(t);
y=sin(t);
for k=1:1:length(t)
c=x(k)+i*y(k);
h=compass(c);
set(h,'EraseMode','xor');
frame=getframe(gca);
aviobj=addframe(aviobj,frame);
end
aviobj = close(aviobj);

Pgina 62 de 114

Apostila de MATLAB R2010a

Figura 28 Janela de criao de arquivo em formato AVI de grfico polar.

Pgina 63 de 114

Apostila de MATLAB R2010a


9. MATEMTICA SIMBLICA

H, em algumas situaes, a necessidade de se trabalhar com


variveis simbolicamente, pois possibilita uma viso mais geral sobre o
resultado de um problema. Neste contexto, uma funo importante a syms,
que declara as variveis como simblica. Uma outra funo a sym, que
transforma uma expresso para a forma literal. Mais detalhes dessas funes
so dadas a seguir:
syms
Definio: Determina que os argumentos acompanhados tero carter
simblico.
Sintaxe:
syms arg1 arg2 ...
sym
Definio: Define variveis, expresses e objetos como simblicos.
Sintaxe:
S = sym(A)
x = sym('x')
Como exemplo, veja a diferena dessas duas funes executando os
comandos a seguir:
>> rho = sym('(1 + sqrt(5))/2')
>> syms x y
>> f = x^2*y + 5*x*sqrt(y)

Em alguns casos, quando se desejar determinar quais as variveis


simblicas numa expresso, usa-se a funo findsym, que retorna os
parmetros que so simblicos. Uma outra funo a subs, que substitui a
varivel declarada inicialmente simblica por uma outra ou mesmo por um
nmero. Suas Definioinies esto listadas abaixo:

Pgina 64 de 114

Apostila de MATLAB R2010a


findsym
Definio: Determina as variveis simblicas em uma expresso.
Sintaxe:
findsym(S)
findsym(S,n)
subs
Definio: Substituio simblica em expresso simblica ou em
matriz.
Sintaxe:
R = subs(S)
R = subs(S, new)
R = subs(S,old,new)
Exemplo: Dado o procedimento abaixo:
y=3;w=30;
syms a b n t x z
f = x^n+y; g = sin(a*t + b)-cosd(w);

Determine os parmetros que so simblicos em f e em g, assim como,


de acordo com a ordem das variveis simblicas que aparecer, substituir todos
pelo valor 2,3 para f e 4,7,1 para g, respectivamente.
Exerccio 9 - Dado o procedimento abaixo:
y=3;w=30;
syms a b n t x z
f = x^n+y; g = sin(a*t + b)-cosd(w);

Determine os parmetros que so simblicos em f e em g. Substitua,


em f, x por 2 e y por 3, e em g, a por 4, t por 7 e b por 1.

Pgina 65 de 114

Apostila de MATLAB R2010a


Exerccio 10 - Implemente o mtodo das bisseces sucessivas para a
resoluo de equaes no lineares.

Pgina 66 de 114

Apostila de MATLAB R2010a


10.OPERAES MATEMTICAS BSICAS

10.1. Expresses Numricas


Uma curiosidade que o MATLAB dispe de um conjunto de funes
que contribuem para a fatorao, expanso, simplificaes e entre outros. O
quadro abaixo resume bem cada funo.

Funo

Definio

collect

Reescreve a expresso como um polinmio

expand

Expande a expresso em produtos e somas

horner

Determina o fator em comum da expresso

factor

Fatora o polinmio, se os coeficientes so racionais

simplify

Simplifica as expresses, de forma mais geral.

compose

Calcula a composio das funes

finverse

Encontra a inversa funcional da funo


O uso dessas funes bastante semelhante, por exemplo, dada a

expresso:
x x x 6 11 6
Para agrup-la de tal modo que possa ter uma organizao em relao
ao grau do polinmio, faz:
>> syms x
>> collect(x*(x*(x-6)+11)-6)
ans =
-6+x^3-6*x^2+11*x

Exerccio 11 - Verifique a relao trigonomtrica fundamental utilizando a


funo simplify, logo aps, determine a forma expandida de tan( x y) .

Pgina 67 de 114

Apostila de MATLAB R2010a


Exerccio 12 - Dado

o polinmio f (x) 2x 2 3x 5

Determine o seguinte polinmio:

e g(x) x 2 x 7 .

(a) f g x

10.2. Polinmios
Agora trataremos com os polinmios. Para definir um polinmio no
MATLAB, basta entrar com uma matriz linha, nos quais os elementos dela
representam os coeficientes do maior para o menor grau. Por exemplo, o
polinmio 5x3 9 x 2 85 x 74 representado como p=[5 -9 8/5 4/7]. bom
lembrar que o polinmio pode ter elementos irracionais como, por exemplo,

ou .
As principais funes destinadas para os polinmios so descritas a
seguir.
poly

Definio: Determina os coeficientes do polinmio a partir de suas


razes. Caso a entrada seja uma matriz, este calcula o polinmio caracterstico
da matriz.
Sintaxe:
p = poly(A)
p = poly(r)
>> y=[-2 -1]

% Declara um vetor linha [-2 -1]

y =
-2

-1

>> z=poly(y)

%z o polinmio (x+2)(x+1)=x+3x+2

z =

%que tem como razes -2 e -1


1

>> A=[1 5 3; 0 -2 9; 2 11 -1]


A =

%Declara matriz
1

-2

11

-1

>> poly(A)

%calcula o seu polinmio caracterstico

Pgina 68 de 114

Apostila de MATLAB R2010a


ans =
1.0000

2.0000 -106.0000

-5.0000

roots

Definio: Retorna um vetor coluna com a(s) raiz(es) do polinmio


fornecido.
Sintaxe:
r = roots(c)
>> c=[1 3 2]

% declara um vetor correspondente ao polinmio

% x+3x+2
c =
1

>> x=roots(c)

%Calcula as razes desse polinmio, que so -2

e -1
%Observe a oposio entre as funes roots e poly
x =
-2
-1

polyval

Definio: Determina o valor do polinmio para uma determinada


entrada. Se a entrada for uma matriz, a funo retorna o valor do polinmio
para cada elemento.
Sintaxe:
y = polyval(p,X) y receber os valores do polinmio desenvolvido
para cada elemento da matriz X.
>> polinomio=[1 5 -2 8 3.2]

%polinmio=x4+5x3-2x+8x+3.2

polinomio =
1.0000

5.0000

-2.0000

8.0000

3.2000

>> a=[1 -1; 3 2.83]


a =
1.0000

-1.0000

3.0000

2.8300

>> valores=polyval(polinomio,a)

Pgina 69 de 114

Apostila de MATLAB R2010a


valores =
15.2000

-10.8000

225.2000

187.2906

%valores(1,1)= a(1,1)4+5a(1,1)3-2 a(1,1)+8 a(1,1)+3.2

polyfit

Definio: Determina o polinmio interpolador com os pontos dados


por x e y com o grau n. Os coeficientes so retornados numa matriz linha.
Sintaxe:
p = polyfit(x,y,n)
>> x=[0: 0.1: 2.5];
>> y=sqrt(x);
>> polinomio_interpolador=polyfit(x,y,3);
>> pontos_interpoladores=polyval(polinomio_interpolador,x);
>> plot(x,y,'color','r')
>> hold on
>> plot(x,pontos_interpoladores)

Exerccio 13- So dados os pontos (1;-1), (2;-7), (5;-8) e (8;10).


Exerccio 14- Determine o polinmio que interpola estes pontos;
Exerccio 15- Calcule as suas razes e o esboce em um grfico;
Exerccio 16- Destaque o ponto no qual se tem o valor do polinmio para
x 3.

10.3. Solucionando Equaes ou Sistemas


Quando voc tiver um emaranhado de equaes, resultando em um
sistema, o MATLAB poder ser uma tima soluo. Ao utilizar a funo solve,
voc ser capaz de economizar tempo e evitar resolver um tedioso sistema
braalmente. A declarao desta funo segue abaixo:

Pgina 70 de 114

Apostila de MATLAB R2010a


solve

Definio: Determina o valor do polinmio para uma determinada


entrada. Quando a soluo armazenada em uma varivel, o retorno dado
em uma estrutura de dados.
Sintaxe:
solve(eq) Resolve a equao eq=0
solve(eq,var) Determina as solues de eq=0, em funo da varivel
var.
solve(eq1,eq2,...,eqn) Resolve um sistema de equaes definidas.
g = solve(eq1,eq2,...,eqn,var1,var2,...,varn) Calcula as solues de
um sistema de solues em funo das variveis pr-definidas.
Partindo para um mbito mais complexo, quando se trata de equaes
diferenciais, a funo destinada para este caso a dsolve, definida abaixo:
dsolve

Definio: Soluciona simbolicamente uma equao ou sistema de


equaes diferenciais ordinrias.
Sintaxe:
r = dsolve('eq1,eq2,...', 'cond1,cond2,...','v')
r = dsolve('eq1','eq2',...,'cond1','cond2',...,'v')
dsolve('eq1,eq2,...','cond1,cond2,...', 'v')

Exemplo 4- Determine a soluo de

dx
ax .
dt

>> dsolve('Dx = -a*x')

Exerccio 17 - Eu tinha o triplo da idade que tu tinhas, quando eu tinha a


idade que tu tens. Quando tu tiveres a minha idade, a diferena de nossas
idades ser de duas dcadas. Determine nossas idades utilizando a funo
solve.
Exerccio 18 Sabe-se que a acelerao de um carro em uma estrada
a 4 x , em que x representa a posio no instante t . Determine a posio

Pgina 71 de 114

Apostila de MATLAB 7.3


no instante , sabendo que este carro parte, no instante 0, do ponto 1,
sendo que o motorista parou instantaneamente enquanto estava em ,.
2
Considere todas as unidades no S.l.

Pagina 72 de 114

Apostila de MATLAB 7.3


11.CLCULO DIFERENCIAL

O MATLAB disponibiliza funes que facilitam a operao de certos


clculos que so difceis para o usurio. Por exemplo, a funo diff(), int() e
limit so algumas delas, nas quais diferenciam, integram ou calculam o limite
de uma funo de acordo com os parmetros oferecidos, respectivamente.
Vejamos essas e outras funes a seguir:

11.1. Limites
limit

Definio: Determina o limite de uma expresso simblica


Sintaxe:
limit(F,x,a) calcula o limite de uma expresso simblica F com x
tendendo a a;
limit(F,a) determina o limite de F com uma varivel simblica
tendendo a a;
limit(F) determina o limite com a = 0 como default;
limit(F,x,a,'right') calcula o limite com x tendendo a a pela direita;
limit(F,x,a,'left') calcula o limite com x tendendo a a pela esquerda;
Exemplo 5 Faa o seguinte limite pelo MATLAB

Exemplo 5 - Faa o seguinte limite no Matlab

lim
x 1

x2 1

x2 1

>> limit('(abs(x^2)-1)/(x^2-1)',x,1,'right')

11.2. Diferenciao
diff

Definio: Calcula a diferencial de uma funo/matriz dada.


Sintaxe:
diff(S) diferencia a expresso simblica S em funo de uma
varivel simblica;
diff(S,'v') diferencia S em torno de uma varivel simblica v;
Pgina 73 de 114

Apostila de MATLAB R2010a


diff(S,n) diferencia, para um n inteiro positivo, S por n vezes;
diff(S,'v',n) diferencia em torno de uma varivel v, S por n vezes.

Exemplo 6- Para determinar a derivada de 1 ordem de f (x)

ln( x) e x

faz-se:
>> syms x;
>>f=sqrt(log(x)+exp(x));
>> diff(f)
ans =
1/2/(log(x)+exp(x))^(1/2)*(1/x+exp(x))
>> pretty(ans)

11.3. Integrao
int

Definio: Calcula integral de uma funo simblica dada.


Sintaxe:
int(S) integrao indefinida a funo S em respeito a uma varivel
simblica j definida;
int(S,a,b) integra de forma definida a funo S de a a b;
int(S,v,a,b) integra de a a b em funo de uma varivel v;

Exemplo 7 - Dada a funo f ( x)

x 2 5 , calcule a integral:

Indefinida
>> syms x
>> y=sqrt(x^2+5);
>> f=int(y,x)
1/2*x*(x^2+5)^(1/2)+5/2*asinh(1/5*5^(1/2)*x)

Definida de 2 a 5
>>g = int(y,x,2,5)
5/2*30^(1/2)+5/2*log(5^(1/2)+6^(1/2))-3-5/4*log(5)

Pgina 74 de 114

Apostila de MATLAB R2010a

Caso a visualizao de f no seja satisfatria, usa-se a funo pretty,


que transforma a sada de acordo com a representao matemtica, conforme
ilustra abaixo:
>> pretty(f)

Como a integral calculada de forma simblica, no calculado o


valor numrico da funo g. Entretanto, o MATLAB no deixa a desejar neste
ponto, como ao utilizar a funo eval. Por exemplo, fazendo a instruo abaixo,
voc obtm:
>> eval(g)

11.4. Integrais definidas pela Regra Trapezoidal


um mtodo utilizado quando a rea sob uma curva representada
por trapzios entre um intervalo [a,b] pr-definido, sendo o nmero de divises
n. Em representao matemtica, tem-se:

f ( x)dx b2na ( f ( x0 ) 2 f ( x1 )

2 f ( xn1 ) f ( xn ))

em que xi representa o ponto no final de cada trapzio, sendo x0 a e

xn b . No MATLAB a funo que possibilita integrao a partir deste mtodo


o trapz, definida abaixo:
trapz

Definio: Determina a integrao de uma funo a partir da Regra do


Trapzio.
Sintaxe:
Z = trapz(Y)
Z = trapz(X,Y)

Pgina 75 de 114

Apostila de MATLAB R2010a


11.5. Integrais definidas pela Regra de Simpson
O mtodo de Simpson baseado, dado trs pontos sobre a curva da
funo, na aproximao desses pontos em uma parbola. Ento, tomados n
subintervalos, onde n par, e cuja extremidade da curva delimitada por f (a)
e por f (b), logo, a integral de uma funo f ( x) denotada por:

f ( x)dx b2na ( f ( x0 ) 4 f ( x1 ) 2 f ( x2 ) 4 f ( x3 )

2 f ( xn2 ) 4 f ( xn1 ) f ( xn ))

A maioria das calculadoras programadas utiliza esta regra, que mais


utilizada em termos computacionais. No MATLAB, a funo encarregada para
esse fim a quad, mostrada abaixo:
quad

Definio: Determina a integrao de uma funo a partir da Regra de


Simpson.
Sintaxe:
q = quad(fun,a,b)
q = quad(fun,a,b,tool) tool corresponde o erro que a integral
retornar, sendo o default de 10 -3.
bom destacar que fun deve ser uma funo do tipo arquivo.m. Por
2

exemplo, para calcular a integral de y e x no intervalo de 0 a 3, faz-se o


seguinte:
Primeiro, se cria o arquivo.m correspondente funo que deseja
integrar, ou seja:
function y=funcao(x)
y=exp(-x^2);

Em seguida, basta utilizar a funo quad, conforme modelo abaixo:


>> quad('funcao',0,3)
ans =
0.8862

Pgina 76 de 114

Apostila de MATLAB R2010a


11.6. Integrao Dupla
O MATLAB possui a funo dblquad que determina a integral dupla de
uma funo, conforme definio abaixo:
dblquad

Definio: Determina a integrao dupla de uma funo.


Sintaxe:
q = dblquad(fun,xmin,xmax,ymin,ymax)
q = dblquad(fun,xmin,xmax,ymin,ymax,tol) tol a preciso que
deseja calcular, sendo o default 10 6 .

11.7. Integrao Tripla


Tambm possvel calcular a integral tripla de uma funo no
MATLAB, utilizando neste caso a funo triplequad, cuja definio segue
abaixo:
triplequad

Definio: Determina a integrao tripla de uma funo.


Sintaxe:
triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax)
triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol) tol a preciso
que deseja calcular, sendo o default 10 6 .

11.8. Outras funes


gradient

Definio: Determina o gradiente numericamente.


Sintaxe:
FX = gradient(F) retorna o coeficiente do gradiente de F em relao
a x(default).
[FX,FY,FZ,...] = gradient(F) retorna a matriz com os valores de x,
y, z..., respectivamente.
Pgina 77 de 114

Apostila de MATLAB R2010a


divergence

Definio: Determina o divergente de um campo vetorial.


Sintaxe:
div = divergence(X,Y,Z,U,V,W) determina o divergente do campo
vetorial 3D

U, V e W. X, Y e Z definem os limites de U, V e W,

respectivamente.
div = divergence(X,Y,U,V) calcula agora para 2D.
div = divergence(U,V,W) usa como default para X, Y e Z o valor de
meshgrid(1:n,1:m,1:p).
Exemplo 8 - Um

exemplo clssico para o uso de gradiente seria na

determinao do Campo Eltrico devido ao efeito de uma carga pontual de


18C. O cdigo segue abaixo.
>> [x,y,z]=meshgrid(-1:0.3:1);
>> V=(18e-12)./(4.*pi.*8.85e-12.*sqrt(x.^2+y.^2+z.^2));
>> [px,py,pz]=gradient(V,0.3,0.3,0.3);
>> Ex=(-1).*px;
>> Ey=(-1).*py;
>> Ez=(-1).*pz;
>> quiver3(x,y,z,Ex,Ey,Ez)
>> axis([-1 1 -1 1 -1 1])

Veja que a funo quiver plota o que representaria o campo eltrico


devido carga.
Pgina 78 de 114

Apostila de MATLAB R2010a


12.SRIES NUMRICAS

12.1. Somatrio
Uma funo muito utilizada em Sries Numricas a symsum, que
encontra o somatrio simblico de uma expresso. A sua descrio segue
abaixo:
symsum

Definio: Determina o somatrio simblico de uma expresso.


Sintaxe:
r = symsum(s) encontra o somatrio da funo s em funo de uma
varivel simblica pr-definida.
r = symsum(s,v) fornece o somatrio em funo da varivel v.
r = symsum(s,a,b) determina o somatrio de s variando a incgnita
de a at b.
r = symsum(s,v,a,b) determina o somatrio de s variando a incgnita
v de a at b.
Exerccio 19- Determine os seguintes somatrios:

a)

x 1

x2

b)

2n 1

12.2. Srie de Taylor


A Srie de Taylor definida como sendo:

P x x x0
n 0

x0

n!

Considerando P x como sendo o polinmio de Taylor, de ordem n ,


em torno do ponto x0 , ento P x o nico polinmio de grau no mximo n
Pgina 80 de 114

Apostila de MATLAB R2010a


que aproxima localmente f em volta de x0 de modo que o erro E x tenda a
zero mais rapidamente que x x0 , quando x x0 .
n

O MATLAB dispe da funo taylor , conforme pode ser visto abaixo:


taylor

Definio: Expande em srie de Taylor.


Sintaxe:
taylor(f) faz a aproximao pelo polinmio de Taylor at a quinta
ordem para a funo simblica f.
taylor(f,n,v) retorna o polinmio de Taylor para a funo simblica f
at o grau n-1 para a varivel especificada por v.
taylor(f,n,v,a) retorna a aproximao de Taylor de f em torno do
ponto a, que pode ser simblica ou um valor numrico.
Por exemplo, calculando o polinmio de Taylor para a funo
f x

1
, tem-se:
5 4 cos x

>> syms x
>> f = 1/(5+4*cos(x))
f =
1/(5+4*cos(x))
>> T = taylor(f,8)
T =
1/9+2/81*x^2+5/1458*x^4+49/131220*x^6
>> pretty(T)

Determine, pelo polinmio de Taylor de ordem 2, o valor aproximado de


3

8,2 .

Pgina 81 de 114

Apostila de MATLAB R2010a


13.ANLISE DE SINAI S

13.1. Transformao de Varivel Independente


x t x t

1 Expanso
1 Compresso
0 Reflexo

0 Deslocamento
Deslocamento no tempo:
clear, clc, clf
x=-2:6;
y=2*x;
n0=input('n0= ');
subplot(2,1,1),stem(x,y), grid on, xlim([-20 20])
hold on
xnovo=x+n0;
subplot(2,1,2),stem(xnovo,y);grid on, xlim([-20 20])
hold off

Pgina 82 de 114

Apostila de MATLAB R2010a


Reflexo
clear, clc, clf
x=-2:8;
y=x;
subplot(2,1,1),stem(x,y), grid on, xlim([-20 20])
hold on
xl=-x;
subplot(2,1,2),stem(xl,y);grid on, xlim([-20 20])
hold off

Escalonamento
clear, clc, clf
x=-2:6;
y=2*x;
a=input('a= ')
subplot(2,1,1),stem(x,y), grid on, xlim([-20 20])
hold on
xl=x/a;
subplot(2,1,2),stem(xl,y);grid on, xlim([-20 20])
hold off

Pgina 83 de 114

Apostila de MATLAB R2010a

12
10
8
6
4
2
0
-2
-4
-20

-15

-10

-5

10

15

20

-15

-10

-5

10

15

20

12
10
8
6
4
2
0
-2
-4
-20

13.2. Funes Pr-definidas


Impulso:

n
t

0, n 0
1, n 0
0, t 0
1, t 0

function [u] = impulso(n,N)


for k=1:length(n)
if n(k)~=N
u(k)=0;
else
u(k)=1;
end
end

Command Window:
>> x=-2:7;
>> y=impulso(x,3);
>> stem(x,y)

Pgina 84 de 114

Apostila de MATLAB R2010a

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-2

-1

Degrau
u n

0, n 0

u t

0, t 0

1, n 0

1, t 0

function [u] = degrau(n,N)


for k=1:length(n)
if n(k)<N
u(k)=0;
else
u(k)=1;
end
end

Command Window:
>> n=-2:7;
>> y=degrau(n,3);
>> stem(n,y)

Pgina 85 de 114

Apostila de MATLAB R2010a

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-2

-1

Exerccio: Determine:
a) y n u n 10 2u n 5 u n 6
>> n=-20:20;
>> y=degrau(n,-10)-2*degrau(n,-5)+degrau(n,6);
>> stem(n,y)

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-20

-15

-10

-5

10

15

20

Pgina 86 de 114

Apostila de MATLAB R2010a


1
y[n]
2

b)

u n 3

>> n=-20:20;
>> y=((1/2).^(n)).*degrau(n,3);
>> stem(n,y)

0.14

0.12

0.1

0.08

0.06

0.04

0.02

0
-20

c)

-15

-10

-5

1
y[n] cos n u[n 4] c
2

10

15

20

>> n=-20:20;
>> y=cos(0.5*pi*n).*degrau(n,-4);
>> stem(n,y)

Pgina 87 de 114

Apostila de MATLAB R2010a

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-20

-10

-15

-5

10

15

20

d) y n e2 sen( n )
>> n=-20:20;
>> y=exp(2*(sin(n)));
>> stem(n,y)

0
-20

-15

e)

-10

-5

10

15

20

n
y[n] sinc
2

Pgina 88 de 114

Apostila de MATLAB R2010a


>> x=-20:1:20;
>> y=sinc(x/2);
>> stem(x,y)

0.8

0.6

0.4

0.2

-0.2

-0.4
-20

-15

-10

-5

10

15

20

bom salientar que nos exemplos anteriores foram dados exemplos de


programas no qual se obtm as funes impulso e degrau. Entretanto, o
MATLAB tambm possui funes que possibilitam isso de forma mais rpida,
que so as funes dirac e a heaviside, conforme veremos a seguir:
dirac

Definio: Obtm a funo delta de Dirac, ou seja, a funo impulso


no intervalo determionado por x..
Sintaxe:
dirac(x)
>> x=-10:10;
>> y=dirac(x-5);

%Impulso no instante 5

>> stem(x,y)

heaviside

Definio: Determina a funo degrau no intervalo determinado por x.


Pgina 89 de 114

Apostila de MATLAB R2010a


Sintaxe:
dirac(x)
>> x=-10:10;
>> y=dirac(x-5);

%Impulso no instante 5

>> stem(x,y)

Exemplo 9 - Sabe-se que a funo impulso a derivada da funo degrau.


Determina este fato utilizando o MATLAB.
>> syms x
>> diff(heaviside(x),x)
ans =
dirac(x)

Exerccio 20 - Verifique a integral de sen( x) ( x 5) .

13.3. Convoluo
A convoluo uma ferramenta matemtica que expressa a sada de
um sistema de tempo, seja este discreto ou contnuo, em funo de uma
entrada pr-definida e da resposta ao impulso do sistema.
O MATLAB possui uma funo chamada de conv que realiza a
convoluo de sinais de durao finita. Por exemplo, sejam dois vetores x e h
representando sinais. O comando y = conv(x, h) gera um vetor y que denota a
convoluo dos sinais x e y.
Veja que o nmero de elementos em y dado pela soma do nmero de
elementos em x e y menos um, devido ao processo de convoluo. O vetor ny
dado pelo espao de tempo tomado pela convoluo definido pelo intervalo
entre a soma dos primeiros elementos de nx e nh e a soma dos ltimos
elementos de nx e nh, sendo nx o espao tempo definido para o vetor x e nh o
espao de tempo definido para o vetor h.
( ny = [(min(nx) + min(nh)):(max(nx) +max(nh))]; )
Vejamos a sintaxe de conv abaixo:

Pgina 90 de 114

Apostila de MATLAB R2010a


conv

Definio: Determina a convoluco de dois sinais ou a multiplicao


de dois polinmios.
Sintaxe:
w = conv(u,v)
h=[1,2,1];
x=[2,3,-2];
y=conv(x,y)

Exemplo 10 - Determine os coeficientes do polinmio obtido ao multiplicar os


polinmios 5x 2 3x com 2x 2 .
>> a=[3 3 0];
>> b=[2 2];
>> y=conv(a,b)
y =
6

12

Logo, o polinmio obtido seria 6x 3 12x 2 6x .


Exemplo 11 - Determine a resposta

de

um

sistema com

entrada

x[n] u[n 2] u[n 7] , sabendo que a resposta desse sistema ao impulso


h[n] u[n] u[n 10] .

h=ones(1,10);
x=ones(1,5);
n=2:15;
y=conv(x,h);
stem(n,y);

Pgina 91 de 114

Apostila de MATLAB R2010a


Exerccio 21 - Use o MATLAB para determinar a sada do sistema com
entrada x[n] 2 u[n 2] u[n 12] sabendo que a resposta ao impulso
desse sistema h[n] 0,9n u[n 2] u[n 13] .

13.4. Equaes de Diferenas


As Equaes de Diferenas uma forma de expressarmos um sistema
na forma recursiva que permita que a sada do sistema fosse computada a
partir do sinal de entrada e das sadas passadas.
Um comando que possvel realizar uma funo similar seria o filter,
definida a seguir:
filter

Definio: Expressa a descrio em equao de diferenas de um


sistema em uma forma recursiva que permita que a sada do sistema seja
computada a partir do sinal de entrada e das sadas passadas.
Sintaxe:
y = filter(b,a,X)
y = filter(b,a,X,zi)
Veja acima que apareceu o parmetro zi, que determina a condio
inicial de y. Este zi uma matriz com as condies iniciais, sendo os valores
passados de y.
Exemplo 12 - Um exemplo clssico no uso de filter determinar a sequncia de
Fibonacci, definida como o nmero atual ser igual a soma dos dois nmeros
anteriores. Em linguagem matemtica, tem-se y[n] y[n 1] y[n 2] 0 em que
y a sada do sistema.
Veja que ele no depende de uma entrada, mas ao usarmos o filter,
necessrio usar a entrada apenas para definir o nmero de elementos da
sequncia no qual se deseja obter, assim como um parmetro indispensvel
para o uso da funo filter.
Ser dado como condio inicial a matriz [1 0], correspondentes a
entrada no desejada y[-1] e y[-2], indispensvel para obter os outros valores.
Pgina 92 de 114

Apostila de MATLAB R2010a


O cdigo do programa que pode ser implementado no M-file segue abaixo.
Neste caso, se deseja adquirir 20 valores.
a=[1, -1, -1];
b=[0];
x=ones(1,20);
y=filter(b,a,x,[1 0])

Exerccio 22 - Determine, utilizando filter, a sequncia Fibonacci.


Quando se trabalha com sistemas de equaes de diferenas, no qual
precisa determinar a resposta desse sistema ao impulso, o comando impz se
torna bastante til. A sua sintaxe segue abaixo:
impz

Definio: Determina a resposta ao impulso de um sistema de


equaes de diferenas.
Sintaxe:
[h,t] = impz(b,a)
[h,t] = impz(b,a,n)
O comando [h,t] = impz(b,a,n) avalia n valores da resposta ao impulso
de um sistema descrito por uma equao de diferenas. Os coeficientes da
equao de diferenas esto contidos nos vetores b e a no que se refere a
filter. O vetor h contm os valores da resposta ao impulso e t contm os ndices
de tempo correspondentes.

13.5. FFT (Transformada Rpida de Fourier)


A Transformada de Fourier leva uma funo no domnio do tempo para
o domnio da frequncia, no qual podemos analisar as frequncias mais
importantes (com maior amplitude) de uma funo. A transformada inversa de
Fourier faz o processo inverso, passa uma funo do domnio da frequncia
para o domnio do tempo.

Pgina 93 de 114

Apostila de MATLAB R2010a


A Transformada de Fourier e sua inversa podem ser calculadas a partir
das expresses abaixo, respectivamente:

F ( )

x (t ) e

jt

dt

x(t ) 21

F ( )e jt d

Onde a frequncia fundamental.


A FFT (Transformada rpida de Fourier) um algoritmo computacional
otimizado que calcula a Transformada Discreta de Fourier mais rapidamente. A
FFT tambm pode servir de aproximao para a Transformada de Tempo
Discreto de Fourier, Srie de Fourier e a prpria Transformada de Fourier.
Uma propriedade da Transformada de Fourier que a transformada da
convoluo de duas funes equivale multiplicao das duas no domnio da
frequncia. Portanto para calcular a convoluo de uma funo levamos os
dois sinais para o domnio da frequncia, multiplicamos e voltamos para o
domnio do tempo. Veja a expresso abaixo:
y(t ) x(t ) * h(t ) IFFT [ FFT ( x(t )).FFT ( h(t ))]

Exemplo 13 - Dado o circuito RC abaixo, determine a resposta ao impulso e a


corrente no capacitor iC (t) quando a entrada x(t) igual a e t .

Pgina 94 de 114

Apostila de MATLAB R2010a


Resoluo:
Clculo da resposta ao impulso:
Lei dos ns:
i iR iC
dV
dt
Em t=0, i (t ) e iR 0
i iR C

1
C

(t)

dV
dt

V (0) V (0 )

1
C

Em t 0 , i(0 ) 0
(1) 0

V
R

dV

dt

i(t) h(t) C

e soluo equao diferencial


R
V (t)

1 t RC
e
C

dV
1 t RC
e

dt
RC
h(t )

Para R=40k e C=300 F

1 t 12
e A
12

Clculo da convoluo analiticamente:


t

1 e
iC (t ) y(t ) x( )h(t )d e 12
t

1 e12
12

0 e

11
12

t
12

t12

11

Clculo da convoluo atravs do MATLAB:


n=[0:0.08:81.84];

%amostragem

x=exp(-n);

%definio da entrada

h=-exp(-n/12)/12;

%definio da sada

fftx=fft(x);

%clculo da fft

ffth=fft(h);
ffty=fftx.*ffth;

%multiplicao

y=ifft(ffty);

%inversa

plot(n,-abs(y)*0.08)
title('Convoluo');
xlabel('t(s)');
ylabel('i(A)');

Pgina 95 de 114

Apostila de MATLAB R2010a

Convoluo
0

-0.01

-0.02

i(A)

-0.03

-0.04

-0.05

-0.06

-0.07
0

10

20

30

40

50

60

70

80

90

t(s)

Exerccio 23 - Calcule a convoluo das formas de onda

x(t ) e 5t e h(t ) cos(2.5t ) t

13.6. Filtros Digitais


O MATLAB possui inmeras funes que permitem ao usurio
descobrir a funo transferncia de diferentes tipos de filtros digitais:
A funo de transferncia digital definida por H(z) onde z e

jwt

. Na

forma geral a funo de transferncia H(z) a seguinte:


H ( z)

B(z)
A( z)

b b z 1 b z 2
H ( z ) 0 1 1 2 2
a0 a1 z a2 z

bn z n
an z n

Butter
Definio: Determina os coeficientes de um filtro Butterworth. Esse
filtro pode ser passa baixa, passa alta, passa banda, rejeita banda.
Sintaxe:

Pgina 96 de 114

Apostila de MATLAB R2010a


[B,A] = Butter(N, Wn, tipo) Determina os coeficientes da funo
transferncia dada a frequncia de corte e o tipo de filtro. Caso nada seja posto
em tipo, o MATLAB interpreta filtro passa baixa como padro.
Freqz
Definio: Calcula os valores de uma funo complexa H(z)
Sintaxe:
Freqz(B,A,n) Utiliza 3 argumentos de entrada. O primeiro um vetor
contendo os coeficientes do polinmio B(z) da Equao (1). O segundo um
vetor contendo os coeficientes do polinmio A(z). O terceiro para especificar
o nmero de valores de frequncias normalizadas que se quer no intervalo de 0
a .
Exemplo 14

Gerar um sinal com duas senides de frequncias 5 e 80 Hz, com fs=200 Hz.
Projetar um filtro para fs=200 Hz. Usar filtro de 2a ordem, Butterworth.
Filtrar o sinal.
Plotar a resposta em frequncia.

% Exemplo de filtros
fs=200;
t=0:1/fs:1;

% Freqncia de amostragem
% Tempo de amostragem

T=1/fs;
x=sin(2*pi*5*t)+sin(2*pi*80*t);

% sinal de entrada

figure(4)
plot(t,x)
title('Sinal de Entrada')
xlabel('tempo (s)')
ylabel('amplitude')
[B,A]=butter(2,20/(fs/2));

% Determinar os coeficientes

% Mostrar coeficientes B

% Mostrar coeficientes A

% Plotagem da resposta em freqncia

Pgina 97 de 114

Apostila de MATLAB R2010a


h1=freqz(B,A,100)
figure(1)
plot(abs(h1))
grid
title('Resposta em freqncia')
xlabel('freqnca (Hz)')
ylabel('amplitude')
% Filtragem
figure(2)
y=filter(B,A,x);
plot(t,y,'k-')
title('Sinal de Entrada')
xlabel('tempo (s)')
ylabel('amplitude')

Exerccio 24 - Projete um filtro passa-alta de Butterworth de ordem 6, com


frequncia de corte de 10 Hz. Use fs=400 Hz. Sinais a serem filtrados:
senides de 1 e 20 Hz. Use as funes butter, filter e freqz.

Pgina 98 de 114

Apostila de MATLAB R2010a


14.SIMULINK

O Simulink um ambiente pertencente ao MATLAB que permite a


simulao e a modelagem de sistemas dinmicos e embarcados. um
ambiente grfico e customizvel que possui um conjunto de bibliotecas que
facilitam a implementao e o teste de uma variedade de sistemas variantes no
tempo.
Os modelos no Simulink so construdos atravs de diagramas de
blocos, em operaes do tipo clique e arraste, o que o torna uma interface
bastante amigvel. Ele permite a criao de qualquer mquina, artefato ou
aparelho no existente no mundo real, atravs da modelagem matemtica, e
permite que o determinado sistema criado funcione virtualmente, atravs da
resoluo matemtica do sistema criado.

14.1. Iniciando o Simulink


Para iniciar o Simulink, basta digitar o seguinte comando no
Workspace:
>> simulink
Uma janela ser aberta, que a biblioteca de blocos do Simulink:

Pgina 99 de 114

Apostila de MATLAB R2010a

A janela subdividida em trs partes principais. No lado esquerdo


esto presentes todas as bibliotecas disponveis. Esto presentes bibliotecas
de Sistema Aeroespaciais, Sistemas de Controle Dinmicos, Sistemas
Embarcado, Lgica Fuzzy, etc. No lado direito da tela esto disponveis todos
os blocos pertencentes biblioteca selecionada. Na parte inferior da tela est
presente a descrio de cada bloco selecionado.
Assim, quando se deseja saber o comportamento de um complexo
Sistema Automotivo, da vibrao nas asas de uma Aeronave durante o seu
vo, ou do efeito das futuras estimativas de oferta da moeda no Sistema
Econmico, basta se dirigir ao MATLAB que o Simulink permitir ao usurio a
resoluo do problema em sua prpria casa, atravs do computador, no
sendo necessrias grandes pesquisas de campo ou modernas aparelhagens
em laboratrios.

14.2. Criando um modelo


Para a criao de um novo modelo necessrio abrir uma nova janela
de modelo. Para isso basta abrir o menu File e escolher a opo New Model.

Uma janela ser ento aberta. Essa a janela de modelos do Simulink.


Toda a montagem, modificao e testes dos sistemas so feitas nessa janela.
O MATLAB salva esse arquivo de simulao com a extenso .mdl e, assim
como no M-File, para que o sistema seja executado necessrio que ele esteja
salvo. Como um primeiro exemplo, pode-se mostrar na tela uma onda senoidal.

Pgina 100 de 114

Apostila de MATLAB R2010a


Para montar esse sistema so necessrios dois dispositivos: primeiro algum
dispositivo que seja capaz de mostrar a onda e tambm a prpria onda.
Para adicionar uma onda senoidal seleciona-se a biblioteca Source na
janela de bibliotecas do Simulink. Quando selecionamos essa biblioteca,
aparece no lado direito um conjunto de sinais que podem ser usados como
entrada do sistema, tais como sinal de Rampa, sinal de Degrau, onda senoidal,
etc. O Bloco referente onda senoidal se chama Sine Wave. Para adicionar o
bloco janela basta clicar com o boto direito do mouse e escolher a opo
Add to nome_da_janela.

O bloco ser adicionado na janela de modelos aberta. Tendo a forma


de onda de entrada, basta ter o dispositivo capaz de mostrar a onda na tela.
Esse dispositivo est presente na biblioteca Sink, o nome do bloco Scope.
Para adicionar esse bloco o procedimento o mesmo. Depois dos blocos
serem adicionados necessrio interlig-los. Para isso basta clicar na seta
presente na lateral de um dos blocos, manter o boto pressionado e levar a
linha tracejada at a seta presente no outro bloco. Se a cor da linha que liga os
dois blocos ficar preta e o tracejado se manter contnuo, a operao foi
realizada corretamente. O sistema est pronto, para execut-lo basta clicar no
boto Start Simulation, na barra superior.

O sistema foi simulado. Para visualizar a onda, d-se um duplo clique


no Scope. Surgir na tela a forma de onda de Sine Wave. O resultado final
pode ser visto na seguinte ilustrao:

Pgina 101 de 114

Apostila de MATLAB R2010a

Apesar de o sistema criado ser simples, alguns detalhes ainda podem


ser explorados. Ao se dar duplo-clique em Sine-Wave veremos na tela algumas
caractersticas da forma de onda gerada. Aparecer na tela uma janela onde
podem ser modificados alguns parmetros do sinal, tais como amplitude,
frequncia, deslocamento vertical, ngulo de fase e domnio. Na parte superior
da janela tambm pode ser observada a equao que descreve a onda.
So operaes como essa de clique-e-arraste, de execuo e de
adio e interligao de blocos que governam o Simulink. No necessrio um
extenso programa com diversas diretivas e vrias funes matemticas. Tudo
j est embutido nos blocos do Simulink. Esta simplicidade tambm pode ser
mostrada no seguinte exemplo, onde calculada a derivada do sinal senoidal
utilizado anteriormente. Para isso pode-se utilizar o bloco Derivative, presente
na biblioteca Continuous:

Pgina 102 de 114

Apostila de MATLAB R2010a

14.3. Aspectos sobre a soluo dos sistemas


evidente a presena de mtodos numricos na resoluo dos
sistemas no MATLAB. Observando as configuraes de simulao, notvel o
uso dos mtodos. As configuraes de simulao esto presentes no menu
Simulation, na opo Configuration Parameters.

Um das modificaes importantes que podem ser feitas a do prprio


mtodo de resoluo das equaes diferencias. O MATLAB oferece algumas
opes de Mtodos:

Pgina 103 de 114

Apostila de MATLAB R2010a


../ ODE45 - Excelente mtodo de propsito geral de passo simples.
baseado nos mtodos de Dormand-Prince e de Runge-Kutta para
Quarta/Quinta ordem. ODE45 o mtodo padro do Simulink.
../ ODE23 - Usa os mtodos Bogacki-Shampine e Runge-Kutta de
Segunda ou Terceira ordem. Pode ser uma melhor opo que o ODE45.
Geralmente requer um passo menor do que o ODE45 para atingir a
mesma preciso.
../ ODE113 - Utiliza o mtodo de ordem varivel de Adams-BashforthMoulton. J que ODE113 utiliza as solues de pontos em tempos
anteriores para se determinar a soluo do tempo corrente, deve ento
produzir a mesma preciso dos mtodos ODE45 ou ODE23 com menor
nmero de clculos e com isto tendo uma melhor performance. No
apropriado para sistemas com descontinuidades.
../ ODE15S - Sistema de ordem varivel de multi passos para sistemas
inflexveis. baseado em pesquisas recentes que utilizam frmulas
numricas de diferena. Se a simulao executar lentamente utilizando
ODE45, tente ODE15S.
../ ODE23S Ordem fixa de passo simples para sistema inflexveis. Devido
ao fato de ser um mtodo de passo simples, em muitas das vezes
mais rpido do que ODE15S. Se um sistema parecer inflexvel uma
boa idia tentar ambos os mtodos para este tipo de sistema para se
determinar qual dos dois tem melhor performance.
../ ODE23t Implementao do mtodo trapezoidal utilizando uma
interpolao

livre.

Usar

quando

se

quer

uma

soluo

sem

amortecimento.
../ ODE23TB Implementao do TR-BDF2, um mtodo de Runge-Kutta
com primeiro estgio com uma regra trapezoidal e um Segundo estgio
utilizando diferenciao retrgrada de ordem 2. Pode ser mais eficiente
que o ODE45.

14.4. Modelagem de Sistemas


Tornando os exemplos mais prticos, iremos modelar dois sistemas
matemticos.
Pgina 104 de 114

Apostila de MATLAB R2010a

Sistema Massa-Mola

O primeiro sistema fsico a ser modelado ser o sistema massa-mola


apresentado acima, que possui um equacionamento simples baseado na Fsica
Bsica. Considerando uma acelerao a para o bloco, teremos:

v a.dt
x v.dt

, onde v a velocidade do bloco.

, onde x o deslocamento do bloco.

A partir dessas equaes um escopo geral do sistema j pode ser


iniciado. Ser utilizado o bloco Integrator, pertencente biblioteca Continuous.
Partindo da acelerao, teremos:

Modelagem matemtica do sistema:

F k.x , fora restauradora exercida pela mola no bloco ao se aplicar


uma deformao nesta.

kx m

d 2x
dt 2

Pgina 105 de 114

Apostila de MATLAB R2010a

d 2 x kx
a 2
dt
m

foi achada, ento, uma relao entre a acelerao do

sistema e o deslocamento. Essa relao presente no sistema atravs de um


ganho no deslocamento, o que resulta na acelerao. No Simulink ser
utilizada a biblioteca Math Operations, dentro desta biblioteca se localiza o
bloco Gain:

O bloco Gain, se no for modificado, ter o ganho 1. Para modificar o


ganho deve-se clicar duas vezes no bloco. Aparecer na tela a janela de
configurao dos parmetros do bloco, onde o ganho pode ser modificado:

Como foi colocado um valor literal no ganho, quando a simulao for


executada as variveis k e m devem estar presentes no workspace. Antes de
realizar a simulao pode-se definir as variveis no command window:
>> k=500;
>> m=20;
O sistema est ento pronto para ser simulado. importante perceber
que se a simulao for realizada, o valor do deslocamento ser nulo. Isso
Pgina 106 de 114

Apostila de MATLAB R2010a


acontece porque nenhum deslocamento inicial foi aplicado ao sistema. Para
aplicar um deslocamento inicial pode-se modificar a condio inicial da integral
da velocidade, pois:
t

x 0 v.dt xo
Quando a condio inicial modificada para um valor maior que zero,
estamos modificando o valor do deslocamento da mola no instante inicial do
sistema, assim o que aconteceu foi que aplicamos uma entrada no sistema.
Para modificar a condio inicial da integral da velocidade, necessrio se
modificar os parmetros da integral. O procedimento realizado o mesmo que
o do bloco Gain: d-se um duplo-clique no bloco Integrator, o que far aparecer
na tela uma janela onde os parmetros da integral possam ser modificados. Em
Initial condition, pode-se colocar a condio inicial 2:

O Sistema estar ento pronto para ser simulado. Dando um duploclique em Scope, possvel observar o comportamento do deslocamento ao
longo do tempo. Como j era esperado, o deslocamento se apresentou como

Pgina 107 de 114

Apostila de MATLAB R2010a


um sinal oscilante em torno do ponto inicial, a amplitude. O modelo diferente
do real, pois no foram consideradas no equacionamento as equaes
dissipativas, como atrito com o ar e atrito com o cho por exemplo.

Para evidenciar o comportamento do sistema massa-mola clssico,


pode ser traado tambm a curva da energia potencial x energia cintica do
bloco. Para isso tem-se que realizar outro equacionamento:

Ep

1 2
kx
2
, energia potencial do bloco

Ec

1 2
mv
2
, energia cintica do bloco

energia potencial do

sistema

depender do

deslocamento

instantneo, assim ser necessrio a sada do sistema, que o prprio x.


Como se observa na equao, o primeiro passo ser elevar o deslocamento ao
quadrado. Uma opo para realizar essa operao o bloco Product, presente
em Math Operations. Esse bloco tem como configurao padro, duas
entradas e uma sada que resultante da multiplicao das duas entradas.
Assim ligamos a sada do sistema (deslocamento) simultaneamente s duas

Pgina 108 de 114

Apostila de MATLAB R2010a


entradas, resultando assim em x2 na sada do bloco. O prximo passo ser
realizar um ganho de k/2 nesse sinal, o que resulta na energia potencial:

O procedimento para se obter a Energia cintica anlogo. Primeiro


preciso obter o sinal v2 e depois preciso dar um ganho de m/2 nesse sinal,
resultando assim na Energia cintica. Para traar os dois sinais em um s
grfico, utiliza-se apenas um Scope. Em conjunto utiliza-se tambm o bloco
Mux, presente na biblioteca Signal Routing:

Pgina 109 de 114

Apostila de MATLAB R2010a

Atravs do grfico pode-se observar uma caracterstica tpica dos


sistemas conservativos, que a complementaridade das duas energias ao
longo do tempo. Pode-se observar que no incio a energia potencial (em
amarelo) mxima, enquanto que a energia cintica (em roxo) nula, devido a
ausncia de movimento. Situao oposta quando o bloco passa pela origem,
em que a energia potencial nula e a cintica mxima.

Amortizao de Financiamento

O balano de um emprstimo ao fim de um ms equivale aos juros


incidindo sobre o balano do incio do ms menos o pagamento do ms. Uma
equao para o processo a seguinte:

balano(k ) juros.balano(k 1) pagamento(k )


Um sistema como esse tambm pode ser modeladono simulink. A
principal diferena que ele um sistema discreto, enquanto que o sistema
massa-mola era um sistema contnuo.
Pgina 110 de 114

Apostila de MATLAB R2010a


Considerando um emprstimo feito por um petiano do curso de
Engenharia Eltrica para a compra de um jatinho, no valor de R$ 5.000.000,00.
Considere um regime amortizado segundo o modelo descrito acima, com uma
taxa de juros mensal fixa de 1%. A pagamento mensal realizado pelo petiano
de R$ 100.000,00. Calcule ento a quantia que o petiano dever ao banco ao
final de 2 anos.
O primeiro passo para a modelagem do sistema definir a sua sada.
Como o petiano deseja saber quanto ele dever ao banco no final dos dois
anos, a soluo desejada o valor numrico de balano(24), j considerando
a unidade temporal como o ms.
O balano dado por uma subtrao, assim ser necessrio utilizar o
bloco Sum, pertencente a biblioteca Math Operations. Quando se adiciona esse
bloco ao modelo de sistema, pode-se observar o seguinte smbolo:

O que se conclui a partir desse smbolo que este bloco tem duas
entradas e uma sada, que retorna a soma das entradas. Se for dado um duploclique, pode-se perceber na configurao dos parmetros do bloco o parmetro
List of Sign, que conter |++. Estes smbolos definem as configuraes
possveis para o somador. Existem vria configuraes, mas a requerida no
problema do petiano a diferena entre os termos da entrada. Trocando |++
por |-+, o bloco ter um novo aspecto:

O bloco Sum ser responsvel por retornar o balano equivalente do


ms. Como observado na equao so entradas sero o pagamento mensal e
o balano do ms anterior. O pagamento, por ser de uma quantia fixa, pode ser
representado por uma constante. O bloco Constant, presente em Source pode
representar bem o pagamento. Ao se adicionar o bloco, d-se duplo-clique, de
modo a trocar o valor da constante, de 1 para 10000.

Pgina 111 de 114

Apostila de MATLAB R2010a


O outro termo do somado ser o balano do incio do ms com os
juros, ou seja, ser necessrio o balano atrasado. Para se obter esse balano
necessrio realizar uma operao de atraso no balano atual. O bloco que
define a operao de atraso denominado Unit Delay, est presente na
biblioteca Discrete. Esse bloco atrasa o sinal de entrada em uma unidade.
Como o sinal a ser atrasado o prprio balano, ento a entrada desse bloco
tem que ser colocada na sada do somador:

A outra entrada do somador ser o balano atrasado (sada de Unit


Delay) multiplicado pelos juros. Como o juro mensal de 1%, ser usado um
bloco Gain com ganho de 1,01:

Para uma melhor visualizao dos clculos feitos, ser utilizado um


Scope e um bloco chamado Display, presente na biblioteca Sinks. Esse bloco
mostra o valor de uma determinada varivel no instante em questo. A quantia
inicial do financiamento posta no sistema atravs do valor inicial do Unit
Delay, que ser nesse caso de R$ 5.000.000,00. O sistema est ento pronto
para ser simulado. Sempre recomendvel verificar os parmetros de
simulao em casos discretos. Primeiro verificar se a opo de soluo
escolhida discrete e segundo verificar o tempo de simulao, presente em
Start Time e em Stop Time. Como se que o valor ao final de dois anos, deve-se
escolher um Stop Time igual a 25 (devido ao atraso). O resultado ser o
seguinte:

Pgina 112 de 114

Apostila de MATLAB R2010a

O que mostra que ao final dos dois anos, o petiano endividado ter
uma dvida de R$ 3.587.840,03 com o banco.

Pgina 113 de 114

Apostila de MATLAB R2010a


15.REFERNCIAS BIBLIOGRFICAS
[1]

CARNAHAN, Brice, LUTHER, H. A. & WILKES, James O. Applied

numerical methods. John Wiley & Sons, Inc. Nova Iorque 1969.
[2]

GES, Hilder & TONAR, Ubaldo. Matemtica para Concursos. 6

Edio. ABC Editora. Fortaleza CE. 2001.


[3]

HAYKIN, Simon & VEEN, Barry Van. Sinais e Sistemas. Editora

Bookman. Porto Alegre RS. 2001


[4]

HAYT, William H. Jr. & BUCK, Jonh A. Eletromagnetismo. 6 Edio.

Editora LTC. Rio de Janeiro RJ. 2001.


[5]

LEITHOLD, Louis. O Clculo com Geometria Analtica. 3 Edio.

Volume I. Editora Habra. So Paulo SP. 1994.


[6]

NILSSON, James W & RIEDEL, Susan A. Circuitos Eltricos. 6 Edio.

Editora LTC. Rio de Janeiro RJ. 2003.

Pgina 114 de 114