Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Las estructuras multiplicador de Lagrange

La optimización restringida implica un conjunto de Multiplicadores de Lagrange, como se describe en.Medida de optimalidad de primer orden Solvers devuelve los multiplicadores de Lagrange estimados en una estructura. La estructura se llama, ya que el símbolo convencional para los multiplicadores de Lagrange es la letra griega lambda ().lambdaλ La estructura separa los multiplicadores en los siguientes tipos, denominados campos:

  • , asociado con límites inferioreslower

  • , asociado con los límites superioresupper

  • , asociado con ecualidades linealeseqlin

  • , asociada a desigualdades linealesineqlin

  • , asociado con ecualidades no linealeseqnonlin

  • , asociada a desigualdades no linealesineqnonlin

Para acceder, por ejemplo, al campo de desigualdad no lineal de una estructura de multiplicador de Lagrange, introduzca.lambda.inqnonlin Para acceder al tercer elemento del multiplicador de Lagrange asociado con los límites inferiores, entre.lambda.lower(3)

El contenido de la estructura del multiplicador de Lagrange depende del solucionador. Por ejemplo, la programación lineal no tiene no linealidades, por lo que no tiene ni campos.eqnonlinineqnonlin Cada página de referencia de función del solucionador aplicable contiene una descripción de su estructura de multiplicador de Lagrange bajo el encabezamiento "Outputs."

Examine la estructura de multiplicador de Lagrange para la solución de un problema no lineal con restricciones y límites de desigualdad lineales y no lineales.

lb = [-3 -3]; % lower bounds ub = [3 3]; % upper bounds A = [1 1]; % linear inequality x(1) + x(2) <= 1 b = 1; Aeq = []; beq = []; x0 = [-1 1]; fun = @(x)100*(x(2) - x(1)^2)^2 + (1 - x(1))^2; % Rosenbrock function nlcons = @(x)deal(x(1)^2 + x(2)^2 - 1,[]); % nonlinear inequality options = optimoptions('fmincon','Display','off'); [x,fval,exitflag,output,lambda] = ...     fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nlcons,options);  disp(lambda)
         eqlin: [0×1 double]       eqnonlin: [0×1 double]        ineqlin: 0.3407          lower: [2×1 double]          upper: [2×1 double]     ineqnonlin: 1.7038e-07

Aquí está una interpretación de la estructura del multiplicador de Lagrange.

  • Los campos y tienen el tamaño 0 porque no hay restricciones de igualdad lineales ni restricciones de igualdad no lineal.lambda.eqlinlambda.eqnonlin

  • El campo tiene valor, lo que indica que la restricción de desigualdad lineal está activa.lambda.ineqlin0.3407 La restricción de desigualdad lineal es.x(1) + x(2) <= 1 Compruebe que la restricción está activa en la solución, lo que significa que la solución hace que la desigualdad sea una igualdad:

    x(1) + x(2)
    ans =      1.0000
  • Compruebe los valores de los campos y.lambda.lowerlambda.upper

    lambda.lower
    ans =     1.0e-07 *      0.2210     0.2365
    lambda.upper
    ans =     1.0e-07 *      0.3361     0.3056

    Estos valores son efectivamente cero, lo que indica que la solución no está cerca de los límites.

  • El valor del campo es, lo que indica que esta restricción no está activa.lambda.ineqnonlin1.7038e-07 Compruebe la restricción, que es.x(1)^2 + x(2)^2 <= 1

    x(1)^2 + x(2)^2
    ans =      0.5282

    El valor de la función de restricción no lineal no está cerca de su límite, por lo que el multiplicador de Lagrange es aproximadamente 0.

Temas relacionados