# FUNCTIONS TO IMPLEMENT SOCIAL PLANNER MODEL SEARCH AND GRAPHS # Function that computes the series k's, given series of c's # (also needs suppor ratio and labor force growth series, but only one set here) pathfn<-function(cseries,startingk,nyears,nseries,srseries,alpha,deprec,ggg){ kkk<-startingk i<-1 negk<-0 while (i0) { for (i in 1:nbasicreps) { cfind<-optim(par=cfind$par,fn=optfn,nyears=nyears,pts=pts, startingk=startingk,rho=rho,bigpenalty=bigpenalty,distwt=distwt, nseries=nseries,srseries=srseries,alpha=alpha,deprec=deprec,ggg=ggg,theta=theta, control=list(trace=1,maxit=50000,fnscale=1)) solnpath<-pathfn(predict(smooth.spline(x=pts,y=cfind$par,spar=0.6),x=1:395)$y, startingk=startingk,nyears=nyears,nseries=nseries,srseries=srseries, alpha=alpha,deprec=deprec,ggg=ggg) csolns<-rbind(csolns,solnpath$cseries) ksolns<-rbind(ksolns,solnpath$kkk) ptvals<-rbind(ptvals,cfind$par) vals<-c(vals,cfind$value) cnts<-c(cnts,cfind$counts[1]) } } if (nrandreps>0) { for (i in 1:nrandreps) { cfind2<-optim(par=cfind$par+runif(length(cfind$par),min=-randlevel,max=randlevel), fn=optfn,nyears=nyears,pts=pts, startingk=startingk,rho=rho,bigpenalty=bigpenalty,distwt=distwt, nseries=nseries,srseries=srseries,alpha=alpha,deprec=deprec,ggg=ggg,theta=theta, control=list(trace=1,maxit=50000,fnscale=1)) if (cfind2$val