若i≤j,数组元素A训在数组B中的存放位 置为 n+(n-1)+(n-2)+…+(n-计+1)+j= (2*n-计1)i/2+j-i= (2*n--1)*i/2+j n若i>j,数组元素A在矩阵的下三角部 分,在数组B中没有存放。因此,找它的对 称元素A团。A在数组B的第(2*nj-1) j2+i的位置中找到
◼ 若 i j,数组元素A[i][j]在数组B中的存放位 置为 n + (n-1) + (n-2) + + (n-i+1) + j-i = = (2*n-i+1) * i / 2 + j-i = = (2*n-i-1) * i / 2 + j ◼ 若i > j,数组元素A[i][j]在矩阵的下三角部 分,在数组 B 中没有存放。因此,找它的对 称元素A[j][i]。A[j][i]在数组 B 的第 (2*n-j-1) * j / 2 + i 的位置中找到。 21
三对角矩阵的压缩存储 0123456789 10 B aoo ao1 a10 a1 a12 a21 a22 a231 n-1n-20m-1n-1 22
三对角矩阵的压缩存储 B a00 a01 a10 a11 a12 a21 a22 a23 … an-1n-2 an-1n-1 0 1 2 3 4 5 6 7 8 9 10 22
三对角矩阵中除主对角线及在主对角线上下 最临近的两条对角线上的元素外,所有其它元 素均为0。总共有3n-2个非零元素。 将三对角矩阵A中三条对角线上的元素按行存 放在一维数组B中,且0存放于B0 在三条对角线上的元素a满足 0≤i≤n-1,i-1sj≤计+1 在一维数组B中A[在第i行,它前面有 3-1个非零元素,在本行中第列前面有j 计1个,所以元素A[训在B中位置为k=2*i
• 三对角矩阵中除主对角线及在主对角线上 下 最临近的两条对角线上的元素外,所有其它元 素均为0。总共有3n-2个非零元素。 • 将三对角矩阵A中三条对角线上的元素按行存 放在一维数组 B 中,且a00存放于B[0]。 • 在三条对角线上的元素aij满足 0 i n-1, i-1 j i+1 • 在一维数组 B 中 A[i][j] 在第 i 行,它前面有 3*i-1 个非零元素, 在本行中第 j 列前面有 ji+1 个,所以元素 A[i][j] 在 B 中位置为 k = 2*i + j。 23
若已知三对角矩阵中某元素Ai在数组 B[]存放于第k个位置,则有 i=L(k+1)/3 j=k-2*i 例如,当k=8时 i=L(8+1)/3=3,j=8-2*3=2 当k=10时, i=L(10+1)/3=3,j=10-2*3=4
• 若已知三对角矩阵中某元素 A[i][j] 在数组 B[ ] 存放于第 k 个位置,则有 i = (k + 1) / 3 j = k - 2 * i • 例如,当 k = 8 时, i = (8+1) / 3 = 3, j = 8 - 2*3 = 2 当 k = 10 时, i = (10+1) / 3 = 3, j = 10 - 2*3 = 4 24
稀疏矩阵( Sparse matri×) 凶无法显示该图片 设矩阵A中有s个非零元素,若s远远小于 矩阵元素的总数(即s<<m×n),则称A 为稀疏矩阵。 25
稀疏矩阵 (Sparse Matrix) ◼ 设矩阵 A 中有 s 个非零元素,若 s 远远小于 矩阵元素的总数(即s << m×n),则称 A 为稀疏矩阵。 25