在非线性最小化函数 stats::nlm
的帮助文件中,它声明其中一个参数 f
是(强调我的):
要最小化的函数,返回单个数值 . 这应该是一个函数,第一个参数是长度为p的向量,后跟由...参数指定的任何其他参数 . 如果函数值具有称为渐变的属性或梯度和粗麻布属性,则这些属性将用于计算更新的参数值 .
这是否意味着渐变和hessians由以下命令提供:
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
的代码内部没有帮助 .
1 回答
这是一个简单的一维示例:
这使: