fork download
  1. #include "stdio.h"
  2. #include "math.h"
  3. double func(double x) // 欲微分函數
  4. { return sin (x) ;}
  5. double FordDiff(double x, double h, double (*fx)(double))
  6. { // 前差微分
  7. return ( fx(x+h) - fx(x) ) / h;
  8. }
  9. double f (double x, double r)
  10. {
  11. return ( 1 / sqrt(x*x-r*r));
  12. }
  13. double Jifen(double a,double b)
  14. {
  15. double h,r=1;
  16. double fx;
  17. double x;
  18. int i;
  19. double sum=0;
  20. h=fabs(a-b)/100;
  21. x=a;
  22. for(i=0;i<100;i++)
  23. {
  24. fx=f (x+i*h+h/2, r);
  25. sum=sum+fx;
  26. }
  27. return sum*h;
  28. }
  29. main()
  30. {
  31. double a;
  32. double b;
  33. double x= 3.0,fx,Abel,diff,h=0.01;
  34. a=2;
  35. b=3;
  36. diff = FordDiff(x, h, func); //微分
  37. printf("FordDiff : %lf\n",diff);
  38. fx=Jifen(a,b);
  39. printf("Ji Fen Y=%f\n" ,fx);
  40. Abel = -1/3.14*fx;
  41. printf("Abel : %1f\n",Abel);
  42. }
Runtime error #stdin #stdout 0s 1832KB
stdin
Standard input is empty
stdout
FordDiff : -0.990682
Ji Fen Y=0.445788
Abel : -0.141971