Hi all,
I’m editing this post as I’ve (kind of) succeeded on reformulating my non linear equation into a power cone.
The relationship is between UNITS(i) and X_var(i), both positive variables. The form is as follows: UNITS(i)=constant*X_var(i)**(-1/elasticity(i))
where elasticity(i) is the elasticity between both variables which takes different values by i and could range between -1 and 1.
MOSEK accepts the power cone reformulation as follows:
Auxiliareqn_t(i)$(elasticity(i) < 1)… (t(i)elasticity(i)) * (z(i)(1-elasticity(i))) =g= X_var(i) ;
Auxiliareqn_t2(i)$(elasticity(i) > 1)… ( tx(i)(1/elasticity(i))) * (z(i)(1-(1/elasticity(i)))) =g= X_var(i) ;
z.fx(i)=1;
However for the purposes of simulation, I need to calibrate X_var. What I notice is that calculating t(i)elasticity(i) or tx(i)(1/elasticity(i)) give me the calibrated values.
But then I would have to recover such value and put it into the objective function which involves another cone but ultimately does not solve my problem. In other words, I need the equations Auxiliareqn_t and Auxiliareqn_t2 to hold as an equality (or the closest as possible). Otherwise any condition on X_var is much lower than t(i)elasticity(i) or tx(i)(1/elasticity(i)) and no simulation is possilbe.
See the file attached
THank you!
ModelForum.gms (2.64 KB)