Arnoldi Iteration
ExponentialUtilities.arnoldi
— Functionarnoldi(A,b[;m,tol,opnorm,iop]) -> Ks
Performs m
anoldi iterations to obtain the Krylov subspace K_m(A,b).
The n x (m + 1) basis vectors getV(Ks)
and the (m + 1) x m upper Hessenberg matrix getH(Ks)
are related by the recurrence formula
v_1=b,\quad Av_j = \sum_{i=1}^{j+1}h_{ij}v_i\quad(j = 1,2,\ldots,m)
iop
determines the length of the incomplete orthogonalization procedure [1]. The default value of 0 indicates full Arnoldi. For symmetric/Hermitian A
, iop
will be ignored and the Lanczos algorithm will be used instead.
Refer to KrylovSubspace
for more information regarding the output.
Happy-breakdown occurs whenver norm(v_j) < tol * opnorm
, in this case the dimension of Ks
is smaller than m
.
advection-diffusion operator using the incomplete orthogonalization method. In Numerical Mathematics and Advanced Applications-ENUMATH 2013 (pp. 345-353). Springer, Cham.
ExponentialUtilities.arnoldi!
— Functionarnoldi!(Ks,A,b[;tol,m,opnorm,iop,init]) -> Ks
Non-allocating version of arnoldi
.
ExponentialUtilities.lanczos!
— Functionlanczos!(Ks,A,b[;tol,m,opnorm]) -> Ks
A variation of arnoldi!
that uses the Lanczos algorithm for Hermitian matrices.
API
ExponentialUtilities.KrylovSubspace
— TypeKrylovSubspace{T}(n,[maxiter=30]) -> Ks
Constructs an uninitialized Krylov subspace, which can be filled by arnoldi!
.
The dimension of the subspace, Ks.m
, can be dynamically altered but should be smaller than maxiter
, the maximum allowed arnoldi iterations.
getV(Ks) -> V
getH(Ks) -> H
Access methods for the (extended) orthonormal basis V
and the (extended) Gram-Schmidt coefficients H
. Both methods return a view into the storage arrays and has the correct dimensions as indicated by Ks.m
.
resize!(Ks, maxiter) -> Ks
Resize Ks
to a different maxiter
, destroying its contents.
This is an expensive operation and should be used scarcely.
Missing docstring for firststep!
. Check Documenter's build log for details.
Missing docstring for arnoldi_step!
. Check Documenter's build log for details.
Missing docstring for lanczos_step!
. Check Documenter's build log for details.
Missing docstring for coeff
. Check Documenter's build log for details.
- 1Koskela, A. (2015). Approximating the matrix exponential of an