Download the Rational Krylov Toolbox
To automatically download and install the Rational Krylov Toolbox,
simply copy and paste
the following two lines to your MATLAB command window:
unzip('http://guettel.com/rktoolbox/rktoolbox.zip'); cd('rktoolbox'); addpath(fullfile(cd)); savepath
Alternatively, the toolbox can be downloaded manually from http://guettel.com/rktoolbox/rktoolbox.zip. To install it, unpack the zip file and add the main folder 'rktoolbox' to your MATLAB path.
Versions
Version | Release | Changes |
---|---|---|
2.9 (latest) | 2020-07-14 |
BARYFUN: New class to represent rational functions in generalized barycentric form. RKFUN contfrac updated to deal with type [1,1] rational functions. Utility functions: util_block_aaa: AAA-like algorithm to compute approximants in BARYFUN form; util_rmse: helper function to evaluate root mean squared error; util_bilanczos: updated to deal with 1x1 matrices. OTHER: New examples on block AAA and label propagation on graphs. Updated several references and the guide. |
2.8 | 2019-02-25 |
RAT_KRYLOV: Fixed QR permutation to maintain column structure in the block case.
Fixed issue with lucky breakdown in the real variant leading to a broken decomposition. Restructured breakdown tests and error messages.
Allow simulation of parallelisation in the block case. Allow construction of RK space when xi = []. Now works with Advanpix MP Toolbox. RKFIT: Adaptive degree increment when run with xi = [] until tolerance is reached. Utility functions: Moved utility functions to main folder to simplify adding to path. util_bary2rkfun: corrected rng initialization; util_pencil_blocksize: improved documentation and changed to SVD for pole identification; move_poles_expl: changed ORDQZ call to use complex() in 3rd and 4th argument to avoid crash due to MATLAB 2018 bug. OTHER: New examples on block Krylov methods (CD player MOR, vector autoregression, and block Ritz values of the Wilkinson matrix). Updated the guide. |
2.7 | 2017-11-06 |
Added utility function util_bary2rkfun, util_aaa,
util_matcell to work with barycentric approximants computed by the
AAA algorithm. RAT_KRYLOV: For the block-case, support to keep fat decompositions has been added, as well as Ruhe's QR-based continuation strategy (default). Balancing of matrix pencil (on by default). OTHER: New example on AAA approximation and nonlinear eigenvalue problems. Updated the guide. |
2.6 | 2017-03-03 |
RAT_KRYLOV: added support for generating and rerunning block rational Arnoldi decompositions. RKFUNM: added class for matrix-valued RKFUN's with basic linearize method. OTHER: util_pencil_poles now works for block pencils and returns poles in mp format if requested; new function util_nleigs for sampling a nonlinear eigenvalue problem into an RKFUNM; new functions util_qr and util_pencil_blocksizes for block Arnoldi. |
2.5 | 2016-11-04 |
GALLERY: New rational approximants (SQRT0H, SQRT2H, INVSQRT2H) on two disjoint intervals and indefinite intervals. RKFUN: Fixed erroneous normalization in rdivide OTHER: New examples on Zolotatev problems by Alex Townsend and the compression of exterior Helmholtz problems; new utility functions util_colfun, util_dtnfun, util_log2lin, util_markovfunmv, util_recover_rad, util_reorder_poles. |
2.4 | 2016-06-01 |
RAT_KRYLOV Can now simulate the parallel generation of basis vectors
using various continuation strategies; see also [5]. GALLERY: Fixed bug concerning the rational approximants SQRT, SIGN, and STEP (thanks to R. Luce and A. Townsend for pointing these out) and improved accuracy of these approximants. OTHER: Four new examples on the parallel Arnoldi method and related new utility function util_continuation_fom; utility functions util_ellipjc and util_ellipkkp from the SC Toolbox [6]. |
2.3 | 2016-03-06 |
DIFF: Removed infinite generalized eigenvalues for the sampling (same in EZPLOT).
Now supports MP, uses real Jordan form for real-valued (quasi) RADs. FEVAL: Now works with quasi RADs. More efficient evaluation of r(A,V) for a block of vectors V. RKFIT: Removed bug related to 'best'/'last' flag (was off by one index). OTHER: Two new examples (FEAST, complex networks). |
2.2 | 2015-09-28 |
RKFIT:
changed default iteration number to 10; added return option to output
'best' (default) or 'last' approximant
RKFUN: reworked constructor and added support for symbolic strings; added gallery with Zolotarev rational functions, Moebius transforms, etc.; added support for composition with Moebius transforms, addition, multiplication, division, exponentiation; inverse function of Moebius transform; Newton correction in roots and 'real' option, also now using util_householder; now using some private functions; diff now samples at standard Ritz values MOVE_POLES_IMPL: added 'real' option OTHER: new front web page; new example on rational filter design; Content.m and License.txt files added; restructured the test folder and added several new tests |
2.1 | 2015-07-14 |
RAT_KRYLOV:
added option for a waitbar;
RKFIT: fixed reduction strategy to achieve scaling-invariance for F and b; OTHER: new utility functions (util_discretise_polygon, util_linearise_nlep), new examples on (non)linear eigenvalue problems and the semiseparable structure of rational Krylov projections |
2.0 | 2015-06-13 |
RAT_KRYLOV:
new pencil structure for (A,B) supported, allowing the use of function handles;
allows for rerunning an existing rational Arnoldi decomposition;
allows to expand an existing decomposition;
parameter structure;
supports classical and modified GS with or without reorthogonalisation;
can do one iteration of iterative refinement for the linear system solves;
fixed bug with near 0 poles;
HH2TH: can now deal with real-valued quasi-Hessenberg pencils; RKFIT: generalized to nondiagonal approximants; automated degree reduction; allows for multiple "functions" F and a block of vectors in b; allows for weighting matrices D; changed to relative misfit; added output structure for more insight; rational function now returned as an RKFUN object; added utility function to convert data to real form if possible; RKFUN: more efficient evaluation via rerunning; implemented as a class with 24 new methods; including root-finding, conversion to partial fraction form, and differentiation; OTHER: new utils subfolder; added several examples and tests |
1.0 | 2015-02-04 | First version of the toolbox |
Planned features
The Rational Krylov Toolbox is under continuous development and new features will be added over time. Here is our current todo list:
- Make move_poles_expl preserve real pencils with complex conjugate eigenpairs.
- Write example for util_markovfunmv; see, e.g., [7].
- Add more unit tests for all functionalities.
- Block rational Krylov methods (basic implementation already added) and biorthogonalization.
- Integration with MATLAB's Parallel Computing Toolbox.
- Unify representations of matrix-valued RKFUN's (RKFUNM, RKFUNB, BARYFUN).
Acknowledgments
This web site was generated using MATLAB's publish command. The convenient 2-line Matlab code for automated download and installation of this toolbox was adapted from a similar code on the Chebfun website.
We are grateful to Pavel Holoborodko for providing and maintaining the powerful Advanpix multiprecision toolbox [1], and to Toby Driscoll for allowing us to include two elliptic function routines from [6]. We thank Yuji Nakatsukasa, Oliver Sete, and Nick Trefethen for the permission to include the AAA algorithm [8] as a utility function in the toolbox.
We also acknowledge contributions to the example collection by Mary Aprahamian, Ion Victor Gosea, and Alex Townsend.
References
[1] Advanpix LLC., Multiprecision Computing Toolbox for MATLAB, ver 4.3.3.12213, Tokyo, Japan, 2017. http://www.advanpix.com.
[2] M. Berljafa, S. Elsworth, and S. Güttel, A Rational Krylov Toolbox for MATLAB, MIMS EPrint 2014.56, Manchester Institute for Mathematical Sciences, The University of Manchester, UK, 2014. Available at http://eprints.maths.manchester.ac.uk/2773/.
[3] M. Berljafa and S. Güttel, Generalized rational Krylov decompositions with an application to rational approximation, SIAM J. Matrix Anal. Appl., 36(2):894--916, 2015.
[4] M. Berljafa and S. Güttel, The RKFIT algorithm for nonlinear rational approximation, SIAM J. Sci. Comput., 39(5):A2049--A2071, 2017.
[5] M. Berljafa and S. Güttel, Parallelization of the rational Arnoldi algorithm, SIAM J. Sci. Comput., 39(5):S197--S221, 2017.
[6] T. A. Driscoll, A MATLAB toolbox for Schwarz-Christoffel mapping, ACM Trans. Math. Soft., 22:168--186, 1996.
[7] S. Güttel and L. Knizhnerman, A black-box rational Arnoldi variant for Cauchy--Stieltjes matrix functions, BIT Numer. Math., 53(3):595--616, 2013.
[8] Y. Nakatsukasa, O. Sete, and L. N. Trefethen, The AAA algorithm for rational approximation, SIAM J. Sci. Comput., 40(3):A1494--A1522, 2018.
[9] A. Ruhe, Rational Krylov: A practical algorithm for large sparse nonsymmetric matrix pencils, SIAM J. Sci. Comput., 19(5):1535--1551, 1998.