作用:在工程的一些计算问题中,比如有限元,在构建算法求解时都会遇到一个大型稀疏对称的方程组储存、运算等问题。而目前比较常用的做法是对数据采用变带宽压缩进行储存进而求解。本目录下的函数即是针对这么一类问题而编写。

约定:变带宽储存格式有横向竖向储存之分,有上三角下三角储存之分,本程序约定的变带宽储存格式为按行进行横向储存,且只储存下三角部分与对角线部分,然后再分配一个数组储存对角线元素的索引(这里的索引值规定从0开始)

注意:本目录下的函数求解对象是对称矩阵

例子:

K =
[ 4   1   0   0   0   0   0   0  
  1   6   2   0   0   0   0   0  
  0   2   5   3   4   0   0   0  
  0   0   3   7   0   0   0   0  
  0   0   4   0   8   1   0   0  
  0   0   0   0   1   5   2   0  
  0   0   0   0   0   2   6   4  
  0   0   0   0   0   0   4   8 ]

对于K矩阵,需要一个储存值的一维矩阵变量k以及储存对角线索引的矩阵变量ki,则储存时的数据如下
k =[ 4, 1, 6, 2, 5, 3, 7, 4, 0, 8, 1, 5, 2, 6, 4, 8]
ki=[ 0, 2, 4, 6, 9, 11, 13, 15]

(1)、上面的k依次储存K当中第1行的值4, 第2行的值1、6, 第3行的值2、5, 第4行的值3、7, 第5行的值4、0、8, 第6行的值1、5, 第7行的值2、6, 第8行的值4、8

(2)、上面的ki分别储存对角线值4、6、5、7、8、5、6、8在k当中对应的索引值,注意是储存对角线元素值的索引,如果原来矩阵K为n阶,那么ki当中就应该有n个元素,且其最后一个元素的值为变带宽储存k当中元素个数减去1