zoukankan      html  css  js  c++  java
  • noi.openjudge 二分法求函数的零点

    二分法求函数的零点

    总时间限制: 1000ms
     
    内存限制: 65536kB
    描述
    有函数:f(x) = x5 - 15 * x4+ 85 * x3- 225 * x2+ 274 * x - 121
    已知 f(1.5) > 0 , f(2.4) < 0 且方程 f(x) = 0 在区间 [1.5,2.4] 有且只有一个根,请用二分法求出该根。
    输入
    无。
    输出
    该方程在区间[1.5,2.4]中的根。要求四舍五入到小数点后6位。

    解析

    浮点二分练手题,首先打个表判断函数在[1.5,2.4]的单调性,直接二分出答案即可

    代码
    #include<bits/stdc++.h>
    using namespace std;
    
    double check(double a)
    {
        double ans=pow(a,5)-15*pow(a,4)+85*pow(a,3)-225*pow(a,2)+274*a-121;//单调递减
        if(ans>0) return false;//大于目标mid往大取
        else return true;
    }//a越大结果越小 
    
    int main()
    {
        double dlt=0.0000000001;
        double l=1.50,r=2.40;
        while(fabs(r-l)>dlt)//记得取fabs
        {    
            double mid=(l+r)/2.0;//除以2.0
            if(check(mid)) r=mid;//这里是r=mid 
            else l=mid;
        }
        cout<<setprecision(7)<<l<<endl;//setprecision要加一位 
        return 0;
    }
  • 相关阅读:
    [ SDOI 2006 ] 保安站岗
    [ TJOI 2012 ] 防御
    [ ZJOI 2012 ] 灾难
    [ HNOI 2008 ] 玩具装箱
    「UER#2」信息的交换
    「UR#5」怎样跑得更快
    「UR#6」懒癌
    清华集训2014 做题记录
    「UR#5」怎样更有力气
    弦图及区间图学习笔记
  • 原文地址:https://www.cnblogs.com/KyleDeng/p/9927682.html
Copyright © 2011-2022 走看看