Aula Matlab Avancado

47
1 MQI 2104 - Processamento e Análise de Sinais Digitais Carlos Hall – Sala 06 – Ramal 1226 [email protected] Processamento de Sinais Análise de Dados Interpolação Regressão e Ajuste de Curvas Integração e Diferenciação Minimização de Funções Processamento Simbólico Análise de Dados Variáveis Aleatórias Geração de Números Aleatórios Máximos e mínimos Somas e Produtos Análise Estatística Variáveis Aleatórias Muitas medições (senão todas) têm um elemento de aleatoriedade Estatística: ramo da Matemática Aplicada que envolve análise, interpretação e apresentação de dados que incluem algum grau de aleatoriedade ou incerteza Estatística Descritiva: resume ou descreve as características mais importantes de um conjunto de dados Variáveis Aleatórias Variável Aleatória: Entidade matemática que representa os possíveis valores que uma determinada medida pode assumir para cada medição, ou observação Variável Aleatória Contínua: podem assumir qualquer valor em um intervalo contínuo Variável Aleatória Discreta: só pode assumir alguns valores de um conjunto discreto Variáveis Aleatórias População: todos os possíveis valores que uma variável aleatória pode assumir Amostra: Conjunto finito de medidas ou observações. Assumindo que foram feitas N observações de uma variável aleatória, esta amostra pode ser representada por um vetor x, com elementos x(n), n = 1, ..., N

description

Aula Matlab Avancado

