| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11172 人关注过本帖
标题:二分法求根问题
取消只看楼主 加入收藏
Jackie_9692
Rank: 2
等 级:论坛游民
帖 子:11
专家分:18
注 册:2012-7-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
二分法求根问题
#include<stdio.h>
#include<math.h>
/*int main()
{
    int a = -10,b = 10;
    flf = 2*a*a*a-4*a*a+3*a-6;
    frg = 2*b*b*b-4*b*b+3*a-6;
    mid = (a+b)/2;
    fmid = 2*mid*mid*mid-4*mid*mid+3*mid-6;
    if(flf*frg >= 0)
        printf("原方程在区间上无根或不止一根\n");
    else
    {
        while(flf*mid < 0)
        {
            
        }
    }
}*/
int main()
{
    float a = -10,b = 10,mid,fmid,flf,frg;
    float _x=20;
    int icount = 0;
    do
    {
        flf = 2*a*a*a-4*a*a+3*a-6;
        frg = 2*b*b*b-4*b*b+3*a-6;
        //if(flf*frg >= 0)
        //{
        //printf("原方程在区间上无根或不止一根\n");
        //break;
        //}
        mid = (a+b)/2;
        fmid = 2*mid*mid*mid-4*mid*mid+3*mid-6;
        if((flf*fmid) < 0)
        {
            b = mid;
        }
         if((fmid*frg)<0)
        {
            a = mid;
        }
         //if(fabs(fmid)< 1e-6)
            // break;
        _x= b-a;
        //printf("%f\n",_x);
        icount++;
        
    }while(_x > 1e-2);
        printf("The root is %f\n",(a+b)/2);
        printf("%d\n",icount);
}
//想用二分法求方程2x^3 - 4x^2 + 3x - 6 = 0 在[-10,10]上的根,达不到目的(改小1e-2也没用),跪求高手指点
搜索更多相关主题的帖子: include 二分法 
2012-07-29 10:15
Jackie_9692
Rank: 2
等 级:论坛游民
帖 子:11
专家分:18
注 册:2012-7-21
收藏
得分:0 
回复 2楼 小糊涂神c30
本人觉得是精度问题,flf*frg<0这个条件无法判断两者是否异号,望大神指导
2012-07-29 16:01
Jackie_9692
Rank: 2
等 级:论坛游民
帖 子:11
专家分:18
注 册:2012-7-21
收藏
得分:0 
回复 4楼 beyondyf
谢谢版主了,一个用宏,一个用函数,函数指针有必要吗。难道double就把精度问题解决了?soga分数补上,谢啦!
2012-07-31 15:54
快速回复:二分法求根问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025449 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved