一维变带宽存储刚度矩阵

我们知道,集成之后的整体刚度矩阵是一个对称的稀疏带状矩阵,如图1所示。这样的矩阵包含大量的0元素,占用大量的存储空间。为了节约存储空间,可采取一些方法对刚度矩阵压缩存储。

一维变带宽存储是将变化的带宽内的元素按一定的顺序存储在一维数组内。一维变带宽存储可分为按行存储和按列存储,其中按列存储方式是指每一列从主对角元素至最高的非零元素,如图2所示线框内所包含的元素。由各列中行号最小的非零元素组成的折线称之为高度轮廓线。

为了将轮廓线内的系数紧凑地存储在一维数组中,还需要有辅助的数组帮助记录元素在原稀疏矩阵中的位置,辅助数组M(n+1)用以记录主对角元素在一维数组中的位置。对图2中的稀疏矩阵可采用一维数组A(21)来存储,原矩阵元素与一维数组元素的对应关系可以通过数组M建立起来。

M = [1 2 4 6 10 12 16 20 22]

注意,M的最后一个元素无实际意义。数组M除了反映对角元素在一维数组中的位置外,还可以用以计算每列元素的列高N,即每列元素的个数,以及每列元素的起始行号r。

N = M(i+1)-M(i)

r = i - N +1

例如,求第7列元素个数及非零元素的起始行号,有

N = M(8)-M(7)= 20-16 = 4

r = 7-4+1 = 4

原文发布于微信公众号 - 数值分析与有限元编程(program_fem)

原文发表时间:2017-05-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

07:矩阵归零消减序列和

07:矩阵归零消减序列和 总时间限制: 1000ms 内存限制: 65536kB描述 给定一个n*n的矩阵(3 <= n <= 100,元素的值都是非负整数...

3806
来自专栏蜉蝣禅修之道

Levenshtein distance最小编辑距离算法实现

6084
来自专栏机器学习原理

pandas几个小函数

702
来自专栏Script Boy (CN-SIMO)

Codeforces Round #234A

Inna and choose option     题意: 一个由12个字符('O'或'X')组成的字符串,这12个字符可以排列成a*b(a*b=12)的...

2230
来自专栏数据结构与算法

拉格朗日插值

存在性和唯一性的证明以后再补。。。。 拉格朗日插值 拉格朗日插值,emmmm,名字挺高端的:joy: 它有什么应用呢? 我们在FFT中讲到过 设n-1次多项式为...

2867
来自专栏C/C++基础

Dijkstra算法求单源最短路径

在一个连通图中,从一个顶点到另一个顶点间可能存在多条路径,而每条路径的边数并不一定相同。如果是一个带权图,那么路径长度为路径上各边的权值的总和。两个顶点间路径长...

2161
来自专栏小樱的经验随笔

MATLAB命令大全+注释小结

一、常用对象操作:除了一般windows窗口的常用功能键外。 1、!dir 可以查看当前工作目录的文件。   !dir& 可以在dos状态下查看。 2、who ...

3344
来自专栏前端儿

比较字母大小

任意给出两个英文字母,比较它们的大小,规定26个英文字母A,B,C.....Z依次从大到小。

800
来自专栏Java Web

最长公共子序列问题

问题描述: 求两个字符序列的公共最长子序列。 ---- 最长公共子串 在回到子序列问题之前,先来了解一下子串的问题。 例如,HISH和FISH两个字符序列的公...

3514
来自专栏崔庆才的专栏

TensorFlow RNN Cell源码解析

本文介绍下 RNN 及几种变种的结构和对应的 TensorFlow 源码实现,另外通过简单的实例来实现 TensorFlow RNN 相关类的调用。 RNN R...

5045

扫码关注云+社区