Transcript of Aula Matlab Avancado

  • 1MQI 2104 - Processamento eAnlise de Sinais Digitais

    Carlos Hall Sala 06 Ramal [email protected]

    Processamento de Sinais

    Anlise de Dados Interpolao Regresso e Ajuste de Curvas Integrao e Diferenciao Minimizao de Funes Processamento Simblico

    Anlise de Dados

    Variveis Aleatrias Gerao de Nmeros Aleatrios Mximos e mnimos Somas e Produtos Anlise Estatstica

    Variveis Aleatrias

    Muitas medies (seno todas) tm umelemento de aleatoriedade

    Estatstica: ramo da Matemtica Aplicadaque envolve anlise, interpretao eapresentao de dados que incluemalgum grau de aleatoriedade ou incerteza

    Estatstica Descritiva: resume oudescreve as caractersticas maisimportantes de um conjunto de dados

    Variveis Aleatrias

    Varivel Aleatria: Entidade matemtica que representa os

    possveis valores que uma determinadamedida pode assumir para cada medio, ouobservao Varivel Aleatria Contnua: podem assumir

    qualquer valor em um intervalo contnuo Varivel Aleatria Discreta: s pode assumir

    alguns valores de um conjunto discreto

    Variveis Aleatrias

    Populao: todos os possveis valoresque uma varivel aleatria pode assumir

    Amostra: Conjunto finito de medidas ouobservaes. Assumindo que foram feitas N observaes

    de uma varivel aleatria, esta amostra podeser representada por um vetor x, comelementos x(n), n = 1, ..., N

  • 2Variveis Aleatrias

    Distribuio de Freqncia: Indica as freqncias relativas com que os

    possveis valores da varivel aleatriaocorrem na populao

    Caso discreto: Funo Distribuio deProbabilidades (PDF) x pode assumir os valores {X1, X2, ..., Xm} PDF de Xk:

    ( ) ( )kk XxPXPDF ==

    Variveis Aleatrias

    Distribuio de Freqncia: Indica as freqncias relativas com que os

    possveis valores da varivel aleatria ocorremna populao

    Caso contnuo: Funo Densidade deProbabilidades (pdf) x pode assumir qualquer valor no intervalo [-8 ,+8 ] pdf de X: uma funo f(X) tal que

    ( ) ( )= 21

    21

    X

    X

    dXXfXxXP ( ) XXf ,0 ( ) 1=+

    dXXf

    Gerao de Nmeros Aleatrios

    Muitos problemas precisam usar nmerosaleatrios no desenvolvimento de uma soluo

    Em alguns casos, so usados para simularsolues de um problema, repetindo-se asimulao diversas vezes (mtodo deMontecarlo)

    Em outros casos, so usados para representarrudo, como o incidente em sinais de rdio

    Matlab: Distribuio Uniforme Distribuio Normal

    Gerao de Nmeros Aleatrios

    Nmeros aleatrios so caracterizadospor suas distribuies de freqncia

    Distribuio Uniforme: Distribuio (pdf) Constante ao longo de sua

    faixa de variao, entre os valores mnimo emximo

    X

    f(X)

    Xmin Xmax

    Gerao de Nmeros Aleatrios

    Distribuio Uniforme: Matlab: distribuio uniforme em [0,1] Funo rand Na verdade, so seqncias pseudo-

    aleatrias A partir de uma semente, gera-se uma

    seqncia A mesma semente gerar a mesma seqncia!

    Intervalo Real: [2-53, 1-2-53]

    Gerao de Nmeros Aleatrios

    Matlab: rand: gera um nmero aleatrio distinto a

    cada vez que chamada rand(n): gera uma matriz n x n de nmeros

    aleatrios no intervalo [0,1] rand(m,n): gera uma matriz m x n de

    nmeros aleatrios no intervalo [0,1]

  • 3Gerao de Nmeros Aleatrios

    Matlab: s = rand(state): retorna um vetor de estado, com

    35 elementos que caracterizam o gerador denmeros 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

    Gerao de Nmeros Aleatrios

    Matlab (exemplo):

    >> rand('state',0)>> set1 = rand(10,1);>> rand('state', 123)>> set2 = rand(10,1);>> [set1 set2]

    ans =

    0.9501 0.0697 0.2311 0.2332 0.6068 0.7374 0.4860 0.7585 0.8913 0.6368 0.7621 0.6129 0.4565 0.3081 0.0185 0.2856 0.8214 0.0781 0.4447 0.9532

    Gerao de Nmeros Aleatrios

    rand: distribuio uniforme em [0,1] Para obter distribuies uniformes em outros

    intervalos [m,n] n + rand*(m-n)

    >> data1 = 2*rand(1,500) + 2; [2,4]>> data2 = rand(1,500)+3; [3,4]>> subplot(2,1,1), plot(data1), axis([0 500 0 6])>> subplot(2,1,2), plot(data2), axis([0 500 0 6])

    Gerao de Nmeros Aleatrios

    Gerao de Nmeros Aleatrios

    rand: simulao de v.a. discretas Combinao com funo floor() floor(): arredondamento para baixo ceil(): arredondamento para cima round(): arredondamento para o mais

    prximo

    Gerao de Nmeros Aleatrios

    rand: simulao de v.a. discretas x pode assumir m valores {X1, X2, ..., Xm} com

    mesma probabilidade Deseja-se observar N valores de x

    x = floor(m*rand(1,N)+1)

  • 4Gerao de Nmeros Aleatrios

    rand: simulao de v.a. Discretas Exemplo: moeda (cara ou coroa) m=2 N = 50

    x = floor(2*rand(1,50)+1);hist(x, [1 2])xlabel('1: cara, 2: coroa')ylabel('Frequencia')set(gcf, 'color', 'w')title('Histograma freq. abs. para 50 moedas')

    Gerao de Nmeros Aleatrios

    Gerao de Nmeros Aleatrios

    rand: simulao de v.a. Discretas Exemplo: moeda (cara ou coroa) m=2 N = 1000

    x = floor(2*rand(1,1000)+1);hist(x, [1 2])xlabel('1: cara, 2: coroa')ylabel('Frequencia')set(gcf, 'color', 'w')title('Histograma freq. abs. para 1000 moedas')

    Gerao de Nmeros Aleatrios

    Gerao de Nmeros Aleatrios

    rand: simulao de v.a. Discretas Exemplo: dado de 6 faces m = 6 N = 100

    x = floor(6*rand(1,100)+1);hist(x, [1:6])xlabel('Numero')ylabel('Frequencia')set(gcf, 'color', 'w')title('Histograma freq. abs. para 100 dados')

    Gerao de Nmeros Aleatrios

  • 5Gerao de Nmeros Aleatrios

    rand: simulao de v.a. Discretas Exemplo: dado de 6 faces m = 6 N = 1000

    x = floor(6*rand(1,1000)+1);hist(x, [1:6])xlabel('Numero')ylabel('Frequencia')set(gcf, 'color', 'w')title('Histograma freq. abs. para 1000 dados')

    Gerao de Nmeros Aleatrios

    Gerao de Nmeros Aleatrios

    Distribuio Normal: Funo Densidade de Probabilidade (pdf)

    segue a funo gaussiana:

    ( ) ( )22

    222

    1

    =

    x

    exf

    Representao: N(,)

    Gerao de Nmeros Aleatrios

    Distribuio Normal: Matlab: distribuio Normal N(0,1) Mdia zero Varincia Unitria

    Funo randn Na verdade, so seqncias pseudo-

    aleatrias A partir de uma semente, gera-se uma

    seqncia A mesma semente gerar a mesma seqncia!

    Gerao de Nmeros Aleatrios

    Matlab: randn: gera um nmero aleatrio distinto a

    cada vez que chamada randn(n): gera uma matriz n x n de nmeros

    aleatrios com distribuio N(0,1) randn(m,n): gera uma matriz m x n de

    nmeros aleatrios com distribuio N(0,1)

    Gerao de Nmeros Aleatrios

    Matlab: s = randn(state): retorna um vetor de estado, com

    35 elementos que caracterizam o gerador denmeros aleatrios

    randn(state,s): coloca o estado do gerador em s randn(state,0): coloca o gerador em seu estado

    inicial randn(state,N): coloca o gerador em seu N-simo

    estado randn(state,sum(100*clock)): coloca o gerador em

    um estado diferente a cada instante

  • 6Gerao de Nmeros Aleatrios

    Matlab (exemplo):

    >> randn('state',0)>> set3 = randn(10,1);>> randn('state', 123)>> set4 = randn(10,1);>> [set3 set4]

    ans =

    -0.4326 1.6056 -1.6656 -0.0416 0.1253 1.2127 0.2877 0.4977 -1.1465 -0.9253 1.1909 0.6648 1.1892 0.0013 -0.0376 -0.8141 0.3273 -0.7747 0.1746 -1.2441

    Gerao de Nmeros Aleatrios

    randn: distribuio Normal N(0,1) Para obter distribuies normais com outros

    parmetros [,] + randn*

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

    Gerao de Nmeros Aleatrios 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 correspondentesde X e Y

    Mximos e mnimos

    Funes max e min No exemplo anterior:

    >> max(set1)ans = 0.95010000000000

    >> max([set1 set2])ans = 0.95010000000000 0.95320000000000

    >> max(set1,set2)

    Mximos e mnimos

    Funes max e min No exemplo anterior:

    >> max(set1)ans = 0.95010000000000

    >> max([set1 set2])ans = 0.95010000000000 0.95320000000000

    >> max(set1,set2)

    ans =

    0.95010000000000 0.23320000000000 0.73740000000000 0.75850000000000 0.89130000000000 0.76210000000000 0.45650000000000 0.28560000000000 0.82140000000000 0.95320000000000

  • 7Anlise de Dados

    Variveis Aleatrias Gerao de Nmeros Aleatrios Mximos e mnimos Somas e Produtos Anlise Estatstica

    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 cadaelemento o mnimo entre os elementoscorrespondentes de X e Y

    Mximos e mnimos

    Funes max e min No exemplo anterior:

    >> min(set1)ans = 0.01850000000000

    >> min([set1 set2])ans = 0.01850000000000 0.06970000000000

    >> min(set1,set2)

    Mximos e mnimos

    Funes max e min No exemplo anterior:

    >> min(set1)ans = 0.01850000000000

    >> min([set1 set2])ans = 0.01850000000000 0.06970000000000

    >> min(set1,set2)

    ans =

    0.06970000000000 0.23110000000000 0.60680000000000 0.48600000000000 0.63680000000000 0.61290000000000 0.30810000000000 0.01850000000000 0.07810000000000 0.44470000000000

    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

    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 = -2kmin = 2

  • 8Anlise de Dados

    Variveis Aleatrias Gerao de Nmeros Aleatrios Mximos e mnimos Somas e Produtos Anlise Estatstica

    Somas e Produtos

    Suponha x um vetor de N elementos: sum(x): soma dos elementos do vetor x

    prod(x): produto dos elementos do vetor x

    ( ) [ ]=

    = Nk

    kxxsum1

    ( ) [ ]=

    = Nk

    kxxprod1

    Somas e Produtos

    Suponha x um vetor de N elementos: cumsum(x): soma cumulativa dos elementos

    do vetor x, uma seqncia (vetor)

    prod(x): produto cumulativo dos elementosdo vetor x, uma seqncia (vetor)

    [ ] [ ]( ) [ ]=

    == nk

    kxnxcumsumny1

    [ ] [ ]( ) [ ]=

    == nk

    kxnxcumprodny1

    Somas e Produtos

    Suponha X uma matriz MxN: sum(X): vetor de N elementos contendo a

    soma dos elementos de cada coluna de X prod(X): vetor de N elementos contendo o

    produto dos elementos de cada coluna de X

    cumsum(X): matriz MxN onde cada coluna a soma cumulativa da respectiva coluna de X

    cumprod(X): matriz MxN onde cada coluna o produto cumulativo da respec. coluna de X

    Somas e Produtos

    Exemplo:

    Matlab:>> N = 8;>> k =1:N;>> S = sum(k)S =

    36>> N *(N+1)/2ans =

    36

    ( )2

    11

    +==

    NNkN

    k

    Soma dos Termos de uma P.G.

    Somas e Produtos

    Exemplo:

    Matlab:>> nfact4 = prod(1:4)nfact4 =

    24

    >> nfact70 = prod(1:70)nfact70 =

    1.1979e+100

    ( ) ( ) 1221! = Lnnnn Fatorial de n

  • 9Anlise de Dados

    Variveis Aleatrias Gerao de Nmeros Aleatrios Mximos e mnimos Somas e Produtos Anlise Estatstica

    Anlise Estatstica

    Distribuio de Freqncia: Indica as freqncias relativas com que os

    possveis valores da varivel aleatriaocorrem na populao

    Caso discreto: Aproximao da PDF x pode assumir os valores {X1, X2, ..., Xm} N observaes de x

    Freqncia Relativa de Xk:

    ( ) ( ) ( )mXNXNXNN +++= L21

    ( ) ( )NXN

    XFDP kk =~

    Anlise Estatstica

    Distribuio de Freqncia: Caso contnuo: Aproximao da pdf x pode assumir qualquer valor no intervalo [X1,X2] N observaes de x, m bins Largura de cada bin:

    N(k) = nmero de amostras tais que

    Freqncia Relativa do bin k: ( ) ( )N

    kNkfdp =~

    ( ) XkXXXkX ++ 11 1

    mXXX 12 =

    Anlise Estatstica

    Matlab: funes hist() e bar() hist(x): calcula e exibe automaticamente o

    histograma com 10 bins dos dados contidosno vetor x

    N = hist(x): calcula automaticamente eretorna no vetor N o histograma com 10 binsdos dados contidos no vetor x

    N = hist(x,m): calcula e retorna no vetor N ohistograma dos dados contidos no vetor x,usando m bins

    Anlise Estatstica

    Matlab: funes hist() e bar() N = hist(x,xc): calcula automaticamente e

    retorna no vetor N o histograma dos dadoscontidos no vetor x, com o vetor xc definindoos centros das bins

    [N,xc] = hist(...): calcula automaticamente eretorna no vetor N o histograma dos dadoscontidos no vetor x, e no vetor xc o centrosdas bins

    Anlise Estatstica

    Matlab: exemplosubplot(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')

  • 10

    Anlise Estatstica Anlise Estatstica

    Matlab: exemplosubplot(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() emcombinao 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 relativasubplot(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')

  • 11

    Anlise Estatstica Anlise Estatstica

    Medidas de Tendncia Central mean(): mdia amostral

    median(): mediana valor central de umconjunto ordenado de amostras sort(x): ordena o vetor x de forma crescente

    ( )=

    =N

    nnx

    Nx

    1

    1

    Anlise Estatstica

    Medidas de Tendncia Central>> mean(data3)ans =

    3.0264>> mean(data4)ans =

    0.9303>> median(data3)ans =

    3.0190>> median(data4)ans =

    1.1722

    Anlise Estatstica

    Anlise Estatstica

    Medidas de Variao std(): desvio padro amostral

    var(): varincia quadrado do desvio padro

    ( )( )=

    =N

    nxnx

    N 12

    11

    Anlise Estatstica

    Medidas de Variao>> std(data3)ans =

    1.0475

    >> std(data4)ans =

    2.8223

  • 12

    Anlise Estatstica Processamento de Sinais

    Anlise de Dados Interpolao Regresso e Ajuste de Curvas Integrao e Diferenciao Minimizao de Funes Processamento Simblico

    Interpolao

    Definio: Estimao de um valor yicorrespondente a um determinado xi,a partir de um conjunto disponvel depares (x,y) x: vetor de N elementos, crescentes y: vetor de N elementos, correspondentes

    aos elementos do vetor x x(1) = xi = x(N) Interpolao Linear Interpolao por Spline

    Interpolao

    Interpolao Linear:1) Encontra o intervalo [x(k) x(k+1)] quecontm o valor xi

    Interpolao

    Interpolao Linear:2) Aplica a equao de interpolao

    ( ) ( )( )kxxmkyy ii +=( ) ( )( ) ( )kxkx

    kykym ++=

    11

    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 interpolaolinear

    yi: vetor de M elementos, contendo os pontosinterpolados

  • 13

    Interpolao Linear

    Matlab: funo interp1() Exemplo:>> x = 0:5;>> y = [0 20 60 68 77 110];

    >> plot(x,y, '.', 'markersize', 20)>> xlim([-1 6]), ylim([-20 120])>> xlabel('x'), ylabel('y')>> xi = [2.6 3.2 4.9];>> hold on, plot([xi;xi], ylim, 'r:')

    Interpolao Linear

    Interpolao Linear

    Matlab: funo interp1() Exemplo:>> yi = interp1(x,y,xi);>> plot(xi,yi, 'r.', 'markersize', 20)

    >> plot(x,y)

    Interpolao Linear

    Interpolao Linear Interpolao Linear

    Matlab: funo interp2() Similar, para interpolao bidimensional Z = interp2(X,Y,Z,Xi,Yi) X: matriz MxN elementos, crescentes Y: matriz de MxN elementos, correspondentes aos

    elementos da matriz X Z: matriz de MxN elementos, correspondentes aos

    elementos da matrizes X e Y

    Xi e Yi: matrizes de PxQ elementos, contendo ospontos para os quais deseja-se fazer a interpolaolinear

    Zi: matriz de PxQ elementos, contendo os pontosinterpolados

  • 14

    Interpolao Cbica (Spline)

    Mesmas premissas da interpolaolinear

    Encontra o intervalo [x(k) x(k+1)] quecontm o valor xi

    Ajusta um polinmio de grau 3 entre osdois pontos

    Oferece uma transio mais suave O polinmio passa pelos dois pontos As curvaturas e derivadas de polinmios

    adjacentes so iguais

    Interpolao Cbica (Spline)

    Equao de Interpolao:

    ( )( ) ( )( ) ( )( ) 432231 akxxakxxakxxay iiii +++=

    Interpolao Cbica (Spline)

    Matlab: funo spline() yi = spline(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 interpolaopor spline cbica

    yi: vetor de M elementos, contendo os pontosinterpolados

    Interpolao Cbica (Spline)

    Matlab: funo spline() 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 Cbica (Spline)

    Matlab: funo spline() 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

  • 15

    Interpolao Cbica (Spline)

    Matlab: funo spline() Mesmo exemplo:>> xi = 0:0.01:5;>> yi = spline(x,y,xi);>> plot(xi,yi, 'r')

    Interpolao Cbica (Spline)

    Interpolao Experimental

    Medies experimentais bidimensionais: muito comum fazer medies em posies

    espaciais (ou temporais) no igualmenteespaadas

    Normalmente armazenadas em uma matrizde 3 colunas (X,Y e Z) e N linhas(correspondentes aos valores medidos)

    Para visualizao no Matlab, necessrioque os dados estejam em formato de matriz

    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

    Matlab: funo griddata()

    Interpolao Experimental

    Matlab: funo griddata() 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

    Interpolao Experimental

    Exemplo: Campo Magntico Bz

  • 16

    Interpolao Experimental

    Exemplo: Campo Magntico Bz

    157 pontos

    Interpolao Experimental

    Exemplo: Campo Magntico Bz -1.7419 1.3860 -0.0604

    -1.5346 1.4035 -0.0704 -1.3410 1.4035 -0.0810 -1.2028 1.4386 -0.0832 -0.9539 1.4912 -0.0824 -0.6636 1.4737 -0.0803 -0.3456 1.4912 -0.0507 -0.1382 1.4912 -0.0219 0.1106 1.4386 0.0199 0.4009 1.4561 0.0617 0.6083 1.4561 0.0802 0.8295 1.4386 0.0909

    xe ye be

    ..

    .

    Interpolao Experimental

    Interpolao de Pontos Experimentais noMatlab:load medida.txtxmin = 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

    Interpolao de Pontos Experimentais noMatlab:

    [Xi Yi] = meshgrid(xi,yi);Bi = griddata(xe, ye, be, Xi, Yi);pcolor(Xi,Yi,Bi)shading interpxlabel('x'), ylabel('y')axis([-3 3 -3 3])

    Interpolao Experimental Processamento de Sinais

    Anlise de Dados Interpolao Regresso e Ajuste de Curvas Integrao e Diferenciao Minimizao de Funes Processamento Simblico

  • 1MQI 2104 - Processamento eAnlise de Sinais Digitais

    Carlos Hall Sala 06 Ramal [email protected]

    Processamento de Sinais

    Anlise de Dados Interpolao Regresso e Ajuste de Curvas Integrao e Diferenciao Minimizao de Funes Processamento Simblico

    Regresso e Ajuste de Curvas

    A interpolao um mtodo local, queconsidera os pontos mais prximos dodesejado

    A regresso, ou ajuste de curvas, ummtodo global, que determina a melhorfuno para o conjunto completo dosdados disponveia

    Ou seja, deseja-se encontrar a funoy = f(x) que melhor se ajusta aos dados

    Regresso e Ajuste de Curvas

    Quantificao da qualidade do ajuste: MSE: Mean Squared Error RMSE: Root Mean Squared Error

    ( )=

    =N

    kkk yyN

    MSE1

    21

    MSERMSE =yk: valores reais da funo

    yk: valores estimados pelo ajuste^

    Regresso e Ajuste de Curvas

    Exemplo: Medidas de Temperatura aolongo do tempo

    Tempo (s) Temp (C)0 01 202 603 684 775 110

    Regresso e Ajuste de Curvas

    Exemplo: Medidas de Temperatura aolongo do tempo>> t = 0:5;>> T = [0 20 60 68 77 110];>> plot(t, T, '.', 'markersize',20 )>> xlabel('t(s)')>> ylabel('T(C)')

  • 2Regresso e Ajuste de Curvas Regresso e Ajuste de Curvas

    Exemplo: Medidas de Temperatura aolongo do tempo Deseja-se fazer uma regresso linear Ou seja, deseja-se ajustar aos dados uma

    funo do tipo

    Observando o grfico, nota-se que uma boaaproximao poderia ser:

    batT +=

    tT 20 =

    Regresso e Ajuste de Curvas Regresso e Ajuste de Curvas

    Exemplo: Medidas de Temperatura aolongo do tempo O quo bom o ajuste? Clculo do MSE:

    >> T_ = 20*t;>> e = T_ - T;>> MSE = mean(e.^2) 95.5>> RMSE = sqrt(MSE) 9.772

    Regresso e Ajuste de Curvas

    Exemplo: Medidas de Temperatura aolongo do tempo RMSE de 9.772 parece razovel Mas como achar a melhor reta possvel? Ajuste por MMSE - Minimum Mean Squared

    Error Tambm chamado de Least-Square Busca os parmetros (no caso, a e b) que

    minimizam o MSE (e o RMSE)

    Regresso e Ajuste de Curvas

    Ajuste por Mnimos Quadrados: Clculo do MSE:

    batT += ( )= =N

    kkk TTN

    MSE1

    21

    ( )=

    += Nk

    kk TbatNMSE

    1

    21

  • 3Regresso e Ajuste de Curvas

    Ajuste por Mnimos Quadrados: MSE mnimo quando as derivadas parciais

    em relao aos parmetros a e b so nulas:

    0=

    aMSE 0=

    b

    MSE

    Regresso e Ajuste de Curvas

    Ajuste por Mnimos Quadrados: MSE mnimo quando as derivadas parciais

    em relao aos parmetros a e b so nulas:

    ( )=

    += N

    kkkk tTbatNa

    MSE1

    2

    ( )02

    2

    111

    2

    1

    2

    =

    +

    =

    +=

    ===

    =N

    kkk

    N

    kk

    N

    kk

    N

    kkkkk

    tTbtatN

    tTbtatNa

    MSE

    Regresso e Ajuste de Curvas

    Ajuste por Mnimos Quadrados: MSE mnimo quando as derivadas parciais

    em relao aos parmetros a e b so nulas:

    ( )=

    += N

    kkk TbatNb

    MSE1

    2

    0211

    =

    +

    =

    ==

    N

    kk

    N

    kk TNbatNb

    MSE

    Regresso e Ajuste de Curvas

    Ajuste por Mnimos Quadrados: MSE mnimo quando as derivadas parciais

    em relao aos parmetros a e b so nulas:

    011

    =

    +

    ==

    N

    kk

    N

    kk TNbat

    0111

    2 =

    +

    ===

    N

    kkk

    N

    kk

    N

    kk tTbtat

    Regresso e Ajuste de Curvas

    Ajuste por Mnimos Quadrados: Em forma matricial:

    =

    =

    =

    =

    ==N

    kk

    N

    kkk

    N

    kk

    N

    kk

    N

    kk

    T

    Tt

    ba

    Nt

    tt

    1

    1

    1

    11

    2

    Regresso e Ajuste de Curvas

    Matlab: funo polyfit() c = polyfit(x,y,M) x: vetor de N elementos, crescentes y: vetor de N elementos, correspondentes aos

    elementos do vetor x M: ordem do polinmio interpolador M = 1: interpolao linear

    c: vetor de M+1 elementos, contendo oscoeficientes do polinmio interpolador

  • 4Regresso e Ajuste de Curvas

    Exemplo: Medidas de Temperatura aolongo do tempo>> 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

    Regresso e Ajuste de Curvas

    Regresso e Ajuste de Curvas

    Exemplo: Outros graus de interpolao c1 = polyfit(t, T, 1); c3 = polyfit(t, T, 3); c5 = polyfit(t, T, 5); t2 = 0:0.01:5; T_1 = polyval(c1, t2); T_3 = polyval(c3, t2); T_5 = polyval(c5, t2);

    Regresso e Ajuste de Curvas

    Exemplo: Outros graus de interpolao xlabel('t(s)'), xlim([-1 6]) ylabel('T(C)'), ylim([-1 120]) plot(t, T, '.', 'markersize',20 ) hold plot(t2, T_1, 'r', 'linewidth', 2) plot(t2, T_3, 'b', 'linewidth', 2) plot(t2, T_5, 'm', 'linewidth', 2) legend('Ordem 1', 'Ordem 3', 'Ordem 5')

    Regresso e Ajuste de Curvas Processamento de Sinais

    Anlise de Dados Interpolao Regresso e Ajuste de Curvas Minimizao de Funes Integrao e Diferenciao Processamento Simblico

  • 5Minimizao de Funes Considere uma funo real de n variveis:

    Mtodos de Minimizao de Funo: Encontrar o vetor x que corresponde ao

    menor valor possvel de y, global ou local Sujeito ou no a restries e limites

    H dois tipos bsicos de minimizao: Minimizao de funes lineares Minimizao de funes no-lineares

    ( ) nxyxfy = ,,

    Sistemas Lineares

    Considere um sistema de M equaeslineares de N variveis:

    Ax = b

    A: matriz M x N b: vetor M x 1 x: vetor N x 1

    Sistemas Lineares

    Considere um sistema de M equaeslineares de N variveis:

    A: matriz M x N b: vetor M x 1 x: vetor N x 1

    =

    MNMNMM

    N

    N

    b

    bb

    x

    xx

    aaa

    aaaaaa

    MML

    MOMMLL

    2

    1

    2

    1

    21

    22221

    11211

    Sistemas Lineares

    Soluo do sistema de M equaeslineares de N variveis: 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

    Soluo do sistema de M equaeslineares de N variveis: Matlab Funo inv: inversa de matriz quadrada x = inv(A) * b

    Funo pinv: pseudo-inversa de matrizretangular ou singular x = pinv(A) * b

    operador \ - backslash x = A \ b

    Sistemas Lineares

    Exemplo:

    15231023

    321

    321

    321

    ==++=+

    xxxxxxxxx

  • 6Sistemas Lineares

    Exemplo:

    =

    15

    10

    111231123

    3

    2

    1

    xxx

    A x b

    Sistemas Lineares

    Exemplo: Matlab

    >> A = [3 2 -1; -1 3 2; 1 -1 -1]>> b = [10 5 -1];

    >> x = inv(A)*bx = 26.0000 -18.0000 41.0000

    Sistemas Lineares

    Exemplo: Matlab

    >> A = [3 2 -1; -1 3 2; 1 -1 -1]>> b = [10 5 -1];

    >> x = A\bx = 26.0000 -18.0000 41.0000

    Minimizao de Funes Lineares Considere um sistema de M equaes

    lineares de N variveis:

    Ax = b

    A: matriz M x N b: vetor M x 1 x: vetor N x 1

    E um sistema de M restries lineares de Nvariveis (inequaes):

    Cx = d

    Minimizao de Funes Lineares Considere um sistema de M equaes

    lineares de N variveis:

    Ax = b

    A: matriz M x N b: vetor M x 1 x: vetor N x 1

    E um sistema de M restries lineares de Nvariveis (inequaes):

    Cx = d

    dCxbAx

    x

    ,2

    min2

    Funes de minimizao linear do Matlab: lsqlin: resoluo de problemas de mnimos

    quadrados lineares com restries Sintaxe: x = lsqlin(A, b, C, d);

    lsqnonneg: resoluo de problemas demnimos quadrados lineares com restries denegatividade Sintaxe: x = lsqnonneg(A, b);

    Minimizao de Funes Lineares

  • 7Minimizao de Funes No-Lineares

    Considere uma funo real no-linearde n variveis:

    onde f(.) uma funo no-linear

    ( ) nxyxfy = ,, Exemplo para funo unidimensional: Campo de um dipolo magntico para

    y = 0, z = 1

    >> x = -10:0.1:10;>> [Bx,By,Bz] = campodip(x,0,1);>> plot(x,Bx, 'linewidth', 2)>> xlabel('x'), ylabel('Bx')

    ( ) 5223

    rrxxBx

    = 22 zxr +=

    Minimizao de Funes No-Lineares

    Exemplo para funo unidimensional:

    xmin

    Minimizao de Funes No-Lineares

    Algumas funes de minimizao no-linear do Matlab: fminbnd fzero fsolve lsqnonlin lsqcurvefit

    Diferem quanto ao tipo de minimizaoe o mtodo empregado

    Minimizao de Funes No-Lineares

    Algumas funes de minimizao doMatlab: fminbnd: minimizao de funo escalar no-

    linear limitada fzero: busca de raiz de funo escalar no-

    linear fsolve: resoluo de sistema de equaes no-

    lineares por mnimos quadrados lsqnonlin: resoluo de problemas de mnimos

    quadrados no-lineares lsqcurvefit: resoluo de problemas de

    mnimos quadrados no-lineares

    Minimizao de Funes No-Lineares

    Funo fminbnd: minimizao defuno escalar no-linear limitada Sintaxe: x = fminbnd(FUN, x1, x2); FUN: ponteiro para a funo desejada x1, x2: limites inferior e superior de busca x: mnimo local encontrado em [x1,x2]

    FUN(x): valor do mnimo local em x Exemplo: x = fminbnd(@cos, 3, 4) ou

    x = fminbnd('cos', 3, 4)

    Minimizao de Funes No-Lineares

  • 8 Funo fminbnd: minimizao defuno escalar no-linear limitada Exemplo: Clculo de

    >> x = fminbnd(@cos, 3, 4)ans = 3.14159480185141

    Minimizao de Funes No-Lineares

    Funo optimset: parmetros deotimizao options = optimset(@fminbnd)ActiveConstrTol: []DerivativeCheck: []Diagnostics: []DiffMaxChange: []DiffMinChange: []Display: 'notify'GoalsExactAchieve: []GradConstr: []GradObj: []Hessian: []HessMult: []HessPattern: []HessUpdate: []Jacobian: []JacobMult: []JacobPattern: []LargeScale: []

    LevenbergMarquardt: []LineSearchType: []MaxFunEvals: 500MaxIter: 500MaxPCGIter: []MaxSQPIter: []MeritFunction: []MinAbsMax: []NonlEqnAlgorithm: []Preconditioner: []PrecondBandWidth: []ShowStatusWindow: []TolCon: []TolFun: []TolPCG: []TolX: 1.0000e-004TypicalX: []

    Minimizao de Funes No-Lineares

    Funo optimset: parmetros deotimizao options = optimset(@fminbnd)

    >> options.MaxFunEvals 500>> options.MaxIter 500>> options.TolX 1e-4

    Minimizao de Funes No-Lineares

    Funo fminbnd: minimizao defuno escalar no-linear limitada Exemplo: Clculo de

    >> options.TolX = 1e-12;>> x = fminbnd(@cos, 3, 4, options)ans = 3.14159265402771 (3.14159480185141)

    Minimizao de Funes No-Lineares

    Exemplo para campo magntico: Definio da Funo a ser minimizada:function y = fun(x) y = campodip(x, 0, 1);

    Minimizao de Funes No-Lineares

    Funo fminbnd:>> options.TolX = 1e-12;>> x = fminbnd(@fun, -1, 1, options)x = -1.089617451163368e-012 (xmin = 0)

    >> x = fminbnd(@fun, -2, 2, options)x = 5.551115123125783e-016 (xmin = 0)

    Minimizao de Funes No-Lineares

  • 9 Funo fminbnd:>> x = fminbnd(@fun, -3, 3, options)x = -1.998401444325282e-015 (xmin = 0)

    >> x = fminbnd(@fun, -4, 4, options)x = -4 (mnimo local!)

    Minimizao de Funes No-Lineares

    Funo fminbnd:>> x = fminbnd(@fun, -3, 3, options)x = -1.998401444325282e-015 (xmin = 0)

    >> x = fminbnd(@fun, -4, 4, options)x = -4 (mnimo local!)

    Minimizao de Funes No-Lineares

    Funo fzero: busca de raiz de funoescalar no-linear Sintaxe: x = fzero(FUN, x0); FUN: ponteiro para a funo desejada x0: ponto inicial de busca x: zero encontrado prximo a x0, ou NaN

    se no encontrar soluo FUN(x) = 0!

    Exemplo: x = fzero(@sin, 3) ou x = fzero('sin', 3)

    Minimizao de Funes No-Lineares

    Funo optimset: options = optimset(@fzero)

    >> options.TolX 2.22e-16

    Minimizao de Funes No-Lineares

    Funo fzero: busca de raiz de funoescalar no-linear Exemplo: Clculo de

    >> x = fzero(@sin, 3)ans =

    3.14159265358979

    Minimizao de Funes No-Lineares

    Funo fzero: busca de raiz de funoescalar no-linear Exemplo: Campo magntico

    >> x = fzero(@fun, 1)ans =

    0.70710678118655

    Minimizao de Funes No-Lineares

  • 10

    Funo fzero: busca de raiz de funoescalar no-linear Exemplo: Clculo de

    >> x = fzero(@sin, 3)ans =

    3.14159265358979

    Minimizao de Funes No-Lineares

    Funo fzero: busca de raiz de funoescalar no-linear Exemplo: Campo magntico

    >> x = fzero(@fun, -1)ans =

    -0.70710678118655

    Minimizao de Funes No-Lineares

    Funo fzero: busca de raiz de funoescalar no-linear Exemplo: Campo magntico

    >> x = fzero(@fun, -1)ans =

    -0.70710678118655

    Minimizao de Funes No-Lineares

    Funo fsolve: resoluo de sistema deequaes no-lineares por mnimosquadrados Sintaxe: X = fsolve(FUN, X0); FUN: ponteiro para a funo desejada X0: vetor com o ponto inicial de busca X: vetor de zero encontrado prximo a X0 FUN(X) = 0

    options = optimset(@fsolve)

    Minimizao de Funes No-Lineares

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

    Minimizao de Funes No-Lineares

    Funo fsolve: resoluo de sistema deequaes no-lineares por mnimosquadrados Exemplo: Clculo de >> x = fsolve(@sin, 3)Optimization terminated successfully: First-order optimality is less than

    options.TolFun.x = 3.14159265329799

    Minimizao de Funes No-Lineares

  • 11

    Funo fsolve: resoluo de sistema deequaes no-lineares por mnimosquadrados Exemplo: Campo magntico

    >> x = fsolve(@fun, 1, optimset('fsolve'))Optimization terminated successfully: First-order optimality is less than

    options.TolFun.x = 0.70710678110186

    Minimizao de Funes No-Lineares

    Funo fsolve: resoluo de sistema deequaes no-lineares por mnimosquadrados Exemplo: Campo magntico>> x = fsolve(@fun, 2, optimset('fsolve'))Optimization terminated successfully: First-order optimality is less than

    options.TolFun.x = 11 fun(11) = 0.0015

    Minimizao de Funes No-Lineares

    Funo fsolve: resoluo de sistema deequaes no-lineares por mnimosquadrados Exemplo: Campo magntico>> x = fsolve(@fun, 2, optimset('fsolve'))Optimizer appears to be converging to a

    minimum that is not a root:Sum of squares of the function values is >

    sqrt(options.TolFun).Try again with a new starting point.x = 0

    Minimizao de Funes No-Lineares

    Exemplo para funo bidimensional: Campo de um dipolo magntico para z = 1

    ( ) 5223

    rrxxBx

    =

    222 zyxr ++=

    Minimizao de Funes No-Lineares

    Exemplo para funo bidimensional: Campo de um dipolo magntico para z = 1

    ( ) 5223

    rrxxBx

    =

    222 zyxr ++=

    Minimizao de Funes No-Lineares

    Exemplo para campo magntico: Definio da Funo a ser minimizada:function y = fun2(x) y = campodip(x(1), x(2), 1);

    Minimizao de Funes No-Lineares

  • 12

    Funo fsolve: resoluo de sistema deequaes no-lineares por mnimos quadrados Exemplo: Campo magntico

    >> x = fsolve(@fun, [0.5 0.5], optimset('fsolve'))Optimization terminated successfully:Gradient in the search direction less than

    tolFunGradient less than 10*(tolFun+tolX)x = 0.70710531298487 0.00194507200989

    Minimizao de Funes No-Lineares

    Funo fsolve: resoluo de sistema deequaes no-lineares por mnimos quadrados Exemplo: Campo magntico

    >> x = fsolve(@fun, [1 1], optimset('fsolve'))Optimization terminated successfully:Search direction less than tolXx = 1 1

    Minimizao de Funes No-Lineares

    Campo magntico 2D: infinitos zeros!

    >> contour(X,Y,Bx, [0 0], 'r')>> grid>> xlabel('x')>> ylabel('y')

    Minimizao de Funes No-Lineares

    Campo magntico 2D: infinitos zeros!

    Minimizao de Funes No-Lineares

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares Sintaxe: x = lsqnonlin(FUN, x0, lb, ub, options, p1,

    p2, ...); FUN: ponteiro para a funo desejada x0: escalar ou vetor com o ponto inicial de busca x: escalar ou vetor com o mnimo encontrado

    prximo a x0 lb, ub: vetores com limites inferiores e superiores

    para x options: opes de otimizao p1, p2, ... : parmetros para a funo

    Minimizao de Funes No-Lineares

    ( )[ ] xFUNx 2min

    options = optimset(@lsqnonlin)Minimizao de Funes No-Lineares

    DerivativeCheck: 'off'Diagnostics: 'off'DiffMaxChange: 0.10000000000000DiffMinChange: 1.000000000000000e-008Display: 'final'Jacobian: 'off'JacobPattern: 'sparse(ones(jrows,jcols))'LargeScale: 'on'LevenbergMarquardt: 'on'LineSearchType: 'quadcubic'MaxFunEvals: '100*numberofvariables'MaxIter: 400MaxPCGIter: 'max(1,floor(numberofvariables/2))'PrecondBandWidth: 0TolFun: 1.000000000000000e-006TolPCG: 0.10000000000000TolX: 1.000000000000000e-006TypicalX: 'ones(numberofvariables,1)'

  • 13

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares Exemplo: Caixa Preta

    Minimizao de Funes No-Lineares

    CIRCUITOELETRNICO

    Vin Vout

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares Exemplo: Caixa Preta

    Minimizao de Funes No-Lineares

    Vin Vout

    R

    C

    = CRtVV inout exp1

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares Exemplo: Caixa Preta Vin = 5V 11 medidas de Vout, uma a cada segundo

    t Vout0 0.0141 3.186

    2 4.337 3 4.775 4 4.884 5 4.966 6 4.985 7 4.963 8 5.004 9 4.978 10 5.028

    Minimizao de Funes No-Lineares

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares Exemplo: Caixa Preta

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

    Minimizao de Funes No-Lineares

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares

    Minimizao de Funes No-Lineares

    Como descobrir R e Ca partir destas medidasexperimentais?

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares Exemplo: Caixa Preta

    function erro = filtroRC(X, Vin, t, Vout_e) R = X(1); C = X(2); Vout = Vin * (1 exp(-t/(R*C)));

    erro = Vout - Vout_e;

    Minimizao de Funes No-Lineares

  • 14

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares Exemplo: Caixa Preta

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

    Minimizao de Funes No-Lineares

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares Exemplo: Caixa Preta

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

    Minimizao de Funes No-Lineares

    Optimization terminated successfully: Relative function value changing by less than OPTIONS.TolFun

    X =

    0.9938 0.9938

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares Exemplo: Caixa Preta

    >> R = X(1);>> C = X(2);>> Vout = Vin * (1 - exp(-t/(R*C)));

    >> figure>> plot(t, Vout_e, 'b.', 'markersize', 20)>> hold on, plot(t, Vout, 'r')>> xlabel('t (s)'), ylabel('Vout (V)')>> legend('Experimental', 'Ajustado')

    Minimizao de Funes No-Lineares

    Funo lsqnonlin: resoluo de problemas demnimos quadrados no-lineares

    Minimizao de Funes No-Lineares

    Funo lsqcurvefit: resoluo de problemasde mnimos quadrados no-lineares (ajustede curva) Sintaxe: X = lsqcurvefit(FUN, X0, Xd, Yd); FUN: ponteiro para a funo desejada X0: ponto inicial de busca X: mnimo encontrado prximo a X0 Xd, Yd: dados para o ajuste

    Minimizao de Funes No-Lineares

    ( )( )[ ] 2,min ydxdxFUNx

    Funo lsqcurvefit: resoluo de problemasde mnimos quadrados no-lineares Exemplo: Caixa Preta

    function Vout = filtroRC2(X, t, Vin) R = X(1); C = X(2); Vout = Vin * (1 exp(-t/(R*C)));

    Minimizao de Funes No-Lineares

  • 15

    Funo lsqcurvefit: resoluo de problemas demnimos quadrados no-lineares Exemplo: Caixa Preta>> 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)

    Minimizao de Funes No-Lineares

    Funo lsqcurvefit: resoluo de problemas demnimos quadrados no-lineares Exemplo: Caixa Preta>> 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)

    Minimizao de Funes No-Lineares

    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

  • 1MQI 2104 - Processamento eAnlise de Sinais Digitais

    Carlos Hall Sala 06 Ramal [email protected]

    Processamento de Sinais

    Anlise de Dados Interpolao Regresso e Ajuste de Curvas Minimizao de Funes Integrao e Diferenciao Processamento Simblico

    Integrao e Diferenciao

    Conceitos chave da rea de clculo Fundamentais para resoluo de

    muitos problemas de engenharia ecincia

    Em alguns casos h soluo analtica Em outros casos, necessria a

    soluo numrica Integrao numrica Diferenciao numrica

    Integrao

    Integral de uma funo f(x), para xvariando entre a e b: rea sob a curva, entre x=a e x=b

    Integrao

    Integral de uma funo f(x), para xvariando entre a e b: rea A sob a curva, entre x=a e x=b

    f(x): integrando a: limite inferior de integrao b: limite superior de integrao x: varivel de integrao

    ( )= ba

    dxxfA

    Integrao

    Integral de uma funo f(x), para xvariando entre a e b: soluo analtica: encontrar a primitiva p(x) da funo f(x)

    calcular a funo p(x) em x = a e x = b a integral ser dada por:

    ( ) ( ) ( ) ( )xfdx

    xdpxpxf =

    ( ) ( )apbpA =

  • 2Integrao Numrica

    Integral de uma funo f(x), para xvariando 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

    calcular a integral da funo de aproximao Quanto melhor a aproximao da funo f(x),

    mais exato ser o valor da integral numrica

    Integrao Numrica

    Integral de uma funo f(x), para xvariando 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 porsegmentos de reta Divide-se o intervalo [a,b] em n sub-intervalos

    de igual largura x

    Cada subintervalo definido por [xi,xi+x]

    Define-se a funo de aproximao por retasque conectam os valores da funo f(x) nosextremos de cada intervalo

    nabx =

    xiaxi +=

    Integrao Numrica

    Regra Trapezoidal: Aproximao porsegmentos de reta

    ( ) ( ) xxfxfA iii += +2 1

    Ai

    Integrao Numrica

    Regra Trapezoidal: Aproximao porsegmentos de reta

    ( ) ( )( )= +=

    +== ni

    ii

    n

    ii xfxf

    xAA0

    10 2

    ( ) ( ) ( ) ( ) ( )( )nno xfxfxfxfxfxA +++++= 121 2222 L

    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 funoy=f(x)

    z: integral numrica de y=f(x), correspondente rea A da funo no intervalo definido pelomnimo e pelo mximo do vetor x

  • 3Integrao 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) Integrao usando 20 pontos:

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

    Exemplo: funo y=humps(x) Integrao usando 20 pontos:

    >> area = trapz(xi,yi)

    area = 26.4507

  • 4Integrao Numrica

    Exemplo: funo y=humps(x) Variando o nmero de pontos de integrao:

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

    Exemplo: funo y=humps(x)

    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 funoy=f(x)

    z: integral cumulativa numrica de y=f(x)

    ( ) ( )= xa

    dxxfxA

    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: funo y=humps(x)

    Integrao Numrica

    Exemplo: Navegao Inercial Acelermetro: mede a acelerao

    instantnea a(t) de um objeto Velocidade Instantnea:

    Posio Instantnea:

    ( ) ( )= t dttatv0

    ( ) ( )=t

    dttvtx0

  • 5Integrao Numrica

    Exemplo: Navegao Inercial Experimento Realizado:

    t (s) a (m/s2)0 01 22 43 74 115 176 247 328 419 4810 51

    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

    Exemplo: Navegao Inercial

    Integrao Numrica

    Regra de Simpson: Aproximao porsegmentos de parbola Divide-se o intervalo [a,b] em 2n sub-intervalos

    de igual largura x

    Cada subintervalo definido por [xi,xi+x]

    Define-se a funo de aproximao por trechosde parbola que conectam os valores da funof(x) nos extremos de cada intervalo

    nabx

    2=

    xiaxi +=

    Integrao Numrica

    Regra de Simpson: Aproximao porsegmentos de parbola

    Matlab: Funo quad: regra de Simpson Funo quadl: regra de Newton-Cotes

    ( ) ( ) ( ) ( )( ) ( ) ( )

    +++++++=

    nnn

    o

    xfxfxfxfxfxfxfxA

    21222

    321

    42424

    3L

    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 nointervalo [a,b]

    IMPORTANTE: a prpria funo quad (e aquadl) determina automaticamente onmero timo de intervalos

  • 6Integrao Numrica

    Exemplo: funo y=humps(x)

    >> quad('humps', -1, 2)ans = 26.34496050120123

    >> quadl('humps', -1, 2)ans = 26.34496047137897

    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 nointervalo [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)

    Integrao Numrica

    Exemplo: funo y=func(x,y)

    >> dblquad(func,0,pi,-pi,pi)

    ans =

    19.73921476256606

    Diferenciao

    Derivada de uma funo f(x): Inclinao da reta tangente funo f(x)

  • 7Diferenciao

    Derivada de uma funo f(x): Taxa de variao da funo f(x) em relao

    a x:

    Diferenciao e Integrao so operaescomplementares:

    ( ) ( )dx

    xdfxf =

    ( ) ( ) ( )xgdx

    xdfxf == ( ) ( )= dxxgxf

    Diferenciao

    Derivada de uma funo f(x): Definio Formal:

    ( ) ( ) ( )x

    xfxxfxfx

    += 0lim

    Diferenciao Numrica

    Aproximao da derivada da funof(x): Estima-se a derivada em um ponto xk

    por meio da aproximao da inclinaoda tangente em xk:Utiliza valores da funo prximos a xk Diferenas Regressivas Diferenas Progressivas Diferenas Centrais

    Diferenciao Numrica

    Diferenas Regressivas: Inclinao da reta ligando (xk-1, f(xk-1)) a

    (xk, f(xk))

    ( ) ( ) ( )1

    1

    =

    kk

    kkk xx

    xfxfxf

    ( ) ( ) ( )x

    xfxfxf kkk = 1

    Diferenciao Numrica

    Diferenas Progressivas: Inclinao da reta ligando (xk, f(xk)) a

    (xk+1, f(xk+1))

    ( ) ( ) ( )kk

    kkk xx

    xfxfxf =

    ++

    1

    1

    ( ) ( ) ( )x

    xfxfxf kkk = +1

    Diferenciao Numrica

    Observaes A diferena progressiva em xk idntica

    diferena regressiva em xk+1

  • 8Diferenciao Numrica

    Observaes: A qualidade de ambas as aproximaes

    depende fortemente de dois fatores: Espaamento entre as amostras Espalhamento nos dados devido a erros de

    medio

    Quanto maior o espaamento xk, maisdifcil a estimao da derivada

    Diferenciao Numrica

    Diferenas Centrais: Mdia entre as diferenas regressivas e

    as diferenas progressivas

    ( ) ( ) ( ) ( ) ( )

    +

    = +x

    xfxfx

    xfxfxf kkkkk 1121

    ( ) ( ) ( )x

    xfxfxf kkk = +

    211

    Diferenciao Numrica

    Matlab: funo diff() dx = diff(x) x: vetor de dimenso N dx: vetor contendo as diferenas entre

    os elementos de x, com dimenso N-1

    dx = [x(2)-x(1) x(3)-x(2) ... x(n)-x(n-1)]

    Diferenciao Numrica

    Matlab: funo diff() Exemplo:

    >> x = [0,1,2,3,4,5];>> y = [2,3,1,5,8,10];>> dx = diff(x)dx = 1 1 1 1 1

    >> dy = diff(y)dy = 1 -2 4 3 2

    Diferenciao Numrica

    Matlab: funo diff() Aproximao para f(x):

    >> df = dy./dx

    df =

    1 -2 4 3 2

    Diferenciao Numrica

    Matlab: funo diff() Os valores da aproximao para f(x) valem

    tanto para as diferenas progressivasquanto para as diferenas regressivas

    A diferena est em quais valores de x soatribudos aos valores de df

    >> xr = x(2:end)xr = 1 2 3 4 5>> xp = x(1:end-1)xp = 0 1 2 3 4

  • 9Diferenciao 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

    Exemplo: Senide ruidosa>> x = [0:pi/50:pi]; n = length(x);>> yr = sin(x)+0.025*randn(1,n);>> td = cos(x);>> 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')

    Derivada do sinal senoidal sem rudo

    Diferenas Regressivas

    Diferenciao Numrica

    Exemplo: Senide ruidosa>>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

    Diferenciao Numrica Diferenciao Numrica

  • 10

    Processamento de Sinais

    Anlise de Dados Interpolao Regresso e Ajuste de Curvas Minimizao de Funes Integrao e Diferenciao Processamento Simblico

    Processamento Simblico

    At o momento: ProcessamentoNumrico Envolvendo dados numricos Representados por nmeros em ponto

    flutuante com preciso dupla

    Matlab: Tambm realiza ProcessamentoSimblico Manipulao de expresses matemticas,

    como se estivesse usando papel e lpis Objetivo: obter solues em forma fechada

    Processamento Simblico

    Declarao de Variveis e Constantescomo 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

    Declarao de Variveis e Constantescomo Objetos Simblicos:>> whosName Size Bytes Classdelta 1x1 132 sym objectpi 1x1 128 sym objectsqroot2 1x1 138 sym objectx 1x1 126 sym objecty 1x1 126 sym object

    Grand total is 20 elements using 650 bytes

    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

    Expresses Simblicas:>> syms s t A

    >> f = s^2 + 4*s + 5 f = s^2+4*s+5

    >> g = s + 2 g = s+2

  • 11

    Processamento Simblico

    Expresses Simblicas:>> h = f*g h = (s^2+4*s+5)*(s+2)

    >> z= exp(-s*t) z = exp(-s*t)

    >> y = A*z y = A*exp(-s*t)

    Processamento Simblico

    Funo findsym: determina quais so osobjetos simblicos contidos em um outroobjeto simblico (ou expresso)

    >> findsym(f)ans = s

    >> findsym(z)ans = A, s, t

    Processamento Simblico

    Notao Matricial: tambm aplicvel noprocessamento simblico

    >> n = 3;>> syms x>> B = x.^((0:n)'*(0:n))

    Processamento Simblico

    Notao Matricial: tambm aplicvel noprocessamento 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

    Manipulao de Expresses Polinomiais: expand(S): expanso da expresso simblica

    polinomial S como um produto de seusfatores

    factor(S): fatorao polinomial da expressosimblica polinomial S

    simplify(S): simplificao da expressosimblica polinomial S

    subs(S): substituio de variveis numden(S): forma racional do polinmio S

    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

  • 12

    Processamento Simblico

    Multiplicao Escalar:

    >> A = s^4 -3*s^3 -s +2;>> C = 3*A

    C =3*s^4-9*s^3-3*s+6

    Processamento Simblico

    Multiplicao:>> 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:>> D = s^2 + 6*s + 9;>> D = factor(D) D = (s+3)^2

    >> P = s^3 - 2*s^2 -3*s + 10;>> P = factor(P) P = (s+2)*(s^2-4*s+5)

    Processamento Simblico

    Denominador Comum:

    ( )sss

    sH 3/212/1

    36/1 +++=

    ( )sss

    ssH34

    223 ++

    +=

    Processamento Simblico

    Denominador Comum:>> H = -(1/6)/(s+3) -(1/2)/(s+1) +(2/3)/s;>> [N,D] = numden(H)

    N = s+2

    D = (s+3)*(s+1)*s

    >> D = expand(D)D =s^3+4*s^2+3*s ( )

    sssssH

    34223 ++

    +=

    Processamento Simblico

    Cancelamento de Termos:

    >> H = (s^3 +2*s^2 +5*s +10)/(s^2 + 5);>> H = simplify(H) H = s+2

    ( )5

    10522

    23

    ++++=

    sssssH

  • 13

    Processamento Simblico

    Cancelamento de Termos:

    >> factor(s^3 +2*s^2 +5*s +10)ans =(s+2)*(s^2+5)

    ( )5

    10522

    23

    ++++=

    sssssH ( ) 2+= ssH

    Processamento Simblico

    Substituio de Variveis:

    ( )86

    32 ++

    +=ss

    ssH

    ( ) ( ) 2+== sssHsG

    Processamento Simblico

    Substituio de Variveis:>> H = (s+3)/(s^2 +6*s + 8);>> G = subs(H,s,s+2) G = (s+5)/((s+2)^2+6*s+20)

    >> G = collect(G) G = (s+5)/(s^2+10*s+24) ( ) 2410

    52 ++

    +=ss

    ssG

    Processamento Simblico

    Expresses Trigonomtricas:>> syms theta phi>> A = sin(theta + phi) A = sin(theta+phi)

    >> A = expand(A) A = sin(theta)*cos(phi)+cos(theta)*sin(phi)

    Processamento Simblico

    Expresses Trigonomtricas:

    >> B = cos(2*theta) B = cos(2*theta)

    >> B = expand(B) B = 2*cos(theta)^2-1

    Processamento Simblico

    Expresses Trigonomtricas:

    >> C = 6*((sin(theta))^2+(cos(theta))^2) C = 6*sin(theta)^2+6*cos(theta)^2

    >> C = expand(C) C = 6*sin(theta)^2+6*cos(theta)^2

    C = 6 !!!

  • 14

    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

    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

    Equaes Algbricas e Transcendentais funo solve(E1,E2,...,EN): encontra as

    razes das expresses E1, E2, ..., EN

    >> syms s>> D = s^2 +6*s +9;>> s = solve(D) s = [ -3] [ -3]

    Processamento Simblico

    Equaes Algbricas e Transcendentais funo solve(E1,E2,...,EN): encontra as

    razes das expresses E1, E2, ..., EN

    >> P = s^3 -2*s^2 -3*s + 10;>> s = solve(P) s = [ -2] [ 2+i] [ 2-i]

    Processamento Simblico

    Equaes Algbricas e Transcendentais funo solve(E1,E2,...,EN): encontra as

    razes das expresses E1, E2, ..., EN

    >> syms theta x z>> E = z*cos(theta) - x;>> theta = solve(E,theta) theta = acos(x/z)

    Processamento Simblico

    Equaes Algbricas e Transcendentais funo solve(E1,E2,...,EN): encontra as

    razes das expresses E1, E2, ..., EN

    >> syms x>> E = exp(2*x) + 4*exp(x) -32;>> x = solve(E) x = [ log(-8)] [ log(4)]

  • 15

    Processamento Simblico

    Clculo - Diferenciao funo diff: diff(E): diferencia a expresso simblica E em

    relao varivel livre, determinadaautomaticamente

    diff(E,v): diferencia a expresso simblica E emrelao varivel simblica v

    diff(E,n): diferencia n vezes a expressosimblica E em relao varivel livre

    diff(E,v,n): diferencia n vezes a expressosimblica E em relao varivel simblica v

    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

    >> g = s^n;>> h = diff(g) h = s^n*n/s

    >> h = simplify(h) h = s^(n-1)*n

    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

    >> df3 = simplify(df3) df3 = 2*cos(x^2)*x

    Processamento Simblico

    Clculo - Diferenciao

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

  • 16

    Processamento Simblico

    Clculo - Integrao funo int: int(E): determina a integral indefinida da

    expresso simblica E em relao varivellivre, determinada automaticamente. Se Econstante, integrao em relao varivel x

    int(E,v): integral indefinida da expressosimblica E em relao varivel simblica v

    int(E,a,b): integral definida da expressosimblica E com limites de integrao a e b

    diff(E,v,a,b): integral definida da expressosimblica E em relao varivel simblica vcom limites de integrao a e b

    Processamento Simblico

    Clculo - Integrao

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

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

    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)