r - Using optim on a two-variable function -


i having trouble optimizing on function 2 parameters.

# creating corresponding mock data set n=2000 x <- rnorm(n,0,1) x <- cumsum(x) n=length(x)  k=1  dx = rep(0,n-k) (i in k:(n - 1)){   sumx = 0   (j in 0:k){     sumx = sumx + (-1)^j*choose(k,j)*x[i-j+1]   }   dx[i-k+1] = sumx }  vpk <- matrix(ncol = 1, nrow = 10) (p in seq(from=1, to=10,by=1)) {    vpk[p*1] <- sum(abs(dx)^p) }  vpk = data.frame(vpk); names(vpk)='v1'; vpk$v2 = 1:10; 

now minimizing function

rab <- function(a,b){   g <- ifelse(a>0 & a<1-1/p & p >=b & b<=2, a*p,               ifelse(a>0 & a<1-1/b & p< b & b<=2, -1+(a+1/b),                      ifelse(a >= 1-1/pmax(p,b) & b<=2,-1+p,na))) }   #p=1 suma <- function(a,b){   sume=0   for(p in seq(from=1,to=10, by=1)){     sume = sume + (log(vpk$v1[p])/log(n^(-1))-outer(a,b,rab))^2   }   return(sume) } 

the values minimize on a , b, , values a , b follows:

a= seq(0.1,5,by=0.25) b= seq(0,2,by=0.1) 

now can plot function a , b above, first defining z

z <-suma(a,b)  persp(a,b,z, theta=-135, phi=45, ticktype='detailed') image(a,b,z) contour(a,b,z, add=t) 

here can see function minimized should near 0 , can lie between 0 , 2.

now, want do, minimize 'suma'. have trouble. i've done:

optim(c(0.00001,1.5), suma) 

but guess need make suma function of 1 parameter work. appreciated! i've tried optim, might want try package?

change function this:

suma <- function(par){   sume=0   for(p in seq(from=1,to=10, by=1)){     sume = sume + (log(vpk$v1[p])/log(n^(-1))-outer(par[1],par[2],rab))^2   }   return(sume) } 

package optimx might of interest you.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -