xranges {limSolve} | R Documentation |
Given the linear constraints
Ex=f
Gx>=h
finds the minimum and maximum values of all elements of vector x
by successively minimising and maximising each x
, using linear programming
uses linear programming function lp
from package lpSolve (see note)
xranges(E=NULL, F=NULL, G=NULL, H=NULL, ispos=FALSE, tol=1e-8, central = FALSE, full=FALSE)
E |
numeric matrix containing the coefficients of the equalities Ex=F |
F |
numeric vector containing the right-hand side of the equalities |
G |
numeric matrix containing the coefficients of the inequalities Gx>=H |
H |
numeric vector containing the right-hand side of the inequalities |
ispos |
if TRUE, it is imposed that unknowns are positive quantities |
tol |
tolerance for equality and inequality constraints |
central |
if TRUE, the mean value of all range solutions is also outputted |
full |
if TRUE, all range solutions are also outputted |
The ranges are estimated by successively minimising and maximising each unknown, and using linear programming.
by default linear programming assumes that all unknowns are positive. If this is the case,
set ispos
equal to TRUE; the function will execute faster then. If ispos
is FALSE, then a system double the size of the original system must be solved for.
xranges
outputs only the minimum and maximum value of each flow unless:
full
is TRUE. In this case, all the results of the successive minimisation and maximisation will be outputted,
i.e. for each linear programming application, not just the value of the unknown being optimised but also the corresponding values of the other unknowns will be outputted.
If central
is TRUE, then the mean of all the results of the linear programming will be outputted.
This may be a good starting value for xsample
Note: the columns corresponding to the central
value and the full
results are
valide solutions of the equations Ex=F and Gx>=H. This is not the case for the
first two columns (with the minimal and maximal values).
a matrix with at least two columns:
column 1 and 2: the minimum and maximum value of each x
if central
is TRUE: column 3 = the central value
if full
is TRUE: next columns contain all valid range solutions
we have experienced that lpSolve
sometimes fails (and R stops) if it is frequently repeated, and for small problems.
Karline Soetaert <k.soetaert@nioo.knaw.nl>
varranges
, for range estimation of variables,
xsample
, to randomly sample the lsei problem
lp
: linear programming from package lpSolve
# Estimate the ranges in the Diet Composition of Mink A <- rbind(Minkdiet$Prey,rep(1,7)) B <- c(Minkdiet$Mink,1) (DC<-xranges(A,B,ispos=TRUE)) (DC<-xranges(A,B,G=diag(7),H=rep(0,7)))