COHSS solver for complex symmetrix linear system
Updated 26 Oct 2017

View License

COHSS solver for complex symmetrix linear system
Description: The script cohss solve iteratively a complex linear system
(1) (B+i*C) (x+i*y) = b+i*c
with B and C semi-SPD (SPD=Symmetric and Positive Definite matrices) and B+C an SPD matrix. The algorithm uses COCG (Conjugate Orthogonal Conjugate Gradient) or COCR (Conjugate Orthogonal Conjugate Residual) iterative solver preconditioned with the preconditioners proposed in the preprint:

Preconditioning complex symmetric linear systems, by Enrico Bertolazzi and Marco Frego
Mathematical Problems in Engineering, Volume 2015 (2015)

Usage: To solve linear system Mat*x = rhs use

[x,res] = cohss( Mat, rhs, varargin )

where x is the solution and res is a vector with the residual history.

res(1) is the first resisual norm using L2 norm
res(k) is the ratio of the residual at the k-1 iterate divided by the first residual.
The matrix Mat must be sparse complex with real(Mat) and imag(Mat) semi definite positive. varargin are optional arguments. The arguments are couples string values. The first group of option change the standard parameters of the iterative solver:

'DISPLAY', nd = display iteration and residual every nd iter
'MAX_ITER', maxiter = maximum number of allowed iterations
'TOLERANCE', tol = iteration stop when ||r||/||r0|| < tol
'X0', x0 = initial guess
The second group of option change the way the solver work selecting the appropriate sub-solver

'SOLVER', handle = select iterative solver @cogr or @cocr for outer iterations. If not specified COCR (@cocr) is used as iterative solver for outer iterations.
'ILU', arg = use ILU matlab preconditioner, arg is the arguemnt passed to the ILU routine and can be 'nofill' or 'crout'
'POLY', dgr = use Jacobi preconditioner of degree dgr as preconditioner
'CHPOLY', dgr = use Chebyshev preconditioner of degree dgr as preconditioner
'DELTA', delta = windows where eigenvalues of Chebyshev polynomial are shrinked. Default delta = 0.2
'SSOR', [omega,dgr] = use SSOR preconditioner of degree dgr
'SCALE', scale = scale >= 1 extra scaling factor
Five example scripts: test_for_paper_nXX.m are used for the computation of tables and images described in the preprint.

The scrips cocg and cocr which implements Conjugate Orthogonal Conjugate Gradient and Conjugate Orthogonal Conjugate Residual algorithms used by cohss can be used also standalone.


Enrico Bertolazzi
Department of Industrial Engineering
University of Trento

Cite As

Enrico Bertolazzi (2024). COHSS (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2013b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Polynomials in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Updated reference