Я застрял при применении алгоритма NROPTR ISRES к нелинейной проблеме с ограничениями неравенства. Я сформулировал это так:Формулировка ограничений неравенства в алгоритме ISRES NLOPTR
library(nloptr)
fn <- function(x) {
(x[1]-10)^2 + 5*(x[2]-12)^2 + x[3]^4 + 3*(x[4]-11)^2 + 10*x[5]^6 + 7*x[6]^2 + x[7]^4 - 4*x[6]*x[7] - 10*x[6] - 8*x[7]
}
hin <- function(x) {
h <- numeric(4)
h[1] <- 127 - 2*x[1]^2 - 3*x[2]^4 - x[3] - 4*x[4]^2 - 5*x[5]
h[2] <- 282 - 7*x[1] - 3*x[2] - 10*x[3]^2 - x[4] + x[5]
h[3] <- 196 - 23*x[1] - x[2]^2 - 6*x[6]^2 + 8*x[7]
h[4] <- -4*x[1]^2 - x[2]^2 + 3*x[1]*x[2] -2*x[3]^2 - 5*x[6] +11*x[7]
return(h)
}
x0 <- c(1, 2, 0, 4, 0, 1, 1)
isres(x0 = x0, fn = fn, hin = hin)
я получаю сообщение, которое говорит: «Ошибка в матче (гин): аргумент„таблица“отсутствует, не по умолчанию»
Я предполагаю, что я не делаю что-то с ограничениями неравенства. Не могли бы вы рассказать мне, как это решить? Большое большое спасибо!
Я думаю, что автор функции 'isres' означал' match.call', а не 'match'. –
Ах. Очень проницательный. Я напишу письмо сопровождающему пакета. – Daniel
@Ahnaf Пожалуйста, не забывайте отмечать мой вопрос как ответ, если вы считаете, что это так, и дайте мне отзыв, если вы считаете, что это не так. – Daniel