#include "stdio.h"
#include "math.h"
double func(double x) // 欲微分函數
{ return sin (x) ;}
double FordDiff(double x, double h, double (*fx)(double))
{ // 前差微分
return ( fx(x+h) - fx(x) ) / h; 
}
double f (double x, double r)
{
return ( 1 / sqrt(x*x-r*r));
}
double Jifen(double a,double b)
{
double h,r=1;
double fx;
double x;
int i;
double sum=0;
h=fabs(a-b)/100;
x=a;
for(i=0;i<100;i++)
{
fx=f (x+i*h+h/2, r);
sum=sum+fx;
}
return sum*h;
}
main()
{
double a;
double b;
double x= 3.0,fx,Abel,diff,h=0.01;
a=2;
b=3;
diff = FordDiff(x, h, func); //微分
printf("FordDiff : %lf\n",diff);
fx=Jifen(a,b);
printf("Ji Fen Y=%f\n" ,fx);
Abel = -1/3.14*fx;
printf("Abel : %1f\n",Abel);
}