- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Fortran90课程设计(线性方程组求解问题)实验报告
xx大学
本科生课程设计(实践)任务书、设计报告
(计算机程序设计基础—FORTRAN)
题 目 线性方程组求解问题 学生姓名 xxx 指导教师 xxx 学 院 xxxxx 专业班级 xxxxx
学生学号 xxxxx
计算机基础教学实验中心
2010年 6 月 20 日
任务内容
本次课程设计我的研究课题为“线性方程组求解问题”,题目如下
线性方程组求解问题。
一物理系统可用下列线性方程组来表示:
从文件中读入m1、m2和θ的值,求a1、a2、N1 和N2的值。其中g取9.8,输入θ时以角度为单位。
要求:
(1)分别用两种方法(例如高斯消去法、矩阵求逆法、三角分解法、追赶法等),定义求解线性方程组Ax=b的子程序,要求该子程序能求解任意线性方程组。
(2)在主程序中分别调用上面定义的两个子程序,并对求解结果进行对比分析。
(3)绘制以上两个方法所求得的方程解的数据分布图。
二、系统开发设计思想
本题目主要涉及线性方程组的求解问题,以及通过不同方法结果的得出结果的比较分析问题。
通过范数求解出方程组的条件数。其中,线性方程组求解选用高斯消去法。
解题时,我使用了高斯消去法、矩阵求逆法求解四阶线性方程组。
系统环境:操作系统为 Windows 7(64bit),使用Fortran PowerStation 4.0 中的
工作空间“Console Application”以及“Quickwin Application”
系统结构图如下:
子程序2
矩阵求逆法 子程序1
Gauss消去法
主程序
输出结果并进行对比分析
绘制两种不同方法的解的数据分布图
注:设计了两个子程序,一个主程序,以及一个绘图程序。
三、系统功能及系统详细设计
针对题目要求,我设计的系统主要为了解决题目中所提出并要求的问题。子程序则各尽其用,不仅可以作为整体系统的重要部分,还可以使用于通用问题。
如高斯消去法和矩阵求逆法,可以解决线性方程组的求解问题。再如绘图程序,将问题(2)的结果直观化,更直观明显的表现了两种不同方法所得结果的异同。
系统设计思想流程:
(1)、选用Gauss消去法求线性方程组的解。因此将Gauss消去法作为一个子程序。
(2)、选用矩阵求逆法求同一线性方程组的解。将矩阵求逆法也编辑为一个子程序。
(3)、从文件中读取初始条件(m1,m2和θ),得到一个线性方程组 ,
并求解之,需要运用两个子程序。
(4)、将两种方法得到的结果进行误差分析((a1-a2)/a1),通过分析结果对两种解方程的方法
(5)、使用Fortran语言绘图,将两组解进行对比,从而更直观的不同解法的
的异同。
四、遇到的问题与解决办法
遇到的问题:
(1)、在设计思路时,由于对线性代数知识了解不多,导致我在一开始时感到无从下手。
(2)、算法问题,即如何将数学上解题方法运用在Fortran90的程序中。
(3)、绘图问题。在课堂上,由于时间的限制,老师们未详细讲解有关Fortran90作图方法的问题。因此在完成(3)作图题时,困难重重。
解决方法:
(1)、通过查阅相关资料和向老师同学请教,了解了Gauss消去法和矩阵求逆法并确定使用此两种方法来求解。
(2)、筛选网络信息,具体得出了Gauss消去法和矩阵求逆法的源程序。
(3)、通过研读课本中的相关知识和上网查询,大致了解的Fortran90的绘图方法,并作出了题目要求的图线。
五、 总结
FORTRAN90是1991年问世的, 由于FORTRAN具有强大的数据科学计算能力(相比Matlab,C++,FORTRAN效率更高),在工程、科研工作中仍有较广泛的应用,因而学习FORTRAN还是有意义。
经过本次为期一周的实践,我提高了编程的能力,对Fortran90这门编程语言有了更深的理解,并提高了这方面的实际操作能力。深刻感受到了要制作出较好的软件,不仅仅需要编写代码,还需要搜索大量的资料,需要多种软件的共同应用,来整合出自己的作品。其中,代码的编写需要大量的逻辑思考、需要巧妙的算法、需要有扎实的基本功、对于一次次的报错要有耐心检查。尤其是一个人开发,工作量很大,要有坚持不懈的精神。
文档评论(0)