Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
162 views
1
function [k, X, Y, pasos, HESSIAN] = vnnolinealaux3(F, signoX, signoXF, k0, X0)
2
%vnnolinealaux3
3
%
4
% Funci�n auxiliar de vnnolineal. Lanza el problema con las versiones
5
% superiores de Matlab.
6
7
%necesita vnnolinealaux4.m
8
9
[F, signoX, signoXF] = formaproblema(F, signoX, signoXF);
10
[filas, columnas, ancho] = size(F);
11
if isempty(k0), k0 = 1; end
12
if isempty(X0), X0 = ones(1, filas)/filas; end
13
LB = [0, zeros(1, filas)];
14
UB = [Inf, Inf*ones(1, filas)];
15
Aeq = [0, ones(1, filas)];
16
Beq = 1;
17
OPTIONS = optimset('Display', 'off', 'TolFun', 1e-12, 'TolX', 1e-12);
18
[V,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] = fmincon(@(V) -V(1),[k0,X0],[],[],Aeq,Beq,LB,UB,@(V) vnnolinealaux4(V,F),OPTIONS);
19
k = V(1);
20
X = V(2:filas+1);
21
Y = LAMBDA.eqnonlin;
22
mu = LAMBDA.eqlin;
23
pasos = OUTPUT.iterations;
24
[X, Y] = formasolucion(X, Y, signoX, signoXF);
25