Iterative Methods for Sparse Linear Systems

Iterative Methods for Sparse Linear Systems

Scilab Iterative Methods for Sparse Linear Equations Toolbox


Imsls provides iterative methods for sparse linear systems of equations.


  • imsls_bicg: BIConjugate Gradient method
  • imsls_bicgstab: BIConjugate Gradient STABilized method
  • imsls_pcg: Conjugate Gradient method
  • imsls_cgs: Conjugate Gradient Squared method
  • imsls_cheby: CHEBYshev method
  • imsls_gmres: Generalized Minimal RESidual method
  • imsls_jacobi: JACOBI method
  • imsls_qmr: Quasi Minimal Residual method
  • imsls_sor: Successive Over-Relaxation method


  • imsls_benchmatrix : Test a matrix against all solvers.
  • imsls_getpath : Returns the path to the current module.
  • imsls_lehmer : Returns the Lehmer matrix.
  • imsls_makefish : Returns the Poisson matrix.
  • imsls_matgen : Returns a test matrix.
  • imsls_nonsym : Returns a non symetric matrix.
  • imsls_spdiags : Extract and create sparse band and diagonal matrices
  • imsls_split : Sets up the matrix splitting for Jacobi and SOR.
  • imsls_tester : Test all algorithms
  • imsls_wathen : Generates a random finite element matrix.


  • mtlb_bicg : Solves linear equations using BiConjugate Gradient Method with preconditioning.
  • mtlb_bicgstab : Solves linear equations using BiConjugate Gradient Stabilized Method with preconditioning.
  • mtlb_cgs : Solves linear equations using Conjugate Gradient Squared Method with preconditioning.
  • mtlb_gmres : Solves linear equations using Generalized Minimal residual with restarts .
  • mtlb_pcg : Solves linear equations using Conjugate Gradient method with preconditioning.
  • mtlb_qmr : Solves linear equations using Quasi Minimal Residual method with preconditioning.


  • This module depends on the helptbx module.
  • This module depends on the apifun module, v0.2.
  • This module depends on the assert module.


In 1993, the Book "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods" was published. Associated source codes in the Matlab language were provided at

From 2000 to 2006, these function have been ported to Scilab 4 by Aladin Group (IRISA-INRIA).

Starting in 2010, Michael Baudin upgraded this module to Scilab 5. I updated the management of the input arguments, the arguments checking and the management of the callbacks (for the matrix-vector product A*x and the preconditionning M\x). The argument management is now based on apifun, which greatly improves the robustness and simplifies the writing of the functions. I described the input arguments more precisely in the help pages, added examples and created unit tests (based on the assert module). I added the right preconditionner M2 for all functions. I created the Matlab compatibility functions.


This toolbox is released under the terms of the CeCILL license :


  • 1993 - Univ. of Tennessee and Oak Ridge National Laboratory
  • 2000 - 2001 - INRIA - Aladin Group
  • 2010 - DIGITEO - Michael Baudin


Powered by InDefero,
a Céondo Ltd initiative.