欢迎来到天天文库
浏览记录
ID:29162270
大小:87.50 KB
页数:9页
时间:2018-12-17
《稀疏矩阵的运算.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验课程名称交通资询系统设计专业班级10级计科(1)班学生姓名学号指导教师2012至2013学年第一学期第1至18周目录第1章概述2第2章系统分析32.1算法的思想32.2需求分析及研究意义32.3研究意义3第3章概要设计33.1 课程设计的方案设计论证3第4章详细设计44.1主程序模块44.2稀疏矩阵的存储44.3稀疏矩阵加法4第5章运行与测试4第6章总结和心得46.1实验总结46.2心得4参考文献5伪代码5第1章概述数组是一种常用的数据类型,几乎所有的程序设计语言都把数据类型设为固有的类型。他的应用
2、非常广泛。多维数组的一个特殊代表就是稀疏矩阵的运算。稀疏矩阵在现实中有很多应用,因此稀疏矩阵的计算近年来被广泛地研究.稀疏矩阵是指多数元素为0的矩阵,利用素数特点进行存储和计算可以大大节省存储空间,提高计算效率,实现一个能进行稀疏加法的运算。第2章系统分析2.1算法的思想(1)输入存储矩阵个算法。(2)存储稀疏矩阵用三元组表示。(3)稀疏矩阵的加法算法编写。(4)输出稀疏矩阵。2.2需求分析及研究意义(1)首先输入矩阵的行数和列数,并判别给出的两个矩阵的行数,列数对于所求的运算是否匹配。(2)程序存储用
3、三元组存储表表示,按行优先表示。(3)三元组表示稀疏矩阵,矩阵的相加所得结果矩阵另生成。2.3研究意义矩阵加法了解:矩阵之间也可以相加。把两个矩阵对应位置的单个元素相加,得到的新矩阵就是加法的结果。由其运算法则可知,只有行数和列数相同的矩阵才能进行加法运算。矩阵之间相加没有顺序,假设A、B都是矩阵,则A+B=B+A。通常认为矩阵没有减法,若要与一个矩阵相减,在概念上是引入一个该矩阵的负矩阵,然后相加。A-B是A+(-B)的简写。第3章概要设计3.1课程设计的方案设计论证(1)输入存储矩阵的算法。(2)存
4、储稀疏矩阵有用三元组表示。(3)稀疏矩阵的加法算法编写。(4)输出稀疏矩阵。第4章详细设计4.1主程序模块其中主函数为:main(){定义以及初始化从文件中读取数据,输出矩阵调用转置和加法函数,输出转置矩阵以及加法矩阵}4.2稀疏矩阵的存储voidCreateMatrix(intA[m][n],intB[50]){inti,j,k=0;for(i=0;i5、;}B[k]=-1;}4.3稀疏矩阵加法稀疏矩阵求值模块包括:矩阵相加模块AddRLSMatrix();AddSMatrix(M,N,&Q);初始条件:稀疏矩阵M与N的行数和列数对应相等。操作结果:求稀疏矩阵的和Q=M+N。第5章运行与测试第6章总结和心得6.1实验总结首先必须了解稀疏矩阵的概念,存储及矩阵加法运算,三元组顺序表的存储表示。其次对三元组的输入运算、加法算法的输入算法,必须认真查阅书籍或上网了解,认真分析。最后,在对输入程序的运算情况作认真的错误分析,总结出错原因。6.2心得原来我对稀疏矩6、阵的运算的知识很模糊,通过这次课程设计,我加深了对稀疏矩阵的存储和加法运算的了解,在做课程设计的过程中遇到很多问题,让我知道了自己对很多知识点都掌握的不够。随着这些问题的解决,对之前掌握的不过好的知识点进行了巩固和复习。总之,通过这次课程设计让我明白了自己在很多方面的不足,也让我学到了很多。参考文献[1]数据结构:严蔚敏,吴伟民编著.—北京:清华大学出版社,2007[2]数据结构与算法分析:苏仕华编著.—合肥:中国科学技术大学出版社,2004[3]数据结构课程设计:苏仕华编著.—北京:清华大学出版社,27、002伪代码#include#definem6#definen8#definemax50/*转储稀疏矩阵的算法*/voidcreatematrix(intA[m][n],intB[50]){inti,j,k=0;for(i=0;i8、dmatrixadd(intA[max],intB[max],intC[max]){inti=0,j=0,k=0;while(A[i]!=-1&&B[j]!=-1){if(A[i]==B[j]){//行相等if(A[i+1]==B[j+1]){//且列相等C[k]=A[i];C[k+1]=A[i+1];C[k+2]=A[i+2]+B[j+2];k=k+3;i=i+3;j=j+3;}elseif(A[i+1]
5、;}B[k]=-1;}4.3稀疏矩阵加法稀疏矩阵求值模块包括:矩阵相加模块AddRLSMatrix();AddSMatrix(M,N,&Q);初始条件:稀疏矩阵M与N的行数和列数对应相等。操作结果:求稀疏矩阵的和Q=M+N。第5章运行与测试第6章总结和心得6.1实验总结首先必须了解稀疏矩阵的概念,存储及矩阵加法运算,三元组顺序表的存储表示。其次对三元组的输入运算、加法算法的输入算法,必须认真查阅书籍或上网了解,认真分析。最后,在对输入程序的运算情况作认真的错误分析,总结出错原因。6.2心得原来我对稀疏矩
6、阵的运算的知识很模糊,通过这次课程设计,我加深了对稀疏矩阵的存储和加法运算的了解,在做课程设计的过程中遇到很多问题,让我知道了自己对很多知识点都掌握的不够。随着这些问题的解决,对之前掌握的不过好的知识点进行了巩固和复习。总之,通过这次课程设计让我明白了自己在很多方面的不足,也让我学到了很多。参考文献[1]数据结构:严蔚敏,吴伟民编著.—北京:清华大学出版社,2007[2]数据结构与算法分析:苏仕华编著.—合肥:中国科学技术大学出版社,2004[3]数据结构课程设计:苏仕华编著.—北京:清华大学出版社,2
7、002伪代码#include#definem6#definen8#definemax50/*转储稀疏矩阵的算法*/voidcreatematrix(intA[m][n],intB[50]){inti,j,k=0;for(i=0;i8、dmatrixadd(intA[max],intB[max],intC[max]){inti=0,j=0,k=0;while(A[i]!=-1&&B[j]!=-1){if(A[i]==B[j]){//行相等if(A[i+1]==B[j+1]){//且列相等C[k]=A[i];C[k+1]=A[i+1];C[k+2]=A[i+2]+B[j+2];k=k+3;i=i+3;j=j+3;}elseif(A[i+1]
8、dmatrixadd(intA[max],intB[max],intC[max]){inti=0,j=0,k=0;while(A[i]!=-1&&B[j]!=-1){if(A[i]==B[j]){//行相等if(A[i+1]==B[j+1]){//且列相等C[k]=A[i];C[k+1]=A[i+1];C[k+2]=A[i+2]+B[j+2];k=k+3;i=i+3;j=j+3;}elseif(A[i+1]
此文档下载收益归作者所有