diff options
author | Suraj Yerramilli | 2016-01-02 11:44:41 +0530 |
---|---|---|
committer | Suraj Yerramilli | 2016-01-02 11:44:41 +0530 |
commit | 054fcbef94b6355ffaba33c89af311ddb7df39bd (patch) | |
tree | bd936381634239311f1a7042bbe613f2404a2773 /R | |
parent | 22496c19d045f2a41790ad7cc92af0190a2e8173 (diff) | |
download | SysID-R-code-054fcbef94b6355ffaba33c89af311ddb7df39bd.tar.gz SysID-R-code-054fcbef94b6355ffaba33c89af311ddb7df39bd.tar.bz2 SysID-R-code-054fcbef94b6355ffaba33c89af311ddb7df39bd.zip |
correcting levenber-mqdt method
Diffstat (limited to 'R')
-rw-r--r-- | R/estUtil.R | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/R/estUtil.R b/R/estUtil.R index aee0e96..e791417 100644 --- a/R/estUtil.R +++ b/R/estUtil.R @@ -27,9 +27,9 @@ levbmqdt <- function(...,obj,theta0,N,opt){ } # Update Parameters - H <- 1/N*(t(l$grad)%*%l$grad) + d*diag(dim(theta0)[1]) + H <- t(l$grad)%*%l$grad + d*diag(dim(theta0)[1]) Hinv <- solve(H) - theta <- theta0 + 1/N*Hinv%*%t(l$grad)%*%e + theta <- theta0 + Hinv%*%t(l$grad)%*%e # Update residuals e <- l$Y-l$X%*%theta @@ -63,7 +63,7 @@ levbmqdt <- function(...,obj,theta0,N,opt){ e <- e[1:N,] sigma2 <- sum(e^2)/df - vcov <- sigma2 * Hinv/sqrt(N) + vcov <- Hinv list(params=theta,residuals=e,vcov=vcov,sigma = sqrt(sigma2), termination=list(WhyStop=WhyStop,iter=i,FcnCount = countObj)) @@ -83,7 +83,7 @@ levbmqdt <- function(...,obj,theta0,N,opt){ #' @param LMstep Size of the Levenberg-Marquardt step #' #' @export -optimOptions <- function(tol=1e-5,maxIter=20,LMinit=2,LMstep=2){ +optimOptions <- function(tol=1e-5,maxIter=20,LMinit=100,LMstep=8){ return(list(tol=tol,maxIter= maxIter, adv= list(LMinit=LMinit, LMstep=LMstep))) } |