Предположим, что у нас есть следующий код:
x1<- runif(40, min = -4.5, max = 4.5) # Create x vector
y1 <- runif(40, min = -4.5, max = 4.5) # Create y vector
custom_fun <- function(x, y) { # Create custom function in R ; here i used the beale function
z <- (1.5 - x + x*y)^2+(2.25 - x + x*y^2)^2+(2.625 - x + x*y^3)^2
return(z)
}
m <- outer(x1, y1, custom_fun)
print(m)
Мой вопрос в том, как получить список из n минимальных значений матрицы m, мне также нужно получить соответствующие позиции в векторах x1 и y1 (что означает пары из x1 и y1, которые позволяют нам получить эти минимальные значения матрицы m).
Например, если выполнение предыдущего кода дает:
#m
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 508.64893 11.245614 7887.387 3.4916340 1.517622 3232.9724
[2,] 727.76775 19.629751 17649.225 46.0714031 63.427516 6708.3153
[3,] 2227.94868 7.948157 39784.638 0.3509784 6.073413 15901.8932
[4,] 56.06329 13.568900 432.400 11.4225081 10.455426 205.5854
[5,] 1723.86138 22.552465 39256.366 67.8455312 99.733390 15069.6231
[6,] 1328.44959 21.510099 30755.388 59.7772840 86.142180 11775.4025
, и мне нужны, например, минимальные значения p матрицы, пусть p = 3, тогда я получу значения:
0,3509784 -1,517622- 3,4916340 (эти значения близки к оптимуму функции beale ).
Затем мне нужен способ получить пары (x, y), которые позволят нам получить эти минимальные значения (из текущего исключения!):
custom_fun(a1,b1)=0.3509784
custom_fun(a2,b2)=1.517622
custom_fun(a3,b3)=3.4916340
так как Могу ли я получить (a1, b1) из текущих векторов x1 и y1 ??? Мне также нужно будет получить пары (a2, b2) и (a3, b3). .
Другой пример, предположим, что текущее исключение дает следующее:
[1] "x4 list :"
[1] 2.0695110 3.7844526 -0.6914949
[1] "y4 list :"
[1] -4.079663 1.771313 -4.206778
[1] "matrix of objective function : denoted m "
[,1] [,2] [,3]
[1,] 20870.387 199.495204 25007.158
[2,] 70719.411 521.366216 84647.031
[3,] 2625.535 1.807467 3115.075
с p = 2; значения 1.807467 и 521.366216 хороши при поиске минимума, но вопрос в том, как получить их соответствующие координаты (x, y) из (x4, y4) возможностей.
I wi sh мой вопрос ясен .
Большое спасибо за помощь!