把一个m×n矩阵的行,列互换得到的n×m矩阵,称为A的转置矩阵,记为A'或AT。 (其中T为上标)
1.(A')'=A
2.(A+B)'=A'+B'
3.(kA)'=kA'(k为实数)
4.(AB)'=B'A'
若矩阵A满足条件A=A',则称A为对称矩阵,由定义知对称矩阵一定是方阵,而且位于主对角线对称位置上的元素必对应相等.即aij=aji,对任意i,j都成立。
1.对称矩阵
(1)对称矩阵
在一个n阶方阵A中,若元素满足下述性质:
aij=aji0≤i,j≤n-1
则称A为对称矩阵。
(2)对称矩阵的压缩存
对称矩阵中的元素关于主对角线对称,故只要存储矩阵中上三角或下三角中的元素,让每两个对称的元素共享一个存储空间。这样,能节约近一半的存储空间。
①按"行优先顺序"存储主对角线(包括对角线)以下的元素
即按a00,a10,a11,……,an-1,0,an-1,1…,an-1,n-1次序存放在一个向量sa[0..n(n+1)/2-1]中(下三角矩阵中,元素总数为n(n+1)/2)。
其中:
sa[0]=a00,
sa[1]=a10,
……,
sa[n(n+1)/2-1]=an-1,n-1
②元素aij的存放位置
aij元素前有i行(从第0行到第i-1行),一共有:
1+2+…+i=i×(i+1)/2个元素;
在第i行上,aij之前恰有j个元素(即ai0,ail,…,ai,j-1),因此有:
sa[i×(i+1)/2+j]=aij
③aij和sa[k]之间的对应关系:
若i≥j,k=i×(i+1)/2+j0≤k<n(n+1)/2
若i<j,k=j×(j+1)/2+i0≤k<n(n+1)/2
令I=max(i,j),J=min(i,j),则k和i,j的对应关系可统一为:
k=i×(i+1)/2+j0≤k<n(n+1)/2
(3)对称矩阵的地址计算公式
LOC(aij)=LOC(sa[k])
=LOC(sa[0])+k×d=LOC(sa[0])+[I×(I+1)/2+J]×d
通过下标变换公式,能立即找到矩阵元素aij在其压缩存储表示sa中的对应位置k。因此是随机存取结构。
【例】a21和a12均存储在sa[4]中,这是因为
k=I×(I+1)/2+J=2×(2+1)/2+1=4