文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C程序习题-用二分法求方程的根[6.13]

C程序习题-用二分法求方程的根[6.13]

时间:2010-08-02  来源:chengxiaopeng

用二分法求下面方程在(-10,10)之间的根。

2X3 – 4X2 + 3X - 6 = 0

二分法,也就是我们常说的折半查找法,此算法主要用于对一组排列有序的数字进行查找,因为每查询一次,即可排除一半。因此算法运行的效率是很高的。其主要原理是,查找中间值的大小,如果大于指定的值,即可确定:需要找的值,或者求的值在前半部分,此时进行将中间值赋值给最大值,继续折半查找。如果中间值小于指定的值,即可确认:查找的值,或者求的值在后半部分,此时进行将中间值赋值给最小值。继续进行折半查找。根据此原理。程序代码如下:

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

double F1(double);
int main(int argc, int *argv[])
{
    double lit = pow(10,-5);
    double min = -10, max = 10;
    double mid = (max + min) / 2;
    double result;
    
    while (min < max && fabs(F1(mid)) > lit)
    {
          if (F1(mid) > 0)
          {
             max = mid;
          }
          if (F1(mid) < 0)
          {
             min = mid;
          }
          mid = (max + min) / 2;
    }
    
    if (fabs(F1(mid)) < lit)
    {
       result = mid;
       printf("the result is :%f\n",result);
    }
    else
    {
        printf("error:no result!\n");
    }
    
    system("pause");
    return 0;
}

double F1(double x)
{
       return 2 * x * x * x - 4 * x * x + 3 * x - 6;
}


经过程序运行,求出方程的根为:2。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载