对于n*n的方阵,若它的全部非零元素落在一个以主对角线为中心的带状区域中,这个带状区域包含主对角线, 以及主对角线下面及上面各b条对角线上的元素,那么称该方阵为半带宽为b的带状矩阵。
带状矩阵的存储空间为(2*b+1)*n-2*b。2*b+1为每一行所需空间,所以乘以n行,又因为第一行和最后一行之分配b+1个空间,所以公式中要减去2倍的2*b+1-(b+1)=b。
address(a(i,j))=1+(i*(2*b+1)-b)+(j-i+b)=1+(i*(2*b+1)+j-i)。我把书中的公式做了修改,address(a(i,j))=1。红色字体表示元素所在行之前的元素个数。每一行有2*b+1个元素,之前有i行,由于第一行并没有2*b+1个元素,所以要减去b个。
亦可表述为:对于n阶
对称矩阵A,若存在最小正数m,使j > i+m时,aij =0,这时称 w=2m+1 为矩阵A的带宽。