Courant Institute of Mathematical Sciences|
Department of Computer Science
New York University
251 Mercer Street
New York, NY 10012
|see:||Warren Weaver Hall 410|
|write:||tim mitchell cims nyu edu (replace spaces with place appropriate characters)|
|May 22, 2014||SIAM Conference on Optimization, San Diego, CA, USA|
|April 9, 2014||Copper Mountain Conference on Iterative Methods, Copper Mountain, CO, USA|
|March 28, 2014||Tufts University Mathematics Department Colloquium, Medford, MA, USA|
|November, 2013||Mid Atlantic Numerical Analysis Day, Philadelphia, PA, USA|
|August, 2013||Modeling and Optimization: Theory and Applications Conference, Bethlehem, PA, USA|
|July, 2013||International Conference on Continuous Optimization, Lisbon, Portugal|
|July, 2013||SIAM Conference on Control and Its Applications, San Diego, CA, USA|
|February, 2013||SIAM Conference on Computational Science and Engineering, Boston, MA, USA|
Fast approximation of the H-infinity norm via hybrid expansion-contraction using spectral value sets
with Michael L. Overton
(Submitted to IMA J. Numer. Anal., 2014)
Approximating the real structured stability radius with Frobenius-bounded perturbations via spectral value sets
with Nicola Guglielmi, Mert Gürbüzbalaban, and Michael L. Overton (In preparation - title subject to change)
Multiobjective robust control of large-scale systems using HIFOO 5.0
with Michael L. Overton (In preparation - title subject to change)
H-infinity norm approximation code using hybrid expansion-contraction method for large and sparse control systems with inputs and outputs.
(Matlab release imminent)
Hybrid BFGS SQP based optimization code for nonsmooth, nonconvex optimization with nonsmooth, nonconvex constraints.
(Matlab release imminent)
In 2011, I discovered and patched a nasty bug in ARPACK where if eigenvectors are requested and the number of converged Ritz values returned is less than number of eigenvalues requested, then ARPACK may erroneously return wrong eigenpairs (such as LM ones instead of LR ones) and furthermore, some of these returned pairs may not even be true eigenpairs. The issue was due to a reordering procedure not being properly called to sort the output so that the desired converged pairs were in the beginning of the array.
I have submitted my patch, along with demo codes in MATLAB and FORTRAN to replicate the bug, to the ARPACK authors, The MathWorks, and the community maintained repository, ARPACK-NG, which is replacing the official ARPACK source in many Linux distributions. At the time of this writing, I have confirmed that my patch ships by default with MATLAB versions R2012b and later.
eigsplus v1.0 / eigs
Eigsplus is my own small fork of the standard MATLAB routine eigs motivated by the fact the standard version of eigs used to return zeros for Ritz values that didn't converge, which the user may unwittingly mistake as actual eigenvalues. A typical horrifying example is when a user may call max(real(eigs(A,6,'LR'))) and receive an erroneous answer of 0, which then silently gets propagated to subsequent code. Fortunately The MathWorks, at my urging, now uses NaNs as placeholders for Ritz values so this is no longer an issue for for the standard eigs in MATLAB releases R2013b and later.
However, eigsplus still has some additional features that users may prefer, such as that it only returns the converged Ritz values and always as in a vector, even if the eigenvectors are requested, and as the sizes returned will indicate whether not all requested Ritz values converged, the number of ARPACK iterations is returned instead of the FLAG output argument. Eigsplus is currently used by PSAPSR, HINFNORM, HINFNORM-HEC, and Bart Vandereycken's Subspace-PSPA.
HINFNORM is the implementation of Mert Gürbüzbalaban's code for the first fast algorithm for approximating the H-infinity norm for large-scale dynamical systems, provided that they are sparse and have relatively few inputs and outputs, described in his paper with Nicola Guglielmi and Michael L. Overton. I discovered and patched several bugs and made minor algorithmic changes for the v1.02 release used for the numerical results section of their paper.
Note: this code has not been updated to use the latest version of eigsplus and furthermore the included prototype version of eigsplus is unfortunately not compatible on the R2013b release of MATLAB. A new release of HINFNORM for their original algorithm is forthcoming.
PSAPSR is the code developed by Michael L. Overton that implements his algorithm with Nicola Guglielmi for fast approximation of the pseudospectral abscissa and radius, described in their corresponding paper. I released v1.3 of this code which fixes a bug where initial user-supplied perturbation vectors were ignored, updates the code to use the 1.0 version of eigsplus, and incorporates some other refactorings, comments and another small bug fix. A changelog is included.
PSPR is Emre Mengi's code for computing the pseudospctral radius. In 2013, I noticed and reported that the included copy of PSPR in EigTool is actually out-of-date and may sometimes give incorrect answers. The problem and solution is discussed in the related paper for computing the pseudospectal abscissa via the criss-cross method. Fortunately, Emre's version handles this case properly. I also pointed out and proposed a solution for a very minor bug in the plotting routines of Emre's code, which he has since fixed.