Anda di halaman 1dari 114

Apostila de MATLAB 7.

UNIVERSIDADE FEDERAL DO CEAR


CENTRO DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA ELTRICA
PROGRAMA DE EDUCAO TUTORIAL

Apostila de

Fortaleza CE
Agosto / 2010
Pgina 1 de 114

Apostila de MATLAB 7.3


AUTORES

Abnadan de Melo Martins

Decio Haramura Junior

Francisco Onivaldo de Oliveira Segundo

Guilherme Martins Gomes Nascimento

Lucas Chaves Gurgel

Lus Paulo Carvalho dos Santos

Luiz Fernando Almeida Fontenele

Pedro Andr Martins Bezerra

Raphael Fernandes Sales Costa

Pgina 2 de 114

Apostila de MATLAB 7.3


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-DEFINIDAS ........................................................................................ 12

4.5.

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

4.6.

TRABALHANDO COM MATRIZES .................................................................................. 16

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

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

5.2.

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

5.3.

SISTEMAS DE COORDENADAS ................................................................................... 26

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

DEFINIO............................................................................................................... 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 COMPLEXOS ............................................................................................ 39

7.4.

FUNES TRIGONOMTRICAS................................................................................... 40

7.5.

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

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

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

8.2.

GRFICOS TRIDIMENSIONAIS .................................................................................... 48

8.3.

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

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


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

EXPRESSES NUMRICAS.................................................................................... 67

10.2.

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

10.3.

SOLUCIONANDO EQUAES OU SISTEMAS ............................................................ 70

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


11.1.

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

11.2.

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

11.3.

INTEGRAO ....................................................................................................... 74

Pgina 3 de 114

Apostila de MATLAB 7.3


11.4.

INTEGRAIS DEFINIDAS PELA REGRA TRAPEZOIDAL ................................................. 75

11.5.

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

11.6.

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

11.7.

INTEGRAO TRIPLA ............................................................................................ 77

11.8.

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

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


12.1.

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

12.2.

SRIE DE TAYLOR ................................................................................................ 80

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


13.1.

TRANSFORMAO DE VARIVEL INDEPENDENTE.................................................... 82

13.2.

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

13.3.

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

13.4.

EQUAES DE DIFERENAS ................................................................................. 92

13.5.

FFT (TRANSFORMADA RPIDA DE FOURIER) ......................................................... 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 4 de 114

Apostila de MATLAB 7.3


1. PREFCIO
Esta apostila foi desenvolvida por alunos do Programa de Educao
Tutorial (PET) do curso de Engenharia Eltrica da Universidade Federal do
Cear (UFC) para a realizao do Curso de MATLAB.
Com o intuito de promover uma introduo ao MATLAB que viesse a
facilitar o desempenho dos estudantes da graduao na realizao de seus
trabalhos e na sua vida profissional, o PET elaborou este Curso de MATLAB
que est atualmente na oitava edio. Durante as oito edies foram
contemplados aproximadamente 400 estudantes dos mais variados cursos de
Engenharia do Centro de Tecnologia da UFC.
Devido sua boa repercusso o Curso de MATLAB foi premiado no
XVII Encontro de Iniciao Docncia nos Encontros Universitrios de 2008.

Pgina 5 de 114

Apostila de MATLAB 7.3


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 6 de 114

Apostila de MATLAB 7.3


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 7 de 114

Apostila de MATLAB 7.3


>> doc dirac

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


o seguinte:

Figura 3 HELP da funo dirac.

Pgina 8 de 114

Apostila de MATLAB 7.3


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 9 de 114

Apostila de MATLAB 7.3


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 10 de 114

Apostila de MATLAB 7.3


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 11 de 114

Apostila de MATLAB 7.3


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
F =
7
4
7
G=
6

5 6 7
;
6 5 4
5
6
;
7

12
15
H = ;
18

21
5
I = ;
6
0 5 10
J =
;
1 2 3

0 25 100
K =
;
9
1 4
0 24 99
L=
;
2 5 10
0 24 99
M =
;
2 5 10

4.4. Matrizes pr-Definidas


