make.stability {fluxweb} | R Documentation |
making network stability
Description
Find the smallest scalar multiplying a variable from losses insuring system stability
Usage
make.stability(val.mat, biomasses, losses, efficiencies, growth.rate,
losses.scale = NULL, bioms.prefs = TRUE, bioms.losses = TRUE,
ef.level = "prey", interval = c(1e-12, 1), ...)
Arguments
val.mat |
A matrix describing fluxes between species (usually a result of |
biomasses |
A vector of species biomasses. |
losses |
A vector or an array of species energy losses (excluding predation). |
efficiencies |
A vector or an array of conversion efficiencies of species in the adjacency matrix. These values describe the proportion of consumed energy that is converted to biomass of the consumer. |
growth.rate |
A vector defining growth rate of basal species. |
losses.scale |
Defines a Column from |
bioms.prefs |
Logical, if |
bioms.losses |
Logical, if |
ef.level |
Set to |
interval |
Search interval for returned value. |
... |
Optional parameters for function |
Details
The function assumes a monotonous increase of stability with multiplication by a scalar value. Solution is estimated from the uniroot
function, and stability using the fluxing
function
Thus, accordingly to uniroot
solving criteria, if stability values at the two extremum parts of the interval are of same sign, an error is raised.
Behavior of the multiplicative term depends on the type of losses:
losses.scale = NULL
andis.vector(losses)
: multiplication will be applied to thelosses
vector.losses.scale = NULL
andis.matrix(losses)
: multiplication will be independent of any columns fromlosses
.losses.scale = FALSE
: value used for multiplication always independent of losses.other values: should refer to an element of losses.
Value
A list from uniroot
function.
See Also
uniroot
for root estimate and stability.value
for assessing system stability.
Examples
losses = 0.15 * groups.level$bodymasses^(-0.25)
# growth rates of basal sppecies
growth.rates = rep(NA, dim(groups.level$mat)[1])
growth.rates[colSums(groups.level$mat) == 0] = 0.5
val.mat = fluxing(groups.level$mat,
groups.level$biomasses,
losses,
groups.level$efficiencies,
bioms.pref = TRUE,
ef.level = "pred")
make.stability(val.mat,
groups.level$biomasses,
losses,
groups.level$efficiencies,
growth.rates,
ef.level = "pred")