最新版数据结构课程设计报告n维矩阵乘法.docxVIP

  • 23
  • 0
  • 约1.02万字
  • 约 23页
  • 2021-02-21 发布于天津
  • 举报

最新版数据结构课程设计报告n维矩阵乘法.docx

数据结构 课程设计报告 设计题目:n维矩阵乘法:A B一1 专 业 计算机科学与技术 班 级 计051本 学 生 林垂敏 学 号 29 指导教师 潘崇 起止时间 2007.12.3-2007.12.11 2007-2008—学年第—1_学期 精品文档 精品文档 PAGE PAGE # 欢。迎下载 精品文档 精品文档 PAGE PAGE # 欢。迎下载 一、 具体任务 功能: 设计一个矩阵相乘的程序,首先从键盘输入两个矩阵 a,b 的内容,并 输出两个矩阵,输出 ab 结果。 分步实施: 初步完成总体设计,搭好框架,确定人机对话的界面, 确定函数个数; 完成最低要求:建立一个文件,可完成 2 维矩阵的情况; 进一步要求:通过键盘输入维数 n。有兴趣的同学可以自己扩充系统 功能。 要求: 界面友好,函数功能要划分好 总体设计应画一流程图 程序要加必要的注释 要提供程序测试方案 程序一定要经得起测试, 宁可功能少一些, 也要能运行起来, 不能运 行的程序是没有价值的。 二、 软件环境 Microsoft Visual C++ 6.0 三、 问题的需求分析 程序以二维数组作为矩阵的存储结构,通过键盘输入矩阵维数 n,动态 分配内存空间,创建 n 维矩阵。矩阵建立后再通过键盘输入矩阵的各个元素 值;也可以通过文件读入矩阵的各项数据(维数及各元素值) 。 当要对矩阵作进一步操作(A*B或A*BA(-1))时,先判断内存中是否已 经有相关的数据存在,若还未有数据存在则提示用户先输入相关数据。 当要对矩阵进行求逆时,先利用矩阵可逆的充要条件: |A| != 0 判断矩 阵是否可逆,若矩阵的行列式 |A| = = 0 则提示该矩阵为不可逆的;若 |A| !=0 则求其逆矩阵,并在终端显示其逆矩阵。 四、 算法设计思想及流程图 1 .抽象数据类型 ADT MatrixMulti { …,n; a(i,j) €数据对象:D = {a(l,j)|i = 1,2,3, … …,n; a(i,j) € ElemSet,n 为矩阵维数 } 数据关系 : R = {Row,Col} Row = {a(i,j),a(i,j+1)| 1 = i = n , 1 = j = n-1} Col = {a(i,j),a(i+1,j)| 1 = i = n-1 , 1 = j = n} 基本操作 : Swap(a,b); 初始条件:记录 a,b 已存在。 操作结果:交换记录 a,b 的值。 CreateMatrix(n); 操作结果:创建 n 维矩阵,返回该矩阵。 lnput(M); 初始条件:矩阵M已存在。 操作结果:从终端读入矩阵 M的各个元素值。 Print(M) 初始条件:矩阵M已存在。 操作结果:在终端显示矩阵 M的各个元素值。 ReadFromFile(); 操作结果:从文件读入矩阵的相关数据。 Menu_Select(); 操作结果:返回菜单选项。 MultMatrix(M1,M2,R); 初始条件:矩阵M1, M2 R已存在。 操作结果:矩阵M1, M2作乘法运算,结果放在R中 DinV(M,V); 初始条件:矩阵M V已存在。 操作结果:求矩阵M的逆矩阵,结果放入矩阵V中。 MatrixDeterm(M,n); 初始条件:矩阵M已存在。 操作结果:求矩阵M的行列式的值。 } ADT MatrixMulti 2.矩阵求逆算法设计思想 算法采用高斯 - 约旦法(全选主元)求逆,主要思想如下: 首先,对于 k 从0到 n-1 作如下几步: ① 从第 k 行、第 k 列开始的右下角子阵中选取绝对值最大的元素, 并记住此元素所在的行号与列号, 再通过行交换和列交换将它交 换到主元素位置上。这一步称为全选主元。 主元求倒: M(k,k) = 1 / M(k,k) 精品文档 精品文档 PAGE PAGE #欢迎下载 精品文档 精品文档 PAGE PAGE #欢迎下载 ③ 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.矩阵行列式求值运算算法设计思想 (列)各元素与其对应的代数余利用行列式的性质:行列式等于它的任一行 子式乘积,即 (列)各元素与其对应的代数余 D = 刀 a(i

文档评论(0)

1亿VIP精品文档

相关文档