> funm_quad

# Efficient and stable Arnoldi restarts for

matrix functions based on quadrature

## About

This Matlab code implements a quadrature-based restarted Krylov method FUNM_QUAD for
the efficient and stable approximation of *f(A)b,* where *A* is a square, large and sparse matrix, *f* is a matrix function (such that *f(A)* is defined) and *b* is a vector.

The algorithm is described and analysed in

The basic calling sequence of FUNM_QUAD is

This Matlab code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is a research code and the authors are grateful for any constructive comments. Please refer to the above paper when using this code.## Download

Download the latest version of FUNM_QUAD here:
`funm_quad_2015-03` in Matlab. This directory
also contains a PDF file with a short overview of FUNM_QUAD, and you
may also want to run the demo files to see how it works.

## Version history

matrix functions based on quadrature

The algorithm is described and analysed in

A. Frommer, S. Güttel, and M. Schweitzer:

**Efficient and stable Arnoldi restarts for matrix functions based on quadrature,**

SIAM Journal on Matrix Analysis and Applications, 35(2):661--683, 2014.

A. Frommer, S. Güttel, and M. Schweitzer:

**Convergence of restarted Krylov subspace methods for Stieltjes functions of matrices,**

SIAM Journal on Matrix Analysis and Applications, 35(4):1602--1624, 2014.

M. Schweitzer:

**Restarting and error estimation in polynomial and extended Krylov subspace methods for the approximation of matrix functions,**

Dissertation, Bergische Universität Wuppertal, Fakultät für Mathematik und Naturwissenschaften, 2016.

SIAM Journal on Matrix Analysis and Applications, 35(2):661--683, 2014.

A. Frommer, S. Güttel, and M. Schweitzer:

SIAM Journal on Matrix Analysis and Applications, 35(4):1602--1624, 2014.

M. Schweitzer:

Dissertation, Bergische Universität Wuppertal, Fakultät für Mathematik und Naturwissenschaften, 2016.

The basic calling sequence of FUNM_QUAD is

[f,out] = funm_quad(A,b,param)

This Matlab code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is a research code and the authors are grateful for any constructive comments. Please refer to the above paper when using this code.

To use FUNM_QUAD extract the zip-archive on your computer and change to the directoryDownload FUNM_QUAD with documentation and demos

(about 4 MB, version 2015-03)

- funm_quad_2015-03: use of a relative stopping criterion in all restart cycles;
controlled breakdown of Arnoldi method and automated reduction of restart length for small matrices; fixed normalisation of vector b when non-standard inner product is provided;
added support for truncated (or incomplete) Arnoldi via
`param.truncation_length`; added a verbose parameter (0, 1, 2) to adjust level information to output on the command line; changed`w = w - v*h`to`w = w - v*h(1)`in Arnoldi (considerable performance gain); updated manual`funm_quad.pdf`and cleaned up demo files; absorbed myintegral helper functions into a single file and removed myintegral subfolder - funm_quad_2015-02: minor fix to prevent early breakdown in first restart cycle, relative stopping tolerance, drive_quad.m renamed to demo_quad.m
- funm_quad_2014-01: first version