【发布时间】:2017-07-18 17:47:36
【问题描述】:
在非线性最小化函数stats::nlm 的帮助文件中,它指出f 的参数之一是(强调我的):
要最小化的函数,返回单个数值。这应该是一个函数,第一个参数是一个长度为 p 的向量,后跟由 ... 参数指定的任何其他参数。 如果函数值有一个叫做梯度的属性或同时有梯度和粗麻布属性,这些将用于计算更新的参数值。
这是否意味着梯度和粗麻布是由如下命令提供的:
attr(f, 'gradient') <- function(...){...}
这个函数的输入输出应该是什么?
将此与一般优化器 stats::optim 进行对比:
optim(par, fn, gr = NULL, ...,
method = c("Nelder-Mead", "BFGS", "CG", "L-BFGS-B", "SANN",
"Brent"), ...)
梯度被显式指定为optim 的参数,例如:how to propery specify a gradient function for use in optim() or other optimizer
检查nlm 的代码内部没有帮助。
【问题讨论】:
标签: r mathematical-optimization model-fitting