Compute singular value decompositions of the Jacobian matrics

compute_svd_decomp(smap_matrices, s = NULL)

Arguments

smap_matrices

A list with the Jacobian matrix (of smap-coefficients) at each time point, resulting from compute_smap_matrices()

s

the number of species in the system (optional parameter to restrict the analysis just to the portions of the Jacobian that are relevant for the forecasts)

Value

A list with three elements:

d

a list of the singular values (a vector) for each time point

u

a list of the left singular vectors (a matrix, each column is an axis in the output space) for each time point

v

a list of the right singular vectors (a matrix, each column is an axis in the input space) for each time point

Details

The full Jacobian resulting from compute_smap_matrices() is of the form, J =

C^0C^1...C^(d-1)
C^dI0...
000I
...00...
............
00...I0

Note that this maps from the column vector [N(t) N(t-1) ... N(t-d)]^T to the column vector [N(t+1) N(t) ... N(t-(d-1))]^T. However, the only relevant components for our purposes are the rows which map the column vector [N(t) N(t-1) ... N(t-d)]^T to [N(t+1)]^T, let this be J_s.

Thus, we extract this portion of the Jacobian for applying SVD.