三对角矩阵的压缩存储公式推导
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三对角矩阵的压缩存储公式推导
三对角矩阵是指除了主对角线上的元素,只有主对角线上方和下方相邻的两条对角线上的元素不为零,其余元素都为零的矩阵。压缩存储是指将矩阵中的非零元素存储在一个一维数组中。
假设一个n阶的三对角矩阵为A,可以表示为:
A = [a[i][j]] 0 < |i - j| <= 1
其中a[i][j]为矩阵A的元素。
我们需要将A压缩存储到长度为n的一维数组B中。
推导压缩存储的过程如下:
1. 创建一个长度为3n-2的一维数组B,用于存储矩阵A的非
零元素。
2. 遍历矩阵A中的每个元素a[i][j],判断其在数组B中的位置。
a) 当 i = j 时,a[i][j]为主对角线上的元素,存储在数组B的
第i个位置。
b) 当 i = j+1 时,a[i][j]为主对角线上方的元素,存储在数组
B的第n-1+j个位置。
c) 当 i = j-1 时,a[i][j]为主对角线下方的元素,存储在数组
B的第2n-1+j个位置。
3. 遍历完成后,数组B中存储了矩阵A的所有非零元素。即可得到三对角矩阵A的压缩存储公式:
B[i] = a[i][i] (i = 1, 2, ..., n)
B[n-1+j] = a[j+1][j] (j = 0, 1, ..., n-2)
B[2n-1+j] = a[j][j+1] (j = 0, 1, ..., n-2)
其中B为存储矩阵A的一维数组。