目录
前提条件:
类型:对称矩阵,三角矩阵、三对角矩阵、稀疏矩阵
1:对称矩阵:
定义:n阶矩阵A 中任意一元素都有ai,j=aj,i(1<=i,j<=n)
图像:
表达式:
计算过程:
2:三角矩阵
概念:
前提:
下三角表达式:
计算逻辑:
上三角表达式:
计算逻辑:
前提条件:
矩阵元素通常写成 ai,j , i,j表示行号和列号是从1开始。
二维数组元素写成a[i][j], i,j表示元素下标一般是从0开始。
一维数组元素写成ai, i表示元素下标,一般从0开始。
类型:对称矩阵,三角矩阵、三对角矩阵、稀疏矩阵
其中三对角和稀疏矩阵不做讲解
1:对称矩阵:
储存下三角按行有限储存如下:
定义:n阶矩阵A 中任意一元素都有ai,j=aj,i(1<=i,j<=n)
图像:
表达式:
$$
\huge k = \begin{cases} \frac{i(i-1)}{2} + j-1,\quad i \geqslant j \\ frac{j(j-1)}{2} + i-1, \quad j > i \end{cases} \tag{1}
$$
计算过程:
思考:当问题是按照上三角 且 按行压缩存储时,公式应该如何写?
其实处理逻辑是相通的,都是在求ai,j 前面有多少个元素的表达式,继续分成前i-1行前元素之和与第i行前元素的求和。
2:三角矩阵
概念:
”下三角矩阵“:代表下三角域及主对角线元素无规律,而上三角区域中所有元素都相等。
“上三角矩阵”:代表上三角域及主对角线元素无规律,而下三角区域中所有元素都相等。
前提:
压缩后共有 $$\frac{i(i+1)}{2} + 1$$
个元素。故数组B初始化为 B【(i(i+1))/2 + 1】,B数组下标从 0 -(n(n+1)/2。
解释:上三角(或下三角)加主对角线共有 \huge \frac{i(i+1)}{2}个元素,而上三角全部都用1个元素来表示。
下三角表达式:
$$
\huge k = \begin{cases}\frac{i(i-1)}{2} + j-1,\quad i \geqslant j \\ \frac{n(n+1)}{2} , \quad j > i\end{cases}\tag{2}
$$
计算逻辑:
下三角矩阵的计算方式和对称矩阵当 i >= j 时计算逻辑是相同的,当j>i时,直接就在B中最后一个元素。
上三角表达式:
按行优先级压缩:先对行进行压缩
$$
\huge k = \begin{cases}\frac{(i-1)(2n-i+2)}{2} + j-i,\quad j \geqslant i \\ \frac{n(n+1)}{2} , \quad i > j\end{cases}\tag{1}
$$
计算逻辑:
按列优先级压缩:先对列进行压缩
计算逻辑
按列优先级的上三角矩阵的计算方式和对称矩阵当 j > i 时计算逻辑是相同的,当i >= j时,直接就在B中最后一个元素。