三对角矩阵的压缩存储

a1,1   a1,2          

a2,1  a2,2  a2,3      0

  a3,2  a3,3  a3,4

    ...    ...     ...

 0      an-1,n-2  an-1,n-1 an-1,n

        an,n-1    an,n

三对角矩阵指n阶方阵的非零元素ai,j聚集在主对角线及其两边的两条线上,即|i-j|≤1,其余位置均为0,如果使用二维数组进行存储,则会浪费大量空间,对此可以使用一维数组将其压缩存储。

其中元素总数为:2+3*(n-2)+2=3n-2,则可以定义一个一维数组B[3n-2],则ai,j在B中的位置为k(注意k从0开始)

则在ai,j之前的元素个数为

第1行:2

第2行:3

第3行:3

...

第i-1行:3

第i行:j-i+1

则k=2+3*(i-2)+j-i+1=2i+j-3

若已知k,则ai,j

i=(k+1)/3+1,(k+1:向右偏移一个单位;3:每行3个元素;+1:i从1开始)

j=k-2i+3(由k的计算公式可得)

 

转载于:https://www.cnblogs.com/6wenhong6/p/9833107.html

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值