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.
See also
Functions bandchol()
, bandcholsol()
, bandltsol()
, bandrv()
, bandsolpd()