工程数值计算基础2.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
工程数值计算基础2.ppt

数组 1、数组的概念及其基本操作 2、数组的顺序存储 3、矩阵的压缩存储 特殊矩阵 稀疏矩阵 4、算法设计举例 学习导读 主要介绍多维数组的概念及在计算机中的存放,特殊矩阵的压缩存储及相应运算。通过本章学习,要求掌握如下内容: 1.多维数组的定义及在计算机中的存储表示; 2.对称矩阵、三角矩阵、对角矩阵等特殊矩阵在计算机中的压缩存储表示及地址计算公式; 3.稀疏矩阵的三元组表示及转置算法实现; 数组的概念及其基本操作 数组是大家都已经很熟悉的一种数据类型,几乎所有高级语言程序设计中都设定了数组类型。在此,我们仅简单地讨论数组的逻辑结构及在计算机内的存储方式。 1.一维数组 2.二维数组 3.多维数组 一维数组 数组是n(n>1)个相同类型数据元素a1,a2,…,an构成的有限序列,且该有限序列存储在一块地址连续的内存单元中。 由此可见,数组的定义类似于采用顺序存储结构的线性表。 二维数组 二维数组可以看成是向量的推广。例如,设A是一个有m行n列的二维数组,则A可以表示为: 1、一维数组(n个元素)中任一元素ai的内存单元地址    Loc(ai)=LOC(a0)+i*k (0≤i n) 2、一个m行n列的二维数组   LOC(aij)=LOC(a00)+(i*n+j)*k (0≤im,0≤jn) 注:C++语言中数组元素采用行主序的存放方法,即行优先顺序。 数组操作 数组是一个具有固定格式和数量的数据有序集,每一个数据元素有唯一的一组下标来标识,因此,在数组上不能做插入、删除数据元素的操作。通常在各种高级语言中数组一旦被定义,每一维的大小及上下界都不能改变。在数组中通常做下面两种操作: 取值操作:给定一组下标,读其对应的数据元素。 赋值操作:给定一组下标,存储或修改与其相对应的数据元素。 矩阵的压缩存储 特殊矩阵 稀疏矩阵 矩阵压缩存储 矩阵是一个二维数组,它是很多科学与工程计算问题中研究的数学对象。 矩阵可以用行优先或列优先方法顺序存放到内存中,但是,当矩阵的阶数很大时将会占较多存储单元。 而当里面的元素分布呈现某种规律时,这时,从节约存储单元出发,可考虑若干元素共用一个存储单元,即进行压缩存储。 所谓压缩存储是指:为多个值相同的元素只分配一个存储空间,值为零的元素不分配空间。但是压缩存储时,节约了存储单元,但怎样在压缩后找到某元素呢?因此还必须给出压缩前的下标和压缩后下标之间变换公式,才能使压缩存储变得有意义。 特殊矩阵 1.对称矩阵 2.三角矩阵 1.对称矩阵 若一个n阶方阵A中元素满足下列条件: 对角矩阵 若矩阵中所有非零元素都集中在以主对角线为中心的带状区域中,区域外的值全为0,则称为对角矩阵。常见的有三对角矩阵、五对角矩阵、七对角矩阵等。 图为7×7的三对角矩阵(即有三条对角线上元素非0)。 带状矩阵压缩到一维向量 稀疏矩阵 在上节提到的特殊矩阵中,元素的分布呈现某种规律,故一定能找到一种合适的方法,将它们进行压缩存放。但是,在实际应用中,我们还经常会遇到一类矩阵:其矩阵阶数很大,非零元个数较少,零元很多,但非零元的排列没有一定规律,我们称这一类矩阵为稀疏矩阵。 很多科学管理及工程计算中,常会遇到阶数很高的大型稀疏矩阵。如果按常规分配方法,顺序分配在计算机内,那将是相当浪费内存的。为此提出另外一种存储方法,仅仅存放非零元素。稀疏矩阵在实际应用中经常出现,因此,为了节省存储空间,有必要研究其存储方法及操作。 按照压缩存储的概念,要存放稀疏矩阵的元素,由于没有某种规律,除存放非零元的值外,还必须存储适当的辅助信息,才能迅速确定一个非零元是矩阵中的哪一个位置上的元素。下面将介绍稀疏矩阵的几种存储方法及一些算法的实现。 三元组表 在压缩存放稀疏矩阵的非零元同时,若还存放此非零元所在的行号和列号,则称为三元组表法,即称稀疏矩阵可用三元组表进行压缩存储,但它是一种顺序存储(按行优先顺序存放)。 一个非零元有行号、列号、值,为一个三元组,整个稀疏矩阵中非零元的三元组合起来称为三元组表。 稀疏矩阵的运算 矩阵加法 矩阵转置 矩阵乘法 数组的实现机制 a0的内存单元地址 每个元素所需的字节个数 每个元素所需的字节个数 a00的内存单元地址 一个m×n的二维数组可以看成是m行的一维数组,或者n列的一维数组。 a0,0 a0,1 … a0,n-1 a1,0 a1,1 … a1,n-1 … … … … am-1,0 am-1,1 … am-1,n-1

文档评论(0)

docindpp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档