基于Spark框架的大型分布式矩阵求逆运算实现(二)——大型下三角矩阵求逆运算

本文介绍如何在Spark框架(v. 2.2.0)中实现大型下三角矩阵的分布式求逆运算,通过LU分解,利用分块矩阵乘法思想进行并行化处理。详细讨论了实现过程中的难点,包括矩阵加载、计算优化、性能调整以及广播变量的使用,最终优化后的时间从36.39秒降至10.809秒。
摘要由CSDN通过智能技术生成

基于实际需要,需要对五百万阶的方阵进行求逆运算,但查看Spark(v. 2.2.0)的官方api并没有此方面的信息,就自己尝试着实现了一个;

先说一下原理:

        对于一个可逆矩阵A,必然会得到它的唯一LU分解,即分解为一个下三角矩阵L和一个上三角矩阵U使得 A=L*U;

        我们需要求得的问题是A的逆矩阵A`,已知 A=LU,A*A`=E,所以 A` = U`*L`;

        由线性代数知识可知,一个下三角矩阵的逆必然也是下三角矩阵;

        又因为,逆的转置等于转置的逆,即,(U`)T = (UT),而UT和L一样是下三角矩阵,可以实现代码复用;

所以问题便转化成了,

    (一)大型可逆矩阵的LU分解

    (二)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值