1 / 33
文档名称:

矩阵及其基本算法.ppt

格式:ppt   大小:792KB   页数:33页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

矩阵及其基本算法.ppt

上传人:卓小妹 2022/7/24 文件大小:792 KB

下载得到文件列表

矩阵及其基本算法.ppt

文档介绍

文档介绍:关于矩阵及其基本算法
第1页,讲稿共33张,创作于星期二
矩阵及其基本算法
矩阵的表示
矩阵的基本运算
小结和应用举例
第2页,讲稿共33张,创作于星期二
一、矩阵的表示
三角矩阵的压缩表示法
稀疏矩阵的三元组表示法环判断两个矩阵是否相等。
在三元组表示方法中,我们如果保证非零元素是按照从上到下,从左到右的顺序储存的,则可以用一个循环直接判断。但如果不能保证,则需要二重循环。因此在未加说明的情况下,三元组表示法均需要按顺序保存各个元素。
在十字链表表示方法中,我们需要依次遍历每一个非零行(或者列)。
第15页,讲稿共33张,创作于星期二
矩阵的线性运算
矩阵的数乘: B=kA
在任何一种表示法中,我们都可以通过遍历所有元素的方法完成数乘运算。
矩阵的加法: C=A+B
在二维数组表示法中,我们可以通过二重循环来进行矩阵加法
在稀疏矩阵中,注意到结果中的非零元素所在的位置必对应A或B中的一个非零元素,所以加法运算不会在A和B中原非零元素之外的其他位置上生成新的非零元素。
第16页,讲稿共33张,创作于星期二
矩阵的线性运算(2)
考虑三元组表示法中的矩阵加法。由于都需要按顺序储存各个元素,我们应当按顺序对每个A或B中非零的位置做加法。
下面有一个例子:
第17页,讲稿共33张,创作于星期二
矩阵的线性运算(3)
我们记录两个矩阵A,B的当前非零元素序号pA和pB。为了保证结果的有序性,我们每次比较这两个当前元素的位置。
如果A的当前位置靠前,则把A的第pA个元素加入矩阵C,并使pA=pA+1
如果B的当前位置靠前,则把B的第pB个元素加入矩阵C,并使pB=pB+1
如果当前位置相同,则先使pA=pA+1, pB=pB+1。如果A的第pA-1个元素和B的第pB-1个元素的和不为零,则把它加到矩阵C中。
第18页,讲稿共33张,创作于星期二
矩阵的线性运算(4)
十字链表表示法下的加法可以一行行的做。即:
如果A的当前行号比B小,把A的当前行整个复制到C中。
如果B的当前行号比A小,把B的当前行整个复制到C中。
否则把A的当前行和B的当前行的合并结果加入C中。
第三种情况和三元组表示下的加法很类似,只是下标pA,pB换成了指针。
同样的,需要注意两个非零元素之和可能等于零,从而不能插入到结果中
第19页,讲稿共33张,创作于星期二
矩阵的转置(1)
矩阵的转置
在二维数组中,转置可以通过简单的坐标变换得到
在三元组表示法中,在对每个元素进行坐标变换后还需要进行一次排序,以维持元素位置的有序性。
在十字链表表示法中,我们不仅需要对每个结点进行坐标变换,还需要交换行链表和列链表,以及更改每个结点四个方向的指针,实现比较麻烦。
第20页,讲稿共33张,创作于星期二
矩阵的转置(2)
二维数组的转置可以通过下列代码来实现:
void MatrixT(TMatrix A)
{
TMatrix B;
=; =;
for(int i=1;i<=;i++)
for(int j=1;j<=;j++)
[j][i]=[i][j];
return B;
}
对代码稍作修改,我们可以对矩阵进行旋转和镜像变换生成8个新矩阵
第21页,讲稿共33张,创作于星期二
矩阵的转置(3)
前面提到过,三元组表示法中,矩阵的转置可以通过坐标变换后排序来实现。
不过,我们通常使用的是另外一种方法。这种方法不用排序,而速度也更快。
快速转置算法:直接写到正确的位置。
首先,求出每一列第一非零元素转置后的序号。这一步只需要统计一下每列的非零元素的个数就可以了。
由于每一列的元素在转置以后的先后次序保持不变,每个元素就可以直接写到该行的下一个空闲位置。
第22页,讲稿共33张,创作于星期二
矩阵的转置(4)
请看下面的例子:
各列非零元素个数为:2,3,0,1
各列第一个元素序号:0,2,5,5
0 1 2 3 4 5
1
2
3
4
5
6
第23页,讲稿共33张,创作于星期二
矩阵乘法(1)
矩阵乘法
在二维数组表示中,最简单的方法就是对每个元素用循环累加出结果,二重循环枚举每个元素,共三层循环。
在三元组表示中,对于A中的一个元素Aij,我们只需要访问B中第j行所有元素Bjk,把每个乘积Aij ×Bjk加到Cik中。这样,每遍历A的一行元素,就计算出了C的一行元素。和快速转置算法类似,我们可以事先算出B的每行元素的下标范围,再用一个循环依次考虑A中的每个元素就可以了。
十字链表在本质上是三元组的链式存储,所以乘法和三元组差别不大,但是实现却麻烦得多。该方法的好处在于,

最近更新

城市照明设备招标信息3篇 50页

城市扩建拆迁补偿政策分析3篇 57页

(新版)导游资格证考试题库及答案【全国通用】.. 28页

(新版)导游资格证考试题库附参考答案【研优卷.. 29页

2025年一级注册建筑师之建筑材料与构造题库【.. 133页

2025年一级注册建筑师之建筑材料与构造题库含.. 131页

2025年一级注册建筑师之建筑材料与构造题库附.. 132页

2025年一级注册建筑师之建筑设计考试题库及1套.. 136页

2025年一级注册建筑师之建筑设计考试题库含答.. 135页

垫资施工合同应注意哪些问题3篇 49页

2025年二级注册建筑师之建筑结构与设备题库50.. 133页

2025年二级注册建筑师之建筑结构与设备题库50.. 135页

2025年二级注册建筑师之建筑结构与设备题库50.. 133页

2025年全国保密教育线上培训考试试题库及参考.. 7页

垃圾场施工赞助合同3篇 48页

2025年全国保密教育线上培训考试试题库附答案.. 7页

城镇职工医保居民医保生育保险政策培训专家讲.. 39页

进口业务的基本程序 31页

中国生活垃圾中转站行业市场分析报告 4页

某电动汽车主减速器总成设计 7页

《基于PIC单片机的胰岛素泵硬件电路的设计与实.. 16页

2025年度塑料膜课程设计端盖设计 24页

北京丹灵云科技有限责任公司手持机使用操作说.. 1页

严重创伤急救早期救治流程图 2页

二十一度母修持仪轨 8页

雨水设计控制雨量计算书 3页

《共同侵权行为》PPT课件 70页