band#

Purpose#

Extracts bands from a symmetric banded matrix.

Format#

a = band(y, n)#
Parameters:
  • y (matrix) – KxK symmetric banded matrix

  • n (scalar) – number of subdiagonals.

Returns:

a (matrix) – Kx(N+1) matrix, 1 subdiagonal per column.

Examples#

x = { 1 2 0 0,
      2 8 1 0,
      0 1 5 2,
      0 0 2 3 };

// Extract only the principal diagonal
b0 = band(x,0);

// Extract the principal diagonal and the first subdiagonal
b1 = band(x,1);

// Extract the principal diagonal and the first two subdiagonals
b2 = band(x,2);

After the code above:

     1       0  1       0  0  1
b0 = 8  b1 = 2  8  b2 = 0  2  8
     5       1  5       0  1  5
     3       2  3       0  2  3

Remarks#

y can actually be a rectangular PxQ matrix. K is then defined as min(P,Q). It will be assumed that a is symmetric about the principal diagonal for y[1:K,1:K].

The subdiagonals of y are stored right to left in a, with the principal diagonal in the rightmost or (N+1)th column of a. The upper left corner of a is unused; it is set to 0.

This compact form of a banded matrix is what bandchol() expects.