下载此文档

FORTRAN语言课程设计.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
FORTRAN 语言课程设计摘要: 科技的日新月异使得计算机领域不断取得新的研究成果。计算机在代替和延伸脑力劳动方面发挥越来越重要的作用, 不仅在工业方面而且在日常生活和科研中也越来越离不开计算机。特别是在天体运动方面需要运用到计算机处理大量的数据。这次我选的实践课题是用 Jacobi 迭代和 Gauss-Seidel 迭代法求解线性方程组 AX=B , 这其中涉及的就是天体运动的轨迹问题, 我利用从 FORTRAN 90 中学到的迭代、循环、子程序等知识设计程序,通过 Fortran PowerStation 进行运行、调试, 不得不提的是 QuickWin, 它在绘制行星的运动轨迹上发挥出了相当大的贡献。通过这次的实践我从中充分体会到了 Fortran 语言接近数学公式的自然描述,在计算机里具有很高的执行效率的最大特性。同时我也看到了 Fortran 语言是一种极具发展潜力的语言, 在数值计算中, Fortran 语言仍然不可替代。 Fortran90 标准引入了数组计算等非常利于矩阵运算的功能。在数组运算时, Fortran 能够自动进行并行运算,这是很多编程语言不具备的。运用 F ortra n 语言,你能够运用很多现成的函数软件包,所以非常便利。关键词: Fortran ; Jacobi 迭代和 Gauss-Seidel 迭代;天体运动 1 设计思想这次的课程设计我选的是第三个课题,关于求解天体的运行轨道,原题如下: ●用 Jacobi 迭代和 Gauss-Seidel 迭代法求解线性方程组 AX= b 。一天文学家要确定一颗小行星绕太阳运行的轨道, 他在轨道平面内建立以太阳为原点的直角坐标系,在五个不同的点对小行星作了五次观察,测得轨道上五个点的坐标数据(单位:万公里)如下表所示: P 1P 2P 3P 4P 5 X 坐标 53605 58460 62859 66662 68894 Y 坐标 6026 11179 16954 23492 30890 由开普勒第一定律知, 小行星轨道为一椭圆, 椭圆的一般方程可表示为: a 1x 2 +2a 2 xy+a 3y 2 +2a 4 x+2a 5 y+1=0 分别将五个点的数据代入椭圆一般方程中, 得到线性方程组, 求出待定系数 a 1 ,a 2 ,a 3 ,a 4 ,a 5 。绘制行星绕太阳运行的轨道。从题目中观察到一共需要五组数据联立成方程组才能将 a 1 ,a 2 ,a 3 ,a 4 ,a 5 求出, 自然想到运用 Jacobi 迭代和 Gauss-Seidel 迭代法求解线性方程组 AX=B 的题型, 其中 A为 5*5 的矩阵,X、B 为数组, 分别包含 a 1 ,a 2 ,a 3 ,a 4 ,a 5 和系数。同时为了满足程序的实用性我将 Gauss-Seidel 迭代法设计成了子例行程序,既方便程序的设计同时也有利于最后的调试与运行。另外, 为了对比精度我还设计了另一个子例行程序:高斯消元法,将其中输出的数据设定为单精度,而将 Gauss-Seidel 迭代法中的数据设为双精度,两相对比即可找出最符合实际的方案。基于实践的要求, 对数据的输入我采用的是从文本输入, 再从文本输出, 格式。其实 Excel 也是理想的文件输入格式,即可以在程序中直接调用又可以灵活的控制输出。除了这些在对方程系数的输入上我设计了该程序的第三个子例行程序, 这样虽然表面上有点多余但是使得整个程序的灵活性和可操作性上有了很大的提高。画图方面我很自然的想到用 QuickWin 来作图,画图中主要用到的是描点法, 将每一个符合方程的解都描绘出来, 最终形成一条光滑的曲线。最终我将所有的程序都放在了同一个文件下进行操作, 涉及到画图程序和赋值主程序相冲突的问题, 于是便将画图设计成子例行程序 Subroutine huatu() ,在主程序中对其进行调用,程序得以完成。 2 系统设计与实现整个系统是围绕行星运行的轨道而设计,系统的框架图如下: 贯穿程序始终的是 Gauss-Seidel 迭代法和高斯消元法,其中高由线性方程组绘制小行星绕太阳运行轨道的问题输入求解输出椭圆的一般方程五点数据计算响应拟合文件储存绘制图形高斯消元法 Gauss-Seidel 迭代斯消元法的基本运算原则是利用任何方程式乘上常数都不会改变其解答的原理, 将原方程组乘以适当的常数后, 作相互加减处理, 使系数矩阵的对角线全部变成 1 ,且使其左下角元素全变成 0 ,再由最后一个方程式由下往上代入,即可求出方程的解。而 Gauss-Seidel 迭代法与高斯消元法相似,只是 Gauss-Seidel 迭代法每迭代一次只需计算一次矩阵与向量的乘法。其运算公式如下: Gauss-Seid

FORTRAN语言课程设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xxj16588
  • 文件大小92 KB
  • 时间2017-02-20