ones

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


Sintaxe:
Pgina 12 de 114

Apostila de MATLAB 7.3


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.
unitrios
>>ones(2)
ans =
1

zeros

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


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

eye

Definio: Gera uma matriz identidade.


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

>>eye(2)
ans =
1

vander

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


dado.

Pgina 13 de 114

Apostila de MATLAB 7.3


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

aleatrios
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

4.5. Propriedades de matrizes


(apstrofo)

Definio Calcula a matriz


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

>> A'
ans =

Pgina 14 de 114

Apostila de MATLAB 7.3

det

matriz
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

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 =

Pgina 15 de 114

Apostila de MATLAB 7.3


0.6923

-0.6154
0.6154

-0.3077
0.3077

0.3846

eig

matriz
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,
e em
b, uma matriz com os autovalores associados.

>> A=[1 -1;


1; 4 1]
A =
1

-1

>> [a,b]=eig(A)
a =
0 - 0.4472i
-0.8944
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:

2 x1 + 1.5 x2 + x3 = 13.20

x1 + 6 x2 2 x3 = 21.64

2 x2 + 4 x3 = 26.62

4.6. Trabalhando com matrizes


size

Definio: Retorna as dimenses de uma matriz.


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


3]

Pgina 16 de 114

Apostila de MATLAB 7.3


