欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    n维矩阵的乘法AB-1_(13页).doc

    • 资源ID:36354292       资源大小:146.50KB        全文页数:13页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    n维矩阵的乘法AB-1_(13页).doc

    -n维矩阵的乘法AB-1_-第 13 页数据结构课程设计题目_n维矩阵的乘法AB-1_ 学号_ 姓名_ 专业_ 指导老师_第一章:课程设计的目的1第二章:课程设计的内容和要求1课程设计的内容1运行环境2第三章:课程设计分析2矩阵的存储2矩阵的输入与输出2矩阵的乘法运算2矩阵的求逆运算2第四章:课程设计的算法描述3矩阵的存储3矩阵的输出3矩阵的乘法3矩阵的求逆运算3第五章:源代码4第六章:结束语4第一章:课程设计的目的本学期我们对数据结构这门课程进行了学习。这门课程是一门实践性非常强的课程,为了让大家更好地理解与运用所学知识,提高动手能力,我们进行了此次课程设计实习。这次课程设计不但要求实习者掌握数据结构中的各方面知识,还要求实习者具备一定的C语言基础和编程能力。具体说来,这次课程设计主要有两大方面目的。一是让实习者通过实习掌握数据结构中的知识。对于矩阵乘法这一课题来说,所要求掌握的数据结构知识主要是数组的相关概念和数组用来存储矩阵的相关便利性。二是通过实习巩固并提高实习者的C语言知识,并初步了解Visual C+的知识,提高其编程能力与专业水平。第二章:课程设计的内容和要求课程设计的内容设计一个矩阵相乘的程序,首先从键盘输入两个矩阵a,b的内容,并输出两个矩阵,输出ab1结果。要求要求1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。运行环境该程序的运行环境为Windows xp系统,Microsoft Visual C+6.0版本。第三章:课程设计分析矩阵的存储矩阵的结构类似于c语言中的二维数组,所以可以用二维数组来存储矩阵,这样的结构很简便而且也最符合要求。矩阵的输入与输出选择二维数组作为矩阵的存储结构那么可以采用二维数组的输入与输出的方式来对矩阵进行输入输出操作。利用两个for循环语句可以实现将矩阵中的元素存入到二维数组中,但是要注意的是矩阵的行和列的下标都是从1开始的但是二维数组的行和列的下标都是从0开始所以在编写程序的时候要注意这些差别。矩阵的乘法运算矩阵的乘法运算时线性代数里的知识,两个n阶的矩阵相乘,设有三个矩阵A,B,C,矩阵A乘矩阵B等于矩阵,那么矩阵C中的第i行第j列的元素等于矩阵A的第i行元素和矩阵B的第j列对应的元素的乘积的和。矩阵的求逆运算定义一个矩阵的求逆的运算的函数,函数名为inverse,函数的参数为数组B,利用线性代数中的初等变换的知识求矩阵的逆第四章:课程设计的算法描述矩阵的存储printf("输入矩阵a:"); for(i=0;i<N;i+) for(j=0;j<N;j+) scanf("%f",&aij); /*输入矩阵A*/ printf("请再输入矩阵b:"); for(i=0;i<N;i+) for(j=0;j<N;j+) scanf("%f",&bij); /*输入矩阵B*/矩阵的输出printf("请输出矩阵A和B的乘积矩阵C:n"); for(i=0;i<N;i+) for(j=0;j<N;j+) printf("%ft",cij); printf("n");矩阵的乘法定义一个全局变量sum初值为0.0; for(i=0;i<N;i+)for(j=0;j<N;j+) for(k=0;k<N;k+) sum+=aik*bkj; cij=sum;sum=0; /*矩阵的乘法的函数的内容*/ 矩阵的求逆运算定义一个函数,函数名为inverse;之前定义全局变量y=1;矩阵维数N,和整型变量 i,和j,函数的参数为数组B,返回值为数组B的逆矩阵B-1void inverse(float mNN) /*inverse函数是对矩阵的求逆运算的函数*/ int dN2*N; float t,x; int k; printf("B原矩阵为:n"); for (i=0;i<N;i+) for (j=0;j<N;j+) printf("%3.2ft",mij); printf("n"); /*将原数组输出*/ for(i=0;i<N;i+) for(j=0;j<(2*N);j+) if (j<N) dij=mij; else if (j=N+i) dij=1.0; else dij=0.0; /*将数组b中的元素转存到变量数组d中,其中d中的另一半元素对应一个单位矩阵*/ for(i=0;i<N;i+) for(k=0;k<N;k+) if(k!=i) t=dki/dii; for(j=0;j<(2*N);j+) x=dij*t; dkj=dkj-x; /*矩阵的初等变换*/ for(i=0;i<N;i+) t=dii; for(j=0;j<(2*N);j+) dij=dij/t; for(i=0;i<N;i+) y=y*dii; if(y=0) printf("对不起,您输入的矩阵没有逆矩阵,请重新输入。n"); else for(i=0;i<N;i+) for(j=0;j<N;j+) mij=dij+N; printf("B逆矩阵为:n"); for (i=0;i<N;i+) for (j=0;j<N;j+) printf("%3.2ft",mij); printf("n"); 第五章:源代码#include<stdio.h>#define N 3int i,j,k;float y=1.0;float aNN,bNN,cNN;/*定义全局变量的三个数组*/ /*矩阵的乘法的函数的内容*/void inverse(float mNN);int main() printf("输入矩阵a:"); for(i=0;i<N;i+) for(j=0;j<N;j+) scanf("%f",&aij); /*输入矩阵A*/ printf("请再输入矩阵b:"); for(i=0;i<N;i+) for(j=0;j<N;j+) scanf("%f",&bij); /*输入矩阵B*/ inverse(b);/*调用inverse函数对矩阵b进行求逆运算*/ for(i=0;i<N;i+) for(j=0;j<N;j+) for(k=0;k<N;k+) cij+=aik*bkj; printf("请输出矩阵A和B的乘积矩阵C:n"); for(i=0;i<N;i+) for(j=0;j<N;j+) printf("%3.2ft",cij); printf("n"); /*主函数结束*/void inverse(float mNN) /*inverse函数是对矩阵的求逆运算的函数*/ float dN2*N; float t,x; int k; printf("B原矩阵为:n"); for (i=0;i<N;i+) for (j=0;j<N;j+) printf("%3.2ft",mij); printf("n"); /*将原数组输出*/ for(i=0;i<N;i+) for(j=0;j<(2*N);j+) if (j<N) dij=mij; else if (j=N+i) dij=1.0; else dij=0.0; /*将数组b中的元素转存到变量数组d中,其中d中的另一半元素对应一个单位矩阵*/ for(i=0;i<N;i+) for(k=0;k<N;k+) if(k!=i) t=dki/dii; for(j=0;j<(2*N);j+) x=dij*t; dkj=dkj-x; /*矩阵的初等变换*/ for(i=0;i<N;i+) t=dii; for(j=0;j<(2*N);j+) dij=dij/t; for(i=0;i<N;i+) y=y*dii; if(y=0) printf("对不起,您输入的矩阵没有逆矩阵,请重新输入。n"); else for(i=0;i<N;i+) for(j=0;j<N;j+) mij=dij+N; printf("B逆矩阵为:n"); for (i=0;i<N;i+) for (j=0;j<N;j+) printf("%3.2ft",mij); printf("n"); 第六章:结束语转眼,为期两周的数据结构课程设计实习即将结束了。在这次实习中,自己的C语言知识和数据结构知识得到了巩固,编程能力也有了一定的提高。同时也学会了解决问题的方法。总结起来,自己主要有以下几点体会:1.必须牢固掌握基础知识。由于C语言是大一所学知识,有所遗忘,且未掌握好这学期所学的数据结构这门课,所以在实习之初感到棘手。不知如何下手,但在后来的实习过程中自己通过看书和课外资料,并请教其他同学,慢慢地对C语言和数据结构知识有所熟悉。这时才逐渐有了思路。所以,这次实习之后,我告诫自己:今后一定要牢固掌握好专业基础知识。2.必须培养严谨的科学态度。自己在编程时经常因为一些类似于“少了分号”的小错误而导致错误,不够认真细致,这给自己带来了许多麻烦。编程是一件十分严谨的事情,容不得马虎。所以在今后自己一定要培养严谨的科学态度。我想这不仅是对于程序设计,做任何事都应如此。3.这次课程设计也让我充分认识到数据结构这门课的重要性。它给我们一个思想和大纲,让我们在编程时容易找到思路,不至于无章可循。同时它也有广泛的实际应用。总之,在这次实习中,自己的C语言以及数据结构知识得到提高,编程能力也得到了提高。参考资料:线性代数第四版 中国人民大学出版社c语言程序设计中国水利水电出版社 数据结构c语言版清华大学出版社visual c+实用教程第四版 电子工业出版社

    注意事项

    本文(n维矩阵的乘法AB-1_(13页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开