《2022年任务书 2.pdf》由会员分享,可在线阅读,更多相关《2022年任务书 2.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机程序设计基础( FORTRAN) 课程设计任务书一、实践目的通过本课程设计, 培养程序设计能力以及综合解决实际问题的能力。通过自己分析问题、寻求算法、编写、调试程序的过程,掌握FORTRAN程序设计与调试方法,提高灵活运用所学知识解决问题的能力。二、设计任务(单号做1,双号做2)1线性方程组求解问题。一物理系统可用下列线性方程组来表示:gmgmNNaammmm2121212111001cos000sin00cos0sin0sincos从文件中读入m1、m2 和 的值,求a1、a2、N1 和 N2 的值。其中g 取 9.8,输入 时以角度为单位。要求:(1)分别用两种方法(例如高斯消去法、
2、矩阵求逆法、三角分解法、追赶法等),定义求解线性方程组Ax=b 的子程序,要求该子程序能求解任意线性方程组。(2)在主程序中分别调用上面定义的两个子程序,并对求解结果进行对比分析。(3)绘制以上两个方法所求得的方程解的数据分布图。2线性病态方程组问题。下面是一个线性病态方程组:52.067.095.06/15/14/15/14/13/14/13/12/1321xxx(1)求方程的解。(2)将方程右边向量元素b3改为 0.53,再求解,并比较b3的变化和解的相对变化。(3)计算系数矩阵A 的条件数并分析结论。提 示 : 矩 阵A的 条 件 数 等 于A的 范 数 与A的 逆 矩 阵 的 范 数
3、的 乘 积 , 即1)(AAAcond。这样定义的条件数总是大于1 的。条件数越接近于1,矩阵的性能越 好 , 反 之 , 矩 阵 的 性 能 越 差 。 矩 阵A的 条 件 数1()cond AAA, 其 中11maxmijjniAa,aij系矩阵 A 的元素。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 要求:(1)方程的系数矩阵、常数向量均从文件中读入。(2)定义求解线性方程组Ax=b 的子程序,要求该子程序能求解任意
4、线性方程组。(3)在主程序中调用子程序,并对求解结果进行对比分析。(4)绘制常数向量修改前后所求得的方程解的数据分布图。三、设计报告1任务内容:描述学生所选题目(或主题)的内容。2系统开发设计思想。系统结构图、设计流程图,系统环境等。3系统功能及系统详细设计。系统功能分析及功能结构图、模块描述及模块流程图、模块实现等。4遇到的问题与解决的办法。5总结6参考文献。四、参考文献1本学期教材2徐士良 Fortran 常用算法程序集(第二版 )清华大学出版社3计算方法方面的书籍4网上资料五、考核方式与评分办法1 程序调试结果占总课程成绩的60%。2 实验过程评价占课程总成绩的20%。3 实验报告评价占
5、课程总成绩的20%。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 课程设计的有关规定1实践报告正文以3 页左右为宜,大标题宋体二号字,小标题宋体四号加粗,正文字号为小四号,行距1.5 倍行距。不要使用与实践或课程设计内容无关的装饰性图案,课程设计的实践报告不需要附源代码。2实践报告靠左侧竖向边线装订,使用统一格式的封面,包括:学号、姓名、指导教师名称、课程设计名称、院系班级名称,参见附件1。3实践报告的内容(1)任务内容:描
6、述学生所选题目(或主题)的内容。(2)系统开发设计思想。系统结构图、设计流程图,系统环境等。(3)系统功能及系统详细设计。系统功能分析及功能结构图,模块描述及模块结构图,模块实现等。(4)遇到的问题与解决的办法。(5)总结(6)参考文献(要按照格式、具体列出所使用的参考文献)4若发现抄袭的实践报告,按0 分计。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 中南大学本科生课程设计 (实践)任务书、设计报告(计算机程序设计基础
7、FORTRAN)题目线性病态方程组问题。学生姓名瞿同明指导教师陈语林学院土木工程学院专业班级土建类1007班学生学号1208100702 计算机基础教学实验中心2011 年7 月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 参考资料:QuickWin 绘图功能1QuickWin 应用程序的创建过程在 Microsoft Fortran PowerStation中调用 QuickWin 库来创建QuickWin 应用程序。2
8、基本绘图函数例:绘制正弦曲线USE MSFLIB INTEGER(2) result INTEGER(4) color TYPE(xycoord) XY result=INITIALIZEFONTS() !初始化前景result=SETFONT(Arialh18w10i) !设置前景字体color=SETCOLORRGB(#0000ff) !设置当前绘图颜色为红色CALL SETVIEWORG(200,200,XY) !改变视口坐标原点位置CALL MOVETO(INT2(-50),INT2(0),XY) !移动到指定位置result=LINETO(INT2(400),INT2(0) !绘制直
9、线CALL MOVETO(INT2(-10),INT2(5),XY) CALL OUTGTEXT(0) ! 输出字符DO x=0,360,3 y=-SIN(x/180*3.141593)*100 result=SETPIXELRGB(INT2(x),INT2(y), #ffffff) ! 指定像素点色值END DO END 说明:(1)视口 (View Port) 的设置将视口坐标原点移动到指定的物理点:CALL SETVIEWORG(x,y,origin) 其中x、 y 均为INTEGER(2) 型输入变量,表示视口新原点的物理坐标。origin为派生类型XYCOORD 。(2)图形位置函数
10、位置移动: CALL MOVETO(x,y,origin) (3)颜色函数图形色值设定:result=SETCOLORRGB(color) 参数 color、函数返回值result 为 INTEGER(4) 型。RGB 色彩在其每一个色值中,三原色各表示成2 位 16 进制数字。从右往坐依次为红、绿、蓝;数字越大,所对应的颜色强度越强。(4)图元绘制函数从当前位置向指定位置画一条直线:res=LINETO(x ,y) 其中函数返回值res 为 INTEGER(2) 型(5)区域填充函数三原色填充 : result=FLOODFILLRGB(color) (6)像素函数指定像素点色值名师资料总结
11、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - res=SETPIXELRGB(x,y,color) (7)文本函数字体初始化:res=INITIALIZEFONTS( ) 设置字体: res=SETFONT(options) options 为描述字体特征的字符,如res=SETFONT( h18w10)设定字符高度为18,宽度为 10,其单位是像素。图形文本输出:CALL OUTGTEXT(text),其中 text 为字符型变量或常
12、量。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - use msflib integer(2) draw integer key integer x,y,wx,wy type studentrecord !定义变量型integer num character(15) name integer math integer english integer computer end type type(studentrecord),d
13、imension(8):st type(xycoord)xy draw=setcolorrgb(#00ff00) call moveto(40,150,xy) call outgtext(0) call moveto(25,50,xy) call outgtext(100) call moveto(30,100,xy) ! 画标注call outgtext(50) call moveto(100,150,xy) call outgtext( 数学 ) call moveto(180,150,xy) call outgtext( 英语 ) call moveto(260,150,xy) call
14、 outgtext( 编程 ) call moveto(120,20,xy) call outgtext( 输入您所要查找的学生学号) x=50 y=50 call moveto(int2(x),int2(y),xy) wx=-5 wy=5 x=x+wx y=y+wy draw=lineto(x,y) call moveto(55,55,xy) ! 纵坐标画箭头wx=5 wy=-5 x=x+wx y=y+wy draw=lineto(x,y) call moveto(50,50,xy) wx=0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
15、- - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - wy=100 x=x+wx y=y+wy draw=lineto(x,y) ! 画坐标轴wx=300 wy=0 x=x+wx y=y+wy draw=lineto(x,y) wx=-5 wy=-5 x=x+wx y=y+wy draw=lineto(x,y) ! 横坐标轴画箭头call moveto(345,155,xy) wx=5 wy=5 x=x+wx y=y+wy draw=lineto(x,y) 丁婷的 cada.txt,form=formatted,access=s
16、equential) read(10,100) do i=1,8 read(10,200)st(i).num,st(i).name,st(i).math,st(i).english,st(i).computer enddo 丁婷的 cadd.txt,form=formatted,access=sequential) 100 format(5a45) 200 format(i3,5x,a8,i3,5x,2i8) read*,key ! 调用数据n=8 i=1 do while(st(i).num/=key).and.(i=n) i=i+1 enddo if(i=n)then math=st(i)
17、.math english=st(i).english computer=st(i).computer endif call moveto(100,150,xy) wx=-250 wy=-math x=x+wx y=y+wy 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - draw=lineto(x,y) ! 画图wx=30 wy=0 x=x+wx y=y+wy draw=lineto(x,y) wx=0 wy=math x=
18、x+wx y=y+wy draw=lineto(x,y) call moveto(180,150,xy) wx=50 wy=-english x=x+wx y=y+wy draw=lineto(x,y) ! 画图wx=30 wy=0 x=x+wx y=y+wy draw=lineto(x,y) wx=0 wy=english x=x+wx y=y+wy draw=lineto(x,y) call moveto(260,150,xy) wx=50 wy=-computer x=x+wx y=y+wy draw=lineto(x,y) ! 画图wx=30 wy=0 x=x+wx y=y+wy dr
19、aw=lineto(x,y) wx=0 wy=computer x=x+wx y=y+wy draw=lineto(x,y) end 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - 网上下载的参考资料1解线性代数方程组Ax=b,若 A 的条件数( MATLAB 中用 cond(A)求 A 的条件数)很大,意味着原始数据A,b 变化微小,也有可能引起解的极大变化,此时称方程组是病态的。条件数是永远大于等于1。条件数很大时,线性代
20、数方程组有可能是病态的。条件数等于A 的 2 范数乘以 A 逆的 2 范数。Hilbert 矩阵是非常著名的对称正定的病态矩阵,经常用来检验算法的数值稳定性的好坏。参考资料: 数值分析定义矩阵A 的条件数等于A 的范数与A 的逆的范数的乘积,即cond(A)= A A-1 ,对应矩阵的3 种范数,相应地可以定义3 种条件数。函数cond(A,1):1范数cond(A,2) 或 cond(A):2范数cond(A,inf):无穷范数2条件数的定义,我就不重复了。条件数事实上表示了矩阵计算对于误差的敏感性。对于线性方程组 Ax=b,如果 A 的条件数大, b 的微小改变就能引起解x 较大的改变,数
21、值稳定性差。 如果 A 的条件数小, b 有微小的改变, x 的改变也很微小,数值稳定性好。它也可以表示b 不变,而 A 有微小改变时, x 的变化情况。比如线性方程组1 2 x = 4 3.999 1 y 7.999 的解是 (x,y)=(2,1), 而1 2 x = 4.001 3.999 1 y 7.998 的解是 (x,y)=(-3.999,4.000) 可见 b 很小的扰动就引起了x 很大的变化,这就是A 矩阵条件数大的表现。一个极端的例子,当A奇异时,条件数为无穷,这时即使不改变b,x 也可以改变。奇异的本质原因在于矩阵有0 特征值, x 在对应特征向量的方向上运动不改变 Ax 的值。如果一个特征值比其它特征值在数量级上小很多,x 在对应特征向量方向上很大的移动才能产生b 微小的变化,这就解释了为什么这个矩阵为什么会有大的条件数,事实上,正规阵在二范数下的条件数就可以表示成 abs( 最大特征值 / 最小特征值 ) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -
限制150内