>> [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
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);
find(X
>> [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 7.3


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
escente ou decrescente.
decrescente
Sintaxe:
sort(A,dim)  Retorna os elementos das colunas (dim
dim = 1)
1 ou da linha
(dim = 2) da matriz A em ordem crescente.
crescente
sort(A,mode)  Retorna os elementos das colunas da matriz A em
ordem crescente (mode
mode = ascend)
ascend ou em ordem decrescente (mode
(
=
descend).

>> sort(A)
ans =
1

fliplr

Definio: Espelha as colunas de uma matriz.


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 7.3

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

B = 1
6

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

5.5 8.1 4.9

C = 2.1 7.4 9.2


1.3 4.5 3.8

D = [ 4 1 0]

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

Pgina 19 de 114

Apostila de MATLAB 7.3


R3

R1
1

V1
10Vdc

R2
5

R4
10

I1
2Adc

Figura 4 Exemplo de circuito eltrico.

1
v
R
i = G v
i=

1 1 1
10 + +
1 = 1 5 2
1
2
2

1
1
G i = G G v

1
2 v1

1 1 v2
+
2 10

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.5000
0.5000

0.6000

>> v=inv(G)*i

v =
9.0909
10.9091

Pgina 20 de 114

Apostila de MATLAB 7.3


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 7.3


5. VETORES

5.1. Declarao
possvel trabalhar com vetores no MATLAB,
MATLAB, cuja representao
feita baseando-se
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
nmer 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 7.3


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
define
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
dimensionais A
e B.

Pgina 23 de 114

Apostila de MATLAB 7.3


>> 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-se
atentar se 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


colun
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
d cada
posio correspondente de ambas as matrizes
[a,b]=min(A)  Retorna,
Retorna em a, os menores valores de cada coluna e,
e
em b, a posio dos mesmos nas suas respectivas colunas.
colunas

>> A=[1 4; 2 4];


>> [a,b]=min(A)
a =
1

b =

max

Definio: Retorna os valores mximos


mximo de um vetor ou o das colunas
colun
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 7.3


max(A,B) Retorna
Retorna uma matriz com os maiores valores de cada
posio correspondente de
d ambas as matrizes.
[a,b]=max(A)  Retorna, em a, os maiores valores de cada coluna e,
e
em b, a posio dos mesmos nas suas respectivas colunas.
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
etorna 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


ntos de um vetor ou o
produtrio
rio das colunas de uma matriz.
Sintaxe:
etorna a(o) soma/produto dos elementos do
d vetor A ou
prod(A)  Retorna
a(o) soma/produto das colunas da matriz A.

>> prod(A)
ans =
2

16

Pgina 25 de 114

Apostila de MATLAB 7.3


Exerccio 5-

Os trs vrtices de um tringulo esto em A (6,-1,2),


(6,
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.
linha

5.3. Sistemas de Coordenadas


Existem funes,
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 7.3

Figura 6 Transformao entre coordenadas cartesianas e polares/cilndricas.

pol2cart

Definio: Converte do sistema de coordenadas polares


es/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


cartesian 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 7.3

Figura 7 Transformao entre coordenadas cartesianas e esfricas.

sph2cart

esfric para o
Definio: Transforma do sistema de coordenadas esfricas
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 1nC em
(1,0,0) e uma outra carga de -1nC em (-1,0,0).. Determine as linhas
equipotenciais geradas a partir dessa configurao.
configurao

>> [x,y,z] = meshgrid(-0.5:.012:0.5);


meshgrid(
>> [teta,fi,r] = cart2sph(x,y,z);
v = (1e-9*0.2*cos(teta))./(4.*pi.*8.85e
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]);
contourslice(x,y,z,v,[
0.5:0.5]);
>> colormap hsv

Pgina 28 de 114

Apostila de MATLAB 7.3

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 7.3


6. M-FILE

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

Ser
r 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
M File facilitar a vida
vid do usurio,
atravs da execuo de scripts, que so arquivos que possuem uma lista de
comandos que devem ser executados seqencialmente (tambm chamados de
procedimentos). Assim, quando se quiser executar mais de uma vez um
conjunto de comandos seqenciais relativamente grandes e trabalhosos para
serem digitados,, no ser necessrio digit-los
digit los um a um na
n Command
Window, basta digitar os comandos no M-File,
M File, salvar o arquivo e execut-lo.
execut
Segue um exemplo de script para calcular a distncia entre dois
dois pontos:

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

O primeiro passo para executar um script salv-lo.


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

Apostila de MATLAB 7.3


deve-se
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,
M
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
estaro presentes na tela.
O M-FILE
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
mbolo %, ou selecionando o texto inteiro e teclando Crtl+R,
Crtl+R ou %{ para
abrir o comentrio por bloco e %} para fechar.
Podemos ainda utilizar o smbolo %% para que, no mesmo M-File,
M
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 7.3

Ao teclar Ctrl+Enter somente a Primeira Parte ser executada

6.3. Operaes no M-File


M

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
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.
v
Sintaxe:
while <condio>
Pgina 32 de 114

Apostila de MATLAB 7.3


[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 7.3

input

Definio: Pede uma entrada do usurio pelo command window.


window
Sintaxe:
entrada = input(O que deseja?)

X = input('Entre um nmero\n')
nmero
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 7.3


continue

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


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


M
a criao de funes. A declarao
inicial da seguinte forma:

Pgina 35 de 114

Apostila de MATLAB 7.3

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


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 7.3


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
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 7.3

factorial
Definio: Retorna o fatorial de um argumento.
Sintaxe:
factorial(N)  Calcula o fatorial de N.

nchoosek
Definio: Desenvolve a fatorao binomial.Sintaxe:
binomial.
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 7.3


7.3. Nmeros Complexos
O MATLAB proporciona um conjunto de funes que auxilia o
manuseio de nmeros complexos.
complexos Inicialmente, para definir um nmero
complexo utilizam-se
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
.0000i
>> a=5+8j
a =
5.0000 + 8.0000i
.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.
computacional A definio
finio 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
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 7.3


Tabela 2 Funes com nmeros complexos.

Funo
abs(X)
angle(X)

Descrio
Retorna o mdulo do nmero complexo 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 (5+3i ) .

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 7.3


>> 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
arco
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
(exp(3)+exp(
ans =
10.0677

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


trigonomtricas:

Pgina 41 de 114

Apostila de MATLAB 7.3


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 7.3


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

Pgina 43 de 114

Apostila de MATLAB 7.3


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


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;
2:0.01:5;
>> line(x,exp(x))

Pgina 45 de 114

Apostila de MATLAB 7.3

150

100

50

0
-2

-1

Figura 11 Grfico e gerado pela funo line.

stem

Definio: Plota uma seqncia de dados discretos. Observe a Figura


12.
Sintaxe:
stem(Y)  Plota a seqncia de dados do vetor Y em um domnio
discreto ao longo do eixo-x.
eixo
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 7.3

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 7.3

90

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 7.3

x = cos(t), y = sin(t), z = t

7
6
5

4
3
2
1
0
1
0.5
0
-0.5
y

-1

-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

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 7.3

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 7.3

1/sqrt(x 2 + y 2)

7
6
5
4
3
2
1
0
6
4

4
0

2
0

-2

-2

-4

-4

-6

-6

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
nio 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);
[X,Y]=meshgrid(
>> 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.
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 7.3


>> surf(X,Y,Z)

10

6
4

-2

-2

-4

-4
-6

Figura 17 Superfcie

-6

1
x2 + y2

gerada pela funo surf.


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
se modificar
modif
string
das mais diversas formas.
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 7.3

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)  D o ttulo string ao grfico atual.
>> compass(2,3)
>> title('Grfico Polar')

Pgina 53 de 114

Apostila de MATLAB 7.3

Grfico Polar
90

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,


X Y e Z.
Observe a Figura 20.
Sintaxe:
xis([xmin xmax ymin ymax zmin zmax])  define o eixo X de xmin a
axis([xmin
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.5 -1 34])

Pgina 54 de 114

Apostila de MATLAB 7.3

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 7.3

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 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 se


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;
6:0.01:6;
>> y=sin(x);
>> plot(x,y)
>> hold on
>> t=-6:0.01:2;
6:0.01:2;
>> k=exp(t);
>> plot(t,k)

Pgina 56 de 114

Apostila de MATLAB 7.3

-1
-6

-4

-2

Figura 22 Grficos sin(x) e e 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)
egend(string1,string2)  Adiciona as legendas string1 e string2 ao
grfico atual.

>> x=-6:0.01:6;
6:0.01:6;
>> y=sin(x);
>> plot(x,y)
>> hold on
>> t=-6:0.01:2;
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 7.3

8
Grfico 1: y=sen(x)
Grfico 2: y=exp(x)
7

-1
-6

-4

-2

Figura 23 Grficos sin(x) e e 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 7.3

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
lim([xmin xmax])  define o eixo X de xmin a xmax.
ylim([ymin
lim([ymin ymax])  define o eixo Y de ymin a ymax.
zlim([zmin
lim([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 1.5])
>> ylim([-1.5
1.5 1.5])
>> zlim([-1
1 34])

Pgina 59 de 114

Apostila de MATLAB 7.3

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

-1
-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
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.
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
horrio do grfico superior esquerdo.
subplot(m,n,p,'replace')  Se o grfico
fico 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 7.3

sin(x)
1
0.5
0
-0.5
-1
-6

-4

-2

0
x

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

-3

-2

-1

Figura 26 Janela de grfico dividida atravs da funo subplot.


subplot

Exerccio 8-

Plote as funes a seguir com os respectivos comandos e de

acordo com cada item: 5sin ( x ) plot; 4 sin x + ezplot; 3sin ( 2x )


3

stem.
a) Todas as funes no mesmo grfico;
b) Cada funo em uma janela diferente;
diferen
c) Todas as funes na mesma janela, mas em grficos diferentes.
Exemplo 3- Criao de arquivo em formato AVI. Observe as Figura 27 e
Figura 28.
aviobj=avifile('Filme Seno.avi','fps',50);
hold on;
grid on;
x=-4*pi:0.1:4*pi;
4*pi:0.1:4*pi;
for k=1:1:size(x,2)
:size(x,2)-1
xx=[x(k) x(k+1)];
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 7.3


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

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


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 7.3

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

Pgina 63 de 114

Apostila de MATLAB 7.3


9. MATEMTICA
ATEMTICA 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
ma 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
ine variveis, expresses e objetos como simblicos.
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
usa
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 7.3


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

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

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 7.3


Exerccio 10-

Implemente o mtodo das bisseces sucessivas para a

resoluo de equaes no lineares.

Pgina 66 de 114

Apostila de MATLAB 7.3


10.OPERAES MATEMTICAS
MATEMTICA 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
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)
collect(x*(x*(x
ans =
-6+x^3-6*x^2+11*x
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 7.3


Exerccio 12- Dado o polinmio f ( x ) = 2x 2 + 3 x 5 e g( x ) = x 2 x + 7 .
Determine os seguintes polinmios:

(a)

(b) 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
8
4
polinmio 5 x 3 9 x 2 + x +
representado como p=[5 -9
9 8/5 4/7]. bom
5
7

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


2 -1]

y =
-2

-1

>> z=poly(y)

%z o polinmio
mio (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
2

11

-1

>> poly(A)

%calcula o seu polinmio caracterstico

Pgina 68 de 114

Apostila de MATLAB 7.3


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


polin

% x+3x+2
c =

>> x=roots(c)

2
%Calcula as razes
zes 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;


1; 3 2.83]
a =
1.0000

-1.0000
1.0000

3.0000

2.8300

>> valores=polyval(polinomio,a)

Pgina 69 de 114

Apostila de MATLAB 7.3


valores =
15.2000

-10.8000
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


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);
polinomio_interpolador=polyfit(x,y,3)
>> pontos_interpoladores=polyval(polinomio_interpolador,x);
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),


(1;
(2;-7), (5;-8)
8) e (8;10).
Exerccio 14- Determine o polinmio
polin
que interpola estes pontos;
Exerccio 15- Calcule
alcule as suas razes
razes e o esboce em um grfico;
Exerccio 16- Destaque o ponto no qual se tem o valor do polinmio para
x = 3.

ndo Equaes ou Sistemas


10.3. Solucionan
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 7.3


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.
pr
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.
dcadas Determine nossas idades utilizando
tilizando a funo
solve.
Exerccio 18- Sabe 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
instantaneamente enquanto estava em

Considere todas as unidades no S.I.


S.I

Pgina 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


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
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: lim+


x 1

x2 1
x2 1

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

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 7.3


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


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;
b
int(S,v,a,b)  integra de a a b em funo de uma varivel v;

Exemplo 7- Dado 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))
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 7.3

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


usa se a funo pretty,
que transforma a sada de acordo com a representao
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,
definido, sendo o nmero de divises
n.. Em representao matemtica, tem-se:
tem

f ( x ) dx =

ba
( f ( x0 ) + 2 f ( x1 ) + ... + 2 f ( xn1 ) + f ( xn ) )
2n

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 7.3


11.5. Integrais definidas pela Regra de Simpson
O mtodo de Simpson baseado,
baseado, dado trs pontos sobre a curva da
funo, na aproximao
o 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

ba
[ f ( x0 ) + 4 f ( x1 ) + 2 f ( x2 ) + 4 f ( x3 ) + ... + 2 f ( xn 2 ) + 4 f ( xn 1 ) + f ( xn )]
3n

A maioria das calculadoras programadas utiliza esta


esta regra,
regra que mais
utilizada em termos computacionais. No MATLAB, a funo encarregada
encarrega 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


faz
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 7.3


11.6. Integrao
o 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
o 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
triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)
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...,
z..., respectivamente.
Pgina 77 de 114

Apostila de MATLAB 7.3


divergence

Definio: Determina
rmina 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)
vergence(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
digo segue abaixo.

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

Pgina 78 de 114

Apostila de MATLAB 7.3

1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
1
0.5
0
-0.5
-1

-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

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


devido carga.

Pgina 79 de 114

Apostila de MATLAB 7.3


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.
definida.
r = symsum(s,v)  fornece o somatrio em funo da varivel v.
r = symsum(s,a,b)  determina o somatrio
omatrio 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

f(

n)

( 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 7.3


que aproxima localmente f em volta de x0 de modo que o erro E ( x ) tenda a
n

zero mais rapidamente que ( x x0 ) , quando x x0 .


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

Definio: Expande em srie de Taylor.


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
1 para a varivel especificada por v.
taylor(f,n,v,a)  retorna a aproximao
ximao 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:
tem
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 7.3


13.ANLISE DE SINAIS

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
xlim([
20])
hold on
xnovo=x+n0;
subplot(2,1,2),stem(xnovo,y);grid on, xlim([-20
xlim([ 20 20])
hold off

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

Pgina 82 de 114

Apostila de MATLAB 7.3

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

8
6

4
2

-2
-20

-15

-10

-5

10

15

20

-15

-10

-5

10

15

20

8
6
4

2
0

-2
-20

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

Pgina 83 de 114

Apostila de MATLAB 7.3

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


Pr

Impulso:
0, n 0
[ n] =
1, n = 0
0, t 0
1, t = 0

(t ) =

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:
Window
>> x=-2:7;
>> y=impulso(x,3);
>> stem(x,y)

Pgina 84 de 114

Apostila de MATLAB 7.3

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-2

-1

Degrau
0, n < 0
u [n] =
1, n 0
0, t < 0
u (t ) =
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:
Window
>> n=-2:7;
>> y=degrau(n,3);
>> stem(n,y)

Pgina 85 de 114

Apostila de MATLAB 7.3

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;
20:20;
>> y=degrau(n,-10)-2*degrau(n,-5)+degrau(n,6);
y=degrau(
>> stem(n,y)
,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 7.3


n

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

0.14

0.12

0.1

0.08

0.06

0.04

0.02

0
-20

-15

-10

-5

10

15

20

1
c) y [ n ] = cos n u [ n + 4]
2
>> n=-20:20;
20:20;
>> y=cos(0.5*pi*n).*degrau(n,-4);
y=cos(0.5*pi*n).*degrau(n,
>> stem(n,y)
,y)

Pgina 87 de 114

Apostila de MATLAB 7.3

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-20

-15

-10

-5

10

15

20

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

0
-20

-15

-10

-5

10

15

20

n
e) y [ n ] = sinc
2
Pgina 88 de 114

Apostila de MATLAB 7.3


>> x=-20:1:20;
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
rme veremos a seguir:
seg
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);
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 7.3


Sintaxe:
dirac(x)

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

%Impulso no instante 5

>> stem(x,y)

Exemplo 9- Sabe-se
se que a funo impulso a derivada da funo degrau.
Determina este fato utilizando o MATLAB.
MATLAB

>> syms x
>> diff(heaviside(x),x)
ans =
dirac(x)

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

13.3. Convoluo
onvoluo
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.
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,
um, devido ao processo de convoluo.
convolu
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 7.3


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

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 7.3


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
sistem
na forma recursiva que permita
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
termina 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 seqncia de


Fibonacci, definida como o nmero atual ser igual a soma dos dois nmeros
anteriores.
eriores. Em linguagem matemtica, tem-se
tem
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
seqncia no qual se deseja obter, assim como um parmetro indispensvel
para o uso da funo filter.
filter
Ser dado como condio inicial a matriz [1 0], correspondentes a
entrada no desejada y[-1]
y[
e y[-2],
2], indispensvel para obter os outros valores.
Pgina 92 de 114

Apostila de MATLAB 7.3


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])

ut
filter, a seqncia Fibonacci.
ibonacci.
Exerccio 22- Determine, utilizando
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.
diferenas. Os coeficientes
coeficie
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 freqncia, no qual podemos analisar as freqncias mais
importantes (com maior amplitude) de uma funo. A transformada inversa de
Fourier faz o processo inverso, passa uma funo do domnio da freqncia
freqn
para o domnio do tempo.

Pgina 93 de 114

Apostila de MATLAB 7.3


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

F ( ) =

S (t )e

jt

dt

1
S (t ) =
2

F ( )e

jt

Onde a freqncia 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
rpria Transformada de Fourier.
Uma propriedade da Transformada de Fourier que a transformada da
convoluo de duas funes equivale multiplicao das duas no domnio da
freqncia. Portanto para calcular a convoluo de uma funo levamos os
dois sinais
ais para o domnio da freqncia, 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 7.3


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
dV
1
(t ) =
V (0) = V (0+ ) =
C
dt
C

Em t = 0+ , i (0+ ) = 0
V
dV
1 t
Re soluo equao diferencial
(1) 0 = + C

V (t ) = e RC
R
dt
C
dV
1 t RC
i (t ) = h(t ) = C
=
e
dt
RC

h(t ) =

Para R=40k e C=300 F

1 t 12
e A
12

Clculo da convoluo analiticamente:


t

iC (t ) = y (t ) =
t

1 (t )

x( )h(t ) d = 0 e 12 e 12 d
t

e 12 11 12
e 12 e t
=
e
d =
12 0
11
Clculo da convoluo atravs do MATLAB:
M
n=[0:0.08:81.84];

%amostragem

x=exp(-n);
n);

