summaryrefslogtreecommitdiff
path: root/R/predict.R
diff options
context:
space:
mode:
authorSuraj Yerramilli2016-01-04 18:51:05 +0530
committerSuraj Yerramilli2016-01-04 18:51:05 +0530
commit34a35434bff9407126221085407b5301b30d9d38 (patch)
tree15aa6c0df631a22882b37b12e8883c31139a21e2 /R/predict.R
parentc064ec62ec2c7cf3d761addc8e0495ab82b7ed19 (diff)
downloadSysID-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.R16
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