Arithmetic with infinite matrices

Go to: Back / Home Page

Contents

The first steps with QT matrices

The CQT toolbox allows to represent infinite Quasi-Toeplitz matrices directly in MATLAB. Assume that we have a semi-infinite Toeplitz matrix $T$ with symbol $s(z)$ defined as follows:

$$ s(z) = 2 z^{-2} + z^{-1} - 3 - z + 4z^2 $$

We can represent this matrix using the CQT toolbox as

T = cqt([ -3 1 2 ], [ -3 -1 4 ])
T = 

CQT Matrix of size Inf x Inf


 - Toeplitz part (leading 5 x 5 block): 
    -3    -1     4     0     0
     1    -3    -1     4     0
     2     1    -3    -1     4
     0     2     1    -3    -1
     0     0     2     1    -3

Adding a finite perturbation

We can add a perturbation in the top-left corner, by specifying it as a dense $m \times n$ matrix E.

E = randn(3, 4);
T = cqt([ -3 1 2 ], [ -3 -1 4 ], E)
T = 

CQT Matrix of size Inf x Inf

  Rank of top-left correction: 3

 - Toeplitz part (leading 5 x 5 block): 
    -3    -1     4     0     0
     1    -3    -1     4     0
     2     1    -3    -1     4
     0     2     1    -3    -1
     0     0     2     1    -3


 - Finite correction (top-left corner): 
    0.5377    0.8622   -0.4336    2.7694
    1.8339    0.3188    0.3426   -1.3499
   -2.2588   -1.3077    3.5784    3.0349

Accessing the elements of the matrix

The matrix we have defined is of infinite size. We can however access finite sections of it with the familiar notation used in MATLAB to slice arrays and matrices:

T_top = T(1:6, 1:6)
T_top =

   -2.4623   -0.1378    3.5664    2.7694         0         0
    2.8339   -2.6812   -0.6574    2.6501         0         0
   -0.2588   -0.3077    0.5784    2.0349    4.0000         0
         0    2.0000    1.0000   -3.0000   -1.0000    4.0000
         0         0    2.0000    1.0000   -3.0000   -1.0000
         0         0         0    2.0000    1.0000   -3.0000

Tuning the truncation threshold

Most arithmetic operations cannot be performed exactly in floating point arithmetic, and some truncation threshold needs to be used.