首页
学习
活动
专区
圈层
工具
发布

【数据结构】数组和字符串(三):特殊矩阵的压缩存储:三角矩阵、对称矩阵——一维数组

但是对于特殊矩阵,如对称矩阵、三角矩阵、对角矩阵和稀疏矩阵等, 如果用这种方式存储,会出现大量存储空间存放重复信息或零元素的情况,这样会造成很大的空间浪费。...对角矩阵的压缩存储 【数据结构】数组和字符串(二):特殊矩阵的压缩存储:对角矩阵——一维数组 b. 三角矩阵的压缩存储   三角矩阵分为上三角矩阵和下三角矩阵。...可以用大小为n(n+1)/2的一维数组来存储下三角矩阵,换言之,就是要把下三角矩阵M的非零元素映射到一个一维数组d中。映射次序可采用按行优先或按列优先。...return matrix->elements[index]; } } // 打印下三角矩阵 void printMatrix(LowerTriangularMatrix *...这里参照下三角矩阵的压缩存储方法,即用大小为n(n+1)/2的一维数组来存储,关于对称矩阵中的下三角部分的元素M(i, j) (i ≥ j) ,与下三角矩阵压缩存储的映射公式一样,映射到d[k](其中k

48110

用面积坐标推导六节点三角形单元刚度矩阵

(一)节点形函数 (二)单元位移场及应变场 (三)单元刚度矩阵 将一个矩阵用若干条横线和竖线分成许多个小矩阵,将每个小矩阵称为这个矩阵的子块,以子块为元素的形式上的矩阵称为分块矩阵。...分块矩阵是一个矩阵, 它是把矩阵分别按照横竖分割成一些小的子矩阵 。然后把每个小矩阵看成一个元素。...对于高次三角形单元,若仍用直角坐标定义形函数,计算刚度矩阵将十分复杂;而改用面积坐标后,公式可大为简化且积分运算非常简单。...需要注意的是,这里引用的面积坐标,只限于用在一个三角形单元之内,在该三角形之外并无意义,因而是一种局部坐标.与此相反,以前所用的直角坐标 x 和 y,则是总体坐标,它通用于所有单元,即通用于全结构。

