COHSS
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)
http://dx.doi.org/10.1155/2015/548609
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.
Author:
Enrico Bertolazzi
Department of Industrial Engineering
University of Trento
enrico.bertolazzi@unitn.it
Citar como
Enrico Bertolazzi (2024). COHSS (https://www.mathworks.com/matlabcentral/fileexchange/47242-cohss), MATLAB Central File Exchange. Recuperado .
Compatibilidad con la versión de MATLAB
Compatibilidad con las plataformas
Windows macOS LinuxCategorías
- MATLAB > Mathematics > Elementary Math > Polynomials >
Etiquetas
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Descubra Live Editor
Cree scripts con código, salida y texto formateado en un documento ejecutable.