Tim Mitchell, PhD |
where (now): |
Max Planck Institute for Complex Dynamics of Technical Systems Computational Methods in Systems and Control Theory Magdeburg, Germany |
write: | tim mitchell cims nyu edu (replace spaces with place appropriate characters) |
Robust and efficient methods for approximation and optimization of stability measures
PhD Thesis (September 2014)
Advisor: Michael L. Overton
Tim Mitchell and Michael L. Overton
Hybrid Expansion-Contraction: a Robust Scaleable Method for Approximating the H_{∞} Norm
IMA J. Numer. Anal., 36:985–1014, 2016
Tim Mitchell and Michael L. Overton
Fixed low-order controller design and H_{∞} optimization for large-scale dynamical systems
In: Proceedings of 8th IFAC Symposium on Robust Control Design, Bratislavai, 8-11 July 2015 (ROCOND 2015), pp. 25-30
Frank E. Curtis, Tim Mitchell, and Michael L. Overton
A BFGS-SQP Method for Nonsmooth, Nonconvex, Constrained Optimization and its Evaluation using Relative Minimization Profiles
Optimization Methods and Software, in press, 2016
Nicola Guglielmi, Mert Gürbüzbalaban,
Tim Mitchell, and Michael L. Overton
Approximating the real structured stability radius with Frobenius-bounded perturbations via spectral value sets
(In preparation - title subject to change)
getStabRadBound
H-infinity norm approximation code using hybrid expansion-contraction method for large and sparse control systems with inputs and outputs.
(Matlab release imminent)
BFGS SQP
Hybrid BFGS SQP based optimization code for nonsmooth, nonconvex optimization with nonsmooth, nonconvex constraints.
(Matlab release imminent)
ARPACK
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 code 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 v1.02
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 v1.3
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 /
EigTool
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.