#include "stdio.h"
#include "math.h"
double func(double 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;
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);
Abel = -1/3.14*fx;
}
I2luY2x1ZGUgInN0ZGlvLmgiCiNpbmNsdWRlICJtYXRoLmgiCmRvdWJsZSBmdW5jKGRvdWJsZSB4KSAvLyDmrLLlvq7liIblh73mlbgKeyByZXR1cm4gc2luICh4KSA7fQpkb3VibGUgRm9yZERpZmYoZG91YmxlIHgsIGRvdWJsZSBoLCBkb3VibGUgKCpmeCkoZG91YmxlKSkKeyAvLyDliY3lt67lvq7liIYKcmV0dXJuICggZngoeCtoKSAtIGZ4KHgpICkgLyBoOyAKfQpkb3VibGUgZiAoZG91YmxlIHgsIGRvdWJsZSByKQp7CnJldHVybiAoIDEgLyBzcXJ0KHgqeC1yKnIpKTsKfQpkb3VibGUgSmlmZW4oZG91YmxlIGEsZG91YmxlIGIpCnsKZG91YmxlIGgscj0xOwpkb3VibGUgZng7CmRvdWJsZSB4OwppbnQgaTsKZG91YmxlIHN1bT0wOwpoPWZhYnMoYS1iKS8xMDA7Cng9YTsKZm9yKGk9MDtpPDEwMDtpKyspCnsKZng9ZiAoeCtpKmgraC8yLCByKTsKc3VtPXN1bStmeDsKfQpyZXR1cm4gc3VtKmg7Cn0KbWFpbigpCnsKZG91YmxlIGE7CmRvdWJsZSBiOwpkb3VibGUgeD0gMy4wLGZ4LEFiZWwsZGlmZixoPTAuMDE7CmE9MjsKYj0zOwpkaWZmID0gRm9yZERpZmYoeCwgaCwgZnVuYyk7IC8v5b6u5YiGCnByaW50ZigiRm9yZERpZmYgOiAlbGZcbiIsZGlmZik7CmZ4PUppZmVuKGEsYik7CnByaW50ZigiSmkgRmVuIFk9JWZcbiIgLGZ4KTsKQWJlbCA9IC0xLzMuMTQqZng7CnByaW50ZigiQWJlbCA6ICUxZlxuIixBYmVsKTsKfQ==