网站大量收购闲置独家精品文档,联系QQ:2885784924

第6章循环资料.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.6 循环与文件操作:文件定位 编写一个程序,接收一组非负的实数值,并将其保存在一个临时文件中。数据输入后,程序应询问用户对什么数据记录感兴趣,然后从磁盘文件中重新找到并显示这个数值。 程序只读取正数或者零值,可以使用一个负数作为终止程序输入操作的标记。 遇到负数时,程序就询问用户要显示的记录。程序查看是否输入了有效的记录号,如果记录号是有效的,程序反绕文件并向前读取到该记录号处,将这个记录的内容显示给用户。 * 6.6 循环与文件操作:文件定位 Program scratch_file Implicit none Integer:: icount=0, irec, j !---------------------------------- Open (unit=8,status=‘scratch’) Write(*,*) ‘Enter positive or zero input values’ Write(*,*) ‘A negative value terminates input’ !----------------------------------- Do Write(*,*) ‘Enter sample: ‘, icount+1 Read(*,*) data If (data0.) exit Icount=icount+1 Write(8,’(ES16.6)’) data End do * 6.6 循环与文件操作:文件定位 Write(*,*) ‘Which record do you want to see (1 to ‘, icount, ‘)’ Read(*,*) irec If ((irec=1) .and. (irec=icount) ) then Rewind(8) Do j=1,irec Read(8,*) data End do Write(*,*) “The value of record”,irec,’is’,data Else Write(*,*) ‘Illegal record number entered:’, irec End if Close (8) End program scratch_file * 6.6 循环与文件操作:直线拟合 一组噪声测量值 理论上:重力场恒定不变的条件下,下落物体的速度v(t)=at+v0,如果绘制下落物体的v-t图,则应该是沿着一条直线分布。 实验上:如果实验室测量一个物体相对于时间的速度,测量值可能不会沿着一条直线分布。 误差:测量值中总会包括一些噪音在内,从而得不到完美的测量值。 解决方案:最佳直线拟合,或者称为线性回归。 * 6.6 循环与文件操作:直线拟合 将一系列测量值最佳地拟合为直线的常规方法称为线性回归或最小二乘法。 假设有n对实验测量值(x1, y1),(x2, y2),…,(xn, yn),均为有误差的测量值。假设所有的不确定值都有相同的量级大小。要得到线性函数的最佳拟合: y=mx+b 这样的问题就变成了求解通过n个数据点的最佳直线所需的参数m和b。 * 6.6 循环与文件操作:直线拟合 通过n个数据点的最佳拟合直线,可通过极值原理求出斜率m和截距b的值: 在“例题3:统计分析”中,学会了如何求解Xbar 本例中学会如何从文件中获取数据(xi,yi)。 * 6.6 循环与文件操作:直线拟合 假设: 文件中数据的存放格式如图,总共有2列,且有一个表头。 数据的读入必须从第二行开始,数据的数量未知。 打开文件读入数据: 提示用户键入文件名字 打开文件并检查open错误 如果open文件有错,中止或者重新输入文件名字 如果open正确,开始循环读入数据 跳过第一行 开始读入数据并检查read错误,如果到文件尾部,跳出循环。 将读取的数据进行数据处理 将计数器+1 重复这个过程直到文件结尾,跳出循环。 * 6.6 循环与文件操作:直线拟合 PROGRAM least_squares_fit IMPLICIT NONE CHARACTER(len=24):: filename INTEGER:: ierror1, ierror2 Integer:: n=0 Real:: slope, y_int Real:: sumX=0., sumX2=0. Real:: sumXY=0., sumY=0. Real:: x, xbar, y, ybar * 6.6 循环与文件操作:直线拟合 write(*,*) Enter the data file name: Read (*,(A)) filename Open (unit=8, file=filename, status=OLD, IOSTAT=ierr

文档评论(0)

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

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

1亿VIP精品文档

相关文档