%definio da entrada

h=-exp(-n/12)/12;
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)
abs(y)*0.08)
title('Convoluo');
xlabel('t(s)');
ylabel('i(A)');

Pgina 95 de 114

Apostila de MATLAB 7.3

Convoluo

-0.01

-0.02

i(A)

-0.03

-0.04

-0.05

-0.06

-0.07

10

20

30

40

50

60

70

80

90

t(s)

x(t ) = e 5t
Exerccio 23- Calcule a convoluo das formas de onda
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 )

b0 + b1 z -1 + b2 z -2 + ... + bn z -n
H ( z) =
a0 + a1 z -1 + a2 z -2 + ... + 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 7.3


[B,A] = Butter(N, Wn, tipo)  Determina os coeficientes da funo
transferncia dada a freqncia 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).
A(z). O terceiro para especificar
o nmero de valores de freqncias normalizadas que se quer no intervalo de 0
a .

Exemplo 14

Gerar um sinal com duas


du senides de freqncias 5 e 80
0 Hz, com fs=200
Hz.
Projetar um filtro para fs=200 Hz. Usar filtro de 2a ordem, Butterworth.
Butterworth.
Filtrar o sinal.
Plotar a resposta em freqncia.

% 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 7.3


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


passa alta de Butterworth de ordem 6, com
freqncia 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 7.3


