Итак, у меня есть функция, которая принимает максимум 16 различных функций. Я хочу найти минимум этой функции при условии, что эта функция равна другой функции. Вот как выглядит код (H1,...,H16
- все векторы-столбцы):
function f = opt(a,b,c)
F1 = a*mean(H1) + b*var(H1)+ c*skewness(H1);
...*more functions here*...
F15 = a*mean(H15) + b*var(H15)+ c*skewness(H15);
F16 = a*mean(H16) + b*var(H16)+ c*skewness(H16);
FVEC = [F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16];
[ max, max_index ] = max(FVEC);
f = max;
end
Ограничение Я хочу, чтобы указанная выше функция была равна первой в списке:
opt(a,b,c) = a*mean(H1) + b*var(H1)+ c*skewness(H1)
Я думаю, что должен использовать fmincon
, но, несмотря на мои неоднократные попытки, у меня, похоже, возникают проблемы, плюс не похоже, что он поддерживает ограничения, зависящие от другой функции (хотя я могу неправильно читать документы). Это правильная функция для использования? Как лучше всего подойти к этой проблеме? Я новичок в MATLAB, поэтому я не знаком с тем, как будет выглядеть типичный подход.