C++实现二分法求连续一元函数根

 更新时间:2020年06月16日 17:09:47   作者:Alex山南水北  
这篇文章主要为大家详细介绍了C++实现二分法求连续一元函数根,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C++实现二分法求连续一元函数根的具体代码,供大家参考,具体内容如下

设计一个用二分法求连续一元函数根的通用函数solve
此函数有三个参数:

  • 第一个是函数指针,指向所要求根的连续函数
  • 第二、三个参数指出根的区间,且确保函数在区间的两个端点异号

函数的返回值为求得的解

要求编写main函数如下:

double fun(double x)
{
 double y;
 y=4*pow(x,3)-6*pow(x,2)+3*x-2;
 return y;
}

int main()
{
 cout<<"4*x^3-6*x^2+3*x-2=0在区间(1,2)的根为 x="<<solve(fun,1,2);
 return 0;
}

C++实现:

#include <iostream>
#include <cmath>

using namespace std;

double solve(double (*fun)(double x), double a, double b);

double fun(double x);

int main() {
 cout << "4*x^3-6*x^2+3*x-2=0在区间(1,2)的根为 x=" << solve(fun, 1, 2);
 return 0;
}

double solve(double (*fun)(double x), double a, double b) {
 double i = b - a;
 double c = (a + b) / 2;
 while (i > 0.0000001) {
 i = b - a;
 if (fun(c) == 0)return c;
 if (fun(c) * fun(a) < 0) {
  b = c;
  c = (a + b) / 2;
 } else {
  a = c;
  c = (a + b) / 2;
 }
 }
 return c;
}

double fun(double x) {
 double y;
 y = 4 * pow(x, 3) - 6 * pow(x, 2) + 3 * x - 2;
 return y;
}

总结:

  • 函数与指针的结合
  • 注意返回的类型与要求

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C语言小游戏之简易版三子棋(棋盘可自由扩展)

    C语言小游戏之简易版三子棋(棋盘可自由扩展)

    这篇文章主要为大家详细介绍了C语言实现三子棋游戏,还可以自由扩展棋盘大小,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C++小游戏BrickHit实例代码

    C++小游戏BrickHit实例代码

    本文通过实例代码给大家介绍了C++小游戏BrickHit的相关资料,需要的朋友可以参考下
    2018-02-02
  • 距离详解Linux下的UDP方式通讯

    距离详解Linux下的UDP方式通讯

    这篇文章主要介绍了距离详解Linux下的UDP方式通讯,是深入Linux系统编程中的基础,需要的朋友可以参考下
    2015-10-10
  • C++归并排序算法详解

    C++归并排序算法详解

    大家好,本篇文章主要讲的是C++归并排序算法详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • C语言宏定义容易认不清的盲区梳理

    C语言宏定义容易认不清的盲区梳理

    宏定义是C提供的三种预处理(宏定义、文件包含、条件编译)的其中一种,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率
    2022-09-09
  • C++实现Dijkstra(迪杰斯特拉)算法

    C++实现Dijkstra(迪杰斯特拉)算法

    这篇文章主要为大家详细介绍了C++实现Dijkstra(迪杰斯特拉)算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • DOS简易版C语言贪吃蛇

    DOS简易版C语言贪吃蛇

    这篇文章主要为大家详细介绍了DOS简易版C语言贪吃蛇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • C语言signed关键字的详细使用

    C语言signed关键字的详细使用

    这篇文章主要介绍了C语言signed关键字的详细使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    的相关资料
    2017-06-06
  • 用C++的odeint库求解微分方程

    用C++的odeint库求解微分方程

    求解微分方程的数值解一般使用MATLAB等数值计算软件,其实C++也可以求解微分方程,需要用到odeint库,它是boost库的一部分。官方教程和示例比较晦涩,本文力求用较短的篇幅介绍它的基本用法,需要的朋友可以参考下面文章的具体内容
    2021-09-09
  • C++获取字符串长度的几个函数方式

    C++获取字符串长度的几个函数方式

    这篇文章主要介绍了C++获取字符串长度的几个函数方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论