版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中南大学本科生课程设计(实践)任务书、设计报告(计算机程序设计基础fortran)题 目线性方程组求解问题 学生姓名陈 晨指导教师刘胤宏学 院土木工程学院专业班级土建类工程试验班学生学号1217110118计算机基础教学实验中心2012年 6 月 29 日fortran课程设计实验报告 之 线性方程组求解问题题目重现:一物理系统可用下列线性方程组来表示:从文件中读入m1、m2和的值,求a1、a2、n1 和n2的值。其中g取9.8,输入时以角度为单位。要求如下:(1)分别用两种方法(例如高斯消去法、矩阵求逆法、三角分解法、追赶法等),定义求解线性方程组ax=b的子程序,要求该子程序能求解任意线性
2、方程组。(2)在主程序中分别调用上面定义的两个子程序,并对求解结果进行对比分析。(3)绘制以上两个方法所求得的方程解的数据分布图。题目分析:初看题目,my god!这辈子没见过这么复杂奇葩的方程组。而脑袋里那些应付考试还可以的少的可怜的fortran基础知识,更是直接缴械投降,无地自容了。不愧是大学,不愧是让无数土木人工科男竞折腰的fortran课程设计。好吧,虽然极度怀疑自己的智商,但不战而屈己之兵又不是我土木人的性格。打开电脑,摩拳擦掌,fortran,老子来了!我们的目的地是,线性方程组的解,通往目的地的道路有好几条,gauss大道,矩阵求逆之道,还有两条小路:三角分解与追赶之径。目前的
3、情况是,小道路黑路不熟,大道倒是有星点的光。果断走大道嘛。开发思想嘛,对于解这样一个复杂的线性方程组,聪明的人类是不会傻乎乎自己去做的。于是,我们把这个繁琐的工作交给任劳任怨的计算机吧,省下我们大好年华去干更多有意义的事情。那么,我决定将这项任务交给fortran了,既然没人反对,那就这么定了 。废话不多说了,直接上图。系统结构图:数据的输入(文件)矩阵的赋值gauss子程序矩阵求逆子程序gauss主元消去法矩阵求逆法运算求解将结果输入到文件结束设计流程图:综合分析编主程序编子程序查询资料分析问题编绘图程系统功能及系统详细设计:这个我要慢慢说,总体上系统分为两大部分:运算程序(即解线性方程组)
4、,绘图程序。运算程序中,由于采用两种方法,因此包含两大子程序。子程序1用来通过gauss消元法来求解;子程序2则通过矩阵求逆法以另一种方式解决方程组。当然,两种方法各有千秋,各有其各自的优越性,主要是在程序复杂程度,运行时计算量即时间和空间量度上有区别。当主程序将指定文件中的已知条件读入,程序,开始为向矩阵赋值,这里通过一个4维数组实现,继而分别调用两大子程序,运算后输出结果,并将结果写入文件中。同时,两个子程序又并不只限于本题,由于具有很好的普遍性,所以,依然可以解决类似的其他数学或物理上的线性方程组问题o(_)o!这也符合了本次课程设计的要求。另一方面,绘图程序通过读入运算程序所生产文件中
5、的结果数据,并以此描点画图,更加直观的展现出变量之间的关系,便于分析具体问题和预计变量变化趋势。子程序1(gauss)结构图:error检验矩阵是否为奇异矩阵?输出解向量将max调到主对角线上求解回代将矩阵化为上三角矩阵yn找到每行绝对值最大的数k从1变化到n-1变量说明:a双精度二维数组,存放原矩阵和逆矩阵b,p双精度一维数组,结果向量x,c双精度一维数组,解n整型变量,表示阶数l整型变量is,js整型一维数组error右乘逆矩阵将max调到主对角线上分解为l,u乘积ny检验矩阵是否为奇异矩阵?找到每行绝对值最大的数,并记下行列数k从1变化到n子程序2(矩阵求逆法)结构图:输出解向量变量说明
6、同上绘图截图:结果分析:已知条件为 m1= 2.000000 m2= 3.000000 若角度为 45.500000矩阵求逆结果:8.697662649563757 2.439507666582445 10.264865479508530 36.597686618051200gauss法结果 :8.699359268458210 2.438986192406746 10.258617002977420 36.590364957478860 误差为: -1.696618894452939e-003 5.214741756986996e-004 6.248476531107272e-003 7.3
7、21660572344513e-003 *o(_)o* 两种方法都可以求得较精确的解向量,误差千分之一左右,基本符合题目要求。遇到的问题及解决方法:l 将数学语言转换为fortran计算机编程语言,这对于我来说算是个不小的挑战。两者虽有本质的相通之处,但语言上的极大差异确实让人无从下手。但照猫画虎也要有猫,于是便可耻的百度了高斯消元和求逆矩阵的源程序。第一遍,没看懂,第二遍,还没看懂,我又开始怀疑自己的智商了.终于在第n遍后拨云见日,柳暗花明。l 程序设计思路并不复杂,但层层的嵌套循环却令人发指。第一次,尝试从外围突击内部,好乱;改变策略,从中央再到地方,不断向上加循环,而不是费力向内加循环,
8、还不错。l 分别调试子程序时,发现结果总是“error”。将变量改为双精度,解决问题。l 矩阵可逆法中结果向量源程序给出的为二维数组,我开始觉得没必要,用了一维,但当调试时发现结果和gauss法竟然一致,这可不是我想要的,改回二维后,结果又出现了正常的误差,不知什么原因。l 常常会出现,浮点溢出,除以零的问题,通过改精度和子程序中的变量,问题解决。l 将两子程序合而为一的时候,第一次调用正常,但第二次,结果相差很大。原来两程序公用矩阵a,当第一次调用之后,矩阵a自然被重新赋值。在第二个子程序调用之前,在对矩阵a重新赋值,保证两次运算初始条件完全相同。l 绘图时需要读入变量y值,由于数据太庞大,
9、便在运算程序中在nresult.txt中通过循环不断读入解向量,角度从0变到180,步长为0.1,再在quickwin中反复读入y,并描点画线,画出图像。课程设计心得:通过这次课程设计,当然首先巩固了自己这个学期fortran的学习,同时通过发现问题,分析问题,查找资料,思考并最终解决问题这一系列过程,极其明显的提高了自己实践能力,学到了许多课本之外的知识了解了计算机编程中的一些典型技巧和经验。其中很重要的一个环节就是与同学和老师的交流,在交流和讨论的过程中,我们发现了自己想法的漏洞和不足,当然也将自己的优势与大家分享,互相帮助,共同进步,既提高了效率又增强了友谊,两全其美。另外,问题遇到了很多,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土方车转让合同模板
- 钢筋工地供货合同模板
- 钢材采购加工合同模板
- 软著合同模板
- 贷款车寄售合同模板
- 2024年简化版续签协议文件范例版
- 电站引水管道清理合同模板
- 挡墙护坡喷浆合同模板
- 钢材加工来料合同模板
- 平邑劳动合同模板
- YY/T 0612-2022一次性使用人体动脉血样采集器(动脉血气针)
- JJG 693-2011可燃气体检测报警器
- GB/T 9441-2009球墨铸铁金相检验
- 牦牛胴体、分割肉示意表
- 国学第九册第四课《道育万物》第四课时优秀教案
- 时代与变革-为人生而艺术(第一课时) 课件- 高中美术人美版(2019)美术鉴赏
- 《膜分离技术》教学课件
- 法人单位基础信息库设计方案
- 高级会计师评审个人业绩报告(精选9篇)
- 海康威视系列说明书-ivms-4200客户端用户手册
- 中石油公司资质管理相关规定及工作要求课件
评论
0/150
提交评论