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       27 阅读
  2. 解释C语言函数及其参数传递方式

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

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

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

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

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

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-02 14:08:03       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-02 14:08:03       5 阅读
  3. 在Django里面运行非项目文件

    2024-04-02 14:08:03       4 阅读
  4. Python语言-面向对象

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

热门阅读

  1. 简单设计模式讲解

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

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

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

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

    Git学习

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

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