14.SIMULINK

O Simulink um ambiente pertencente ao MATLAB que permite a


simulao e a modelagem de sistemas dinmicos
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
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 7.3

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
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
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
arquivo de simulao com a extenso .mdl e, assim
como no M-File,
File, para que o sistema seja executado
executado necessrio que ele esteja
salvo. Como um primeiro exemplo, pode-se
pode se mostrar na tela uma onda senoidal.
Pgina 100 de 114

Apostila de MATLAB 7.3


Para montar esse sistema so necessrios dois dispositivos: primeiro algum
dispositivo que seja capaz de mostrar a onda e tambm a prpria onda.
Para
ara adicionar uma onda senoidal seleciona-se
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,
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.
nome_da_janela

O bloco ser adicionado na janela de modelos


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.
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
execut lo basta clicar no
boto Start Simulation,, na barra superior.

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


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 7.3

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


ser explorados. Ao se dar duplo-clique
duplo
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,
freqncia, deslocamento vertical, ngulo de fase e domnio. Na parte superior
da janela
ela tambm pode ser observada a equao que descreve a onda.
So operaes como essa de clique-e-arraste,
clique 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
pode
utilizar o bloco Derivative,
Derivat
presente
na biblioteca Continuous:
Continuous

Pgina 102 de 114

