как я могу написать ограничение(x) в matlab «fminsearch», например «fmincon»

#matlab #optimization #fminsearch

Вопрос:

привет, ребята, у меня есть некоторые проблемы

Я кодирую какую-то оптимизационную

4 переменные f(x1,x2,x3,x4)

так…Я использовал «fmincon»…но это работает не очень хорошо

вот в чем вопрос

как я могу написать ограничение(x) в «fminsearch», например «fmincon»

—————форма ограничений(x) выглядит следующим образом—————————

     function [C, Ceq] = constraints(x)

    B=1200;       
    N=1;          

    C(1)= 60-x(1) ;
    C(2)= 50-x(4) ;                                                 
    C(3)=-140 x(1) x(2);                                   
    C(4)=-x(3) x(4);                                       
    C(7)=x(3)-B*N;                                       
    C(5)=-x(2);                                          
    C(6)= x(1)*B   x(4)*x(2)*N   (x(3)-x(4))*x(2)/2*N -107000; 

    Ceq=[];

    end
 

жестокая жизнь xoxo

Ответ №1:

Ты не можешь. fminsearch это для неограниченных проблем.

Однако вы можете выбрать другой fmincon алгоритм:

  • «внутренняя точка» (по умолчанию)
  • «доверие-регион-отражающий»
  • «sqp»
  • «sqp-наследие»
  • «активный набор»

См.Алгоритмы fmincon. Используйте optimoptions для установки параметра Алгоритм в командной строке.