Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de
Fortaleza CE
Agosto / 2010
Pgina 1 de 114
Pgina 2 de 114
3. FORMATAO ....................................................................................................................... 9
4. MATRIZES ............................................................................................................................. 10
4.1.
DECLARAO .......................................................................................................... 10
4.2.
SOMA ...................................................................................................................... 10
4.3.
MULTIPLICAO ....................................................................................................... 11
4.4.
4.5.
4.6.
5. VETORES .............................................................................................................................. 22
5.1.
DECLARAO .......................................................................................................... 22
5.2.
OPERAES ............................................................................................................ 23
5.3.
6. M-FILE ................................................................................................................................... 30
6.1.
DEFINIO............................................................................................................... 30
6.2.
ORGANIZAO ......................................................................................................... 31
6.3.
7.2.
7.3.
7.4.
FUNES TRIGONOMTRICAS................................................................................... 40
7.5.
8. GRFICOS ............................................................................................................................ 44
8.1.
8.2.
8.3.
CONFIGURAO ....................................................................................................... 52
EXPRESSES NUMRICAS.................................................................................... 67
10.2.
POLINMIOS ........................................................................................................ 68
10.3.
LIMITES ............................................................................................................... 73
11.2.
DIFERENCIAO .................................................................................................. 73
11.3.
INTEGRAO ....................................................................................................... 74
Pgina 3 de 114
11.5.
11.6.
11.7.
11.8.
SOMATRIO ........................................................................................................ 80
12.2.
13.2.
13.3.
CONVOLUO ..................................................................................................... 90
13.4.
13.5.
13.6.
14.2.
14.3.
14.4.
Pgina 4 de 114
Pgina 5 de 114
Pgina 6 de 114
Pgina 7 de 114
Pgina 8 de 114
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 +
Format rat
355/113
Aproximao racional
Format hex
400921fb54442d18
Formato hexadecimal
Pgina 9 de 114
4.1. Declarao
A declarao de matrizes feita da seguinte maneira:
>> a = [1:10]
>> b = [0:0.5:3]
10]
13
10
11
12
15
14
>>A(1,2);
>>A(:,3);
%Elementos da coluna 3
>>A(1,:);
%Elementos da linha 1
3; 4 5];
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
>> 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
4.3. Multiplicao
Usa-se o sinal da multiplicao:
>>
c=a*b
c =
20
68
12
-6
68
15
-26
-10
Pgina 11 de 114
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-
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
zeros
eye
>>eye(2)
ans =
1
vander
Pgina 13 de 114
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
>> A'
ans =
Pgina 14 de 114
det
matriz
Definio: Calcula o determinante de uma matriz.
Sintaxe:
det(A) Calcula o determinante da matriz A.
>>det(A)
ans =
1
trace
A =
1
>> trace(A)
ans =
2
inv
>> inv(A)
ans =
Pgina 15 de 114
-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.
-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
Pgina 16 de 114
find
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
Pgina 17 de 114
>> sort(A)
ans =
1
fliplr
>> fliplr(A)
ans =
2
flipud
Pgina 18 de 114
>> flipud(A)
ans =
3
Exerccio 3-
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
D = [ 4 1 0]
Pgina 19 de 114
R1
1
V1
10Vdc
R2
5
R4
10
I1
2Adc
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.5000
0.5000
0.6000
>> v=inv(G)*i
v =
9.0909
10.9091
Pgina 20 de 114
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
Pgina 21 de 114
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
ans =
4
Pgina 22 de 114
>> sqrt(0+25+1+49)
% Forma Euclidiana
ans =
8.6603
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
Pgina 23 de 114
b =
max
>> [a,b]=max(A)
a =
2
b =
sum
>> sum(A)
ans =
3
prod
>> prod(A)
ans =
2
16
Pgina 25 de 114
Exerccio 6-
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
Pgina 26 de 114
pol2cart
Pgina 27 de 114
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
Pgina 28 de 114
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
Pgina 29 de 114
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);
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
IF
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
Pgina 33 de 114
input
X = input('Entre um nmero\n')
nmero
num = 10*X
Command Window:
Entre um nmero
23
X =
23
num =
230
break
for i = 0:5
if i == 1
break
end
i = i + 1
end
Command Window:
i =
0
i =
1
Pgina 34 de 114
for i = 0:3
if i == 1 && i == 2
continue
end
i = i + 1
end
Command Window:
i =
1
i =
4
Operadores Lgicos
Entradas
and
or
not
xor
A&B
A|B
~A
xor(A,B)
Funes em M-File
Pgina 35 de 114
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
>> 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
Funo
log(X)
Descrio
Determina o logaritmo natural de X
log10(X)
log2(X)
exp(X)
Determina a expresso de eX
sqrt(X)
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
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
>> a=5+8i
a =
5.0000 + 8.0000i
.0000i
>> a=5+8j
a =
5.0000 + 8.0000i
.0000i
Pgina 39 de 114
Funo
abs(X)
angle(X)
Descrio
Retorna o mdulo do nmero complexo X
Retorna a fase do complexo X
conj(X)
imag(X)
real(X)
Exerccio 7-
complexo 9e (5+3i ) .
Funo
Descrio
cos(X)
sin(X)
tan(X)
sec(X)
csc(X)
cot(X)
Pgina 40 de 114
>> atan(1)
ans =
0.7854
>> atand(1)
ans =
45
>> cosh(3)
ans =
10.0677
>> (exp(3)+exp(-3))/2
(exp(3)+exp(
ans =
10.0677
Pgina 41 de 114
Prefixo
Sufixo
Descrio
Exemplo
atan
cosd
sinh
Pgina 42 de 114
fix
Pgina 43 de 114
sin(x)
0.5
-0.5
-1
-6
-4
-2
0
x
plot
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
10
15
20
25
30
35
line
Pgina 45 de 114
150
100
50
0
-2
-1
stem
>> x=-4:4;
>> y=exp(x);
>> stem(y)
Pgina 46 de 114
60
50
40
30
20
10
compass
>> compass(2,3)
Pgina 47 de 114
90
120
60
3
150
30
180
210
330
240
300
270
Pgina 48 de 114
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
plot3
>> t = 0:pi/50:10*pi;
>> plot3(cos(t),sin(t),t)
Pgina 49 de 114
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
Pgina 50 de 114
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
meshgrid
>> [X,Y]=meshgrid(-6:0.1:6,-6:0.1:6);
[X,Y]=meshgrid(
>> Z=1./(sqrt(X.^2+Y.^2));
surf
Pgina 51 de 114
10
6
4
-2
-2
-4
-4
-6
Figura 17 Superfcie
-6
1
x2 + y2
8.3. Configurao
text
Pgina 52 de 114
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
Pgina 53 de 114
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
>> 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
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
grid
Pgina 55 de 114
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
Pgina 56 de 114
-1
-6
-4
-2
legend
>> 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
8
Grfico 1: y=sen(x)
Grfico 2: y=exp(x)
7
-1
-6
-4
-2
Pgina 58 de 114
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.
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
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
figure
Pgina 60 de 114
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
Exerccio 8-
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
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
Pgina 63 de 114
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:
Pgina 64 de 114
y=3;w=30;
syms a b n t x z
f = x^n+y; g = sin(a*t + b)-cosd(w);
b)
y=3;w=30;
syms a b n t x z
f = x^n+y; g = sin(a*t + b)-cosd(w);
b)
Pgina 65 de 114
Pgina 66 de 114
Funo
Definio
collect
expand
horner
factor
simplify
compose
finverse
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
Pgina 67 de 114
(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
y =
-2
-1
>> z=poly(y)
%z o polinmio
mio (x+2)(x+1)=x+3x+2
z =
%Declara matriz
1
-2
2
11
-1
>> poly(A)
Pgina 68 de 114
2.0000 -106.0000
-5.0000
roots
>> c=[1 3 2]
% 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
%polinmio=x4+5x3-2x+8x+3.2
polinomio =
1.0000
5.0000
-2.0000
8.0000
3.2000
-1.0000
1.0000
3.0000
2.8300
>> valores=polyval(polinomio,a)
Pgina 69 de 114
-10.8000
10.8000
225.2000
187.2906
polyfit
Pgina 70 de 114
dx
= ax .
dt
Pgina 71 de 114
Pgina 72 de 114
11.1. Limites
limit
x2 1
x2 1
>> limit('(abs(x^2)-1)/(x^2-1)',x,1,'right')
limit('(abs(x^2)
11.2. Diferenciao
diff
>> 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
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
>> pretty(f)
>> eval(g)
f ( x ) dx =
ba
( f ( x0 ) + 2 f ( x1 ) + ... + 2 f ( xn1 ) + f ( xn ) )
2n
Pgina 75 de 114
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
function y=funcao(x)
y=exp(-x^2);
>> quad('funcao',0,3)
ans =
0.8862
Pgina 76 de 114
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
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
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 79 de 114
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
a)
x 1
x2
b)
( 2n 1)
P ( x ) = ( x x0 )
n =0
f(
n)
( x0 )
n!
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)
8,2 .
Pgina 81 de 114
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
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
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
Impulso:
0, n 0
[ n] =
1, n = 0
0, t 0
1, t = 0
(t ) =
Command Window:
Window
>> x=-2:7;
>> y=impulso(x,3);
>> stem(x,y)
Pgina 84 de 114
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
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
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
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
0.8
0.6
0.4
0.2
-0.2
-0.4
-20
-15
-10
-5
10
15
20
Sintaxe:
dirac(x)
>> x=-10:10;
>> y=dirac(x-5);
5);
%Impulso no instante 5
>> stem(x,y)
heaviside
>> 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)
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
Sintaxe:
w = conv(u,v)
h=[1,2,1];
x=[2,3,-2];
y=conv(x,y)
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);
Pgina 91 de 114
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.
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
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.
Pgina 93 de 114
F ( ) =
S (t )e
jt
dt
1
S (t ) =
2
F ( )e
jt
Pgina 94 de 114
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 ) =
1 t 12
e A
12
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
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
jwt
. Na
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
Sintaxe:
Pgina 96 de 114
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
% 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
Pgina 97 de 114
% Filtragem
figure(2)
y=filter(B,A,x);
plot(t,y,'k-')
title('Sinal de Entrada')
xlabel('tempo (s)')
ylabel('amplitude')
Pgina 98 de 114
Pgina 99 de 114
ODE23t Implementao
Implementao do mtodo trapezoidal utilizando uma
interpolao
livre.
Usar
quando
se
quer
uma
soluo
sem
amortecimento.
Sistema Massa-Mola
Massa
v = a.dt
x = v.dt
, onde
e x o deslocamento do bloco.
kx = m
d 2x
dt 2
a=
d 2x
k
= x , foi achada ento uma relao entre a acelerao do
2
dt
m
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:
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
Amortizao de Financiamento
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:
numerical methods.. John Wiley & Sons, Inc. Nova Iorque 1969.
[2]