SOME OF MY SOFTWARE

 

Sparse Matrices

·        mat2csr.m: Convert sparse matrix from MATLAB format to CSR format. Optionally save sparsity pattern to file. Usefull to represent graphs.

Iterative Methods

·        reorth_arnoldi.m: Compute Arnoldi decomposition

·        scalar_epsilon: Scalar epsilon, sequence acceleration algorithm

 

Pseudospectra

 

Transfer Functions

·        trfomgrid.m : Transfer Functions, combined with GRID and Restarted FOM  (requires reorth_arnoldi.m). Here is an example call:

 

A = gallery('kahan',100);

[OUT,nrm] = trfomgrid(A, -2+1.5*i, 1.5-1.5*i, 40, 40, 20, 20, 50, 1e-14, rand(100,1), 0);

x=linspace(-2,1.5,40);

y= linspace(-1.5,1.5,40);

[c,q]=contour(x,y,log10(OUT),[-1:-1:-7]);

clabel(c,q);

title('kahan(100). Pseudospectra contours for log10(\epsilon)=-1:-1:-7');

figure(2);

pcolor(x,y,log10(nrm));

colorbar;

title('Norms of residuals of restarted FOM for kahan(100)');

 

This takes less than 2 secs on a P4 @ 3.2 Mhz. The domain of interest is: [-2, 1.5] x [1.5,-1.5]. We use a 40x40 mesh, Transfer Krylov dimension m=20, Restarted FOM Kyrlov dimension d=20, maximum number of restarts equal to 50, FOM conv. tol equal to 1e-14, and a random input vector. Set flag to 0. 

 

An example with a larger matrix from Matrix Market: tols4000 (n=4000). The matrix is scaled for display reasons.

[OUT,nrm] = trfomgrid(1e-3*A, -2+5*i, 1.5-5*i, 40, 40, 20, 20, 50, 1e-14, rand(4000,1), 0);

 

This took 42 secs. Here (tols1.jpg and tols2.jpg) are pictures of the outcome (contours and FOM norms respectively).