如何在R中平滑非线性函数

时间:2019-07-12 17:57:17

标签: r optimization smoothing nonlinear-optimization

我有一个想优化的粗麻布功能。但是由于众多局部最优,搜索算法陷入了困境。下面是一个视觉图:

enter image description here

R代码生成此代码:

x = seq(0,100,0.1);
y = 60 - sqrt( 50^2 - (x-50)^2 );
plot(x, y, type = "l", col = "black", lwd = 2, ylim = c(5,65), lty = 2);

y_burpy = y;
for(i in seq(2,96,7)) {
  idx = which(x %between% c(i,i+3));
  y_burpy[idx] = y_burpy[idx] - 0.2*(15 - abs(-15:15));
}
lines(x, y_burpy, type = "l", col = "green", lwd = 2);

我想平滑green线并恢复black曲线。以上仅是示例。我要平滑的实际功能是多维的(准确地说是3),因此无法可视化。以下是我的实函数的3维图,其中固定了一个参数(rho)。 enter image description here

该函数似乎具有良好的曲率,但是由于抖动,我无法获得将其最小化的稳定参数。我也知道函数的功能形式(以及它的派生wrt参数)。

0 个答案:

没有答案