三對角矩陣的壓縮存儲


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的計算公式可得)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM