| 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 = NULLandis.vector(losses): multiplication will be applied to thelossesvector.losses.scale = NULLandis.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")