C语言中向函数中传递函数指针的方法

废话不多说,直接上代码:

#include <stdio.h>
#include <math.h>

double func(double x) {
   return cos(x) - x*x*x;
}
/* a,b: endpoints of an interval where we search
   e: half of upper bound for relative error
   m: maximal number of iteration
*/
double FalsiMethod(double (*f)(double), double a, double b, double e, int m) {
   double c, fc;
   int n, side = 0;
   /* starting values at endpoints of interval */
   double fa = f(a);
   double fb = f(b);

   for (n = 0; n < m; n++) {
      c = (fa * b - fb * a) / (fa - fb);
      if (fabs(b - a) < e * fabs(b + a))
         break;
      fc = f(c);

      if (fc * fb > 0) {
         /* fc and fb have same sign, copy c to b */
         b = c; fb = fc;
         if (side == -1)
            fa /= 2;
         side = -1;
      } else if (fa * fc > 0) {
         /* fc and fa have same sign, copy c to a */
         a = c; fa = fc;
         if (side == +1)
            fb /= 2;
         side = +1;
      } else {
         /* fc * f_ very small (looks like zero) */
         break;
      }
   }
   return c;
}

int main(void) {
   printf("%0.15f\n", FalsiMethod(&func, 0, 1, 5E-15, 100));
   return 0;
}

参考链接:

  • https://en.wikipedia.org/wiki/Regula_falsi

相关推荐

  1. C语言函数传递函数指针方法

    2024-04-02 14:08:03       5 阅读
  2. 解释C语言函数及其参数传递方式

    2024-04-02 14:08:03       8 阅读
  3. C语言函数指针指针函数函数回调

    2024-04-02 14:08:03       21 阅读
  4. c语言指针函数参数

    2024-04-02 14:08:03       22 阅读
  5. C 传递指针函数

    2024-04-02 14:08:03       3 阅读
  6. Python函数参数传递方式是怎样

    2024-04-02 14:08:03       10 阅读
  7. Python函数参数传递方式是怎样

    2024-04-02 14:08:03       9 阅读
  8. 漫谈:C语言传递 函数参数 指针

    2024-04-02 14:08:03       2 阅读

最近更新

  1. leetcode705-Design HashSet

    2024-04-02 14:08:03       5 阅读
  2. Unity发布webgl之后打开streamingAssets中的html文件

    2024-04-02 14:08:03       5 阅读
  3. vue3、vue2中nextTick源码解析

    2024-04-02 14:08:03       6 阅读
  4. 高级IO——React服务器简单实现

    2024-04-02 14:08:03       5 阅读
  5. 将图片数据转换为张量(Go并发处理)

    2024-04-02 14:08:03       4 阅读
  6. go第三方库go.uber.org介绍

    2024-04-02 14:08:03       6 阅读
  7. 前后端AES对称加密 前端TS 后端Go

    2024-04-02 14:08:03       7 阅读

热门阅读

  1. 简单设计模式讲解

    2024-04-02 14:08:03       4 阅读
  2. C++命名空间详解

    2024-04-02 14:08:03       4 阅读
  3. 【Ubuntu】可配置环境变量位置

    2024-04-02 14:08:03       5 阅读
  4. 洛谷 1803.凌乱的yyy

    2024-04-02 14:08:03       4 阅读
  5. Git学习

    Git学习

    2024-04-02 14:08:03      3 阅读
  6. 关于 MySQL 优化(详解)

    2024-04-02 14:08:03       3 阅读