4 window
Four mutually orthogonal functions, defined in the plane. Each function, after multiplication by an auxillary function (not shown), is nonnegative definite (in the sense of Bochner). The matrices above were found with cvxopt and the iterative solvers below.

CVXOPT Solvers


You will find here several iterative solvers for the linear problem Ax=b. They are written in Python and require a working installation of cvxopt. Scroll down to get them.

Each file in the list below is (essentially) a line-for-line translation of a matlab original. The original matlab files, and a lot more information may be found at Stanford's SOL. Their software is released under a BSD-style license. Per the requirements of that license, it is displayed below. Note that the solvers here exist because people at SOL wrote them first.

Requirements: a working copy of cvxopt.

The Files


Minres was last updated in October 2009, Symmlq in May 2009, LSQR in November 2009. See the changelogs near the top of each file for details.
minres Example using MINRES
symmlq Example using SYMMLQ
lsqr Example using LSQR

Comments



I added the routine 'SymOrtho' for numerical stability. This is recommended by S.-C. Choi in the dissertation, Iterative Methods for Singular Linear Equations and Least-Squares Problems. It removes the unpleasant potential of '1/eps' in some important places (see, for example text following "Compute the next plane rotation Qk" in minres_py).

The SciPy/Numpy versions of the same routines have no connection with the versions posted here.

The files are named '*_py' instead of '*.py' because the current web server tries to execute the '*.py' files instead of sending them.

The current version and archive management of these files is really poor. This will eventually change.

If you find bugs in these python versions, please tell me. jeffery.kline @ gmail com

License

    BSD License for SOL Numerical Software
    http://www.opensource.org/licenses/bsd-license.php

This notice applies to the software packages

    cgls, lsqr, lumod, minres, pdco, pdsco, symmlq

made available at
    http://www.stanford.edu/group/SOL/software.html
by the
    Systems Optimization Laboratory (SOL)
    Dept of Management Science and Engineering
    Stanford University,
    Stanford, CA 94305-4026, USA


Copyright (c) 2006, Systems Optimization Laboratory
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.

    * Neither the name of Stanford University nor the names of its
      contributors may be used to endorse or promote products derived
      from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Valid HTML 4.01 Transitional