Минимизация функции с использованием множителей Лагранжа в matlab (?) - PullRequest
0 голосов
/ 09 ноября 2019
syms x1 x2 u s lambda
f=2*x1^2+2*x2^2-6*x1*x2;
g1 = x1+2*x2-3 +s^2 ;
H1 = 3*x1+x2-9;

Lagrange=f+u*g1+lambda*H1;
Grad=gradient(Lagrange);

S=solve(Grad)
S=double([S.x1 S.x2 S.s S.u S.lambda]);M=size(S,1)

  for i=M:-1:1
      if imag(S(i,3))~=0 || S(i,4)<0 

         S(i,:)=[];

      end
  end

 x1=S(:,1);x2=S(:,2);s=S(:,3);u=S(:,4);lambda=S(:,5);
 out=table(x1,x2,s,u,lambda)

как я могу решить эту проблему с MATLAB так же, как описано выше? Могу ли я также показать это на графике?

 fmin(x1,x2 )=(x1-1)^2+(x2-1)^2

    H1=x1+x2-4=0
    H2=x1-x2-2=0

Откуда берется i = M: -1: 1 (-1: 1)? а также;if imag (S (i, 3)) ~ = 0 || S (i, 4) <0; Как определяются 3 и 4? Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...