Bio*_*roo 3 r mathematical-optimization
在R中,我使用函数optim()来查找两个变量的目标函数的最小值.我正在使用的真正目标函数非常复杂,所以我试着熟悉一个更简单的目标函数.运行optim()的最简单方法是optim(par,function),其中par是算法初始值的向量.我发现我得到的答案在很大程度上取决于我输入的初始值.但是,我使用的函数非常简单,我担心我误解了optim()的输入或输出.
我使用的目标函数是:
f <- function(x){
abs(x[1])*abs(x[2])
}
Run Code Online (Sandbox Code Playgroud)
当我运行时optim(c(-1.2,1),f)
,optim(c(-1.2,10),f)
我获得了最佳参数(par)和最小值(value)的完全不同的输出.有没有人知道为什么会这样?
在这种情况下,您的目标函数具有无限多个最佳点(不一定只是不同的局部最大值).其中一个参数为零0 0与参数接近0的任何其他点一样好.我不确定您是否期望(0,0),但是(0,34)具有相同的值并且可以也被认为是最佳的.