矩阵系列:LU分解

本文详细介绍了矩阵LU分解的数学表达,源于高斯消元法的过程,以及如何通过阵列设计提高PE利用率。通过Matlab和Modelsim实例展示分解步骤,并引导读者进行精度转换实践。涵盖LU分解的算法、应用及实现细节。
摘要由CSDN通过智能技术生成

1矩阵LU分解模块
1.1 LU分解数学表达
首先要明确的是,矩阵的LU分解是有局限性的,即LU分解只针对非奇异矩阵。那么什么是非奇异矩阵呢?即各阶顺序主子式不为零。

(1)高斯消去法
LU分解的思想来源于高斯消去法,拿方阵为例(因为本项目中要处理的就是方阵)。将一个n*n的方阵A,通过左乘一系列消去矩阵(笔者自己起的名字,便于理解)。使得

((((n个L1*(((L2*((…(LnA)=U U为上三角矩阵。

之所以这样化简是因为上三角矩阵便于求解方程组(当然这不是本文的主题,只是为了说明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矩阵的元素Lij,且从此保存与PE中。阵列中的圆形PE仅起到改变方向的作用。

(1)数据流向说明
A的元素沿水平方向流经各正方形PE并被处理后,其下三角元素在PE中被除以ajj后变为Lij而存于PE(i,j)中;A的上三角元素到达圆形PE时,变为uij而改为垂直向下流动,参加后面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的结果做对比,看看自己是否掌握了该转换方法。

上一篇《矩阵系列:矩阵乘法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下一个雨天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值