3.对角矩阵 若矩阵中所有非零元素都集中在以主对角线为中心的带状区域中,区域外的值全 为0,则称为对角矩阵。常见的有三对角矩阵、五对角矩阵、七对角矩阵等。 例如,图5-3为7×7的三对角矩阵(即有三条对角线上元素非0)。 a 00000 0000 00 00 32a2 00 000 000 00000a6a 图5-3一个7×7的三对角矩阵
3.对角矩阵 若矩阵中所有非零元素都集中在以主对角线为中心的带状区域中,区域外的值全 为0,则称为对角矩阵。常见的有三对角矩阵、五对角矩阵、七对角矩阵等。 例如,图5-3为7×7的三对角矩阵(即有三条对角线上元素非0)。 图5-3 一个7×7的三对角矩阵 6 5 6 6 5 4 5 5 5 6 4 3 4 4 4 5 3 2 3 3 3 4 2 1 2 2 2 3 1 0 1 1 1 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a a a a a a a a a a a a a a a a a a a
532压缩存储 对称矩阵 若矩阵A是对称的,对称的两个元素可以共用一个存储单元,这样,原来n阶方阵需m个存储单元,若采用压缩存储, 仅需n+y2个存储单元,将近节约一半存储单元,这就是实现压缩的好处,但是,将n阶称方阵存放到一个向量空间:0 到5]中,我们怎样找到与面的一对应关系呢?使我们在中直接到4, 我们似以行优先存放分两种方式讨论: ()只存放下三角部分4 由于对称矩阵关于主对角线对称,故我们只需存放主对角线及主对角线以下的元素这时,40存入8,可间存 入:4,…“,具体参见图54.这时11时应关系为 1)2+当j +1)2+当 上面的对应关系读者很容易推出:当j时,可在下三角部分中,前面有i行,共有+2++个元素,而是第 行的第j个元素,即有=1+计++)2当时,画在上三角部分中,但与对称,故只需在下三角部分中找 即可,故只需将;与j交换即可,即k=+1)2+
5.3.2 压缩存储
C 11 (a)一个下三角矩阵 01234567 2-3mn n(n+1) n(n+1) aoo ajo au a20 a21 a22 a30 a31 an In-3 In-2 (b)下三角矩阵的压缩存储形式 矩阵及用下三角压缩存储 图54对称
1 0 1 1 1 2 1 1 2 0 2 1 2 2 1 0 1 1 0 0 ... ... ... ... ... ... an− an− an− an− n− a a a a a a (a)一个下三角矩阵 (b)下三角矩阵的压缩存储形式 矩阵及用下三角压缩存储 图5-4 对称 a00 a10 a11 a20 a21 a22 a30 a31 …… an-1n-3 an-1n-2 an-1n-1 0 1 2 3 4 5 6 7 …… 2 n(n+1) -3 2 n(n+1) -2 2 n(n+1) -1
(2)只存放上三角部分心 对于对称阵,除了用下三角形式存放外,还可以用上三角形式存放,这时a[叮[0存入 s[0]a叽[存入s[1],a[2存入S[刁,…,具体参见图5-5。这时:k与可的对应关系可 以按下面方法推出: 当j时,a在上三角部分中,前面共有i行,共有n+n-1+…+n(1-1)=n个元素 而是本行第j个元素,故kn2+,当巧时,交换i与j即可。故k与a[[的 对应关系为:+ i(2-1) k jnx22+ij当ij o 72 7n- 〔a)一个上三角矩阵4
2.三角矩阵 ()下三角矩阵 下三角矩阵的压缩存放与对称矩阵用下三角形式存放类似,但必须多一个存储单元存放上三角部分元素,使用的存储单 元数目为+)2+1故可洲将mx的下三角矩阵压缩存放到只有1)2+1个存储单元的向量中,假设按行优先存放, 这时:与4的时应关系为 1)2+jy 1t+1y21f (2)上三角矩阵 和下三角矩阵的存储类似,共需2+个存储单元,假设仍按行优先顺序存放,这时与面的对应关系为 +当 1t+1y2