This is done by successively minimising and maximising each x,
using linear programming.
xranges(E = NULL, F = NULL, G = NULL, H = NULL,
ispos = FALSE, tol = 1e-8, central = FALSE, full=FALSE)TRUE, it is imposed that unknowns are positive
quantities.TRUE, all range solutions are also outputted. 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
lp from
R-package lpSolve. By default linear programming assumes that all unknowns are positive.
If all unknowns are indeed to be positive, then it will generally be faster
to set ispos equal to TRUE
If ispos is FALSE, then a system double the size of the
original system must be solved.
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 valid 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).
Minkdiet, for a description of the Mink diet example. 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
E <- rbind(Minkdiet$Prey, rep(1, 7))
F <- c(Minkdiet$Mink, 1)
(DC <- xranges(E, F, ispos = TRUE))
# The same, but explicitly imposing positivity
(DC <- xranges(E, F, G = diag(7), H = rep(0, 7)))Run the code above in your browser using DataLab