欢迎来到天天文库
浏览记录
ID:1547793
大小:85.00 KB
页数:3页
时间:2017-11-12
《对角矩阵压缩存储》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.对角矩阵 所有的非零元素集中在以主对角线为中心的带状区域中,即除了主对角线和主对角线相邻两侧的若干条对角线上的元素之外,其余元素皆为零的矩阵为对角矩阵。 其中:带状矩阵所有非0元素都集中在以主对角线为中心的带状区域,半带宽为d时,非0元素有(2d+1)*n-(1+d)*d个(左上角与右下角补上0后,最后必须减掉),如下图怕示: 非零元素仅出现在主对角上(aii,0≤i≤n-1),紧邻主对角线上面的那条对角线上(ai,i+1,0≤i≤n-2)和紧邻主对角线下面的那条对角线上(ai+1,i,0≤i≤n-2)。当
2、i-j
3、>1时,元素aij=0。 由此可知,一个k对
4、角线矩阵(k为奇数)A是满足下述条件的矩阵: 若
5、i-j
6、>(k-1)/2,则元素aij=0。若
7、i-j
8、<=(k-1)/2 对角矩阵可按行优先顺序或对角线的顺序,将其压缩存储到一个向量中,并且也能找到每个非零元素和向量下标的对应关系。方法一:按行优先顺序存储为计算方便,认为每一行都有2d+1个非0元素,若少则0补足存放矩阵的数组sa[]有:n(2d+1)个元素数组,元素sa[k]与矩阵元素aij之间有关系:k=i*(2d+1)+d+(j-i)(第一项i*(2d+1)表示前i行一共有几个元素,d+(j-i)这一项是用来确定第i行中,第j列前有几个元素,以i=j时,
9、这时j-i=0,这个作为“分水岭”,左右两边的元素分别加上偏移量d.) 本例:d=1 K=0 1 2 3 45 6 78 91011121314 (a00前以及a14处放一个0是用来表示在矩阵的左上角及右下角补上的0)推广应用:第i行,首先确定aij的位置aii的位置为i*(2d+1)ai(i+1)aii+2 若,则元素aij=0。A00a10a11a12a21a22a23公式为A[k]=a(i,j)=i*(2d+1)+j-i同时
10、i-j
11、<=d方法二:按对角线的顺序存储
此文档下载收益归作者所有