Вы можете выполнить произведение outer
на основе функции. Этот внешний продукт будет смотреть на все комбинации двух входных переменных и помещать результат в матрицу;он принимает следующую форму:
outer(<rows>, <cols>, FUN)
В вашем конкретном случае достаточно:
n <- 5
fun <- function(x, y) {ifelse (y > x, 0, y^2 + sqrt(x * y))}
outer(1:n, 1:n, FUN = fun) %>% sum() # 147.6317
, поскольку y
варьируется от 0
и y
встречается в обоих терминах, по умолчанию 0
(случайно). Несмотря на это, в этом случае необходимо включить некоторую форму индексации в определение функции, поскольку вложенное суммирование y
зависит от x
.