Как найти максимум многомерной функции в R
У меня есть совместная вероятность того, что мне нужно максимизировать, что определяется примерно 25 различными переменными. Я надеялся, что найдется метод для нахождения комбинации значений переменных, который максимизирует эту функцию, не прибегая к 25 циклам 'for', которые перебирают все возможные значения.
Вот пример гораздо меньшей части этой вероятности, максимизированной с использованием циклического подхода "for", где "temp" вычисляет значение вероятности, а test - это вектор, который записывает значения используемых переменных:
h1=23
h2=31
test=c(NA,NA,NA,NA,0)
for (N in seq(60,150,10)) {
for (p1 in seq(0.01,1,.01)) {
for (p2 in seq(0.01,1,.01)) {
for (S1 in seq(0.5,1,.005)) {
temp=factorial(N)/(factorial(h1)*factorial(h2)*factorial(N-h1-h2))*(p1)^h1*((1-p1)*S1*p2)^h2*(1-(p1+(1-p1)*S1*p2))^(N-h1-h2)
if (temp>test[5]) test=c(p1,p2,S1,N,temp)
}
}
}
}
test
Заранее спасибо Сергей