6.5K91
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    EDA算法探究--20世纪10个影响最大的算法在EDA领域的应用

    矩阵计算的分解方法 1951年,橡树岭国家实验室的A1ston Householder系统阐述了矩阵计算的分解方法。研究证明能把矩阵因子分解为三角、对角、正交和其他特殊形式的矩阵是极其有用的。...(1961年伦敦国家物理实验室的JamesWilkinson基于把矩阵分解为下和上三角矩阵因子的积的LU分解,在美国计算机协会(ACM)的杂志上发表了一篇题为“矩阵逆的直接方法的误差分析”的重要文章。)...Fortran最优编译程序 1957年,John Backus在IBM领导一个小组研制Fortran最优编译程序。...把—个方阵变换为一个“几乎是”上三角的矩阵――意即在紧挨着矩阵主对角线下面的一斜列上可能有非零元素――是相对容易的,但要想不产生大量的误差就把这些非零元素消去,就不是平凡的事了。...QR 算法正好是能达到这一目的的方法,基于QR 分解,A可以写成正交矩阵Q 和一个三角矩阵R 的乘积,这种方法叠代地把A=Q(k)R(k)变成A(k+1)==Q(k)R(k) 就加速收敛到上三角矩阵而言多少有点不能指望

    3.3K20

    R语言的常用函数速查

    字符串处理 character:字符型向量 nchar:字符数 substr:取子串format,formatC:把对象用格式转换为字符串paste,strsplit:连接或拆分charmatch,pmatch...数学函数 abs,sqrt:绝对值,平方根log, exp, log10, log2:对数与指数函数sin,cos,tan,asin,acos,atan,atan2:三角函数sinh,cosh,tanh...数组 array:建立数组 matrix:生成矩阵data.matrix:把数据框转换为数值型矩阵lower.tri:矩阵的下三角部分 mat.or.vec:生成矩阵或向量t:矩阵转置 cbind:把列合并为矩阵...线性代数 solve:解线性方程组或求逆 eigen:矩阵的特征值分解svd:矩阵的奇异值分解 backsolve:解上三角或下三角方程组chol:Choleski分解 qr:矩阵的QR分解chol2inv...函数 function:函数定义 source:调用文件 call:函数调用.C,.Fortran:调用C或者Fortran子程序的动态链接库。

    3.2K90

    细数20世纪最伟大的10大算法

    它的具体定义是: 在广场上画一个边长一米的正方形,在正方形内部随意用粉笔画一个不规则的形状,现在要计算这个不规则图形的面积,怎么计算列?...这个算法证明了任何矩阵都可以分解为三角、对角、正交和其他特殊形式的矩阵,该算法的意义使得开发灵活的矩阵计算软件包成为可能。...五、1957 优化的Fortran编译器 [1957: John Backus leads a team at IBM in developing the Fortran optimizing compiler...这个语言现在,已经发展到了,Fortran 2008,并为人们所熟知。 六、1959-61 计算矩阵特征值的QR算法 [1959–61: J.G.F....与一个上三角矩阵的积,和前面提到的Krylov 方法类似,这又是一个迭代算法,它把复杂的高次方程求根问题化简为阶段性的易于计算的子步骤,使得用计算机求解大规模矩阵特征值成为可能。

    70910

    细数二十世纪最伟大的十大算法

    它的具体定义是: 在广场上画一个边长一米的正方形,在正方形内部随意用粉笔画一个不规则的形状, 现在要计算这个不规则图形的面积,怎么计算列?...这个算法证明了任何矩阵都可以分解为三角、对角、正交和其他特殊形式的矩阵, 该算法的意义使得开发灵活的矩阵计算软件包成为可能。...五、1957 优化的Fortran编译器 [1957: John Backus leads a team at IBM in developing the Fortran optimizing compiler...这个语言现在,已经发展到了,Fortran 2008,并为人们所熟知。 六、1959-61 计算矩阵特征值的QR算法 [1959–61: J.G.F....与一个上三角矩阵的积, 和前面提到的Krylov 方法类似,这又是一个迭代算法,它把复杂的高次方程求根问题化简为阶段性的易于 计算的子步骤,使得用计算机求解大规模矩阵特征值成为可能。

    54020

    细数二十世纪最伟大的10大算法(Top10)

    它的具体定义是: 在广场上画一个边长一米的正方形,在正方形内部随意用粉笔画一个不规则的形状,现在要计算这个不规则图形的面积,怎么计算列?...这个算法证明了任何矩阵都可以分解为三角、对角、正交和其他特殊形式的矩阵,该算法的意义使得开发灵活的矩阵计算软件包成为可能。...五、1957 优化的Fortran编译器 [1957: John Backus leads a team at IBM in developing the Fortran optimizing compiler...这个语言现在,已经发展到了,Fortran 2008,并为人们所熟知。 六、1959-61 计算矩阵特征值的QR算法 [1959–61: J.G.F....QR算法把矩阵分解成一个正交矩阵与一个上三角矩阵的积,是一个迭代算法,它把复杂的高次方程求根问题化简为阶段性的易于计算的子步骤,使得用计算机求解大规模矩阵特征值成为可能。

    3K30

    细数 20 世纪最伟大的十大算法

    它的具体定义是: 在广场上画一个边长一米的正方形,在正方形内部随意用粉笔画一个不规则的形状,现在要计算这个不规则图形的面积,怎么计算列?...这个算法证明了任何矩阵都可以分解为三角、对角、正交和其他特殊形式的矩阵,该算法的意义使得开发灵活的矩阵计算软件包成为可能。...五、1957 优化的Fortran编译器 [1957: John Backus leads a team at IBM in developing the Fortran optimizing compiler...这个语言现在,已经发展到了,Fortran 2008,并为人们所熟知。 六、1959-61 计算矩阵特征值的QR算法 [1959–61: J.G.F....与一个上三角矩阵的积,和前面提到的Krylov 方法类似,这又是一个迭代算法,它把复杂的高次方程求根问题化简为阶段性的易于计算的子步骤,使得用计算机求解大规模矩阵特征值成为可能。

    1.1K100

    大规模开源线性代数求解器(Eigen,LAPACK,Ceres)+JSim数值解算器+Plot Digitizer

    eigen.tuxfamily.org/dox/group__TutorialMatrixClass.html 这是他的长篇教程 http://www.netlib.org/lapack/ LAPACK 是用...Fortran 90 编写的,提供用于求解联立线性方程组、线性方程组的最小二乘解、特征值问题和奇异值问题的例程。...还提供了相关的矩阵分解(LU、Cholesky、QR、SVD、Schur、广义 Schur),以及相关计算,例如 Schur 分解的重新排序和估计条件数。处理密集矩阵和带状矩阵,但不处理一般稀疏矩阵。...LAPACK 一开始就被设计为利用 Level 3 BLAS——一组 Fortran 子程序的规范,用于执行各种类型的矩阵乘法和具有多个右手边的三角系统的解决方案。...BLAS 的 Fortran 77 参考实现可从 netlib 获得;但是,不鼓励使用它,因为它的性能不如经过专门调整的实现。 但是吧,太复杂了。

    2.2K10

    数据结构与算法 -数组

    由此,称s[n(n+1)/2]为对称矩阵a 的压缩存储。 ? (3). 二维数组元素 a[i][j] 与对应压缩存储的一维数组 s[k] 的关系如下: ? 2....三角矩阵 以主对角线划分,三角矩阵有上三角和下三角两种。 上三角矩阵如图所示,它的下三角(不包括主对角线) 中的元素均为常数。下三角矩阵正好相反,它的主对角线上方均为常数。...三角矩阵中的重复元素c可共享一个存储空间,其余的元素正好有n(n+1)/2个,因此,三角矩阵可压缩存储到向量s[0..n(n+1)/2]中,其中c存放在向量的最后一个分量中。...下三角矩阵对应的压缩存储 s[k] 和 a[i][j] 对应关系是: ? 3. 稀疏矩阵 什么是稀疏矩阵?简单说,设矩阵a中有s个非零元素, 若s远远小于矩阵元素的总数,则称a为稀疏矩阵。...稀疏矩阵的压缩存储只存储稀疏矩阵中的非零元素。

    83120

    matlab基础1

    (如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。...MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点...在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。 编程环境 MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。...函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、...图形处理 MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。

    1.5K100

    一维数组&二维数组&对称矩阵&三角矩阵&三对角矩阵地址的计算

    设每个元素的大小是size,首元素的地址是a[1],则 a[i] = a[1] + (i-1)*size 若首元素的地址是a[0] 则a[i] = a[0] + i*size 二维数组的地址计算 (m*n的矩阵...三维数组的地址计算 (rmn) r行m列n纵 行优先 首元素的地址a[1,1,1] a[i,j,k] = a[1,1,1] + [(i-1)*n*m + (j-1)*n + (k-1)]*size 压缩存储...二维数组通常用来存储矩阵,特殊矩阵分为两类: (1)元素分布没有规律的矩阵,按照规律对用的公式实现压缩。 (2)无规律,但非零元素很少的稀疏矩阵,只存储非零元素实现压缩。...一、三角矩阵 包括上三角矩阵,下三角矩阵和对称矩阵 (1)若i矩阵为下三角矩阵。 (2)若i>j时,ai,j=0,则称此矩阵为上三角矩阵。...(3)若矩阵中的所有元素满足ai,j=aj,i,则称此矩阵为对称矩阵。 下三角 上三角 二、三对角矩阵 带状矩阵的压缩方法:将非零元素按照行优先存入一维数组。

    2K30

    【STM32F407的DSP教程】第2章 Matlab R2018a的安装

    需要大家将下载的Crack压缩包解压下,然后点击上面截图的下一步来加载下面的license_standalone.lic文件。 ? ?...除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面以及调用其它语言(包括C,C++,JAVA,Python,FORTRAN等)编写的程序。...这个版本的MATLAB只能进行简单的矩阵运算,例如矩阵转置、计算行列式和本征值,此版本软件分发出两三百份。...MATLAB最初是由莫勒尔用FORTRAN编写的,李特和班格尔特花了约一年半的时间用C重新编写了MATLAB并增加了一些新功能,同时,李特还开发了第一个系统控制工具箱,其中一些代码到现在仍然在使用。...这些工具箱大多是用开放式的MATLAB语言写成,用户不但可以查看源代码,还可以根据自己的需要进行修改以及创建自定义函数。

    1K20

    【STM32F429的DSP教程】第2章 Matlab R2018a的安装

    2.1 初学者重要提示 2.2 Matlab R2018a安装 2.3 Matlab简介 2.4总结 2.1   初学者重要提示   Matlab2018a的软件比较大,压缩包有13GB,安装后有20多...除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面以及调用其它语言(包括C,C++,JAVA,Python,FORTRAN等)编写的程序。...这个版本的MATLAB只能进行简单的矩阵运算,例如矩阵转置、计算行列式和本征值,此版本软件分发出两三百份。...MATLAB最初是由莫勒尔用FORTRAN编写的,李特和班格尔特花了约一年半的时间用C重新编写了MATLAB并增加了一些新功能,同时,李特还开发了第一个系统控制工具箱,其中一些代码到现在仍然在使用。...这些工具箱大多是用开放式的MATLAB语言写成,用户不但可以查看源代码,还可以根据自己的需要进行修改以及创建自定义函数。

    73410
    领券