c5.cpp
上传用户:zhdd911129
上传日期:2007-05-11
资源大小:722k
文件大小:1k
源码类别:

matlab例程

开发平台:

Matlab

  1. //C5.cpp
  2. //Composite Simpson Rule
  3. #include<iostream.h>
  4. #include<math.h>
  5. double f(double x)
  6. {
  7. if (x==0)
  8. return 1;
  9. else
  10.     return sin(x)/(x);
  11. }
  12. double ComSimp(double x0,double xn,int n)
  13. {
  14. double s1,s2,h;
  15. int i;
  16. h=(xn-x0)/n;s1=f(x0+h/2);s2=0;        //Initialization
  17. for (i=1;i<n;i++)
  18. {
  19. s1+=f(x0+i*h+h/2);
  20. s2+=f(x0+i*h);
  21. }
  22.     return h/6*(f(x0)+4*s1+2*s2+f(xn));
  23. }
  24. void main()
  25. {
  26. double x0=0,xn=1;
  27. int n=2;
  28. cout<<ComSimp(x0,xn,n)<<endl;
  29. }
  30. //When n==100,the answer is:0.946083
  31. //When n==2,the answer is:0.946087,
  32. //两次相差不大,可见复化Simpson公式有着极好的计算效果
  33. //但编写程序时必须注意本题除数会为零的情况