# linprog optimization of two functions

1 view (last 30 days)
bus14 on 29 Apr 2019
Commented: Matt J on 29 Apr 2019
Hi community,
I am trying to minimize a two stage function in which first value is computed on the bases of X & D and this values is thereafter used in a new minimization function. I think I almost have the correct code, but some errors keep popping up. or should I solve these functions in 2 seperate scripts?Does anyone know how to solve them?
%overall objective function = Min c.'*x+E[Q(x,D)]
%set of parameters
i=1
j=1
c = 3; %s<c
l = 0.25;
q = 6;
s = 1;
A1 = 1;
D= 60;
%d = 65; not used in estimation
x= D.'*A1;
%E[Q(x,D)= (l-q).'*z-s.'
%Q(x,D)=(l-q).'*z(*)-s.'*y(*);
%s.t x=y(*)+A1.'*z(*);
%to find value for E[Q(x,D)]
f2 = [-s.',(l-q).']; %[ Y, Z]
E=sum(f2)%
Aeq = [eye(j),A1.'];
beq = x;
lb = [zeros(1,i+j)];
ub = [inf(1,j), D(1)];
sol = linprog(f2,[],[],Aeq,beq,lb,ub);
y = sol(1);
z = sol(2) ;
%Now objective function is to minimize c.'*x+E
f1= [c.'+E];%or f1=[c.',E] how to define E in the f1 function? outcome of linprog f1 should give a value of x
Aeq = [];%no equality or inequality constraints, only requirement is for x>0, or should constraint of f2 also be added??
beq = [];
lb = [0];%x>0
ub = [Inf];
sol = linprog(f1,[],[],Aeq,beq,lb,ub);
x = sol(1)
I get no solution for x as matlab says the code is unbouded. However, my only constraint for f1 is that x>0, for f2 there is a constraint (x=y+A1.'*z)
hope that anyone knows what I am doing wrong.
Thankyou!
bus14 on 29 Apr 2019
problem for me is, if the f1 was set correctly and how I can find a satisfactory value for x which is larger than zero and as upperbound is not much higher than the value of D
Matt J on 29 Apr 2019
We cannot tell you what the problem should be. Only the solution. There is nothing incorrect about the solution you have obtained, given the problem you've provided.