数值积分(函数指针的运用)

清疚 2022-06-17 12:50 260阅读 0赞
  1. #include <stdio.h>
  2. #include <math.h>
  3. //编写一个函数calc(f,a,b),求函数f(x)在[a,b]上的数值积分(函数指针的运用),以f(x)=x^2,范围为[0,1]和f(x)=sinx/x,范围为[1,2]为例子
  4. int main()
  5. {
  6. double f1(double x);
  7. double f2(double x);
  8. double calc(double (*f)(double),double a,double b);
  9. printf("f(x)=x^2在范围[0,1]的数值积分结果为%.3f\n",calc(f1,0.0,1.0));
  10. printf("f(x)=sinx/x在范围[0,1]的数值积分结果为%.3f\n",calc(f2,1.0,2.0));
  11. return 0;
  12. }
  13. double f1(double x)
  14. {
  15. return x*x;
  16. }
  17. double f2(double x)
  18. {
  19. return (sin(x)/x);
  20. }
  21. double calc(double (*f)(double),double a,double b)
  22. {
  23. return ((b-a)/2)*((*f)(a)+(*f)(b));
  24. }

将一个函数作为另一个函数的某个参数传入计算,使后者通用性增强。

发表评论

表情:
评论列表 (有 0 条评论,260人围观)

还没有评论,来说两句吧...

相关阅读

    相关 函数指针基本运用(一)

    1,单个函数的注册和多个函数的注册,注册函数一般提高了开发的高效,我们很多时候只需要知道这个函数怎么用的就行了,不需要去管他是怎么实现的,比如说一般开发过程中别人只会给你一个s

    相关 数值积分方法

    数值积分是工程师和科学家经常使用的基本工具,用来计算无法解析求解的定积分的近似解。 如:Φ(x)=∫x0t3et−1dt不存在Φ(x)的解析解,要求Φ(5)。 那么我们