Решение переопределенной системы нелинейных уравнений при максимизации другой функции - PullRequest
0 голосов
/ 24 октября 2019

У меня возникли проблемы при попытке реализовать это в 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

...