读书人

一个对角矩阵的压缩有关问题,非常有难

发布时间: 2012-02-11 09:51:35 作者: rapoo

一个对角矩阵的压缩问题,非常有难度
一个n阶三对角矩阵a(i,j), 其中1 <=i,j <=n, 将其三条对角线上的元素逐行存于向量B[1....3n-2]中,使得B[k]=a(i,j)
1. 用i,j表示k的下标变换公式.
2. 用k表示i,j的下标变换公式.

其中第一问只能用一条数学式表示.

想了好久都没头绪,这些题要怎么做的?

[解决办法]
主对角线上方那条有j-i=1,主对角线有j-i=0,下方有j-i=-1,以行为索引
所以自然可得k=(3i-2)+(j-i);=> k=2i+j-2
反之当i=j时,k=3i-2=3(i-1)+1,当i=j+1时(下方那条),k=3i-1=3(i-1)+2,当i=j-1时,k=3(i-1)
所以用k除3取余,设商为x,余为y,y=0则B[k]=a[x+1][x],y=1,B[k]=a[x+1][x+1],y=2,B[k]=a[x+1][x+2]

读书人网 >C++

热点推荐