2012年中南大学FORTRAN课程设计 2.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2012年中南大学FORTRAN课程设计 2

中南大学 本科生课程设计(实践)任务书、设计报告 (计算机程序设计基础—FORTRAN) 题 目 线性病态方程组问题 学生姓名 指导教师 学 院 专业班级 学生学号 计算机基础教学实验中心 2012年6月29日 1题目 下面是一个线性病态方程组: (1)求方程的解。(2)将方程右边向量元素b3改为0.53,再求解,并比较b3的变化和解的相对变化。(3)计算系数矩阵A的条件数并分析结论。 2设计思想 逆矩阵法求解: 3 系统功能及系统详细设计 1)主程序中,设计单位矩阵b 读文件d.txt给矩阵数组a1赋值,令a1=a2 2)调用Inverse_matrix()求逆矩阵 将要求矩阵a和单位矩b阵一起做行变换 用三个三重do循环来实现对矩阵a2的如下行变化,同时b也跟着进行行的变化。 * * * 1 * * 1 0 0 0 * * 0 1 * 0 1 0 0 0 * 0 0 1 0 0 1 最后,得到的b保留了a2的逆矩阵。 若主对角线上的数为零,调用swap换行。用逻辑变量f检测a2行列式的值是否为零。如果为零,则无唯一解。 3)调用cond,求条件数co。通过max函数,每次比较俩数,得出a1,b的范数。 4)读文件d.txt,将方程右边的向量元素分别存入数组c1(3),c2(3)中,用do循环多次求和,求出解向量——数组x1(3)和x2(3),并将x1,x2写入a.txt中 5)在quicwin的工作平台中,建立text file。 设置背景为白色,屏幕最大化。建立坐标轴,用rectangle命令,并读出a.txt,分别用红色和蓝色来绘制x1,x2的条形图,并绘制图标。 4遇到的问题与解决的办法 A if(r= =0) 错写成if(r=0)。= =表判断,=表赋值 B 当方程无唯一解时如何停止运算?用exit 跳出所在的循环(若在几重循环中,跳出最里面的,还会继续做外部循环),用return跳出子程序 C do k=3,1无法运算。添加步长改为k=3.1,-1 D 采用f20.0格式读,a.txt中一有空格就报错。 用read(10,*)x,y,z,c去读(遇到空格自动读下一个数;一行读过,再读就读到下一行) E将矩阵转化为上三角错误。 如:1.一二行为(-1,2,3) 和(2,3,5),由’r=a(2,1) ; a(2,1)= a(2,1) –a(1,1)*r’得到a(2,1)=4,而不是0。 用if判断r*a(1,1)是否和a(2,1)同号。异号则,r= -r 2.未用r保留那商,而做运算a(2,1)= a(2,1) –a(1,1)* a(2,1) /a(1,1),第二行的其他数不变。因为第一次运算后,a(2,1)=0 F error: divided by zero 读数有误,读出0,且让它做了分母 G error:main_already defined in obj / multidefined 删去相同内容的文件,保留一个即可。 H 在do I do j中用print*,((a(I,j),i=1,3),j=1,3) 检查,输出错误矩阵。 输出的I,j变量与循环中的变量重复,换变量。相同的,子程序与主程序也存在变量争议,名称方面我尽量用不同字母代替避免搞混,如:n,n1,n2(swap()参数和主程序不冲突时,要调用的a,b,n,也可以定义subroutine swap(a,b,n)),类型方面我让它们保持一致,如都说明为real(8)。 J 文本文档不能读。1读的格式不对,应正确使用a,e,f,i。2路径错误。存在默认目录下不可靠,还是写路径的好,如:d:\MSDEV\Projects\a.txt 3有重名文档,应删去 K error: can’t open for writng 。将菜单栏里的debug改为 release L fatal error c1007 重新安装fortran M 定义real(8) x(3),写 x(1:1)报错:incorrect type of different ranking。If (x(1:1)1)也无法运行,系统以为它是字符。 一维数组写x(1)才对,赋值或动态分配时才可用x(:) N 绘图运行有提示:terminated with code 0 exit window 在end前一行添加read(*,*) ! 按回车结束 O error: unresolved external symbol_A@ 在子程序中,用了没定义的主程序的数组a(在换名字时漏掉了) 5总结 通过实践,我

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档