带状对角矩阵的压缩及乘法运算算法实现

本文介绍了一种带状对角矩阵的压缩存储方法,并详细阐述了如何实现该矩阵的乘法运算。通过示例程序展示了算法的具体步骤,有效减少了存储空间,提高了计算效率。
摘要由CSDN通过智能技术生成
算法名称:带状对角矩阵乘法
 
带状对角矩阵定义:
       带状对角系统紧靠在对角线左边(下边)有m10个非零元素,紧靠其右边(上边)有m20个非零元素。当然,这仅在m1m2<<N时才有意义。这种情况下,用LU分解求解线性系统可以比通用N×N的情况完成的更快,占用空间更少。
       aij精确定义带状对角矩阵,表示为
aij = 0 j > i + m2 i > j + m1
带状对角矩阵用一种称为压缩形式的方式进行存储及操作,把矩阵顺时针旋转45°,是非零元素排成一个细长的矩阵,它有m1+1+m2列和N行。例如,
其中N=7m1=2m2=1,存储在压缩形式为7×4矩阵
其中x表示压缩格式中浪费的空间,它们在运算中不被引用,因而其值可随意。
注:原矩阵对角线元素现在第m1列中,对角线左下的元素在其左侧,对角线右上的元素在其右侧。
 
运行示例:
The origin left matrix (before compression):
3.0 1.0 0.0 0.0 0.0 0.0 0.0
4.0 1.0 5.0 0.0 0.0 0.0 0.0
9.0 2.0 6.0 5.0 0.0 0.0 0.0
0.0 3.0 5.0 8.0 9.0 0.0 0.0
0.0 0.0 7.0 9.0 3.0 2.0 0.0
0.0 0.0 0.0 3.0 8.0 4.0 6.0
0.0 0.0 0.0 0.0 2.0 4.0 4.0
----------------------------------
The new left matrix (after compression):
0.0 0.0 3.0 1.0
0.0 4.0 1.0 5.0
9.0 2.0 6.0 5.0
3.0 5.0 8.0 9.0
7.0 9.0 3.0 2.0
3.0 8.0 4.0 6.0
2.0 4.0 4.0 0.0
----------------------------------
The right matrix:
1.0
2.0
3.0
4.0
5.0
6.0
7.0
----------------------------------
Solution matix:
5.0
21.0
51.0
98.0
84.0
118.0
62.0

 示例程序:

package  com.nc4nr.chapter02.banmul;

public   class  BanMul  {

    
double<
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值