- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
稀疏矩阵的运算.doc
实验课程名称 交通资询系统设计
专 业 班 级 10级计科(1)班
学 生 姓 名
学 号
指 导 教 师
2012至2013学年第 一 学期第 1 至 18 周
目 录
第1章 概述 2
第2章 系统分析 3
2.1 算法的思想 3
2.2 需求分析及研究意义 3
2.3 研究意义 3
第3章 概要设计 3
3.1 课程设计的方案设计论证 3
第4章 详细设计 4
4.1 主程序模块 4
4.2 稀疏矩阵的存储 4
4.3 稀疏矩阵加法 4
第5章 运行与测试 4
第6章 总结和心得 4
6.1 实验总结 4
6.2 心得 4
参考文献 5
伪代码 5
第1章 概述
数组是一种常用的数据类型,几乎所有的程序设计语言都把数据类型设为固有的类型。他的应用非常广泛。多维数组的一个特殊代表就是稀疏矩阵的运算。
稀疏矩阵在现实中有很多应用,因此稀疏矩阵的计算近年来被广泛地研究.
稀疏矩阵是指多数元素为0的矩阵,利用素数特点进行存储和计算可以大大节省存储空间,提高计算效率,实现一个能进行稀疏加法的运算。
系统分析
2.1 算法的思想
(1)输入存储矩阵个算法。
(2)存储稀疏矩阵用三元组表示。
(3)稀疏矩阵的加法算法编写。
(4)输出稀疏矩阵。
2.2 需求分析及研究意义
(1)首先输入矩阵的行数和列数,并判别给出的两个矩阵的行数,列数对于所求的运算是否匹配。
(2)程序存储用三元组存储表表示,按行优先表示。
(3)三元组表示稀疏矩阵,矩阵的相加所得结果矩阵另生成。
2.3 研究意义
矩阵加法了解:矩阵之间也可以相加。把两个矩阵对应位置的单个元素相加,得到的新矩阵就是加法的结果。由其运算法则可知,只有行数和列数相同的矩阵才能进行加法运算。
矩阵之间相加没有顺序,假设A、B都是矩阵,则A+B=B+A。通常认为矩阵没有减法,若要与一个矩阵相减,在概念上是引入一个该矩阵的负矩阵,然后相加。A-B是A+(-B)的简写。
第3章 概要设计
3.1 课程设计的方案设计论证
(1)输入存储矩阵的算法。
(2)存储稀疏矩阵有用三元组表示。
(3)稀疏矩阵的加法算法编写。
(4)输出稀疏矩阵。
第4章 详细设计
4.1 主程序模块
其中主函数为:
main(){ 定义以及初始化
从文件中读取数据,输出矩阵
调用转置和加法函数,输出转置矩阵以及加法矩阵
}
4.2 稀疏矩阵的存储
void CreateMatrix(int A[m][n],int B[50])
{ int i,j,k=0;
for (i=0;im;i++)
for (j=0;jn;j++)
if(A[i][j]!=0){
B[k]=i;k++;
B[k]=j;k++;
B[k]=A[i][j];k++;
}
B[k]=-1;
}
4.3 稀疏矩阵加法
稀疏矩阵求值模块包括:矩阵相加模块AddRLSMatrix();
AddSMatrix(M,N,Q);
初始条件:稀疏矩阵M与N的行数和列数对应相等。
操作结果:求稀疏矩阵的和Q=M+N。
第5章 运行与测试
第6章 总结和心得
6.1 实验总结
首先必须了解稀疏矩阵的概念,存储及矩阵加法运算,三元组顺序表的存储表示。其次对三元组的输入运算、加法算法的输入算法,必须认真查阅书籍或上网了解,认真分析。最后,在对输入程序的运算情况作认真的错误分析,总结出错原因。
6.2 心得
原来我对稀疏矩阵的运算的知识很模糊,通过这次课程设计,我加深了对稀疏矩阵的存储和加法运算的了解,在做课程设计的过程中遇到很多问题,让我知道了自己对很多知识点都掌握的不够。随着这些问题的解决,对之前掌握的不过好的知识点进行了巩固和复习。总之,通过这次课程设计让我明白了自己在很多方面的不足,也让我学到了很多。
参考文献
[1] 数据结构:严蔚敏,吴伟民编著.—北京:清华大学出版社,2007
[2] 数据结构与算法分析:苏仕华编著.—合肥:中国科学技术大学出版社,2004
[3] 数据结构课程设计:苏仕华编著.—北京:清华大学出版社,2002
伪代码
#include stdio.h
#define m 6
#define n 8
#define max 50
/*转储稀疏矩阵的算法*/
void creatematrix(int A[m][n],int B[50])
{ int i,j,k=0;
for(i=0;im;i++)
for(j=0;jn
文档评论(0)