二分 - bailian 4140:方程求解

Posted zhangyue123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分 - bailian 4140:方程求解相关的知识,希望对你有一定的参考价值。

题目链接

http://bailian.openjudge.cn/practice/4140/
这个题给出的函数是一个单调函数,用数学中的二分法可以求解,这个题需要注意精度问题,题目要求保留9位小数,在误差的选择上需要注意,这里我用的是eps = 1e-8。

cpp代码

#include <cstring>
#include <cstdio>
#include <cmath>

double EPS = 1e-6;

double f(double x){
    return x*x*x - 5*x*x + 10*x - 80;
}

int main(){
    double l = 0, r = 10;
    double root = (l + r)/2;
    while(fabs(f(root)) > EPS){
        root = (l + r) /2;
        if(f(root) > 0)
            r = root;
        else
            l = root;
    }
    printf("%.9f
", root);
}

以上是关于二分 - bailian 4140:方程求解的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow-二分法求解一元方程

C++ 数学与算法系列之牛顿二分迭代法求解非线性方程

基于matlab的二分法求解方程的根(Bisection method)

Vijos P1116 一元三次方程求解多解,暴力,二分

怎么用matlab解一元二次方程

一元三次方程求解(数学二分)