数据结构课程设计报告n维矩阵乘法

数据结构课程设计报告n维矩阵乘法

ID:47518168

大小:236.00 KB

页数:20页

时间:2020-01-12

数据结构课程设计报告n维矩阵乘法_第1页
数据结构课程设计报告n维矩阵乘法_第2页
数据结构课程设计报告n维矩阵乘法_第3页
数据结构课程设计报告n维矩阵乘法_第4页
数据结构课程设计报告n维矩阵乘法_第5页
资源描述:

《数据结构课程设计报告n维矩阵乘法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构课程设计报告设计题目:n维矩阵乘法:AB-1专业计算机科学与技术班级计051本学生林垂敏学号29指导教师潘崇起止时间2007.12.3-2007.12.112007-2008学年第I学期一、19一、具体任务功能:设计一个矩阵相乘的程序,首先从键盘输入两个矩阵a,b的内容,并输出两个矩阵,输出ab-1结果。分步实施:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:建立一个文件,可完成2维矩阵的情况;3.进一步要求:通过键盘输入维数n。有兴趣的同学可以自己扩充系统功能。要求:1.界面友好

2、,函数功能要划分好2.总体设计应画一流程图3.程序要加必要的注释4.要提供程序测试方案5.程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。二、软件环境MicrosoftVisualC++6.0三、问题的需求分析程序以二维数组作为矩阵的存储结构,通过键盘输入矩阵维数n,动态分配内存空间,创建n维矩阵。矩阵建立后再通过键盘输入矩阵的各个元素值;也可以通过文件读入矩阵的各项数据(维数及各元素值)。当要对矩阵作进一步操作(A*B或A*B^(-1))时,先判断内存中是否已经有相关的数据存在,若还未有数据

3、存在则提示用户先输入相关数据。当要对矩阵进行求逆时,先利用矩阵可逆的充要条件:

4、A

5、!=0判断矩阵是否可逆,若矩阵的行列式

6、A

7、==0则提示该矩阵为不可逆的;若

8、A

9、!=0则求其逆矩阵,并在终端显示其逆矩阵。四、算法设计思想及流程图1.抽象数据类型ADTMatrixMulti{19数据对象:D={a(I,j)

10、i=1,2,3,…,n;j=1,2,…,n;a(i,j)∈ElemSet,n为矩阵维数}数据关系:R={Row,Col}Row={

11、1<=i<=n,1<=j<=n-1}Col={

12、,j),a(i+1,j)>

13、1<=i<=n-1,1<=j<=n}基本操作:Swap(&a,&b);初始条件:记录a,b已存在。操作结果:交换记录a,b的值。CreateMatrix(n);操作结果:创建n维矩阵,返回该矩阵。Input(&M);初始条件:矩阵M已存在。操作结果:从终端读入矩阵M的各个元素值。Print(&M)初始条件:矩阵M已存在。操作结果:在终端显示矩阵M的各个元素值。ReadFromFile();操作结果:从文件读入矩阵的相关数据。Menu_Select();操作结果:返回菜单选项。MultMatrix(&

14、M1,&M2,&R);初始条件:矩阵M1,M2,R已存在。操作结果:矩阵M1,M2作乘法运算,结果放在R中。DinV(&M,&V);初始条件:矩阵M,V已存在。操作结果:求矩阵M的逆矩阵,结果放入矩阵V中。MatrixDeterm(&M,n);初始条件:矩阵M已存在。操作结果:求矩阵M的行列式的值。}ADTMatrixMulti2.矩阵求逆算法设计思想算法采用高斯-约旦法(全选主元)求逆,主要思想如下:首先,对于k从0到n-1作如下几步:①从第k行、第k列开始的右下角子阵中选取绝对值最大的元素,并记住此元素所在的行号与列号,再

15、通过行交换和列交换将它交换到主元素位置上。这一步称为全选主元。②主元求倒:M(k,k)=1/M(k,k)19①M(k,j)=M(k,j)*M(k,k);j=0,1,…,n-1;j!=k②M(i,j)=M(i,j)–M(i,k)*M(k,j);i,j=0,1,…,n-1;i,j!=k③M(i,k)=-M(i,k)*M(k,k),i=0,1…,n-1;i!=k最后,根据在全选主元过程中所记录的行、列交换的信息进行恢复,恢复原则如下:在全选主元过程中,先交换的行(列)后进行恢复;原来的行(列)交换用列(行)交换来恢复。3.矩阵行列式

16、求值运算算法设计思想利用行列式的性质:行列式等于它的任一行(列)各元素与其对应的代数余子式乘积,即D=∑a(i,k)*A(i,k);k=1,2,…,n;D=∑a(k,j)*A(k,j);k=1,2,…,n;再利用函数的递归调用法实现求其值。4.各函数间的调用关系Main()ReadFromFile()DinV()Swap()Print()Menu_Select()MatrixDeterm()CreateMatrix()MultMatrix()Input()5.流程图19否否是否是是否是否否是开始switch(Menu_Sele

17、ct())case1:case3:case2:n>0?是输入矩阵维数n输入矩阵A,B输出矩阵维数nsystem(“pause”);通过键盘输入需对哪个矩阵求逆,求出相应该的逆阵,并显示求得的逆阵system(“pause”);若矩阵不可逆则返回主菜单case4:R=A*B并显

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。