tfa
calculates the transfer function of a matrix given a perturbation structure and a range
of desired lambda values or a range of desired perturbation magnitude. Currently tfa
can
only work with rank-one, single-parameter perturbations (see Hodgson & Townley 2004). The perturbation structure is determined by d%*%t(e)
. Therefore, the rows to be perturbed
are determined by d
and the columns to be perturbed are determined by e
. The specific
values in d and e will determine the relative perturbation magnitude. So for example, if only entry
[3,2] of a 3 by 3 matrix is to be perturbed, then d = c(0,0,1)
and e = c(0,1,0)
. If entries
[3,2] and [3,3] are to be perturbed with the magnitude of perturbation to [3,2] half that of [3,3] then
d = c(0,0,1)
and e = c(0,0.5,1)
. d
and e
may also be expressed as column
vectors of class matrix, e.g. d = matrix(c(0,0,1), ncol=1)
, e = matrix(c(0,0.5,1), ncol=1)
.
See Hodgson et al. (2006) for more information on perturbation structures.
The perturbation magnitude is determined by prange
, a numeric vector that gives the continuous
range of perterbation magnitude to evaluate over. This is usually a sequence (e.g.
prange=seq(-0.1,0.1,0.001)
), but single transfer functions can be calculated using a single
perturbation magnitude (e.g. prange=-0.1
). Because of the nature of the equation, prange
is used to find a range of lambda from which the perturbation magnitudes are back-calculated and
matched to their corresponding inertia, so that the output perturbation magnitude p
will match
prange
in length and range but not in numerical value (see value). Alternatively, a vector
lambdarange
can be specified, representing a range of desired lambda values from which the
corresponding perturbation values will be calculated. Only one of either prange
or
lambdarange
may be specified.
tfa
uses the resolvent matrix in its calculation, which cannot be computed if any
lambdarange
are equal to the dominant eigenvalue of A
. digits
specifies the
values of lambda that should be excluded in order to avoid a computationally singular system.
Any values equal to the dominant eigenvalue of A
rounded to an accuracy of digits
are excluded. digits
should only need to be changed when the system is found to be
computationally singular, in which case increasing digits
should help to solve the problem.
tfa
will not work for reducible matrices.
There is an S3 plotting method available (see plot.tfa
and examples below)