Я пытаюсь запустить функцию NMaximize с множеством ограничений. Я создал упрощенную таблицу ограничений, подобную этой
Table[-1 <= vMask[[i]] <= 1, {i, 1, 6}]
Затем я могу использовать их в своей функции NMinimize вот так
eMask = {s[1], s[2], s[3], -1, 1, s[4], s[5], s[6]};
vMask = Array[s, 6];
MaxGradSolution =
NMaximize[{GradNorm[0, 0, 150, eMask][[1]],
Table[-1 <= vMask[[i]] <= 1, {i, 1, 6}];
Это работает и дает мне Ответ. Чудесно. Проблема, однако, заключается в том, что я пытаюсь добавить еще одно ограничение в эту таблицу ограничений
MaxGradSolution =
NMaximize[{GradNorm[0, 0, 150, eMask][[1]],
BNorm[0, 0, 150, eMask] <= 10^-3 && Table[-1 <= vMask[[i]] <= 1, {i, 1, 6}] }, vMask];
Если эта таблица явно написана как
-1<= s[1]<=1 && -1<= s[2]<=1 && ...
и добавляется на
BNorm[0, 0, 150, eMask] <= 10^-3 &&
работает. Проблема в том, что я хотел бы иметь возможность добавлять множество ограничений, которые я могу генерировать автоматически! Был бы признателен за умный способ сделать это.
К вашему сведению, оба ограничения работают нормально, когда другое не используется.