收藏 分享(赏)

第七讲-物理学中定积分是数值计算方法.ppt

上传人:无敌 文档编号:377875 上传时间:2018-04-03 格式:PPT 页数:18 大小:801KB
下载 相关 举报
第七讲-物理学中定积分是数值计算方法.ppt_第1页
第1页 / 共18页
第七讲-物理学中定积分是数值计算方法.ppt_第2页
第2页 / 共18页
第七讲-物理学中定积分是数值计算方法.ppt_第3页
第3页 / 共18页
第七讲-物理学中定积分是数值计算方法.ppt_第4页
第4页 / 共18页
第七讲-物理学中定积分是数值计算方法.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、2018/4/3,1,一、基本的数值积分方法,数值求该面积:一般都是将积分区间a,b分成有限多个小段(每段宽h=(b-a)/n),然后“近似”求出每小段的“面积”,再把它们加起来,以此作为积分的近似值。,2018/4/3,2,主要有3种对小段面积的近似方法:,2018/4/3,3,注意:利用了x0=a、xn=b,且xi=a+ih。,2018/4/3,4,(3)辛卜生(Simpson)法,该四边形的面积为:,2018/4/3,5,因此,积分近似为:,注意:积分区间要分成偶数(2n)小段,每段长度h=(b-a)/(2n),而且f(x0)=a(即第一段的左边)、f(x2n)=b(最后一段2n的右边)

2、,xi=a+ih(即第i段的右边)。,2018/4/3,6,Subroutine simp(a,b,f,n,s)h=(b-a)/(2*n)s=0.5*(f(a)-f(b)do i=1,n s1=f(a+(2*i-1)*h) s2=f(a+2*i*h) s=s+2*s1+s2end do s=(b-a)*s/(3*n)end,根据上式,就可以编写相应的计算Fortran子程序:,例题:运用3种基本数值积分方法计算,!矩形法:n=100f(x)=log(1+x)/(1+x*2)write(*,*) input a,b,n=?read*, a,b,nh=(b-a)/ns=0.0do i=1,n s1

3、=f(a+i*h) s=s+h*s1end dowrite(*,*) n,sEnd运行结果:100,0.2739220,!梯形法:n=100f(x)=log(1+x)/(1+x*2)write(*,*) input a,b,n=?read*, a,b,nh=(b-a)/ns=0.5*h*(f(a)+f(b)do i=1,n-1 s=s+h*f(a+i*h)end dowrite(*,*) n,sEnd运行结果:100,0.2721891,2018/4/3,7,!辛卜生法:2n=100f(x)=log(1+x)/(1+x*2)write(*,*) input a,b,n=?read*, a,b,

4、nh=(b-a)/(2*n)s=0.5*(f(a)-f(b)do i=1,n s1=f(a+(2*i-1)*h) s2=f(a+2*i*h) s=s+2*s1+s2end do s=(b-a)*s/(3*n)write(*,*) 2*n,sEnd运行结果:100,0.2721982,2018/4/3,8,2018/4/3,9,表控输出“Write(*,*) S”语句或“print*,S”语句,是把计算结果“S”输出到显示器上。但是很多时候需要把计算数据保存到某个文件之中,这时需要利用Open语句+write语句配套语句实现:,二、计算数据保存到某个文件中的方法,而且Open语句放在类型说明之后

5、,数据文件默认放在相应的项目工作间的文件夹之中。,2018/4/3,10,计算物理课程考试题(1):,2018/4/3,11,求xy平面上任一点M(x,y)的电势V(x,y):,计算V(x,y)的Fortran程序:,Program mainDouble precision t1,t2,x,y,VmOpen(9,file=Vm.dat,status=unknown)T1=3.14/3T2=6.28/3Do i=-300,300,1X=0.01*i Do j=-300,300,1 Y=0.01*j Call Vsimp(t1,t2,x,y,Vm) Write(*,*) x,y,Vm Write(

6、9,*) x,y,Vm End doEnd doEnd,Function f(t,x,y) Double precision t,x,y,fF=1.0/dsqrt(x-dcos(t)*2+(y-dsin(t)*2)End,Subroutine Vsimp(a,b,x,y,s)Double precision a,b,x,y,s,f,h,s1,s2External fN=1000H=(b-a)/(2*n)S=0.5*(f(a,x,y)-f(b,x,y)Do i=1,n S1=f(a+(2*i-1)*h),x,y) S2=f(a+2*i*h),x,y) S=s+2*s1+s2End do S=(b

7、-a)*s/(3*n)End,绘制V(x,y)的分布:,(1)画出V(x,y)的分布:3维图;-3x,y3,(2)画出V(x,y)沿着x方向的分布:2维图;取y=0.4,0.6, 1.2,1.4;,(3)画出V(x,y)沿着y方向的分布:2维图;取x=-0.6,0.6, -0.8,0.8;,14,计算物理课程考试题(2):,15,求xy平面上任一点M(x,y)的磁场B(x,y):,Program mainDouble precision t1,t2,x,y,BmOpen(9,file=Bm.dat,status=unknown)T1=3.14/3T2=6.28/3Do i=-300,300,1

8、X=0.01*i Do j=-300,300,1 Y=0.01*j Call Bsimp(t1,t2,x,y,Bm) Write(*,*) x,y,Bm Write(9,*) x,y,Bm End doEnd doEnd,16,Function f(t,x,y) Double precision t,x,y,fF=(1.0-x*dcos(t)-y*dsin(t)/(dsqrt(x-dcos(t)*2+(y-dsin(t)*2)*3)End,Subroutine Bsimp(a,b,x,y,s)Double precision a,b,x,y,s,f,h,s1,s2External fN=100

9、0H=(b-a)/(2*n)S=0.5*(f(a,x,y)-f(b,x,y)Do i=1,n S1=f(a+(2*i-1)*h),x,y) S2=f(a+2*i*h),x,y) S=s+2*s1+s2End do S=(b-a)*s/(3*n)End,计算B(x,y)的Fortran程序:,绘制B(x,y)的分布:,(1)画出B(x,y)的分布:3维图;-3x,y3,(2)画出B(x,y)沿着x方向的分布:2维图;取y=0.4,0.6, 1.2,1.4;,(3)画出B(x,y)沿着y方向的分布:2维图;取x=-0.6,0.6, -0.8,0.8;,18,图2 磁场沿着水平方向的分布情况。,图3.竖直方向磁场的分布。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报