[R-br] Dúvida em erro na função Filtro de Kalman

Ivan Bezerra Allaman ivanalaman em yahoo.com.br
Segunda Maio 14 10:19:22 BRT 2012


####
Supondo que vc esteja fazendo esta operação!
#(ar_Y[,,t]-ar_Z[,,t,drop=FALSE]) %*% (ar_A[,,t,drop=FALSE]-ar_D[,,t,drop=FALSE])

#Vamos fazer uma pequena simulação! Supondo que tenhamos rodado todo o seu código!
#Para t=1 tem-se:
a1<-matrix(1:2,nc=1)
p1<-matrix(c(3,1,1,2),nc=2)
geracao<-gerador_EE(ar_Z,ar_T,ar_C,ar_D,ar_R,ar_H,ar_Q,a1,p1)

n<-dim(ar_Z)[3] #nº de matrizes do array Z ou D ou H
p<-dim(ar_H)[1] #nº linhas de H, D ou Z
m<-dim(ar_T)[1] #nº linhas de T, C ou R
r<-dim(ar_Q)[1] #nº linhas de Q

ar_A[,,1]<-a1
ar_Y<-gerador_EE(ar_Z,ar_T,ar_C,ar_D,ar_R,ar_H,ar_Q,a1,p1)

ar_Y[,,1]
ar_Z[,,1,drop=FALSE]
ar_Y-ar_Z[,,1,drop=FALSE]#erro!!

ar_A[,,1,drop=FALSE]
ar_D[,,1,drop=FALSE]
ar_A[,,1,drop=FALSE]-ar_D[,,1,drop=FALSE]#erro!!!

é isso?

 

\begin{signature}
<<>>=
Prof. Dr. Ivan Bezerra Allaman
Universidade Estadual de Santa Cruz
Departamento de Ciências Exatas e Tecnológicas
Ilhéus/BA - Brasil
Fone: +55 73 3680-5596
E-mail: ivanalaman em yahoo.com.br/ivanalaman em gmail.com
@
\end{signature}


________________________________
 De: Victor Eduardo <victorduca08 em gmail.com>
Para: r-br em listas.c3sl.ufpr.br; Ivan Bezerra Allaman <ivanalaman em yahoo.com.br> 
Enviadas: Segunda-feira, 14 de Maio de 2012 9:50
Assunto: Re: [R-br] Dúvida em erro na função Filtro de Kalman
 

Ivan, no for é  for(t in 1:n), sem querer coloquei 2 ali. No caso o erro é nas dimensões da matriz? Só que o ar_A está sendo multiplicado, e ele vai ficar na mesma dimensão de D. No caso o array ar_A tem n+1 e o os outros tem n, só que seria a previsão.



Abraços!





Em 14 de maio de 2012 09:39, Ivan Bezerra Allaman <ivanalaman em yahoo.com.br> escreveu:

O erro é claro!
>
>
>Verifique a linha que eu grifei em vermelho no seu código. As dimensão do objeto "ar_A e ar_D" estão diferentes, impossibilitando a subtração.
>
>
>.
>.
>.
>for(t in 1:2){
>ar_U[,,t]<-ar_Y[,,t]-ar_Z[,,t,drop=FALSE]%*%ar_A[,,t,drop=FALSE]-ar_D[,,t,drop=FALSE]
>ar_F[,,t]<-ar_Z[,,t,drop=FALSE]%*%ar_P[,,t,drop=FALSE]%*%t(ar_Z[,,t,drop=FALSE])+ar_H[,,t,drop=FALSE]
>ar_AA[,,t]<-ar_A[,,t,drop=FALSE]+ar_P[,,t,drop=FALSE]%*%ar_Z[,,t,drop=FALSE]%*%ginv(ar_F[,,t,drop=FALSE])%*%ar_U[,,t,drop=FALSE]
>ar_PP[,,t]<-ar_P[,,t,drop=FALSE]-ar_P[,,t,drop=FALSE]%*%t(ar_Z[,,t,drop=FALSE])%*%ginv(ar_F[,,t,drop=FALSE])%*%ar_Z[,,t,drop=FALSE]%*%ar_P[,,t]
>ar_A[,,t+1]<-ar_T[,,t,drop=FALSE]%*%ar_AA[,,t,drop=FALSE]+ar_C[,,t,drop=FALSE]
>ar_P[,,t+1]<-ar_T[,,t,drop=FALSE]%*%ar_PP[,,t,drop=FALSE]%*%t(ar_PP[,,t,drop=FALSE])+ar_R[,,t,drop=FALSE]%*%ar_Q[,,t,drop=FALSE]%*%t(ar_R[,,t,drop=FALSE])
>}
>return(list(ar_A,ar_P))
>}
>
>
>Filtro_Kalman(ar_Z,ar_T,ar_C,ar_D,ar_R,ar_H,ar_Q,a1,p1)
>
>(S,f,P)
>Allaman
>
> 
>
>
>\begin{signature}
><<>>=
>Prof. Dr. Ivan Bezerra Allaman
>Universidade Estadual de Santa Cruz
>Departamento de Ciências Exatas e Tecnológicas
>Ilhéus/BA - Brasil
>Fone: +55 73 3680-5596
>E-mail: ivanalaman em yahoo.com.br/ivanalaman em gmail.com
>@
>\end{signature}
>_______________________________________________
>R-br mailing list
>R-br em listas.c3sl.ufpr.br
>https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120514/2b364716/attachment.html>


Mais detalhes sobre a lista de discussão R-br