Apostila de MATLAB 7.3

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,
simulao notvel o
uso dos mtodos. As configuraes de simulao esto presentes
presen
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 7.3


 ODE45 - Excelente mtodo de propsito
propsito geral de passo simples.
baseado nos mtodos de Dormand-Prince
Dormand Prince e de Runge-Kutta
Runge
para
Quarta/Quinta ordem. ODE45 o mtodo padro do Simulink.

 ODE23 - Usa os mtodos Bogacki-Shampine


Bogacki Shampine e Runge-Kutta
Runge
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-BashforthAdams


Moulton. J que ODE113 utiliza as solues de pontos em tempos
anteriores para se determinar a soluo
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


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 serr 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
Implementao do mtodo trapezoidal utilizando uma
interpolao

livre.

Usar

quando

se

quer

uma

soluo

sem

amortecimento.

 ODE23TB Implementao do TR-BDF2,


TR BDF2, um mtodo de Runge-Kutta
Runge
com primeiro estgio com uma regra trapezoidal e um Segundo estgio
utilizando diferenciao
nciao 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 7.3

Sistema Massa-Mola
Massa

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
e 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 7.3

a=

d 2x
k
= x , foi achada ento uma relao entre a acelerao do
2
dt
m

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,
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
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
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.
nu
Isso
Pgina 106 de 114

