I am working on minimization of sum of squared errors for a problem that has 2 box-constrained parameters. I got the solution for this problem using "L-BFGS-B" method in optim function using an R code as res<-optim(par=c(parInit), fn=myFunction, method = c("L-BFGS-B"), lower parMin, upper = parMax, control=list(trace=3,factr=iFactr,maxit=300), parOpt=parOpt,parVal=parVal,objFun=iObjFun,dset=dHM1,whatPDM=whatPDMi) Here "myFunction" is a function that provides the value of the sum of squared error that is computed after a lot of computations. There are other parameters and data (through a dataframe dHM1) that are supplied to "myFunction" as given in last line of the above R code. Since the optim function takes very long (about 40 minutes) to converge, I am thinking I can use (a simpler) *nls function* instead as the objective function is a well behaved sum of squared error function only. However, my problem is that *nls function uses a "formula" instead of the function fn in* as in optim and I am not able to know how to pass everything to that formula (that is in a function form) that I could in optim. I tried many things around it as below: res<nls(~myFunction(x), start=list(x=c(parInit)), algorithm=c("port"), trace=TRUE, model=TRUE, lower = parMin, upper = parMax, parOpt=parOpt, parVal=parVal, objFun=iObjFun, dset=dHM1, whatPDM=whatPDMi) Note: ~ it is a tilda in the above code. I know that I am not providing the correct syntax for "formula" in nls function. I get error messages, e.g., Error in x$formula : object of type 'closure' is not subsettable Could somebody point me to the correct syntax for this nls application, particularly for the syntax for the formula. Thank you. HC -- View this message in context: http://r.789695.n4.nabble.com/Syntax-for-nls-optimization-function-tp4633451.html Sent from the R help mailing list archive at Nabble.com.