Можно ли использовать функцию оптимизации fmincon
с определенной в Matlab функцией?
Я написал функцию, в которой я даю несколько постоянных параметров (реальных или сложных), и на данный момент, каждый раз, когда я изменяю эти параметры, результат изменяется (вы не говорите).
[output1, output2] = my_function(input1,input2,input3,input4)
Я видел, что функция fmincon
позволяет найти оптимальный результат с заданным ограничением.Допустим, я хочу найти оптимальный выходной сигнал, действующий только на input1
и сохраняющий постоянным все остальные входы.Можно ли определить что-то вроде
fmincon(@(input1)my_function,[1,2],[],mean)
для input1
, которое идет от 1 до 2 для лучшего значения mean
, где среднее значение - это среднее значение некоторых других результатов.
Я знаю, что это довольно расплывчатый вопрос, но я не могу привести минимальный пример, так как function
делает много вещей
Первое посещение с несколькими выходами дало мне ошибку Only functions can return multiple values.
Затем я попытался только с одним выходом, и если я использую
output1 = @(input1)function(input2,input3);
fmincon(@output1,[1,2],[],mean)
, я получаю ошибку
Ошибка: «output1» ранее использовался в качестве переменной,конфликтует с его использованием здесь в качестве имени функции или команды.Подробности смотрите в разделе «Как MATLAB распознает синтаксис команды» в документации MATLAB.
С fmincon(@my_function,[1,2],[],mean)
Я получаю Not enough input arguments.