В настоящее время я пытаюсь использовать fmincon в Matlab.
Я могу заставить его работать правильно, но это происходит, когда я включаю манипуляции с матричными элементами, которые не удовлетворяют условию.
Как показано ниже
ub = 1.1;
lb = -1.2;
aut = -0.25;
h = @(aut)eQ_Optim(aut);
u = fmincon(h,aut, [], [], [], [], lb, ub)
Функция, которую я использую, выглядит следующим образом
function [Maxim] = eQ_Optim(aut);
Data = [-0.23183483,-0.003274012;
-0.289945477,0.000282334;
-0.483591973,0.006588649;
-0.257735378,0.000887691;
-0.286463622,-0.003235662;
-0.453939127,0.004358216;
-0.196363243,0.004186609;
-0.209783591,0.001715187];
Data(Data(:,1)<aut,2)=0
MDOnx=Data(:,2)+1;
MD_Cumx=cumprod(MDOnx,1);
Maxim = MD_Cumx(end)*-1
end
Я пытаюсь заставить fmincon оптимизировать переменную 'aut', чтобы онамаксимизирует совокупную сумму правого столбца (Data (:, 2)).
для справки, вывод, который я получаю, равен
Начальная точка - локальный минимум, который удовлетворяет ограничениям.
Оптимизация завершена, потому что в начальной точке целевая функция не уменьшается в допустимых направлениях в пределах значения по умолчанию для допуска оптимальности, и ограничения удовлетворяются в пределах значения по умолчанию допуска допуска.
u = -0.250000000000000
Что, как вы можете видеть, это всего лишь мое первоначальное предположение, возвращаемое мне.
Я надеюсь, что всеЧисто.Я максимально упростила все.Это возможно?