fortran语言课程设计

fortran语言课程设计

ID:20262941

大小:106.50 KB

页数:12页

时间:2018-10-11

fortran语言课程设计_第1页
fortran语言课程设计_第2页
fortran语言课程设计_第3页
fortran语言课程设计_第4页
fortran语言课程设计_第5页
资源描述:

《fortran语言课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、FORTRAN语言课程设计摘要:科技的日新月异使得计算机领域不断取得新的研究成果。计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活和科研中也越来越离不开计算机。特别是在天体运动方面需要运用到计算机处理大量的数据。这次我选的实践课题是用Jacobi迭代和Gauss-Seidel迭代法求解线性方程组AX=B,这其中涉及的就是天体运动的轨迹问题,我利用从FORTRAN90中学到的迭代、循环、子程序等知识设计程序,通过FortranPowerStation4.0进行运行、调试,不得不提的是QuickWin,它在绘制行

2、星的运动轨迹上发挥出了相当大的贡献。通过这次的实践我从中充分体会到了Fortran语言接近数学公式的自然描述,在计算机里具有很高的执行效率的最大特性。同时我也看到了Fortran语言是一种极具发展潜力的语言,在数值计算中,Fortran语言仍然不可替代。Fortran90标准引入了数组计算等非常利于矩阵运算的功能。在数组运算时,Fortran能够自动进行并行运算,这是很多编程语言不具备的。运用Fortran语言,你能够运用很多现成的函数软件包,所以非常便利。关键词:Fortran;Jacobi迭代和Gauss-Seidel迭代;天体运动1设

3、计思想这次的课程设计我选的是第三个课题,关于求解天体的运行轨道,原题如下:●用Jacobi迭代和Gauss-Seidel迭代法求解线性方程组AX=b。一天文学家要确定一颗小行星绕太阳运行的轨道,他在轨道平面内建立以太阳为原点的直角坐标系,在五个不同的点对小行星作了五次观察,测得轨道上五个点的坐标数据(单位:万公里)如下表所示:P1P2P3P4P5X坐标5360558460628596666268894Y坐标602611179169542349230890由开普勒第一定律知,小行星轨道为一椭圆,椭圆的一般方程可表示为:a1x2+2a2xy+a

4、3y2+2a4x+2a5y+1=0分别将五个点的数据代入椭圆一般方程中,得到线性方程组,求出待定系数a1,a2,a3,a4,a5。绘制行星绕太阳运行的轨道。从题目中观察到一共需要五组数据联立成方程组才能将a1,a2,a3,a4,a5求出,自然想到运用Jacobi迭代和Gauss-Seidel迭代法求解线性方程组AX=B的题型,其中A为5*5的矩阵,X、B为数组,分别包含a1,a2,a3,a4,a5和系数。同时为了满足程序的实用性我将Gauss-Seidel迭代法设计成了子例行程序,既方便程序的设计同时也有利于最后的调试与运行。另外,为了对比

5、精度我还设计了另一个子例行程序:高斯消元法,将其中输出的数据设定为单精度,而将Gauss-Seidel迭代法中的数据设为双精度,两相对比即可找出最符合实际的方案。基于实践的要求,对数据的输入我采用的是从文本输入,再从文本输出,格式选用的为.txt格式。其实Excel中的.prn也是理想的文件输入格式,即可以在程序中直接调用又可以灵活的控制输出。除了这些在对方程系数的输入上我设计了该程序的第三个子例行程序,这样虽然表面上有点多余但是使得整个程序的灵活性和可操作性上有了很大的提高。画图方面我很自然的想到用QuickWin来作图,画图中主要用到的

6、是描点法,将每一个符合方程的解都描绘出来,最终形成一条光滑的曲线。最终我将所有的程序都放在了同一个文件下进行操作,涉及到画图程序和赋值主程序相冲突的问题,于是便将画图设计成子例行程序Subroutinehuatu(),在主程序中对其进行调用,程序得以完成。2系统设计与实现由线性方程组绘制小行星绕太阳运行轨道的问题输入求解输出椭圆的一般方程五点数据计算响应拟合文件储存数据绘制图形高斯消元法Gauss-Seidel迭代整个系统是围绕行星运行的轨道而设计,系统的框架图如下:贯穿程序始终的是Gauss-Seidel迭代法和高斯消元法,其中高斯消元法

7、的基本运算原则是利用任何方程式乘上常数都不会改变其解答的原理,将原方程组乘以适当的常数后,作相互加减处理,使系数矩阵的对角线全部变成1,且使其左下角元素全变成0,再由最后一个方程式由下往上代入,即可求出方程的解。而Gauss-Seidel迭代法与高斯消元法相似,只是Gauss-Seidel迭代法每迭代一次只需计算一次矩阵与向量的乘法。其运算公式如下:Gauss-Seidel迭代法:x(0)=(x1(0),x2(0),x3(0),…xn(0))Txi(k+1)=(bi-ijxj(k+1)-ijxj(k))ii(i=1,2,…,n;k=0,1,

8、…)运用Gauss-Seidel迭代法的算法源程序编码如下:dimensiona(n,n),b(n),x(n)reala,b,x,t,s,p,qdoi=1,nif(abs((a(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。