2011年10月17日 星期一

C 梯形法則積分練習(The trapezoidal rule)

新增說明文字

#include <stdio.h>
#include <stdlib.h>

#define F(x) (1/(x*x +x))
#define n 3  //a~b 間的分割數

/****************************************************
   a
 S   (1/x*x+x) dx
   b
******************************************************/
int main()
{
  int i;
  int a,b;
  double x;
  double s;
  double sum=0;
  double width=0;
  printf("please input two numbers :the area from a to b\t");
  scanf("%d %d",&a,&b);
 
  for(i=a;i<=b;i++)
  { 
    x = i;            
    sum  = (double)F(x);
    printf("test %6.4f \t",sum);
    if((i!=a)&&(i!=b))
    {
     sum = sum*2;
     }
    s =s+sum;
   
  }
  width = (double)((b-a)/n); 
  printf("width =%6.4f\t",width);
  sum = (double)(width/2)*s;
  printf("sum =%6.4f",sum);
   
system("pause");   
}

沒有留言:

張貼留言