Apostila de MATLAB 7.3


acontece porque nenhum deslocamento inicial foi aplicado ao sistema. Para
aplicar um deslocamento inicial pode-se
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
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
se um duplo-clique
duplo
no bloco Integrator,, o que far aparecer
na tela uma janela onde os parmetros da integral possam ser modificados. Em
Initial condition, pode-se
se colocar a condio inicial 2:

O Sistema estar ento pronto para ser simulado. Dando um duploduplo


clique 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 7.3


um sinal oscilante
ante 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
se que realizar outro equacionamento:

1
E p = kx 2
2
, energia potencial do bloco
1
E c = mv 2
2
, energia cintica do bloco
A

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,
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
simultaneame
s duas

Pgina 108 de 114

Apostila de MATLAB 7.3


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
se apenas um Scope. Em conjunto utiliza-se
se tambm o bloco
Mux,, presente na biblioteca Signal Routing:

Pgina 109 de 114

Apostila de MATLAB 7.3

Atravs do grfico pode-se


pode se observar uma caracterstica tpica dos
sistemas conservativos, que a complementaridade das duas energias ao
longo do tempo. Pode--se
se observar que no incio a energia potencial (em
amarelo) mxima, enquanto que a energia cintica
cintica (em roxo) nula, devido a
ausncia de movimento. Situao oposta quando o bloco passa pela origem,
em que a energia potencial
potencia 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 modelado no simulink. A
principal diferena que ele um sistema discreto, enquanto
enquanto que o sistema
massa-mola
mola era um sistema contnuo.
Pgina 110 de 114

