主题:求上三角和逆对角矩阵储存的方法
wesoft
[专家分:0] 发布于 2007-01-22 19:36:00
如何将上三角和逆对角矩阵压缩储存到一维数组中
回复列表 (共2个回复)
沙发
rickone [专家分:15390] 发布于 2007-02-01 00:42:00
上三角矩阵,把上三角元素存在一起,比如
a11 a12 a13
0 a22 a23
0 0 a33
0位置不存储,元素存在连续的内存中:a11 a12 a13 a22 a23 a33
于是只需要给出一个坐标位置的转换关系就行了,内在中的位置p -> i,j,也就是B[p]对应元素a[i,j],从p算i,j没有必要,因为在运算中我们是知道i,j的,我们要换算p,以取或者存该元素.
如果i,j从0算起,一直到n-1,n为方阵宽,则a[i,j]位于第i+1行,它前面有i行,构成等差数列,先求和得s(i,n),再加上j-i,表示第i+1行上元素个数-1,于是p=s(i,n)+j-i.
逆对角矩阵是什么样子我不清楚,大体思路一样,按一个约定方法存储,找数学关系,做出转换式.
板凳
bpttc [专家分:8790] 发布于 2007-02-09 13:47:00
矩阵的压缩存储
我的思想是用静态链表(一维数组也行),找出数组下标k和矩阵i j之间的关系,ls已经给出了,这个方法还可以压缩下三角以及对称矩阵
至于逆对角矩阵更简单了 因为n阶逆对角矩阵的非0元素有n个且满足 i+j=n+1 用一个数组int [n]足能满足
我来回复