Codes
Here are some codes for some algorithms that are introduced in my work.-
The AAA algorithm for rational approximation, available in Chebfun
This is a very versatile algorithm for working with rational functions. Please try it out! --described in
Yuji Nakatsukasa, Olivier Sete and Lloyd N. Trefethen, "The AAA algorithm for rational approximation", Preprint
-
The spinsphere code for solving PDEs on a sphere
Integrated into Chebfun for solving PDEs on a sphere using double Fourier spectral methods and IMEX time-integration schemes (option provided for exponential integrators). All programming done by Hadrien Montanelli. --described in
Hadrien Montanelli and Yuji Nakatsukasa, Fourth-order time-stepping for stiff PDEs on the sphere, to appear in SIAM Journal on Scientific Computing, Preprint.
-
The minimax algorithm for best rational approximation, available in Chebfun
This is an improved version of the remez code for computing the best rational approximation of a continuous function on a real interval. minimax can compute the best approximant for the absolute value function of type up to (80,80) in standard MATLAB, a computation that previously required 200-digit extended precision arithmetic. --described in
Silviu-Ioan Filip, Yuji Nakatsukasa, Lloyd Trefethen, and Bernhard Beckermann, Rational minimax approximation via adaptive barycentric representations, Preprint.
-
MATLAB code for symmetric eigenvalue decomposition and SVD based on spectral divide-and-conquer
using Zolotarev's rational functions
Note: this code is slower than the one below if run sequentially (which it is when run as is), but should run faster by up to x3 if implemented in parallel
--described in
Yuji Nakatsukasa and Roland W. Freund, "Computing Fundamental Matrix Decompositions Accurately via the Matrix Sign Function in Two Iterations: The Power of Zolotarev's Functions", preprint, 32 pages, to appear in SIAM Review.
-
MATLAB code for symmetric eigenvalue decomposition and SVD based on spectral divide-and-conquer
--described in
Yuji Nakatsukasa and Nicholas J. Higham, "Stable and efficient spectral divide and conquer algorithms for the symmetric eigenvalue decomposition and the SVD", SIAM Journal on Scientific Computing, Vol. 35(3), pp. A1325-A1349, 2013. pdf -
MATLAB code for matrix exponential
--described in
Stefan Guettel and Yuji Nakatsukasa, "Scaled and squared subdiagonal Pade approximation for the matrix exponential", SIAM Journal on Matrix Analysis and Applications, Vol. 37(1), pp. 145-170, 2016. pdf -
MATLAB code for
computing common zeros (roots) of two bivariate functions
--described in Yuji Nakatsukasa, Vanni Noferini and Alex Townsend, "Computing the common zeros of two bivariate functions via Bezout resultants", Numerische Mathematik, Vol. 129, pp. 181-209, 2015. pdf
(This algorithm is also integrated into Chebfun2's roots.m for bivariate rootfinding)
-
Fortran code for
dqds with aggressive early deflation for computing singular values of bidiagonal matrices
--described in
Yuji Nakatsukasa, Kensuke Aishima and Ichitaro Yamazaki, "dqds with aggressive early deflation", SIAM Journal on Matrix Analysis and Applications, Vol. 33, No. 1, pp. 22-51, 2012. pdf -
MATLAB code for Fisher discriminant analysis
--described in
Satoru Iwata, Yuji Nakatsukasa and Akiko Takeda, "Global optimization methods for extended Fisher discriminant analysis", AISTATS 2014, pp. 411-419. pdf -
MATLAB code for trust-region subproblem via one eigenvalue problem
--described in
Satoru Adachi, Satoru Iwata, Yuji Nakatsukasa and Akiko Takeda, "Solving the trust-region subproblem by a generalized eigenvalue problem", SIAM Journal on Optimization, Vol. 27 (1), pp. 269-291, 2017. pdf. -
MATLAB code for generalized CDT problems (essentially QCQP with two quadratic constraints)
Here is a simple test code
--described in
Shinsaku Sakaue, Yuji Nakatsukasa, Akiko Takeda and Satoru Iwata, "Solving generalized CDT problems via two-parameter eigenvalues", SIAM Journal on Optimization, Vol 26-3, pp. 1669-1694, 2016. pdf