Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de
Fortaleza CE
Abril / 2008
Pgina 1 de 84
1. APRESENTAO....................................................................................................................4
1.1.
2. MATRIZES ...............................................................................................................................7
2.1.
DECLARAO .............................................................................................................7
2.2.
SOMA ........................................................................................................................8
2.3.
MULTIPLICAO .........................................................................................................8
2.4.
2.5.
PROPRIEDADES DE MATRIZES....................................................................................11
2.6.
3. VETORES...............................................................................................................................18
3.1.
DECLARAO ...........................................................................................................18
3.2.
OPERAES ............................................................................................................19
3.3.
4.2.
4.3.
4.4.
4.5.
5. GRFICOS .............................................................................................................................30
5.1.
GRFICOS BIDIMENSIONAIS.......................................................................................30
5.2.
GRFICOS TRIDIMENSIONAIS.....................................................................................33
5.3.
CONFIGURAO .......................................................................................................36
7.2.
POLINMIOS.............................................................................................................49
7.3.
LIMITES ....................................................................................................................54
8.2.
DIFERENCIAO .......................................................................................................54
8.3.
INTEGRAO ............................................................................................................55
8.4.
8.5.
8.6.
8.7.
INTEGRAO TRIPLA.................................................................................................58
8.8.
Pgina 2 de 84
SOMATRIO .............................................................................................................60
9.2.
SRIE DE TAYLOR.....................................................................................................60
DEFINIO ...........................................................................................................61
10.2.
ORGANIZAO .....................................................................................................62
12.2.
FUNES PR-DEFINIDAS.....................................................................................70
12.3.
CONVOLUO ......................................................................................................76
12.4.
12.5.
12.6.
FILTROS DIGITAIS.................................................................................................82
Pgina 3 de 84
Comando MATLAB
Varivel
Descrio
Format long
3.141592653589793
Com 16 dgitos
Format short
3.1416
Com 5 dgitos
Format short e
3.1416e+000
Format long e
3.141592653589793e+000
Com
16
dgitos
em
notao cientfica
Format +
para
valores negativos
Format rat
355/113
Aproximao racional
Format hex
400921fb54442d18
Formato hexadecimal
Pgina 4 de 84
Uma outra forma pela tecla de atalho F1. Uma terceira forma pelo
boto START, posicionado logo abaixo do COMMAND HISTORY, de acordo
com a figura abaixo.
Pgina 5 de 84
Pgina 6 de 84
2.1. Declarao
A declarao de matrizes feita da seguinte maneira:
>> a = [1:10]
>> b = [0:0.5:3]
10]
16
13
10
11
12
15
14
>>A(1,2);
>>A(:,3);
%Elementos da coluna 3
>>A(1,:);
%Elementos da linha 1
3; 4 5];
c =
4
Obs.: bom lembrar que o MATLAB tem como primeiro ndice do vetor
o nmero 1, diferente da linguagem C que usa o primeiro ndice como 0.
Pgina 7 de 84
>> c =
4
>> c+1
ans =
>> 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
2.3. Multiplicao
Usa-se o sinal da multiplicao:
>>
c=a*b
c =
20
68
12
-6
68
15
-26
Pgina 8 de 84
-10
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
ans =
1
zeros
Def: Esta funo gera uma matriz cujos valores so nulos
Sintaxe:
zeros(n) Gera uma matriz quadrada cujos termos so nulos
zeros(m,n) Gera ma matriz m x n cujos termos so nulos
Pgina 9 de 84
ans =
0
eye
Def: Gera uma matriz identidade
Sintaxe:
eye(n) Gera uma matriz identidade n x n
eye(m,n) gera uma matriz de ordem m x n cujos termos que
possuem i=j so unitrios .
>>eye(2)
ans =
vander
Def: Calcula a matriz de Vandermonde a partir de um vetor dado
Sintaxe:
Vander(A) Calcula a matriz de Vandermonde a partir de A
A=[1 2 3 4];
>> vander(A)
ans =
1
27
64
16
Pgina 10 de 84
rand(2)
ans =
0.9501
0.6068
0.2311
0.4860
>>A=[1 1; 2 3]
>>A =
1
>> A'
ans =
det
Def: Calcula o determinante de uma matriz
Sintaxe:
det(A) Calcula o determinante da matriz A
Pgina 11 de 84
ans =
1
trace
Def: 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
Def: Determina a matriz inversa dada
Sintaxe:
inv(A) Retorna a soma dos elementos da diagonal principal da matriz
A
>> A = [5 8; 4 9]
A=
>> inv(A)
Pgina 12 de 84
ans =
0.6923 -0.6154
-0.3077
0.3846
eig
Def: Calcula os autovalores e autovetores de uma matriz
Sintaxe:
eig(A) Retorna os autovalores de uma matriz quadrada
[a, b] = eig(A) Retorna em a uma matriz com os autovetores e em b
uma matriz com os autovalores
A =
1
-1
>> [a,b]=eig(A)
a =
0 - 0.4472i
-0.8944
0 + 0.4472i
-0.8944
b =
1.0000 + 2.0000i
0
0
1.0000 - 2.0000i
Pgina 13 de 84
m =
2
n =
2
find
Def: 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 dos elementos no-nulos ma matriz
X.
[row,col] = find(X, ...) Retorna em row uma matriz coluna com os
ndices das linhas dos elementos da matriz e em col a matriz coluna contendo
os ndices correspondentes as 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 e em col a matriz coluna contendo
os ndices que descrevem as colunas dos elementos da matriz X e em v a
matriz contendo os elementos de X.
A=[1 1; 0 3];
>> find(A)
ans =
1
3
4
>> X = [3 2 0; -5 0 7; 0 0 1];
>> [r,c,v] = find(X>2);
>> [r c]
Pgina 14 de 84
>> sort(A)
ans =
1
fliplr
Def: Espelha as colunas de uma matriz
Sintaxe:
fliplr(A) Espelha as colunas da matriz A
A =
1
>> fliplr(A)
ans =
Pgina 15 de 84
flipud
Def: Espelha as linhas de uma matriz
Sintaxe:
flipud(A) Espelha as linhas da matriz A
A =
1
>> flipud(A)
ans =
3
R1
1
V
N
V
V1
10Vdc
R2
5
R4
10
I1
2Adc
Pgina 16 de 84
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.7000
-0.5000
-0.5000
0.6000
>> v=inv(G)*i
v =
9.0909
10.9091
11.0V
10.5V
10.0V
9.5V
9.0V
0s
V(R1:2)
0.1s
0.2s
V(R3:1)
0.3s
0.4s
0.5s
0.6s
0.7s
0.8s
0.9s
1.0s
Time
Pgina 17 de 84
3.1. Declarao
possvel trabalhar com vetores no MATLAB, cuja representao
feita baseando-se numa matriz linha. Por exemplo, para obter o vetor (1,3,8),
basta iniciarmos com:
>> R=[1 3 8]
R =
1
>>A=[8 9 5 7];
>> length(A)
ans =
4
Pgina 18 de 84
>> x = [0 5 1 7];
>> sqrt(0+25+1+49)
% Forma Euclidiana
ans =
8.6603
ans =
8.6603
3.2. Operaes
Quando se deseja calcular o produto vetorial, ou cruzado, de vetores,
utiliza-se a funo cross, apresentada a seguir:
cross
Def: Calcula o produto vetorial entre A e B.
Sintaxe:
C = cross(A,B)
C = cross(A,B,dim)
Pgina 19 de 84
>> a = [1 7 3];
>> b = [5 8 6];
>> c = cross(a,b)
>> d = dot(a,b)
a =
1
b =
Pgina 20 de 84
>> [a,b]=max(A)
a =
b =
sum
Def: Calcula o somatrio dos elementos de um vetor ou o somatrio
das colunas de uma matriz.
Sintaxe:
sum(x) retorna a(o) soma/produto dos elementos de um vetor ou
a(o) soma/produto das colunas de uma matriz
>> sum(A)
prod
Def: Calcula o produtrio dos elementos de um vetor ou o produtrio
das colunas de uma matriz.
Pgina 21 de 84
>> prod(A)
Pgina 22 de 84
Pgina 23 de 84
Funo
log(X)
Descrio
Determina o logaritmo natural de X
log10(X)
log2(X)
exp(X)
Determina a expresso de eX
sqrt(X)
gcd
Def: Determina o mximo divisor comum entre dois parmetros.
Sintaxe:
G = gcd(A,B)
lcm
Def: Determina o mnimo mltiplo comum entre dois parmetros.
Sintaxe:
G = lcm(A,B)
Pgina 24 de 84
factorial
Def: Retorna o fatorial de um argumento.
Sintaxe:
factorial(N)
nchoosek
Def: Desenvolve a fatorao binomial, isto , retorna o nmero de
combinaes de n tomada k a k.
Sintaxe:
C = nchoosek(n,k)
primes
Def: Devolve uma lista com n nmeros primos.
Sintaxe:
p = primes(n)
mod
Def: Calcula o quociente da diviso de dois argumentos.
Sintaxe:
M = mod(X,Y)
rem
Def: Determina o resto da diviso de dois argumentos.
Sintaxe:
R = rem(X,Y)
perms
Def: 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 25 de 84
>> X=2+3i
X =
2.0000 + 3.0000i
>> Y=2+3j
Y =
2.0000 + 3.0000i
Pgina 26 de 84
Descrio
abs(X)
angle(X)
conj(X)
imag(X)
real(X)
Funo
Descrio
cos(X)
sin(X)
tan(X)
sec(X)
csc(X)
cot(X)
>> sind(30)
ans =
0.5000
Pgina 27 de 84
>> atan(1)
ans =
0.7854
>> atand(1)
ans =
45
>> cosh(3)
ans =
10.0677
>> (exp(3)+exp(-3))/2
ans =
10.0677
Prefixo
Sufixo
Descrio
Exemplo
atan
cosd
sinh
Pgina 28 de 84
Pgina 29 de 84
Sintaxe:
ezplot(f) Plota a expresso f ( x) .
>> ezplot('sin(x)')
sin(x)
0.5
-0.5
-1
-6
-4
-2
0
x
plot
Def: 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.
Sintaxe:
plot(X) Se X for real, plota as colunas de X pelos ndices de cada
elemento.
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;
Pgina 30 de 84
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
10
15
20
25
30
35
line
Def: Cria uma linha no grfico atual.
Sintaxe:
line(X,Y) Cria uma linha definida nos vetores X e Y no grfico atual.
line(X,Y,Z) Cria uma linha no espao tridimensional.
>> x=-2:0.01:5;
>> line(x,exp(x))
150
100
50
0
-2
-1
Pgina 31 de 84
>> x=-4:4;
>> y=exp(x);
>> stem(y)
60
50
40
30
20
10
compass
Def: Plota vetores de componentes cartesianas a partir da origem de
um grfico polar.
Sintaxe:
compass(U,V) Plota o vetor de componentes cartesianas U e V
partindo da origem do grfico polar.
>> compass(2,3)
Pgina 32 de 84
90
4
120
60
3
150
30
180
210
330
240
300
270
7
6
5
4
3
2
1
0
1
0.5
0
-0.5
-1
y
-1
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
Pgina 33 de 84
>> t = 0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t)
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
ezsurf
Def: Plota a superfcie de um grfico de uma funo de duas variveis
no domnio padro -2p < x < 2p e -2p < y < 2p .
Sintaxe:
ezsurf(X,Y,Z) Plota a superfcie paramtrica x = x ( s, t ) , y = y ( s, t ) e
Pgina 34 de 84
7
6
5
4
3
2
1
0
6
4
4
0
2
0
-2
-2
-4
-4
-6
-6
meshgrid
Def: Prepara a criao de uma superfcie de um grfico tridimensional.
Sintaxe:
[X,Y] = meshgrid(x,y) Transforma o domnio especificado pelos
vetores x e y em matrizes de vetores X e Y, as quais podem ser usadas para
preparar a plotagem de superfcie de um grfico tridimensional de uma funo
de duas variveis.
surf
Def: Plota a superfcie de um grfico de uma funo de duas variveis
cujo domnio determinado pelo usurio.
Sintaxe:
surf(X,Y,Z) Plota a superfcie paramtrica de z em funo de x e y.
>> surf(X,Y,Z)
Pgina 35 de 84
0.5
0.4
0.3
0.2
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.5
2
1.5
1
2
1.5
0.5
0.5
-0.5
0
-0.5
-1
-1
-1.5
-2
-1.5
-2
5.3. Configurao
Title
Def: D um ttulo ao grfico
Sintaxe:
Title(string) D o ttulo string ao grfico atual.
>> compass(2,3)
>> title('Grfico Polar')
Grfico Polar
90
4
120
60
3
150
30
180
210
330
240
300
270
Pgina 36 de 84
>> t = 0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t)
>> axis([-1.5 1.5 -1.5 1.5 -1 34])
30
25
20
15
10
5
0
1.5
1
1.5
0.5
1
0
0.5
0
-0.5
-0.5
-1
-1
-1.5
-1.5
grid
Def: Adiciona ou remove as linhas de grade em um grfico.
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(sin(t),cos(t),t)
>> grid on
Pgina 37 de 84
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
Hold
Def: Determina se objetos so adicionados ao grfico ou se substituem
o existente.
Sintaxe:
Hold on Adiciona objetos no mesmo grfico
Hold off Substitui os objetos existentes em um grfico pelos atuais.
>> x=-6:0.01:6;
>> y=sin(x);
>> plot(x,y)
>> hold on
>> t=-6:0.01:2;
>> k=exp(t);
>> plot(t,k)
Pgina 38 de 84
-1
-6
-4
-2
Legend
Def: Adiciona uma legenda ao grfico.
Sintaxe:
Legend(string1,string2) Adiciona as legendas string1 e string2 ao
grfico atual.
>> x=-6:0.01:6;
>> y=sin(x);
>> plot(x,y)
>> hold on
>> t=-6:0.01:2;
>> k=exp(t);
>> plot(t,k)
>> legend('Grfico 1: y=sen(x)','Grfico 2: y=exp(x)')
Pgina 39 de 84
8
Grfico 1: y=sen(x)
Grfico 2: y=exp(x)
7
-1
-6
-4
-2
>> t = 0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t)
>> xlabel('x=sin(t)')
>> ylabel('y=cos(t)')
>> zlabel('z=t')
Pgina 40 de 84
35
30
25
z=t
20
15
10
5
0
1
0.5
0
-0.5
-1
y=cos(t)
-1
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
x=sin(t)
>> t = 0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t)
>> xlim([-1.5 1.5])
>> ylim([-1.5 1.5])
>> zlim([-1 34])
Pgina 41 de 84
30
25
20
15
10
5
0
1.5
1
1.5
0.5
1
0
0.5
0
-0.5
-0.5
-1
-1
-1.5
-1.5
figure
Def: Cria uma nova janela para plotar grficos.
Sintaxe:
figure
figure('PropertyName',propertyvalue,...)
figure(h)
h = figure(...)
subplot
Def: Divide a janela do grfico em uma matriz definida pelo usurio,
podendo trabalhar com qualquer um.
Sintaxe:
h = subplot(m,n,p) or subplot(mnp) divide em m linhas, n colunas,
plotando o grfico na posio p. Caso tenha uma matriz retangular, a contagem
inicia-se no sentido anti-horrio do grfico superior esquerdo.
subplot(m,n,p,'replace')
subplot(m,n,p,'v6') subplot(h)
subplot('Position',[left bottom width height])
h = subplot(...)
Pgina 42 de 84
sin(x)
1
0.5
-0.5
-1
-6
-4
-2
0
x
exp(x)
250
200
150
100
50
0
-4
-3
-2
-1
Pgina 43 de 84
aviobj=avifile('Filme Seno.avi','fps',50);
hold on;
grid on;
x=-4*pi:0.1:4*pi;
for k=1:1:size(x,2)-1
xx=[x(k) x(k+1)];
yy=[sin(x(k)) sin(x(k+1))];
h=plot(xx,yy);
set(h,'EraseMode','xor');
axis ([-10 10 -1.5 1.5]);
frame=getframe(gca);
aviobj=addframe(aviobj,frame);
end
aviobj=close(aviobj);
Pgina 44 de 84
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 45 de 84
Pgina 46 de 84
y=3;w=30;
syms a b n t x z
f = x^n+y; g = sin(a*t + b)-cosd(w);
Definio
collect
expand
horner
factor
simplify
expresso:
x ( x ( x - 6 ) + 11) - 6
>> syms x
>> collect(x*(x*(x-6)+11)-6)
ans =
-6+x^3-6*x^2+11*x
Pgina 48 de 84
7.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 x3 - 9 x 2 + x +
representado como p=[5 -9 8/5 4/7]. bom
5
7
lembrar que o seu polinmio pode ter elementos irracionais como, por exemplo,
2 ou p .
As principais funes destinadas para os polinmios so descritas a
seguir.
poly
Def: 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
>> z=poly(y)
%z o polinmio (x+2)(x+1)=x+3x+2
z =
A =
%Declara matriz
Pgina 49 de 84
-2
11
-1
>> poly(A)
%calcula
seu
polinmio
caracterstico
ans =
1.0000
2.0000 -106.0000
-5.0000
roots
Def: Retorna um vetor coluna com a(s) raiz(es) do polinmio fornecido.
Sintaxe:
r = roots(c)
>> c=[1 3 2]
% x+3x+2
c =
>> x=roots(c)
e -1
%Observe a oposio entre as funes roots e poly
x =
-2
-1
polyval
Def: 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.
Pgina 50 de 84
%polinmio=x4+5x3-2x+8x+3.2
polinomio =
1.0000
5.0000
-2.0000
8.0000
3.2000
a =
1.0000
-1.0000
3.0000
2.8300
>> valores=polyval(polinomio,a)
valores =
15.2000
-10.8000
225.2000
187.2906
polyfit
Def: 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)
Pgina 51 de 84
dsolve
Def: 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')
Pgina 52 de 84
dx
= -ax .
dt
dx
= -ax .
dt
Exerccio 12- Eu tinha o triplo da idade que tu tinhas, quando eu tinha a idade
que tu tens. Quando tu tiveres a minha idade, a diferena de nossas idades
ser de duas dcadas. Determine nossas idades utilizando a funo solve.
Exerccio 13- 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 no instante
, sabendo que este carro parte, no instante 0, do ponto 1, sendo que o
motorista parou instantaneamente enquanto estava em
p
. Considere todas as
2
unidades no S.I.
Pgina 53 de 84
8.1. Limites
limit
Def: Determina o limite de uma expresso simblica
Sintaxe:
limit(F,x,a) calcula o limite de uma expresso simblica F com x
tendendo a a;
limit(F,a) determina o limite de F com uma varivel simblica
tendendo a a;
limit(F) determina o limite com a = 0 como default;
limit(F,x,a,'right') calcula o limite com x tendendo a a pela direita;
limit(F,x,a,'left') calcula o limite com x tendendo a a pela esquerda;
x2 -1
x2 -1
>> limit('(abs(x^2)-1)/(x^2-1)',x,1,'right')
8.2. Diferenciao
diff
Def: 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 54 de 84
>> 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)
8.3. Integrao
int
Def: Calcula integral de uma funo simblica dada.
Sintaxe:
int(S) integrao indefinida a funo S em respeito a uma varivel
simblica j definida;
int(S,a,b) integra de forma definida a funo S de a a b;
int(S,v,a,b) integra de a a b em funo de uma varivel v;
Definida de 2 a 5
Pgina 55 de 84
5/2*30^(1/2)+5/2*log(5^(1/2)+6^(1/2))-3-5/4*log(5)
>> eval(g)
f ( x)dx =
b-a
( f ( x0 ) + 2 f ( x1 ) + ... + 2 f ( xn-1 ) + f ( xn ) )
2n
definida abaixo:
trapz
Def: Determina a integrao de uma funo a partir da Regra do
Trapzio.
Sintaxe:
Z = trapz(Y)
Z = trapz(X,Y)
Pgina 56 de 84
f ( x)dx
b-a
[ f ( x0 ) + 4 f ( x1 ) + 2 f ( x2 ) + 4 f ( x3 ) + ... + 2 f ( xn-2 ) + 4 f ( xn-1 ) + f ( xn )]
3n
bom destacar que fun deve ser uma funo do tipo arquivo.m. Por
exemplo, para calcular a integral de y = e - x no intervalo de 0 a 3, faz-se o
2
seguinte:
Primeiro se cria o arquivo.m correspondente a funo que deseja
integrar, ou seja:
function y=funcao(x)
y=exp(-x^2);
>> quad('funcao',0,3)
ans =
0.8862
Pgina 57 de 84
U, V e W. X, Y e Z definem os limites de U, V e W,
respectivamente.
div = divergence(X,Y,U,V) calcula agora para 2D.
div = divergence(U,V,W) usa como default para X, Y e Z o valor de
meshgrid(1:n,1:m,1:p).
>> [x,y,z]=meshgrid(-1:0.3:1);
>> V=(18e-12)./(4.*pi.*8.85e-12.*sqrt(x.^2+y.^2+z.^2));
>> [px,py,pz]=gradient(V,0.3,0.3,0.3);
>> Ex=(-1).*px;
>> Ey=(-1).*py;
>> Ez=(-1).*pz;
>> quiver3(x,y,z,Ex,Ey,Ez)
>> axis([-1 1 -1 1 -1 1])
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
Pgina 59 de 84
9. SRIES NUMRICAS
9.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
Def: Determina o somatrio simblico de uma expresso.
Sintaxe:
r = symsum(s) encontra o somatrio da funo s em funo de uma
varivel simblica pr-definida.
r = symsum(s,v) fornece o somatrio em funo da varivel v.
r = symsum(s,a,b) determina o somatrio de s variando a incgnita
de a at b.
r = symsum(s,v,a,b) determina o somatrio de s variando a incgnita
v de a at b.
x -1
a)
x2
0
b)
( 2n - 1)
Pgina 60 de 84
10.1. Definio
O M-File uma ferramenta do MATLAB que auxilia a criao de
funes. Atravs dela podemos definir o nome da funo, suas entradas e
sadas. Para criar um novo M-file deve-se clicar em File New M-File. A
declarao inicial a seguinte:
function [saida1, saida2, ...] = nome(entrada1, entrada2, ...)
%declarao do cdigo
...
Exemplo:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%
%
Funo exemplo
%
%
%
%
%
%
%
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%
entrada
5 -8 4 1 6]
A =
2
-8
12
>> [x,y]=funcao(A)
x =
4
10
-16
y =
2
10.2. Organizao
Para uma melhor organizao podemos fazer comentrios utilizando o
smbolo %, ou selecionando o texto inteiro e teclando Crtl+R, ou %{ para
abrir o comentrio por bloco e %} para fechar.
Podemos ainda utilizar o smbolo %% para que, no mesmo M-File, o
usurio possa rodar apenas algumas partes do programa. Para rodar somente
a parte selecionada, tecle Ctrl+Enter e para rodar o programa inteiro clique em
F5 ou em:
Exemplo:
Pgina 62 de 84
Pgina 63 de 84
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
Def: Escreve no command window um texto ou o valor de um vetor,
sem escrever seu nome.
Sintaxe:
Pgina 64 de 84
X = input('Entre um nmero\n')
num = 10*X
Command Window:
Entre um nmero
23
X =
23
num =
230
break
Def: 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 65 de 84
for i = 0:3
if i == 1 && i == 2
continue
end
i = i + 1
end
Command Window:
i =
1
i =
4
Operadores Lgicos
Def: Operadores lgicos
Entradas
A
and
or
not
Xor
A&
~A
Xor(A,B)
|B
Pgina 66 de 84
Pgina 67 de 84
x ( t ) x (a t + b )
a < 1 Expanso
a > 1 Compresso
a < 0 Reflexo
b 0 Deslocamento
Deslocamento no tempo:
clear, clc, clf
x=-2:6;
y=2*x;
n0=input('n0= ');
subplot(2,1,1),stem(x,y), grid on, xlim([-20 20])
hold on
xnovo=x+n0;
subplot(2,1,2),stem(xnovo,y);grid on, xlim([-20 20])
hold off
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 68 de 84
Reflexo
clear, clc, clf
x=-2:8;
y=x;
subplot(2,1,1),stem(x,y), grid on, xlim([-20 20])
hold on
xl=-x;
subplot(2,1,2),stem(xl,y);grid on, xlim([-20 20])
hold off
-2
-20
-15
-10
-5
10
15
20
-15
-10
-5
10
15
20
-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 20])
hold on
xl=x/a;
subplot(2,1,2),stem(xl,y);grid on, xlim([-20 20])
hold off
Pgina 69 de 84
-15
-10
-5
10
15
20
-15
-10
-5
10
15
20
12
10
8
6
4
2
0
-2
-4
-20
Impulso:
0, n 0
d [ n] =
1, n = 0
0, t 0
d (t ) =
1, t = 0
Command Window:
>> x=-2:7;
>> y=impulso(x,3);
>> stem(x,y)
Pgina 70 de 84
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
Command Window:
>> n=-2:7;
>> y=degrau(n,3);
>> stem(n,y)
Pgina 71 de 84
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-2
-1
Exerccio: Determine:
a) y [ n ] = u [ n + 10] - 2u [ n + 5] + u [ n - 6]
>> n=-20:20;
>> y=degrau(n,-10)-2*degrau(n,-5)+degrau(n,6);
>> stem(n,y)
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
-20
-15
-10
-5
10
15
20
Pgina 72 de 84
1
b) y [ n ] = u [ n - 3]
2
>> n=-20:20;
>> y=((1/2).^(n)).*degrau(n,3);
>> stem(n,y)
0.14
0.12
0.1
0.08
0.06
0.04
0.02
0
-20
-15
-10
-5
10
15
20
10
15
20
1
c) y [ n ] = cos p n u [ n + 4]
2
>> n=-20:20;
>> y=cos(0.5*pi*n).*degrau(n,-4);
>> stem(n,y)
1
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
-20
-15
-10
-5
Pgina 73 de 84
0
-20
-15
-10
-5
10
15
20
n
e) y [ n ] = sinc
2
>> x=-20:1:20;
>> y=sinc(x/2);
>> stem(x,y)
0.8
0.6
0.4
0.2
-0.2
-0.4
-20
-15
-10
-5
10
15
20
Pgina 74 de 84
>> x=-10:10;
>> y=dirac(x-5);
%Impulso no instante 5
>> stem(x,y)
heaviside
Def: Determina a funo degrau no intervalo determinado por x.
Sintaxe:
dirac(x)
>> x=-10:10;
>> y=dirac(x-5);
%Impulso no instante 5
>> stem(x,y)
>> syms x
>> diff(heaviside(x),x)
ans =
dirac(x)
Pgina 75 de 84
h=[1,2,1];
x=[2,3,-2];
y=conv(x,y)
Pgina 76 de 84
12
resposta
de
um
sistema
com
entrada
h=ones(1,10);
x=ones(1,5);
n=2:15;
y=conv(x,h);
stem(n,y);
Exerccio 17- 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]} .
F (w ) =
S (t )e
- jwt
dt
1
S (t ) =
2p
F (w )e
jwt
dw
Resoluo:
Clculo da resposta ao impulso:
Lei dos ns:
i = iR + iC
dV
dt
Em t=0, i = d (t ) e iR = 0
i = iR + C
1
dV
1
d (t ) =
V (0) = V (0+ ) =
C
dt
C
Em t = 0+ , i (0+ ) = 0
V
dV
1 -t
Re soluoequao 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 ) = -
1 - t 12
e A
12
Pgina 80 de 84
0 12 e
-
t
iC (t ) = y (t ) =
-t
-t
e 12 -11l 12
e 12 - e-t
=e
d
l
=
12 0
11
t
%amostragem
x=exp(-n);
%definio da entrada
h=-exp(-n/12)/12;
%definio da sada
fftx=fft(x);
%clculo da fft
ffth=fft(h);
ffty=fftx.*ffth;
%multiplicao
y=ifft(ffty);
%inversa
plot(n,-abs(y)*0.08)
title('Convoluo');
xlabel('t(s)');
ylabel('i(A)');
Convoluo
0
-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 19- Calcule a convoluo das formas de onda
h(t ) = cos(2.5t ) - t
Pgina 81 de 84
jwt
. Na
B( z )
A( z )
H ( z) =
b0 + b1 z -1 + b2 z -2 + ... + bn z -n
a0 + a1 z -1 + a2 z -2 + ... + an z -n
Butter
Def: Determina os coeficientes de um filtro Butterworth. Esse filtro pode
ser passa baixa, passa alta, passa banda, rejeita banda.
Sintaxe:
[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
Def: Calcula os valores de uma funo complexa H(z)
Sintaxe:
Freqz(B,A,n) Utiliza 3 argumentos de entrada. O primeiro um vetor
contendo os coeficientes do polinmio B(z) da Equao (1). O segundo um
vetor contendo os coeficientes do polinmio A(z). O terceiro para especificar
o nmero de valores de freqncias normalizadas que se quer no intervalo de 0
a p.
Exemplo 14
Pgina 82 de 84
fs=200;
% Freqncia de amostragem
t=0:1/fs:1;
% 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
% Filtragem
figure(2)
y=filter(B,A,x);
plot(t,y,'k-')
title('Sinal de Entrada')
xlabel('tempo (s)')
ylabel('amplitude')
Pgina 83 de 84
[1]
numerical methods. John Wiley & Sons, Inc. Nova Iorque 1969.
[2]
[3]
[4]
[5]
[6]
Pgina 84 de 84