`R/generics.R`

`eigenvectors.Rd`

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, ...)
```

- 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`

.

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`

).

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.

`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.