| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1984 人关注过本帖
标题:用二分法求根的问题
只看楼主 加入收藏
badyy110
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-2-6
结帖率:100%
收藏
 问题点数:0 回复次数:2 
用二分法求根的问题
请问区间那里应该怎么估算?

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

// declare function
double f(double x);
// defind function
double f(double x)
{
  return (3.1415926(x*x*x-30*x*x+1000))/3;
}

int main()
{
  double mid;
  double e=0.000001
  double a=0;   
  double b=
  double y;
  while (abs(a+b)>e)
    {
     mid=(a+b)/2;
     y=f(a)*f(mid);
     if (y<0)
       b=mid;
     else
       a=mid;
    }
  printf("%lf \n",mid);
  return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2017-3-7 13:22编辑过]

2017-03-06 11:46
badyy110
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-2-6
收藏
得分:0 
求大神
2017-03-07 00:39
云团
Rank: 2
等 级:论坛游民
帖 子:36
专家分:41
注 册:2017-1-9
收藏
得分:0 
二分法的基本思路是:任意两个点x1和x2,判断区间(x1,x2)内有无一个实根,如果f(x1)与f(x2)符号相反,则说明有一实根。接着取(x1,x2)的中点x,检查f(x)和f(x2)是否同号,如果不同号,说明实根在(x,x2)之间,如果同号,在比较(x1,x),这样就将范围缩小一半,然后按上述方法不断的递归调用,直到区间相当小(找出根为止)!
2017-03-07 15:33
快速回复:用二分法求根的问题
数据加载中...
 
   



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

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