计算材料学考试_第1页
计算材料学考试_第2页
计算材料学考试_第3页
计算材料学考试_第4页
计算材料学考试_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、分别用前向2点后向2点,对称3点对称5点方法计算f(x=lnx在x=2处的一阶导数和误差,给出不同 h 值(0.5, 0.2, 0.1, 0.05, 0.02, 0.01, 0.005, 0.002,0.001,0.0005, 0.0002, 0.000 仆各方法的误差1.1对称三点法program lximplicit nonedoubleprecisio n,parameter : x=2.0d0 doubleprecisi on : exact,h,f_sym3,diff_sym3h=0.5d0exact=x*(-1do while (h>0write(*,* "En t

2、er value of h (<=0 to stop"read(*,* hif (h<=0.0 thenstop "h<=0"en diff_sym3=(dlog(X+h-dlog(x-h/(2*hdiff_sym3=exact-f_sym3write(*,*"h=",h,"F_SYM3=",f_sym3,"E_SYM3=",diff_sym3 enddoend program lx1.2前向两点法program lximplicit nonedoubleprecisio n,param

3、eter : x=2.0d0 doubleprecisi on : exact,h,f_sym3,diff_sym3 h=0.5d0exact=x*(-1do while (h>0write(*,* "Enter value of h (<=0 to stop"read(*,* hif (h<=0.0 thenstop "h<=0"en diff_sym3=(dlog(x+h-dlog(x/(hdiff_sym3=exact-f_sym3write(*,*"h=",h,"F_SYM3=",f

4、_sym3,"E_SYM3=",diff_sym3 en ddoend program lx1.3后向两点法program lximplicit nonedoubleprecisio n,parameter : x=2.0d0 doubleprecisi on : exact,h,f_sym3,diff_sym3 h=0.5d0exact=x*(-1do while (h>0write(*,* "Enter value of h (<=0 to stop"read(*,* hif (h<=0.0 thenstop "h<

5、=0"en diff_sym3=(dlog(x-dlog(x-h/(hdiff_sym3=exact-f_sym3write(*,*"h=",h,"F_SYM3=",f_sym3,"E_SYM3=",diff_sym3 en ddoend program lx1.4对称五点法program lximplicit nonedoubleprecisio n,parameter : x=2.0d0 doubleprecisi on : exact,h,f_sym5,diff_sym5h=0.5d0exact=x*(-1do whi

6、le (h>0write(*,* "Enter value of h (<=0 to stop"read(*,* hif (h<=0.0d0 thenstop "h<=0"en diff_sym5=(dlog(x-2*h-8*dlog(x-h+8*dlog(x+h-dlog(x+2 *h/(12*hdiff_sym5=exact-f_sym5write(*,"(5(A,F8.6,2X""h=",h,"F_SYM5=",f_sym5,"E_SYM5=",

7、diff_sym5 en ddoend program lx分别用梯形法,Simpson法,Simpson3/8法,Bode法计算2 0cos3dx xn给出8个不同N值下各方法的误差3.1梯形法doubleprecisi on function func(ximplicit nonedoubleprecisi on : xfun c=cos(3*xendfunction funcprogram in tegralimplicit nonein teger : i,n=1doubleprecisi on : pi,limit_dow n,limit_up doubleprecisi on :

8、exact,h,i nteg,summ,diff,x doubleprecisi on : funcexact=-1.0/3.0pi=acos(-1.0d0limit_dow n=0.0d0limit_up=pi/2.0do while(n > 0write(*,* "Enter value of N (eve n,>=2 "read(*,* nif(n<2 thenstop " n<2"en difh=(limit_up-limit_dow n/nsumm=fu nc(limit_dow ndo i=1, n-1x=i*hsum

9、m=summ+fu nc(x*2en ddosumm=summ+fu nc(limit_upin teg=h*summ/2diff=exact-i ntegwrite(*,"(A,l6,2X,5(A,F12.9,2X""N=", n, "h=",h," In teg=",i nteg,"ERROR=",diff enddoend program in tegral3.2辛普森法doubleprecisi on function func(ximplicit nonedoubleprecisi o

10、n : xfun c=cos(3*xendfunction funcprogram in tegralimplicit nonein teger : i,fac ,n=1doubleprecisi on : pi,limit_dow n,limit_up doubleprecisi on : exact,h,i nteg,summ,diff,x doubleprecisi on : funcexact=-1.0/3.0pi=acos(-1.0d0limit_dow n=0.0d0limit_up=pi/2do while(n > 0write(*,* "Enter value

11、of N (eve n,>=2 " read(*,* nif(n<2 thenstop " n<2"en difh=(limit_up-limit_dow n/nsumm=fu nc(limit_dow nfac=2do i=1, n-1if(fac=2 the nfac=4elsefac=2en difx=i*hsumm=summ+fu nc(x*facen ddosumm=summ+fu nc(limit_upin teg=h*summ/3diff=exact-i ntegwrite(*,"(A,l6,2X,5(A,F12.9,2X

12、""N=", n, "h=",h,"I nteg=",i nteg,"ERROR=",diff en ddoend program in tegral3.3辛普森3/8法doubleprecisi on function func(ximplicit nonedoubleprecisi on : xfun c=cos(3*xendfunction funcprogram in tegralimplicit nonein teger : i,n=1doubleprecisi on : pi,limit_do

13、w n,limit_updoubleprecisi on : exact,h,i nteg,summ,diff,x,modi real : fac(3doubleprecisi on : funcexact=-1.0/3.0pi=acos(-1.0d0limit_dow n=O.OdOlimit_up=pi/2do while(n > 0write(*,* "Enter value of N (eve n,>=2 "read(*,* nif(n<2 thenstop " n<2"en difh=(limit_up-limit_do

14、w n/n summ=fu nc(limit_dow n do i=1, n-1 modi=mod(i,3 if(modi=0 the n fac(1=2elseif(modi=1 the nfac(2=3elseif(modi=2 the n fac(3=3 en difx=i*hsumm=summ+fu nc(x*fac(modi+1 en ddosumm=summ+fu nc(limit_upin teg=3*h*summ/8diff=exact-i ntegwrite(*,"(A,l6,2X,5(A,F12.9,2X""N=", n, "

15、;h=",h,"l nteg=",i nteg,"ERROR=",diffen ddoend program in tegral3.4 Bode 法doubleprecisi on function func(ximplicit nonedoubleprecisi on : xfun c=cos(3*xendfunction funcprogram in tegralimplicit nonein teger : i,n=1doubleprecisi on : pi,limit_dow n,limit_updoubleprecisi on :

16、exact,h,i nteg,summ,diff,x,modi real : fac(4doubleprecisi on : funcexact=-1.0/3.0pi=acos(-1.0d0limit down=O.OdOlimit_up=pi/2do while(n > 0write(*,* "Enter value of N (eve n,>=2 "read(*,* nif(n<2 thenstop " n<2"en difh=(limit_up-limit_dow n/nsumm=fu nc(limit_dow n*7do

17、i=1, n-1modi=mod(i,4if(modi=0 the nfac(1=14elseif(modi=1 the nfac(2=32elseif(modi=2 the nfac(3=12elseif(modi=3 the nfac(4=32en difx=i*hsumm=summ+fu nc(x*fac(modi+1en ddosumm=summ+fu nc(limit_up*7in teg=2*h*summ/45diff=exact-i ntegwrite(*,"(A,l6,2X,5(A,F12.9,2X""N=", n, "h=&q

18、uot;,h,"I nteg=",i nteg,"ERROR=",diffen ddoend program in tegral分别用搜索法,牛顿法,弦割法求解f(x=x2-5的正根,改变初始猜测值,观察各方法的收敛行为5.1搜索法doubleprecisi on function func(ximplicit nonedoubleprecisi on : xfun c=x*2-5endfunction funcprogram rootimplicit nonein teger : iter=0doubleprecision : x,dx,guess_s

19、t,tolx,fold,exact,funcexact=sqrt(5.0d0guess_st=1.0d0dx=0.5tolx=1.0d-8x=guess_stfold=f unc(xdo while(abs(dx > tolxiter=ite r+1x=x+dxif(fold*fu nc(x>0.0 the ncycleelsex=x-dxdx=dx/2en difwrite(*,"(l4,6f12.8" iter,x,exact-x enddoend program root5.2牛顿法doubleprecisi on function func(ximplicit nonedoubleprecisi on : xfun c=x*2-5endfunction funcdoubleprecisi on function fun c_prime (ximplicit nonedoubleprecisi on : xfun c_prime=2*xendfunction fun c_primeprogram rootimplicit nonein teger : iter=0doubleprecision : x,xO,dx,guess_st,tolx,exact,func,func_pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论