1. 程式人生 > >棧:矩陣的壓縮儲存

棧:矩陣的壓縮儲存

概念:

科學與工程計算有一個特殊的數學物件,那就是矩陣。如何將矩陣中的各個元素儲存在計算機中,陣列就是一個很好的選擇。我們通常會遇到三種類型的矩陣:

  • 普通矩陣
  • 特殊矩陣:對稱矩陣、上三角矩陣、下三角矩陣、對角矩陣等
  • 稀疏矩陣

特殊

特殊矩陣和稀疏矩陣壓縮儲存的目的是節省儲存空間。矩陣的下標是從1開始,而將改矩陣壓縮成記憶體中的一維空間時,與該一維空間所對應的陣列下標是從0開始。

1. 對稱矩陣:

a11a21a31ai1a12a22a32ai2a13a23a33ai3a1ja2ja3jaij

性質:

  1. 在n階矩陣A中的元素滿足 :a
    ij
    = aji( 1≤ i , j≤n );
  2. 壓縮策略:只儲存上三角或下三角的元素。所需空間n(n+1)2
  3. 一維陣列sa[n(n+1)2] 儲存以行序為主序的下三角(包括對角線),其地址的運算,即aij和sa[k] 之間存在如下對應關係:
    k=i(i1)2+j1,j(j1)2+i1,i ≥ ji < j

2. 上三角與下三角矩陣:

上三角矩陣:a11mmma12a22mma13a23a33ma1ja2ja3jaij

下三角矩陣:a11

a21a31ai1ma22a32