一、对称矩阵

        上三角区和下三角区的对应元素相同,将n阶矩阵存放在一维数组A【n(n+1)/2】中

1、数组下标从0开始

        设数组下标为k,矩阵元素a(i,j)

        k=i(i-1)/2+j-1,i>=j(下三角区和对角线元素)

        k=j(j-1)/2+i-1,j>i(上三角区元素)

        解释:

                下三角区:矩阵从行下标1开始,i行前有i-1行,第一行一个元素,i-1行有i-1个元素,等差数列求和,第i行有j个元素,因为数组下标从0开始,故最后需要-1;

                上三角区:矩阵从列下标1开始,j列前有j-1列,第一列一个元素,j-1列有j个元素,等差数列求和,第j列有i个元素,最后-1;

2、数组下标从1开始

        删除最后的-1,其余与数组下标从0开始一致

3、矩阵下标从0开始

        (本人不确定是否矩阵有从0开始这种说法,仅仅是自己的理解,欢迎大佬指正)

        可以理解成换元,只要将数组下标情况中的i,j全部替换为i+1或j+1即可

        解释:原来的式子中默认从1开始,而现在从0开始,0+1=1,i+1=i,如是替换

二、三角矩阵

1、下三角矩阵

        上三角区的所有元素均为同一常量,仅需一个数组单元存储,n阶矩阵用A【n(n+1)/2+1】数组存储

        设数组下标为k,矩阵元素a(i,j),数组下标从0开始;

        k=i(i-1)/2+j-1,i>=j;

        k=n(n+1)/2,j>i;

        解释:与对称矩阵类似

2、上三角矩阵        

        下三角区所有元素为同一常量

        k=(i-1)(2n-i-2)/2+j-i,j>=i;

        k=n(n+1)/2,i>j;

        解释:i行前共i-1行,第一行n个元素,第i-1行n-i+2个元素,第i行j-i+1个元素,数组下标从0开始,最后-1;

三、三对角矩阵(带状矩阵)

        所有非零元素集中在以主对角线为中心的三条对角线的区域,其余区域元素都为0;

        首行和尾行为2个元素,其余各行3个元素,对于列同理;

1、数组下标从0开始

        设数组下标为k,矩阵元素a(i,j)

        k=2i+j-3;

        解释:i行前i-1行共3(i-1)-1个元素,因为第一行少一个,第i行有j-i+2个元素,因为数组下标从0开始,最后-1。

        若已知k,求i,j:

        i=floor[(k+1)/3+1];

        解释:k+1相当于补齐第一行缺失的一个元素,除三是因为每行视为3个元素,+1是因为数组下标从0开始,计算k时-1,现在+1抵消

        j=k-2i+3

        解释:从k的计算公式来的

2、数组下标从1开始

        k=2i+j-2

        i=floor[(k+1)/3]

        j=k-2i+2

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