hankel_spd, a MATLAB code which can compute a lower triangular matrix L which is the Cholesky factor of a symmetric positive definite (SPD) Hankel matrix H, that is, H = L * L'.

A Hankel matrix is a matrix which is constant along all antidiagonals. A schematic of a 5x5 Hankel matrix would be:

        a  b  c  d  e
        b  c  d  e  f
        c  d  e  f  g
        d  e  f  g  h
        e  f  g  h  i

Let J represent the exchange matrix, formed by reversing the order of the columns of the identity matrix. If H is a Hankel matrix, then J*H and H*J are Toeplitz matrices, and similarly in the other direction. Hence many algorithms that apply to one class can be easily adapted to the other.


The computer code and data files described and made available on this web page are distributed under the MIT license


hankel_spd is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

asa006, a MATLAB code which computes the Cholesky factorization of a symmetric positive definite (SPD) matrix, by Michael Healy. This is a MATLAB version of Applied Statistics Algorithm 6;

hankel_cholesky, a MATLAB code which computes the upper Cholesky factor R of a symmetric positive definite (SPD) Hankel matrix H so that H = R' * R..

hankel_inverse, a MATLAB code which computes the inverse of a Hankel matrix.



  1. S Al-Homidan, M Alshahrani,
    Positive Definite Hankel Matrices Using Cholesky Factorization,
    Computational Methods in Applied Mathematics,
    Volume 9, Number 3, 2009, pages 221-225.

Source Code:

Last modified on 10 March 2020.