c++编程题! 用二分法求方程x2-2-x=0在[0,3]区间的根。要求误差不大于10-5

c++编程题!用二分法求方程x2-2-x=0在[0,3]区间的根。要求误差不大于10-5。算法:1)取二元方程f(x)的两个初解x1和x2,分别为0和3(保证区间内有实根... c++编程题!
用二分法求方程x2-2-x=0在[0,3]区间的根。要求误差不大于10-5。
算法:1)取二元方程f(x)的两个初解x1和x2,分别为0和3(保证区间内有实根);
因为:f(x)在[x1,x2]区间单调
若f(x1)与f(x2)的符号相反,则方程f(x)=0在[x1,x2]区间有一个根;
若f(x1)与f(x2)的符号相同,则方程f(x)=0在[x1,x2]区间没有实根;
2)取x3=(x1+x2)/2,并在x1和x2中舍去和f(x3)同号者,解就在x3和另外那个没有被舍去的初解组成的区间里;
3)反复1、2取舍,直到xn与xn-1之差满足要求时,那么xn便是方程f(x)的近似根。

请按照要求来编程!一定要用c++!!!
展开
 我来答
丶TYTY
2017-04-17 · 超过13用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:37.9万
展开全部

#include "stdio.h"
#include "math.h"
double fun(double x) { return  x*x-x-2; }
double root(double a, double b, double e)
{
    double x1,x2,y1,y2,x; 
    x1=a; x2=b; 
    do 
    {
        x = (x1 + x2)/2;
        y = fun(x); 
        y1 = fun(x1);
        if( ( y < 0 && y1 < 0) || (y > 0 && y1 > 0) )
        x1 = x;
        else
        x2 = x;      
        while(fabs(y) > e);
        retrun x;          
}
void main()
{
double x = root(-10.0f, 10.0f, 1e-8);
 printf("%f\n", x);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式