欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用二分法求方程x3-6x-1=0在x=2附近的一个实根,要求迭代精度为10的-6次方

程序员文章站 2024-02-02 15:24:46
...

标题IDE:codeblocks

标题日期:2019/11/29

标题功能:迭代法求方程在某一点附近的实根

用二分法求方程x3-6x-1=0在x=2附近的一个实根,要求迭代精度为10的-6次方

#include <iostream>
#include <cstring>
#include <cmath>
#include <iomanip>
using namespace std;

int main()
{
    double x1=2,x2=2,x;
    double y1=-5,y2=-5,y;
    while(y2<0)
    {
        x2=x2+0.1;
        y2=x2*x2*x2-6*x2-1;
    }
    cout<<"选用x1,x2分别为"<<x1<<','<<x2<<endl;
    do
    {
        x=(x1+x2)/2;
        y=x*x*x-6*x-1;
        cout<<x1<<','<<y1<<endl;
        cout<<x2<<','<<y2<<endl;
        cout<<x<<','<<y<<endl;
        cout<<"-------------------------"<<endl;
        if(y2*y<0)
        {
            x1=x;
            y1=y;
        }
        if(y1*y<0)
        {
            x2=x;
            y2=y;
        }
    }while(fabs(x2-x1)>1e-8&&fabs(y)>1e-8);
    cout<<setprecision(10)<<x<<','<<y;
    return 0;
}