Apostila de MATLAB 7.3


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
iano 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
tencente a biblioteca Math Operations.. Quando se adiciona esse
bloco ao modelo de sistema, pode-se
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
for dado um duploduplo
clique, pode-se
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
ano 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
resente em Source pode
representar bem o pagamento. Ao se adicionar o bloco, d-se
d se duplo-clique,
duplo
de
modo a trocar o valor da constante, de 1 para 10000.

Pgina 111 de 114

Apostila de MATLAB 7.3


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


visualizao dos clculos feitos, ser utilizado um
Scope e um bloco chamado Display, presente na biblioteca Sinks.
Sinks Esse bloco
mostra o valor de uma determinada varivel no instante em questo.
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.
5.000.000,00 O sistema est ento pronto
para ser simulado. Sempre recomendvel verificar os parmetros de
simulao em casos discretos.
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.
Time. Como se que o valor ao final de dois anos, deve-se
deve
escolher um Stop Time igual a 25 (devido ao atraso). O resultado
esultado ser o
seguinte:

Pgina 112 de 114

Apostila de MATLAB 7.3

O que mostra que ao final dos dois anos, o petiano


petiano endividado ter
uma dvida de R$ 3.587.840,03 com o banco.

Pgina 113 de 114

Apostila de MATLAB 7.3


15.REFERNCIAS BIBLIOGRFICAS
BIBLIOGR
[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.


Concursos 6

Edio. ABC Editora. Fortaleza CE. 2001.


[3]

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


Sistemas Editora

Bookman. Porto Alegre RS. 2001


[4]

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


Eletromagnetismo 6 Edio.

Editora LTC. Rio de Janeiro RJ. 2001.


[5]

LEITHOLD, Louis. O Clculo com Geometria Analtica.


Analtica 3 Edio.

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


[6]

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


Eltricos 6 Edio.

Editora LTC. Rio de Janeiro RJ. 2003.

Pgina 114 de 114