热度 19
2016-1-26 10:52
4210 次阅读|
0 个评论
1 矩阵 LU 分解模块 1.1 LU 分解数学表达 首先要明确的是,矩阵的 LU 分解是有局限性的,即 LU 分解只针对非奇异矩阵。那么什么是非奇异矩阵呢?即各阶顺序主子式不为零。 (1) 高斯消去法 LU 分解的思想来源于高斯消去法,拿方阵为例(因为本项目中要处理的就是方阵)。将一个 n*n 的方阵 A ,通过左乘一系列消去矩阵(笔者自己起的名字,便于理解)。使得 (((( n 个 L1*(((L2*((....*(Ln*A)=UU 为上三角矩阵。 之所以这样化简是因为上三角矩阵便于求解方程组(当然这不是本文的主题,只是为了说明 LU 分解的来历)。将所有的消去矩阵按顺序相乘,得到 L ’ *A=U 这样就把 Ax=b 的方程组,变换为求解 Ux=b 三角方程的形式。之所以说 LU 与高斯消去法有紧密的联系,是因为 LU 分解在分解的过程中同样用到了高斯消去法。 (2) LU 分解 LU 分解是将一个 n 阶的非奇异矩阵 A 分解成一个单位下三角矩阵 L 和上三角矩阵 U 的乘积,称作矩阵 A 的 LU 分解。如下图所示: L 和 U 的计算公式如下: 1.2 LU 分解脉动阵列的设计 为了提高 PE 的利用率,让 A 、 L 、 U 三个矩阵的元素中选取 L 矩阵的元素存于 PE 之中,使另外两个矩阵的元素沿不同的方向流动,即 A 、 U 中的元素分别沿水平向右与垂直向下的方向流动,构成如下图所示的三角状阵列。阵列中的正方形 PE 为内积步 PE 。当 A 的主对角线元素到达 PE ( i,j )( i 不等于 j )时,产生 L 矩阵的元素 L ij ,且从此保存与 PE 中。阵列中的圆形 PE 仅起到改变方向的作用。 (1) 数据流向说明 A 的元素沿水平方向流经各正方形 PE 并被处理后,其下三角元素在 PE 中被除以 a jj 后变为 L ij 而存于 PE ( i,j )中; A 的上三角元素到达圆形 PE 时,变为 u ij 而改为垂直向下流动,参加后面 L 、 U 值得计算。最后 U 的元素由阵列底部输出。 LU 分解脉动设计图 注: 1 上述阵列需要 n ( n+1 ) /2 个 PE ,所需时间为 3N-2 个时钟周期。 1.3 结果验证 (1) matlab 分解结果 矩阵A 矩阵 U 矩阵 L (2)Modelsim 分解结果: 矩阵 U 矩阵 L 大家应该注意到,矩阵L的结果是使用单精度的浮点数表示的,大家可以参照《 矩阵开篇之浮点转定点 》,练习练习,然后跟matlab的结果做对比,看看自己是否掌握了该转换方法。