一、稀疏矩陣插入元素用什么結(jié)構(gòu)存儲
稀疏矩陣插入元素,由于邊界條件的變化導致你的矩陣稀疏性的變化,通常的做法是根據(jù)網(wǎng)格的物理位置關(guān)系建立矩陣稀疏形式,利用另外一個數(shù)組來標記邊界條件。在求解矩陣方程時,結(jié)合這個標記數(shù)組來求解。
sparse matrix 定義
一個m*n的矩陣M,可以直接用3個一維矩陣矩陣表示(A, IA, JA),現(xiàn)在用NNA標記為M矩陣中不是0的數(shù)量
1.一維矩陣A長度等于NNA,矩陣A保存著所有M矩陣中非0元素,順序按照M矩陣從左到右,從上到下順序。
2.一維矩陣IA
– IA[0]=0
– IA[i] = IA[i-1]+在i-1行上所有非0元素的個數(shù)
3.一維矩陣JA,對應(yīng)A矩陣中每個元素所對應(yīng)行的列號
例如:
是一個4×4的帶有4個非0的矩陣
這個矩陣能用下列3個一維矩陣表示
A = [ 5 8 3 6 ]
IA = [ 0 0 2 3 4 ]
JA = [ 0 1 2 1 ]
延伸閱讀:
二、DIA
DIA格式是對于矩陣元分布在主對角線以及主對角線附近的稀疏矩陣,采取這種存儲方式比較有效。如下面的例子。我們沿著對角線劃分矩陣,主對角線的指標為0,左下方的對角線依次用-1,-2 等表示,右上方的對角線分布用1,2,3等表示。例子中僅有0,-2,1三條對角線的矩陣元不為零。因此用一個4×3的矩陣存儲這些矩陣元,每一列代表其中的一條對角線。由于次對角線的長度小于行的長度。因此對于左下方的對角線的元素,從下往上存儲,而右上方的對角線從上往下存儲。