[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [obm-l] Recorrencias Lineares



> ou ha um metodo melhor,  para calcular isso?
> 
> Obrigado.
> --------------------------------------------------
>                      Rafael
> 

Acredito que a ferramenta que você procure seja a
transformada Z. Eu não deveria responder sobre um
assunto em que eu estou tão enferrujado, mas...

A transformada Z é o equivalente em sistemas
discretos/amostrados da transformada de Laplace em
sistemas no domínio tempo. Da mesma forma que a
transformada de Laplace facilita a solução de EDOs
envolvendo funções contínuas, a transformada Z
facilita a resolução de equações de diferenças
lineares a coeficientes constantes do tipo que vc
descreveu. 

http://en.wikipedia.org/wiki/Z-transform

Nos cursos de engenharia elétrica esta analogia entre
sistemas contínuos/amostrados é explorada porque as
cadeiras de análise de sistemas/controle vem antes de
DSP/sistemas amostrados. Creio que esta estruturação
facilita mesmo as coisas pq, em vários aspectos, a
obtenção de propriedades do sistema amostrado através
da transformada Z de sua função de transferência tem
paralelos à análise de sistemas contínuos através da
transformada de Laplace.

Tomando o seu exemplo, e supondo a recorrência valendo
para n >=0: 
x_n - 5*x_(n-1) + 6*x_(n-2) = 5 + 3*n +2*n^2 
Vamos arbitrar x[n]==0 para n<0 e calcular x[1],x[2]
pela fórmula:
x0 –5*0 +6*0 = 5 + 3*0 +2*0 => x0 = 5
x1 –5*5 +6 *0 = 5 +3 + 2 => x1 = 35

Para condições inicias diferentes, um método seria
transformá-las em entradas, usando a função delta de
Dirac.  Veja:
http://fourier.eng.hmc.edu/e102/lectures/Z_Transform/node15.html

Voltando à expressão original devemos aplicar a
transformada Z nos dois lados da igualdade. Isso se
faz usando tabelas de transformadas Z, do mesmo modo
como se usa Laplace para uma EDO:
 
x_n - 5*x_(n-1) + 6*x_(n-2) = 5 + 3*n +2*n^2 =>
aplicando a transformada Z temos: 

X(z) –5*X(z)/z +6*X(z)/z^2  =  5/(1-1/z)
+3/z/(1-1/z)^2 + 2/z*(1+1/z)/(1-1/z)^3

X(z) *( 1 –5/z +6/z^2) = 5/(1-1/z) +3/z/(1-1/z)^2 +
2/z*(1+1/z)/(1-1/z)^3

X(z) = (5/(1-1/z) +3/z/(1-1/z)^2 +
2/z*(1+1/z)/(1-1/z)^3) * 1/(1 –5/z +6/z^2)

Agora a antitransformada Z de X(z) lhe dará a x[n]
procurada. Para obtê-la, vc deve decompor X(z) em
frações parciais... 

X(z) = 1  -80/(z-2)  +2/(z-1)^3  +243/4/(z-3) 
+23/2/(z-1)^2  +121/4/(z-1) 

... e obter a antitransformada Z de cada termo  a
partir de uma tabela de transformadas Z...

Somando tudo temos:

x[n] = 91/4  +17/2*n +n^2  +153/4*3^n  -56*2^n

Veja que apenas reparando na expressão da transformada
Z, podemos dizer coisas importantes sobre x[n]. No
caso, X(z) tem pólos fora do círculo de raio unitário
em torno da origem no plano complexo, o que nos indica
que x[n] -> oo quando n->oo. 

Outra observação interessante é que usando a
transformada Z vc pode obter o que se chama de função
de transferência do sistema. Observe que o lado
esquerdo da sua recorrência representa a influência de
valores passados da sequência na resposta atual. Isso
representa uma “memória” do sistema, ou, para os
engenheiros, a sua caracterização. Do lado direito, vc
tem a influência da entrada, um valor de excitação em
função de n. Para os engenheiros é importante isolar
as características do sistema, independentemente da
entrada. Imagine que vc defina uma outra entrada
qualquer no seu sistema, expressa como uma função de
n: E[n]

A sua resposta, em termos de transformada Z seria data
por:
X(z) = 1/(1 –5/z +6/z^2) * tranfZ{E[n]} 

A parte 1/(1 –5/z +6/z^2) permanece e representa um
comportamento que é característico do sistema. Os
engenheiros chamam isso de função de transferência.

Mas, como eu disse no início, estou muito, muito
enferrujado nisso. Se alguém trabalha com DSP na lista
poderá responder com muito mais propriedade, e dar
alguma referência melhor.  

[]´s  Demétrio


--- Rafael <rfa1989@gmail.com> escreveu:

> Qual o metodo que voces usam para resolver
> recorrencias lineares
> nao-homogeneas do tipo: a_n*x_n +...+a_0*x_0 = P(n)
> sendo P(n) um polinomio em n.
>  Ex.: x_n - 5*x_(n-1) + 6*x_(n-2) = 5 + 3*n +2*n^2
> 
> Li uma solucao de um problema parecido com esse (mas
> do mesmo formato
> geral que eu descrevi acima) , onde o autor ao meu
> ver "chuta" que x_n
> é da forma x_n = A*n^2 + B*n +C , e substitui nos
> x_n, x_(n-1), etc do
> problema.
> Depois usa identidade de polinomios para determinar
> A,B,C  e depois
> soma essa solucao com a solucao do caso homogeneo
> (como se o segundo
> membro fosse zero).
> 
> Como é que eu vou saber que polinomio devo "chutar"
> para a forma x_n?
> sera que é sempre um polinomio do mesmo grau que
> P(n)?
> ou ha um metodo melhor,  para calcular isso?
> 
> Obrigado.
> --------------------------------------------------
>                      Rafael
> 
>
=========================================================================
> Instruções para entrar na lista, sair da lista e
> usar a lista em
> http://www.mat.puc-rio.br/~nicolau/olimp/obm-l.html
>
=========================================================================
> 


__________________________________________________
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 
=========================================================================
Instruções para entrar na lista, sair da lista e usar a lista em
http://www.mat.puc-rio.br/~nicolau/olimp/obm-l.html
=========================================================================