Professional Documents
Culture Documents
Anlise de Dados
Variveis Aleatrias
Gerao de Nmeros Aleatrios
Mximos e mnimos
Somas e Produtos
Anlise Estatstica
Variveis Aleatrias
Varivel Aleatria:
Entidade matemtica que representa os
possveis valores que uma determinada
medida pode assumir para cada medio, ou
observao
Varivel Aleatria Contnua: podem assumir
qualquer valor em um intervalo contnuo
Varivel Aleatria Discreta: s pode assumir
alguns valores de um conjunto discreto
Anlise de Dados
Interpolao
Regresso e Ajuste de Curvas
Integrao e Diferenciao
Minimizao de Funes
Processamento Simblico
Variveis Aleatrias
Muitas medies (seno todas) tm um
elemento de aleatoriedade
Estatstica: ramo da Matemtica Aplicada
que envolve anlise, interpretao e
apresentao de dados que incluem
algum grau de aleatoriedade ou incerteza
Estatstica Descritiva: resume ou
descreve as caractersticas mais
importantes de um conjunto de dados
Variveis Aleatrias
Populao: todos os possveis valores
que uma varivel aleatria pode assumir
Amostra: Conjunto finito de medidas ou
observaes.
Assumindo que foram feitas N observaes
de uma varivel aleatria, esta amostra pode
ser representada por um vetor x, com
elementos x(n), n = 1, ..., N
Variveis Aleatrias
Distribuio de Freqncia:
Indica as freqncias relativas com que os
possveis valores da varivel aleatria
ocorrem na populao
Caso discreto: Funo Distribuio de
Probabilidades (PDF)
x pode assumir os valores {X1, X2, ..., Xm}
PDF de Xk:
PDF ( X k ) = P(x = X k )
Variveis Aleatrias
Distribuio de Freqncia:
Indica as freqncias relativas com que os
possveis valores da varivel aleatria ocorrem
na populao
Caso contnuo: Funo Densidade de
Probabilidades (pdf)
x pode assumir qualquer valor no intervalo [-8 ,+8 ]
pdf de X: uma funo f(X) tal que
P( X 1 x X 2 ) =
X2
f ( X )dX
f ( X ) 0, X
Distribuio Uniforme
Distribuio Normal
f ( X )dX = 1
X1
Xmin
Xmax
Matlab:
s = rand(state): retorna um vetor de estado, com
35 elementos que caracterizam o gerador de
nmeros aleatrios
rand(state,s): coloca o estado do gerador em s
rand(state,0): coloca o gerador em seu estado
inicial
rand(state,N): coloca o gerador em seu N-simo
estado
rand(state,sum(100*clock)): coloca o gerador em
um estado diferente a cada instante
>>
>>
>>
>>
>>
rand('state',0)
set1 = rand(10,1);
rand('state', 123)
set2 = rand(10,1);
[set1 set2]
ans =
0.9501
0.2311
0.6068
0.4860
0.8913
0.7621
0.4565
0.0185
0.8214
0.4447
0.0697
0.2332
0.7374
0.7585
0.6368
0.6129
0.3081
0.2856
0.0781
0.9532
data1 = 2*rand(1,500) + 2;
data2 = rand(1,500)+3;
subplot(2,1,1), plot(data1),
subplot(2,1,2), plot(data2),
[2,4]
[3,4]
axis([0 500 0 6])
axis([0 500 0 6])
Distribuio Normal:
1
2
( x )2
2 2
Representao: N(,)
Funo randn
Na verdade, so seqncias pseudoaleatrias
A partir de uma semente, gera-se uma
seqncia
A mesma semente gerar a mesma seqncia!
randn('state',0)
set3 = randn(10,1);
randn('state', 123)
set4 = randn(10,1);
[set3 set4]
ans =
-0.4326
-1.6656
0.1253
0.2877
-1.1465
1.1909
1.1892
-0.0376
0.3273
0.1746
1.6056
-0.0416
1.2127
0.4977
-0.9253
0.6648
0.0013
-0.8141
-0.7747
-1.2441
>>
>>
>>
>>
data3 = randn(1,500) + 3;
[3,1]
data4 = randn(1,500)*3 + 1;
[1,3]
subplot(2,1,1),plot(data3),axis([0 500 -10 10])
subplot(2,1,2),plot(data4),axis([0 500 -10 10])
Mximos e mnimos
Funes max e min
Funcionalidades ligeiramente diferentes de
acordo com os argumentos
max(x), x=vetor: maior elemento de x
max(X), X=matriz: vetor com o maior elemento
de cada coluna de x
max(X,Y), X,Y=vetor ou matriz: vetor ou matriz
com mesmas dimenses, onde cada elemento
o mximo entre os elementos correspondentes
de X e Y
Mximos e mnimos
Funes max e min
No exemplo anterior:
Mximos e mnimos
Funes max e min
No exemplo anterior: ans =
>> max(set1)
ans =
0.95010000000000
>> max(set1)
ans =
0.95010000000000
>> max(set1,set2)
0.95320000000000
>> max(set1,set2)
0.95010000000000
0.23320000000000
0.73740000000000
0.75850000000000
0.89130000000000
0.76210000000000
0.45650000000000
0.95320000000000
0.28560000000000
0.82140000000000
0.95320000000000
Anlise de Dados
Variveis Aleatrias
Gerao de Nmeros Aleatrios
Mximos e mnimos
Somas e Produtos
Anlise Estatstica
Mximos e mnimos
Funes max e min
No exemplo anterior:
Mximos e mnimos
Funes max e min
min(x), x=vetor: menor elemento de x
min(X), X=matriz: vetor com o menor
elemento de cada coluna de x
min(X,Y), X,Y=vetor ou matriz: vetor ou
matriz com mesmas dimenses, onde cada
elemento o mnimo entre os elementos
correspondentes de X e Y
Mximos e mnimos
Funes max e min
No exemplo anterior: ans =
>> min(set1)
ans =
0.01850000000000
>> min(set1)
ans =
0.01850000000000
0.06970000000000
>> min(set1,set2)
Mximos e mnimos
Funes max e min: sintaxes alternativas
[y,k] = max(x)
y: maior elemento de x
k: ndice do primeiro maior elemento de x
[y,k] = min(x)
y: menor elemento de x
k: ndice do primeiro menor elemento de x
>> min(set1,set2)
0.06970000000000
0.23110000000000
0.60680000000000
0.48600000000000
0.63680000000000
0.61290000000000
0.30810000000000
0.06970000000000
0.01850000000000
0.07810000000000
0.44470000000000
Mximos e mnimos
Funes max e min: sintaxes alternativas
Exemplo:
>> v = [3 -2 4 -1 5 0];
>> max(v)
ans =
5
>> [vmin, kmin] = min(v)
vmin =
-2
kmin =
2
Anlise de Dados
Somas e Produtos
Variveis Aleatrias
Gerao de Nmeros Aleatrios
Mximos e mnimos
Somas e Produtos
Anlise Estatstica
sum( x ) =
x[k ]
N
k =1
prod (x ) = x[k ]
N
k =1
Somas e Produtos
Somas e Produtos
y[n] = cumsum(x[n]) =
x[k ]
n
k =1
k =1
Somas e Produtos
Exemplo:
Matlab:
>> N = 8;
>> k =1:N;
>> S = sum(k)
S =
36
>> N *(N+1)/2
ans =
36
k =
k =1
N (N + 1)
2
Somas e Produtos
Soma dos Termos
de uma P.G.
Exemplo:
n!= n (n 1) (n 2)L 2 1
Fatorial de n
Matlab:
>> nfact4 = prod(1:4)
nfact4 =
24
>> nfact70 = prod(1:70)
nfact70 =
1.1979e+100
Anlise de Dados
Anlise Estatstica
Variveis Aleatrias
Gerao de Nmeros Aleatrios
Mximos e mnimos
Somas e Produtos
Anlise Estatstica
Distribuio de Freqncia:
Indica as freqncias relativas com que os
possveis valores da varivel aleatria
ocorrem na populao
Caso discreto: Aproximao da PDF
x pode assumir os valores {X1, X2, ..., Xm}
N observaes de x
N = N (X1 ) + N (X 2 ) + L + N (X m )
Freqncia Relativa de Xk:
Anlise Estatstica
Anlise Estatstica
Distribuio de Freqncia:
N (X k )
~
PDF ( X k ) =
N
Anlise Estatstica
Matlab: funes hist() e bar()
N = hist(x,xc): calcula automaticamente e
retorna no vetor N o histograma dos dados
contidos no vetor x, com o vetor xc definindo
os centros das bins
[N,xc] = hist(...): calcula automaticamente e
retorna no vetor N o histograma dos dados
contidos no vetor x, e no vetor xc o centros
das bins
Anlise Estatstica
Matlab: exemplo
subplot(2,1,1)
hist(data1)
title('Histograma de data1 U(2,4)')
xlabel('x'), ylabel('N')
subplot(2,1,2)
hist(data3)
title('Histograma de data3 N(3,1)')
xlabel('x'), ylabel('N')
Anlise Estatstica
Anlise Estatstica
Matlab: exemplo
subplot(2,1,1)
hist(data1,25)
title('Histograma de data1 U(2,4)')
xlabel('x'), ylabel('N')
subplot(2,1,2)
hist(data3,25)
title('Histograma de data3 N(3,1)')
xlabel('x'), ylabel('N')
Anlise Estatstica
Anlise Estatstica
Matlab: funes hist() e bar()
hist(): s calcula as freqncias absolutas!
Caso se deseje trabalhar com as freqncias
relativas, deve-se utilizar a funo bar() em
combinao com a funo hist()
hist(): usada para calcular o histograma de
freqncias absolutas
bar(): usada para exibir o histograma de
freqncias relativas
Anlise Estatstica
Matlab: freqncia relativa
n1 = length(data1);
[freq1,x1] = hist(data1,25);
rfreq1 = freq1/n1;
n3 = length(data3);
[freq3,x3] = hist(data3,25);
rfreq3 = freq3/n3;
Anlise Estatstica
Matlab: freqncia relativa
subplot(2,1,1), bar(x1,rfreq1)
title('Histograma relativo de data1')
xlabel('x'), ylabel('freq. relativa')
subplot(2,1,2), bar(x3,rfreq3)
title('Histograma Relativo de data3')
xlabel('x'), ylabel('freq. relativa')
10
Anlise Estatstica
Anlise Estatstica
Medidas de Tendncia Central
mean(): mdia amostral
x=
1
N
x(n )
n =1
Anlise Estatstica
Anlise Estatstica
Anlise Estatstica
Medidas de Variao
std(): desvio padro amostral
1
2
(x(n ) x )
N 1 n =1
Anlise Estatstica
Medidas de Variao
>> std(data3)
ans =
1.0475
>> std(data4)
ans =
2.8223
11
Anlise Estatstica
Processamento de Sinais
Interpolao
Definio: Estimao de um valor yi
correspondente a um determinado xi,
a partir de um conjunto disponvel de
pares (x,y)
Anlise de Dados
Interpolao
Regresso e Ajuste de Curvas
Integrao e Diferenciao
Minimizao de Funes
Processamento Simblico
Interpolao
Interpolao Linear:
1) Encontra o intervalo [x(k) x(k+1)] que
contm o valor xi
Interpolao
Interpolao Linear:
2) Aplica a equao de interpolao
yi = y (k ) + m( xi x(k ))
m=
y (k + 1) y (k )
x(k + 1) x(k )
Interpolao Linear
Matlab: funo interp1()
yi = interp1(x,y,xi)
x: vetor de N elementos, crescentes
y: vetor de N elementos, correspondentes aos
elementos do vetor x
xi: vetor de M elementos, contendo os pontos
para os quais deseja-se fazer a interpolao
linear
yi: vetor de M elementos, contendo os pontos
interpolados
12
Interpolao Linear
Interpolao Linear
Interpolao Linear
Interpolao Linear
Interpolao Linear
Interpolao Linear
Matlab: funo interp2()
13
>>
>>
>>
>>
>>
>>
>>
>>
>>
Mesmo exemplo:
x = 0:5;
y = [0 20 60 68 77 110];
plot(x,y, 'b.-' )
xlim([-1 6]), ylim([-20 120])
xlabel('x'), ylabel('y')
xi = [2.6 3.2 4.9];
hold on, plot([xi;xi], ylim, 'r:')
yi = spline(x,y,xi);
plot(xi,yi, 'r.', 'markersize', 20)
Interpolao Linear
>>
>>
>>
>>
>>
>>
>>
>>
>>
Mesmo exemplo:
x = 0:5;
y = [0 20 60 68 77 110];
plot(x,y, 'b.-' )
xlim([-1 6]), ylim([-20 120])
xlabel('x'), ylabel('y')
xi = [2.6 3.2 4.9];
hold on, plot([xi;xi], ylim, 'r:')
yi = spline(x,y,xi);
plot(xi,yi, 'r.', 'markersize', 20)
14
Interpolao Experimental
Medies experimentais bidimensionais:
muito comum fazer medies em posies
espaciais (ou temporais) no igualmente
espaadas
Normalmente armazenadas em uma matriz
de 3 colunas (X,Y e Z) e N linhas
(correspondentes aos valores medidos)
Para visualizao no Matlab, necessrio
que os dados estejam em formato de matriz
Interpolao Experimental
Matlab: funo griddata()
Interpolao Experimental
Medies experimentais bidimensionais:
Tem-se 3 vetores, x, y e z, de tamanho N
Deseja-se 3 matrizes [PxQ], X, Y e Z
Essas matrizes podem ento ser usadas
pelas funes pcolor(), surf(), mesh(), etc
Interpolao Experimental
Exemplo: Campo Magntico Bz
Zi = griddata(xe,ye,ze,Xi,Yi)
xe: vetor de N elementos
ye: vetor de N elementos, correspondentes aos
elementos do vetor x
ze: vetor de N elementos, contendo as medidas
experimentais
Xi, Yi: matrizes PxQ, contendo os pontos para
os quais deseja-se fazer a interpolao
Zi: matriz PxQ, contendo os pontos
interpolados
15
Interpolao Experimental
Exemplo: Campo Magntico Bz
Interpolao Experimental
Exemplo: Campo Magntico Bz
157 pontos
Interpolao Experimental
Interpolao de Pontos Experimentais no
Matlab:
ye
be
1.3860
1.4035
1.4035
1.4386
1.4912
1.4737
1.4912
1.4912
1.4386
1.4561
1.4561
1.4386
-0.0604
-0.0704
-0.0810
-0.0832
-0.0824
-0.0803
-0.0507
-0.0219
0.0199
0.0617
0.0802
0.0909
.
.
.
Interpolao Experimental
Interpolao de Pontos Experimentais no
Matlab:
load medida.txt
xmin = min(xe); xmax = max(xe);
ymin = min(ye); ymax = max(ye);
N = 50;
xi = xmin:(xmax-xmin)/(N-1):xmax;
yi = ymin:(ymax-ymin)/(N-1):ymax;
Interpolao Experimental
xe
-1.7419
-1.5346
-1.3410
-1.2028
-0.9539
-0.6636
-0.3456
-0.1382
0.1106
0.4009
0.6083
0.8295
Processamento de Sinais
Anlise de Dados
Interpolao
Regresso e Ajuste de Curvas
Integrao e Diferenciao
Minimizao de Funes
Processamento Simblico
16
Processamento de Sinais
Anlise de Dados
Interpolao
Regresso e Ajuste de Curvas
Integrao e Diferenciao
Minimizao de Funes
Processamento Simblico
MSE =
1
N
( y
k =1
yk )
RMSE = MSE
yk: valores reais da funo
t = 0:5;
T = [0 20 60 68 77 110];
plot(t, T, '.', 'markersize',20 )
xlabel('t(s)')
ylabel('T(C)')
T = at + b
Observando o grfico, nota-se que uma boa
aproximao poderia ser:
T = 20t
T_ = 20*t;
e = T_ - T;
MSE = mean(e.^2)
RMSE = sqrt(MSE)
95.5
9.772
T = at + b
MSE =
1
N
(Tk Tk )
N
1
N
k =1
(at k + b Tk )
k =1
MSE
=0
b
MSE
=0
a
MSE 2
=
N
a
2
=
N
(at k2 + bt k Tk t k )
N
k =1
N 2 N N
t k a + t k b Tk t k = 0
=
1
=
1
k
=
1
k
k
(at k + b Tk )
k =1
N 2 N N
t k a + t k b Tk t k = 0
k =1 k =1 k =1
MSE 2 N
N
= t k a + Nb Tk = 0
b
N k =1
k =1
N
N
t k a + Nb Tk = 0
k =1
k =1
2
tk
kN=1
t
k =1 k
N
t k a t k Tk
k =1
= k =N1
b
N Tk
k =1
t = 0:5;
T = [0 20 60 68 77 110];
c = polyfit(t, T, 1) [20.83 3.76]
T_ = polyval(c, t);
e = T_ - T;
MSE = mean(e.^2)
95.5 59.47
RMSE = sqrt(MSE)
9.772 7.71
Processamento de Sinais
Anlise de Dados
Interpolao
Regresso e Ajuste de Curvas
Minimizao de Funes
Integrao e Diferenciao
Processamento Simblico
Minimizao de Funes
Sistemas Lineares
y = f (x ),
y , x n
Ax = b
A: matriz M x N
b: vetor M x 1
x: vetor N x 1
Sistemas Lineares
Sistemas Lineares
a11
a
21
M
aM 1
a12
a22
M
aM 2
L a1N x1 b1
L a2 N x2 b2
=
O M M M
L aMN x N bM
A: matriz M x N
b: vetor M x 1
x: vetor N x 1
M = N: x = A-1b
A-1 = matriz MxM, inversa de A (A-1A = I )
Ax = b A-1Ax = A-1b x = A-1b
M ? N: x = A*b
A* = matriz NxM, pseudo-inversa de A (A*A = I )
Ax = b A*Ax = A*b x = A*b
Sistemas Lineares
Sistemas Lineares
Exemplo:
3 x1 + 2 x2 x3 = 10
x1 + 3 x2 + 2 x3 = 5
x1 x2 x3 = 1
operador \ - backslash
x = A \ b
Sistemas Lineares
Sistemas Lineares
Exemplo:
Exemplo: Matlab
3 2 1 x1 10
1 3 2 x = 5
2
1 1 1 x3 1
A
Sistemas Lineares
Exemplo: Matlab
>> x = A\b
x =
26.0000
-18.0000
41.0000
Ax b
min
2
A: matriz M x N
b: vetor M x 1
x
x: vetor N x 1
Ax = b
, Cx d
y = f ( x ),
y , x
Bx ( x ) =
3x 2 r 2
r5
r = x2 + z 2
x = -10:0.1:10;
[Bx,By,Bz] = campodip(x,0,1);
plot(x,Bx, 'linewidth', 2)
xlabel('x'), ylabel('Bx')
fminbnd
fzero
fsolve
lsqnonlin
lsqcurvefit
>> x = fminbnd(@cos, 3, 4)
ans =
3.14159480185141
ActiveConstrTol: []
DerivativeCheck: []
Diagnostics: []
DiffMaxChange: []
DiffMinChange: []
Display: 'notify'
GoalsExactAchieve: []
GradConstr: []
GradObj: []
Hessian: []
HessMult: []
HessPattern: []
HessUpdate: []
Jacobian: []
JacobMult: []
JacobPattern: []
LargeScale: []
LevenbergMarquardt: []
LineSearchType: []
MaxFunEvals: 500
MaxIter: 500
MaxPCGIter: []
MaxSQPIter: []
MeritFunction: []
MinAbsMax: []
NonlEqnAlgorithm: []
Preconditioner: []
PrecondBandWidth: []
ShowStatusWindow: []
TolCon: []
TolFun: []
TolPCG: []
TolX: 1.0000e-004
TypicalX: []
options = optimset(@fminbnd)
Exemplo: Clculo de
>> options.MaxFunEvals
>> options.MaxIter
>> options.TolX
500
500
1e-4
>> options.TolX
2.22e-16
Exemplo: x = fzero(@sin, 3) ou
x = fzero('sin', 3)
Exemplo: Clculo de
>> x = fzero(@sin, 3)
ans =
3.14159265358979
>> x = fzero(@fun, 1)
ans =
0.70710678118655
Exemplo: Clculo de
>> x = fzero(@sin, 3)
ans =
3.14159265358979
options = optimset(@fsolve)
options = optimset(@fsolve)
DerivativeCheck: 'off'
Diagnostics: 'off'
DiffMaxChange: 0.10000000000000
DiffMinChange: 1.000000000000000e-008
Display: 'final'
Jacobian: 'off'
JacobPattern: 'sparse(ones(jrows,jcols))'
LargeScale: 'off'
LevenbergMarquardt: 'off'
LineSearchType: 'quadcubic'
MaxFunEvals: '100*numberofvariables'
MaxIter: 400
MaxPCGIter: 'max(1,floor(numberofvariables/2))'
NonlEqnAlgorithm: 'dogleg'
PrecondBandWidth: 0
TolFun: 1.000000000000000e-006
TolPCG: 0.10000000000000
TolX: 1.000000000000000e-006
TypicalX: 'ones(numberofvariables,1)'
10
Bx ( x ) =
3x 2 r 2
r5
Bx ( x ) =
3x 2 r 2
r5
r = x2 + y 2 + z 2
r = x2 + y 2 + z 2
11
min x
[ FUN
(x )]
12
CIRCUITO
ELETRNICO
Vin
Vout
Vin
Vout
R
C
Vin = 5V
11 medidas de Vout, uma a cada segundo
t
Vout
0
1
2
3
4
5
6
7
8
9
10
0.014
3.186
4.337
4.775
4.884
4.966
4.985
4.963
5.004
4.978
5.028
>> Vin = 5;
>> t = 0:10;
>> Vout_e = [0.014 3.186 4.337 4.775 4.884 4.966 4.985
4.963 5.004 4.978 5.028];
>> plot(t, Vout_e, '.-', 'markersize', 20)
>> xlabel('t(s)')
>> ylabel('Vout(V)')
>> xlim([0 11])
>> ylim([0 5.5])
Como descobrir R e C
a partir destas medidas
experimentais?
13
>> Vin = 5;
>> t = 0:10;
>> Vout_e = [0.014 3.186 4.337 4.775 4.884 4.966
4.985 4.963 5.004 4.978 5.028];
>> X0 = [1 1];
>> options = optimset(@lsqnonlin)
>> X = lsqnonlin('filtroRC', X0, [], [], options,
Vin, t, Vout_e)
>> Vin = 5;
>> t = 0:10;
>> Vout_e = [0.014 3.186 4.337 4.775 4.884 4.966
4.985 4.963 5.004 4.978 5.028];
>> X0 = [1 1];
>> options = optimset(@lsqnonlin)
>> X = lsqnonlin('filtroRC', X0, [], [], options,
Vin, t, Vout_e)
Optimization terminated successfully:
Relative function value changing by less than OPTIONS.TolFun
X=
0.9938
0.9938
figure
plot(t, Vout_e, 'b.', 'markersize', 20)
hold on, plot(t, Vout, 'r')
xlabel('t (s)'), ylabel('Vout (V)')
legend('Experimental', 'Ajustado')
min x
[ (FUN (x, xd ) yd ) ]
2
14
>> Vin = 5;
>> t = 0:10;
>> Vout_e = [0.014 3.186 4.337 4.775 4.884 4.966 4.985
4.963 5.004 4.978 5.028];
>> X0 = [1 1];
>> options = optimset(@lsqcurvefit)
>> X = lsqcurvefit('filtroRC2', X0, t, Vout_e, ...
[], [], options, Vin)
>> Vin = 5;
>> t = 0:10;
>> Vout_e = [0.014 3.186 4.337 4.775 4.884 4.966 4.985
4.963 5.004 4.978 5.028];
>> X0 = [1 1];
>> options = optimset(@lsqcurvefit)
>> X = lsqcurvefit('filtroRC2', X0, t, Vout_e, ...
[], [], options, Vin)
Optimization terminated successfully:
Relative function value changing by less than OPTIONS.TolFun
X=
0.9938
0.9938
Processamento de Sinais
Anlise de Dados
Interpolao
Regresso e Ajuste de Curvas
Minimizao de Funes
Integrao e Diferenciao
Processamento Simblico
15
Processamento de Sinais
Anlise de Dados
Interpolao
Regresso e Ajuste de Curvas
Minimizao de Funes
Integrao e Diferenciao
Processamento Simblico
Integrao e Diferenciao
Integrao
Integrao numrica
Diferenciao numrica
Integrao
Integrao
A = f (x )dx
a
f(x): integrando
a: limite inferior de integrao
b: limite superior de integrao
x: varivel de integrao
soluo analtica:
encontrar a primitiva p(x) da funo f(x)
f (x ) p(x )
dp (x )
= f (x )
dx
A = p(b ) p(a )
Integrao Numrica
Integral de uma funo f(x), para x
variando entre a e b:
soluo numrica: quadratura
aproximar a funo f(x) por outra funo, que
seja fcil de calcular a rea
ou seja, cuja primitiva seja simples
Integrao Numrica
Regra Trapezoidal: Aproximao por
segmentos de reta
Integrao Numrica
Integral de uma funo f(x), para x
variando entre a e b:
soluo numrica: quadratura
Tcnicas mais comuns:
Regra Trapezoidal: Aproximao por
segmentos de reta
Regra de Simpson: Aproximao por
segmentos de parbola
Regra de Newton-Cotes: Aproximao por
segmentos de funes de ordens superiores
Integrao Numrica
Regra Trapezoidal: Aproximao por
segmentos de reta
Integrao Numrica
Regra Trapezoidal: Aproximao por
segmentos de reta
A=
Ai =
i =0
A=
x
( f (xi ) + f (xi +1 ))
i =0 2
n
x
( f (xo ) + 2 f (x1 ) + 2 f (x2 ) + L + 2 f (xn 1 ) + f (xn ))
2
Ai
Ai =
f (xi ) + f (xi +1 )
x
2
Integrao Numrica
Matlab: funo trapz()
z = trapz(x,y)
x: vetor de N elementos, crescentes
y: vetor de N elementos, correspondentes aos
elementos do vetor x, definindo a funo
y=f(x)
z: integral numrica de y=f(x), correspondente
rea A da funo no intervalo definido pelo
mnimo e pelo mximo do vetor x
Integrao Numrica
Exemplo: funo y=humps(x)
>>
>>
>>
>>
>>
>>
Integrao Numrica
Exemplo: funo y=humps(x)
x = -1:0.01:2;
y = humps(x);
plot(x,y,'linewidth', 2)
xlabel('x')
ylabel('humps(x)')
grid
Integrao Numrica
Exemplo: funo y=humps(x)
Integrao Numrica
Exemplo: funo y=humps(x)
xi = -1:3/19:2;
yi = humps(xi);
hold
plot(xi,yi,'r.', 'markersize', 20)
Integrao Numrica
Exemplo: funo y=humps(x)
Integrao Numrica
Exemplo: funo y=humps(x)
Integrao usando 20 pontos:
>> area = trapz(xi,yi)
area =
26.4507
Integrao Numrica
Exemplo: funo y=humps(x)
Variando o nmero de pontos de integrao:
>>
>>
>>
>>
>>
>>
>>
Integrao Numrica
Exemplo: funo y=humps(x)
for N = 1:300,
xi
= -1:3/N:2;
yi
= humps(xi);
area(N) = trapz(xi,yi);
end
plot(1:300, area)
xlabel('N'), ylabel('area'), grid
Integrao Numrica
Matlab: funo cumtrapz()
z = cumtrapz(x,y)
x: vetor de N elementos, crescentes
y: vetor de N elementos, correspondentes aos
elementos do vetor x, definindo a funo
y=f(x)
z: integral cumulativa numrica de y=f(x)
x
A( x ) = f ( x )dx
a
Integrao Numrica
Exemplo: funo y=humps(x)
Integrao Numrica
Exemplo: funo y=humps(x)
Integrao cumulativa usando 200 pontos:
>> xi = -1:3/199:2;
>> yi = humps(xi);
>> zi = cumtrapz(xi,yi);
>> plot(xi,yi,'b', 'linewidth', 2)
>> hold
>> plot(xi,zi,'r', 'linewidth', 2)
>> xlabel('N'), grid
>> legend('f(x)', 'A(x)')
Integrao Numrica
Exemplo: Navegao Inercial
Acelermetro: mede a acelerao
instantnea a(t) de um objeto
Velocidade Instantnea:
Posio Instantnea:
Integrao Numrica
Exemplo: Navegao Inercial
Experimento Realizado:
t (s)
0
1
2
3
4
5
6
7
8
9
10
a (m/s2)
0
2
4
7
11
17
24
32
41
48
51
Integrao Numrica
Exemplo: Navegao Inercial
Integrao Numrica
Exemplo: Navegao Inercial
Experimento Realizado:
>> t = [0:10];
>> a = [0,2,4,7,11,17,24,32,41,48,51];
>> v = cumtrapz(t,a);
>> x = cumtrapz(t,v);
>> plot(t,a,t,v,t,x)
>> xlabel('t(s)'), xlabel('t(s)'), grid
>> legend('a(t)', 'v(t)', 'x(t)')
Integrao Numrica
Regra de Simpson: Aproximao por
segmentos de parbola
Divide-se o intervalo [a,b] em 2n sub-intervalos
de igual largura x
ba
x =
2n
Cada subintervalo definido por [xi,xi+x]
xi = a + ix
Integrao Numrica
Regra de Simpson: Aproximao por
segmentos de parbola
x f ( xo ) + 4 f ( x1 ) + 2 f ( x2 ) + 4 f ( x3 ) + L
A=
3 + 2 f ( x2 n 2 ) + 4 f (x2 n 1 ) + f (x2 n )
Matlab:
Funo quad: regra de Simpson
Funo quadl: regra de Newton-Cotes
Integrao Numrica
Matlab: funo quad()
z = quad(FUN,a,b)
FUN: ponteiro para a funo desejada
a, b: limites inferior e superior de
integrao
z: integral numrica de FUN(x),
correspondente rea A da funo no
intervalo [a,b]
IMPORTANTE: a prpria funo quad (e a
quadl) determina automaticamente o
nmero timo de intervalos
Integrao Numrica
Exemplo: funo y=humps(x)
>> quad('humps', -1, 2)
ans =
26.34496050120123
>> quadl('humps', -1, 2)
ans =
26.34496047137897
Integrao Numrica
Exemplo: funo y=func(x)
Integrao Numrica
Integrao Bidimensional:
funo dblquad()
z = dblquad(FUN,xmin,xmax,ymin,ymax)
FUN: ponteiro para a funo desejada
xmin, xmax: limites inferior e superior de
integrao na varivel x
ymin, ymax: limites inferior e superior de
integrao na varivel x
z: integral numrica de FUN(x,y),
correspondente rea A da funo no
intervalo [xmin,xmax], [ymin,ymax]
Integrao Numrica
Exemplo: funo y=func(x)
function z = func(x,y)
z = sin(x).*cos(y) + 1;
x = 0:pi/19:pi;
y = -pi:2*pi/19:pi;
[X,Y] = meshgrid(x,y);
Z = func(X,Y);
mesh(X,Y,Z),xlabel('x'),ylabel('y')
Integrao Numrica
Exemplo: funo y=func(x,y)
Diferenciao
Derivada de uma funo f(x):
Inclinao da reta tangente funo f(x)
>> dblquad(func,0,pi,-pi,pi)
ans =
19.73921476256606
Diferenciao
Diferenciao
f ( x ) =
df ( x )
dx
df (x )
= g (x )
dx
Definio Formal:
f ( x ) = lim
f ( x ) =
x 0
f (x + x ) f ( x )
x
f ( x ) = g (x )dx
Diferenciao Numrica
Aproximao da derivada da funo
f(x):
Estima-se a derivada em um ponto xk
por meio da aproximao da inclinao
da tangente em xk:
Diferenciao Numrica
Diferenas Regressivas:
Inclinao da reta ligando (xk-1, f(xk-1)) a
(xk, f(xk))
f ( xk ) =
f ( xk ) f (xk 1 )
xk xk 1
f ( xk ) =
f ( xk ) f ( xk 1 )
x
Diferenciao Numrica
Diferenciao Numrica
Diferenas Progressivas:
Observaes
f ( xk ) =
f ( xk +1 ) f (xk )
xk +1 xk
f ( xk ) =
f ( xk +1 ) f ( xk )
x
Diferenciao Numrica
Diferenciao Numrica
Diferenas Centrais:
Observaes:
A qualidade de ambas as aproximaes
depende fortemente de dois fatores:
1 f ( xk +1 ) f (xk ) f ( xk ) f (xk 1 )
f ( xk ) =
+
2
x
x
f ( xk ) =
Diferenciao Numrica
Diferenciao Numrica
Matlab: funo diff()
Diferenciao Numrica
>> df = dy./dx
df =
4
>> dy = diff(y)
dy =
1
-2
-2
Exemplo:
>> x = [0,1,2,3,4,5];
>> y = [2,3,1,5,8,10];
>> dx = diff(x)
dx =
1
1
1
1
Diferenciao Numrica
f ( xk +1 ) f ( xk 1 )
2 x
>>
xr
>>
xp
xr = x(2:end)
=
1
2
xp = x(1:end-1)
=
0
1
Diferenciao Numrica
Matlab: funo diff()
>> xr = x(2:end);
>> xp = x(1:end-1);
>> plot(x, y, 'b.-', ...
xr, df, 'r.-',xp,df, 'g.-')
>> xlabel('x'), ylabel('y'), grid
>> axis([-1 6 -3 11])
>> legend('f(x)', 'f''(x)-Reg.', ...
'f''(x)-Prog.')
Diferenciao Numrica
Matlab: funo diff()
Diferenciao Numrica
Diferenciao Numrica
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>dyr_c = (yr(3:n)-yr(1:n-2))./(x(3:n)-x(1:n-2));
>> subplot(2,1,2)
>> plot(x(2:n-1),td(2:n-1),x(2:n-1),dyr_c, 'o')
>> xlabel('x'), ylabel('Derivative')
>> axis([0 pi -2 2])
>> legend('Derivada real', 'Diferenas Centrais')
Diferenas Centrais
x = [0:pi/50:pi]; n = length(x);
yr = sin(x)+0.025*randn(1,n);
td = cos(x); Derivada do sinal senoidal sem rudo
Diferenas Regressivas
dyr_r = diff(yr)./diff(x);
subplot(2,1,1),
plot(x(2:n),td(2:n),x(2:n),dyr_r,'o')
xlabel('x'), ylabel('Derivada')
axis([0pi -2 2])
legend('Derivada real','Diferenas Regressivas')
Diferenciao Numrica
Diferenciao Numrica
Processamento de Sinais
Processamento Simblico
Anlise de Dados
Interpolao
Regresso e Ajuste de Curvas
Minimizao de Funes
Integrao e Diferenciao
Processamento Simblico
At o momento: Processamento
Numrico
Processamento Simblico
Declarao de Variveis e Constantes
como Objetos Simblicos:
Variveis:
>> syms x y
Variveis Reais:
>> syms x y real
Constantes:
>> pi = sym('pi')
>> delta = sym('1/10')
>> sqroot2 = sym('sqrt(2)')
Processamento Simblico
Expresses Simblicas:
Utilizam as variveis e constantes simblicas
definidas previamente
Juntamente com os operadores e funes
pr-definidas do Matlab
Exatamente como se estivesse fazendo um
clculo numrico
Processamento Simblico
Declarao de Variveis e Constantes
como Objetos Simblicos:
>> whos
Name
delta
pi
sqroot2
x
y
Size
1x1
1x1
1x1
1x1
1x1
Bytes
132
128
138
126
126
Class
sym object
sym object
sym object
sym object
sym object
Processamento Simblico
Expresses Simblicas:
>> syms s t A
>> f = s^2 + 4*s + 5
f = s^2+4*s+5
>> g = s + 2
g = s+2
10
Processamento Simblico
Expresses Simblicas:
>> h = f*g
h = (s^2+4*s+5)*(s+2)
Processamento Simblico
Funo findsym: determina quais so os
objetos simblicos contidos em um outro
objeto simblico (ou expresso)
>> z= exp(-s*t)
z = exp(-s*t)
>> findsym(f)
ans = s
>> y = A*z
y = A*exp(-s*t)
>> findsym(z)
ans = A, s, t
Processamento Simblico
Notao Matricial: tambm aplicvel no
processamento simblico
>> n = 3;
>> syms x
>> B = x.^((0:n)'*(0:n))
Processamento Simblico
Manipulao de Expresses Polinomiais:
expand(S): expanso da expresso simblica
polinomial S como um produto de seus
fatores
factor(S): fatorao polinomial da expresso
simblica polinomial S
simplify(S): simplificao da expresso
simblica polinomial S
subs(S): substituio de variveis
numden(S): forma racional do polinmio S
Processamento Simblico
Notao Matricial: tambm aplicvel no
processamento simblico
>> n = 3;
>> syms x
>> B = x.^((0:n)'*(0:n))
B =
[
1,
1,
1,
1]
[
1,
x, x^2, x^3]
[
1, x^2, x^4, x^6]
[
1, x^3, x^6, x^9]
Processamento Simblico
Adio:
>>
>>
>>
>>
syms s
A = s^4 -3*s^3 -s +2;
B = 4*s^3 -2*s^2 +5*s -16;
C = A + B
C =
s^4+s^3+4*s-14-2*s^2
11
Processamento Simblico
Multiplicao:
Multiplicao Escalar:
>> A = s+2;
>> B = s+3;
>> C = A*B
C =
(s+2)*(s+3)
>> C = expand(C)
C =
s^2+5*s+6
Processamento Simblico
Fatorao:
Processamento Simblico
Denominador Comum:
H (s ) =
1/ 6 1/ 2 2 / 3
+
s + 3 s +1
s
H (s ) =
Processamento Simblico
Denominador Comum:
s+2
s + 4 s 2 + 3s
3
Processamento Simblico
Cancelamento de Termos:
Processamento Simblico
H (s ) =
s+2
s 3 + 4 s 2 + 3s
H (s ) =
s 3 + 2s 2 + 5s + 10
s2 + 5
12
Processamento Simblico
Cancelamento de Termos:
H (s ) =
s 3 + 2s 2 + 5s + 10
s2 + 5
Processamento Simblico
Substituio de Variveis:
H (s ) = s + 2
Processamento Simblico
Substituio de Variveis:
H (s ) =
s+3
s + 6s + 8
2
G (s ) = H (s ) s = s + 2
Processamento Simblico
Expresses Trigonomtricas:
>> G = collect(G)
G =
s+5
(s+5)/(s^2+10*s+24) G (s ) = s 2 + 10 s + 24
>> A = expand(A)
A =
sin(theta)*cos(phi)+cos(theta)*sin(phi)
Processamento Simblico
Expresses Trigonomtricas:
Processamento Simblico
Expresses Trigonomtricas:
>> B = cos(2*theta)
B =
cos(2*theta)
>> C = 6*((sin(theta))^2+(cos(theta))^2)
C =
6*sin(theta)^2+6*cos(theta)^2
>> B = expand(B)
B =
2*cos(theta)^2-1
>> C = expand(C)
C = 6 !!!
C =
6*sin(theta)^2+6*cos(theta)^2
13
Processamento Simblico
Expresses Trigonomtricas:
>> syms theta real
>> A = real(exp(j*theta))
A =
1/2*exp(i*theta)+1/2*exp(-i*theta)
>> A = simplify(A)
A =
cos(theta)
Processamento Simblico
Processamento Simblico
Equaes Algbricas e Transcendentais
funo solve(E1,E2,...,EN): encontra as
razes das expresses E1, E2, ..., EN
>> syms s
>> E = s+2;
>> s = solve(E)
s =
-2
Processamento Simblico
>> syms s
>> D = s^2 +6*s +9;
>> s = solve(D)
s =
[ -3]
[ -3]
Processamento Simblico
Equaes Algbricas e Transcendentais
Processamento Simblico
Equaes Algbricas e Transcendentais
>> syms x
>> E = exp(2*x) + 4*exp(x) -32;
>> x = solve(E)
x =
[ log(-8)]
[ log(4)]
14
Processamento Simblico
Clculo - Diferenciao
funo diff:
diff(E): diferencia a expresso simblica E em
relao varivel livre, determinada
automaticamente
diff(E,v): diferencia a expresso simblica E em
relao varivel simblica v
diff(E,n): diferencia n vezes a expresso
simblica E em relao varivel livre
diff(E,v,n): diferencia n vezes a expresso
simblica E em relao varivel simblica v
Processamento Simblico
Clculo - Diferenciao
>> g = s^n;
>> h = diff(g)
h = s^n*n/s
>> h = simplify(h)
h = s^(n-1)*n
Processamento Simblico
Clculo - Diferenciao
Processamento Simblico
Clculo - Diferenciao
>> syms s n
>> p = s^3 + 4*s^2 -7*s -10;
>> d = diff(p)
d = 3*s^2+8*s-7
>> e = diff(p,2)
e = 6*s+8
>> f = diff(p,3)
f = 6
Processamento Simblico
Clculo - Diferenciao
>> syms x
>> f1 = log(x);
>> df1 = diff(f1)
df1 = 1/x
>> f2 = (cos(x))^2;
>> df2 = diff(f2)
df2 = -2*cos(x)*sin(x)
Processamento Simblico
Clculo - Diferenciao
>> f3 = sin(x^2);
>> df3 = diff(f3)
df3 = 2*cos(x^2)*x
>> f4 = cos(2*x);
>> df4 = diff(f4)
df4 = -2*sin(2*x)
>> f5 = exp(-(x^2)/2);
>> df5 = diff(f5)
df5 = -x*exp(-1/2*x^2)
15
Processamento Simblico
Clculo - Integrao
Processamento Simblico
Clculo - Integrao
funo int:
Processamento Simblico
Clculo - Integrao
>> int(x,1,t)
ans = 1/2*t^2-1/2
>> int(x^3,a,b)
ans = 1/4*b^4-1/4*a^4
>> syms x n a b t
>> int(x^n)
ans = x^(n+1)/(n+1)
>> int(x^3 +4*x^2 + 7*x + 10)
ans = 1/4*x^4+4/3*x^3+7/2*x^2+10*x
Processamento Simblico
Clculo - Integrao
>> syms x
>> int(1/x)
ans = log(x)
>> int(cos(x))
ans = sin(x)
Processamento Simblico
Clculo - Integrao
>> int(1/(1+x^2))
ans = atan(x)
>> int(exp(-x^2))
ans = 1/2*pi^(1/2)*erf(x)
16