diff options
author | Suraj Yerramilli | 2016-01-04 18:51:05 +0530 |
---|---|---|
committer | Suraj Yerramilli | 2016-01-04 18:51:05 +0530 |
commit | 34a35434bff9407126221085407b5301b30d9d38 (patch) | |
tree | 15aa6c0df631a22882b37b12e8883c31139a21e2 /R/predict.R | |
parent | c064ec62ec2c7cf3d761addc8e0495ab82b7ed19 (diff) | |
download | SysID-R-code-34a35434bff9407126221085407b5301b30d9d38.tar.gz SysID-R-code-34a35434bff9407126221085407b5301b30d9d38.tar.bz2 SysID-R-code-34a35434bff9407126221085407b5301b30d9d38.zip |
Completed predict routine
Diffstat (limited to 'R/predict.R')
-rw-r--r-- | R/predict.R | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/R/predict.R b/R/predict.R index 84b64a8..a896c3d 100644 --- a/R/predict.R +++ b/R/predict.R @@ -12,7 +12,9 @@ predict.idpoly <- function(x,data,nahead=1){ Hinv <- signal::Arma(b=Hden,a=x$C) filtered <- signal::filter(Hinv,y-det_sys) if(nahead!=1){ - + H <- as.numeric(polynom::polynomial(x$C)*polyinv(Hden,nahead)) + Hl <- signal::Ma(H[1:nahead]) + filtered <- signal::filter(Hl,filtered) } ypred <- y[k] - filtered } @@ -39,4 +41,16 @@ predict.estpoly <- function(x,newdata=NULL,nahead=1){ polyinv <- function(x,k){ gamma <- 1/Re(polyroot(x)) + + inverse <- function(y,k){ + sapply(1:k-1,function(i) y^i) + } + z <- lapply(lapply(gamma,inverse,k=2),polynom::polynomial) + temp = z[[1]] + if(length(z)>1){ + for(i in 2:length(z)){ + temp = temp*z[[i]] + } + } + temp }
\ No newline at end of file |