Compute the standardized left and right eigenvectors via iteration

right_ev(ipm, ...)

# S3 method for simple_di_det_ipm
right_ev(ipm, iterations = 100, tolerance = 1e-10, ...)

# S3 method for simple_di_stoch_kern_ipm
right_ev(ipm, burn_in = 0.25, ...)

# S3 method for simple_di_stoch_param_ipm
right_ev(ipm, burn_in = 0.25, ...)

# S3 method for general_di_det_ipm
right_ev(ipm, iterations = 100, tolerance = 1e-10, ...)

# S3 method for general_di_stoch_kern_ipm
right_ev(ipm, burn_in = 0.25, ...)

# S3 method for general_di_stoch_param_ipm
right_ev(ipm, burn_in = 0.25, ...)

left_ev(ipm, ...)

# S3 method for simple_di_det_ipm
left_ev(ipm, iterations = 100, tolerance = 1e-10, ...)

# S3 method for simple_di_stoch_kern_ipm
left_ev(ipm, iterations = 10000, burn_in = 0.25, kernel_seq = NULL, ...)

# S3 method for general_di_det_ipm
left_ev(ipm, iterations = 100, tolerance = 1e-10, ...)

# S3 method for general_di_stoch_kern_ipm
left_ev(ipm, iterations = 10000, burn_in = 0.25, kernel_seq = NULL, ...)

# S3 method for general_di_stoch_param_ipm
left_ev(ipm, iterations = 10000, burn_in = 0.25, kernel_seq = NULL, ...)

# S3 method for simple_di_stoch_param_ipm
left_ev(ipm, iterations = 10000, burn_in = 0.25, kernel_seq = NULL, ...)

Arguments

ipm

Output from make_ipm().

...

Other arguments passed to methods

iterations

The number of times to iterate the model to reach convergence. Default is 100.

tolerance

Tolerance to evaluate convergence to asymptotic dynamics.

burn_in

The proportion of early iterations to discard from the stochastic simulation

kernel_seq

The sequece of parameter set indices used to select kernels during the iteration procedure. If NULL, will use the sequence stored in the ipm object. Should usually be left as NULL.

Value

A list of named numeric vector(s) corresponding to the stable trait distribution function (right_ev) or the reproductive values for each trait (left_ev).

Deterministic eigenvectors

For right_ev, if the model has already been iterated and has converged to asymptotic dynamics, then it will just extract the final population state and return that in a named list. Each element of the list is a vector with length >= 1 and corresponds each state variable's portion of the eigenvector. If the model has been iterated, but has not yet converged to asymptotic dynamics, right_ev will try to iterate it further using the final population state as the starting point. The default number of iterations is 100, and can be adjusted using the iterations argument. If the model hasn't been iterated, then right_ev will try iterating it for iterations number of time steps and check for convergence. In the latter two cases, if the model still has not converged to asymptotic dynamics, it will return NA with a warning.

For left_ev, the transpose iteration (sensu Ellner & Rees 2006, Appendix A) is worked out based on the state_start and state_end in the model's proto_ipm object. The model is then iterated for iterations times to produce a standardized left eigenvector.

Stochastic eigenvectors

left_ev and right_ev return different things for stochastic models. right_ev returns the trait distribution through time from the stochastic simulation (i.e. ipm$pop_state), and normalizes it such that the distribution at each time step integrates to 1 (if it is not already). It then discards the first burn_in * iterations time steps of the simulation to eliminate transient dynamics. See Ellner, Childs, & Rees 2016, Chapter 7.5 for more details.

left_ev returns a similar result as right_ev, except the trait distributions are the result of left multiplying the kernel and trait distribution. See Ellner, Childs, & Rees 2016, Chapter 7.5 for more details.