- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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总结
通过实践,我
您可能关注的文档
- AC80B在数控冲床上的应用.docx
- 92管段设计流量计算.ppt
- KEMCO碎砂生产线项目分析.doc
- iPhone web app 开发教材(六).docx
- 8贸易条约和协定.ppt
- IIJava数据库编程-JDBC概述.ppt
- IIIIJava数据库编程-执行数据库更新操作.ppt
- 8-2-3内审不符合项.doc
- h第八章结构和联合.doc
- 6电磁学课件.ppt
- 携程产品营销经理岗面试题库参考答案和答题要点.docx
- 携程产品经理岗面试题库参考答案和答题要点.docx
- 携程供应链管理专员岗面试题库参考答案和答题要点.docx
- 携程交易数据分析师岗面试题库参考答案和答题要点.docx
- 携程公共关系专员岗面试题库参考答案和答题要点.docx
- 携程内部培训专员岗面试题库参考答案和答题要点.docx
- 福建省福州市2023-2024学年高二上学期期末测试英语试卷(含答案).pdf
- 携程人力资源专员岗面试题库参考答案和答题要点.docx
- 福建省三明市2023-2024学年高二上学期期末测试英语试卷(含答案).docx
- 福建省三明市2023-2024学年高二上学期期末测试英语试卷(含答案).pdf
文档评论(0)