LinRatSolve: Difference between revisions
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 9: | Line 9: | ||
<math> | <math> | ||
\begin{array}{cccccc} | \begin{array}{cccccc} | ||
\ | \min\limits_x & \frac{c1x}{c2x} \\ | ||
\text{subject to} & x_L & \leq & x & \leq & x_U \\ | \text{subject to} & x_L & \leq & x & \leq & x_U \\ | ||
& b_L & \leq & Ax & \leq & b_U \\ | & b_L & \leq & Ax & \leq & b_U \\ | ||
Line 21: | Line 21: | ||
==Calling Syntax== | ==Calling Syntax== | ||
< | <source lang="matlab"> | ||
Result=linRatSolve(Prob,PriLev) | Result=linRatSolve(Prob,PriLev) | ||
</ | </source> | ||
==Inputs== | ==Inputs== | ||
Line 81: | Line 81: | ||
<math> | <math> | ||
\begin{array}{cccccc} | \begin{array}{cccccc} | ||
\ | \min\limits_x c1 z2\\\\\text{subject to} & z1_L & \leq & z1 & \leq & \infty \\& 1 & \leq & c2 z2 & \leq & 1 \\& 0 & \leq & A z2 - z1 beq & \leq & 0 \\& -\infty & \leq & A z2 - z1 b_U & \leq & 0 \\& -\infty & \leq & - A z2 + z1 b_L & \leq & 0 \\\\& 0 & \leq & A1 z2 - z1 xeq & \leq & 0 \\& -\infty & \leq & A1 z2 - z1 x_U & \leq & 0 \\& -\infty & \leq & - A1 z2 + z1 x_L & \leq & 0 \\ | ||
\end{array} | \end{array} | ||
</math> | </math> |
Latest revision as of 08:13, 16 January 2012
Purpose
Finds a linearly constrained solution of a function of the ratio of two linear functions with the use of any suitable TOMLAB solver. Binary and integer variables are not supported.
linRatSolve solves problems of the type:
where , and .
Calling Syntax
Result=linRatSolve(Prob,PriLev)
Inputs
Prob | Structure Prob. Prob must be defined. Best is to use Prob = lpAssign(.....), if using the TQ format. Prob.QP.c1/c2 matrices should then be set (Prob.QP.c ignored). | |
PriLev | Print level in linRatSolve.
= 0 Silent except for error messages. > 0 Print summary information about problem transformation. Calls PrintResult with specified PriLev. = 2 Standard output from PrintResult (default). | |
Extra fields used in Prob: | ||
SolverRat | Name of the TOMLAB solver. Valid names are: cplex, minos, snopt, xa and more. See SolverList('lp'); | |
QP.c1 | The numerator in the objective. | |
QP.c2 | The denominator in the objective. | |
z1_L | Lower bound for z1 (default 1e-5). See description below |
Outputs
Result | Structure with results from optimization. Output depends on the solver used.
The fields x_k, f_k, x_0, xState, bState, v_k are transformed back to match the original problem. The output in Result.Prob is the result after linRatSolve transformed the problem, i.e. the altered Prob structure |
Description
The linear ratio problem is solved by linRatSolve by rewriting the problem as a linear constrained optimization problem. n+1 variables z1 and z2(2:n+1) are needed, stored as x(1:n+1). The n original variables are removed so one more variable exists in the final problem.
The problem then becomes:
where .
OBSERVE the denominator c2x must always be positive. It is normally a good a idea to run the problem with both signs (multiply each side by -1).