У меня возникли проблемы при попытке реализовать это в R. У меня есть пользовательская нелинейная функция, которая принимает вектор x
и выдает другой вектор F
в качестве вывода. Кроме того, у меня есть вторая функция L
, которая берет вектор и выдает число в качестве выходных данных (что на самом деле связано с вероятностью x
, но это не относится к вопросу). Вот как могут выглядеть эти функции (я только что сделал их в качестве примера):
F <- function(x) {
c(
exp(x[1]*(1-x[2])) / (exp(x[1]*(1-x[2])) + exp(x[3]*(1-x[4]))) - 0.2,
exp(x[3]*(1-x[4])) / (exp(x[1]*(1-x[2])) + exp(x[3]*(1-x[4]))) - 0.8
)
}
L <- function(x) {
0.5^exp(x[1]*abs(x[4]-x[2]))
}
С одной стороны, я хочу найти значения x
, которые минимизируют F
(т.е. яхочу решить F(x)=0
), но это еще не все. Во-первых, система F(x)=0
всегда переопределена. Я хочу найти решение с максимальным значением L(x)
из всех возможных. Я думал, что могу попытаться свести к минимуму что-то вроде sum(F(x)) + 1/L(x)
, но я вижу несколько проблем с этим (например, шкалы F
и L
могут сильно отличаться, и я не знаю их заранее).
Если бы кто-нибудь знал, как подойти к этому, это было бы здорово. Заранее спасибо!
J