用函数指针概念求定积分.docx
/*用函数指针概念求定积分(复化Simpson法)*/ttinclude<stdio.h>#include<math.h>doublefl(doublex)*fl(x)是被积函数1*/(returnl(l+x*x);)doublef2(doublex)*f2(x)是被积函数2*/(returnsin(x);)doubleSimp(doublea,doubleb,double(*fun)()*形参b,a是积分的上下限,函数指针fun指向被积函数/#defineNUM100越大越精doubleSimp=O,dx=(b-a)NUM;inti;doublexl=a,×2=a+dx;for(i=0;i<NUM;i+,xl=x2,x2+=dx)Simp+=(fun(xl)+4*fun(xl+x2)2)+fun(x2)6*dx;returnSimp;main()(*用复化辛卜生法分别计算卜.列定积分111fl(l+×2)d×fsin(x)dx007doublePi=3.1415926535898;Printfr第一个定积分2%lfn",SimP(O,l,fl);Printf("第二个定积分七lfn",Simp(O,Pi,);