• 函数求值


    https://vjudge.net/contest/231312#status/1751151850/D/0/

    第一道函数求值问题,这一道是单调函数求零点问题,用二分法

    在这里学到了1,怎么输入e^x次方,用exp()函数,2、定义一个允许的误差

    注意 fabs()主要求浮点型的绝对值,abs()主要求整形绝对值

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<cmath>
    typedef long long ll;
    using namespace std;
    int p,q,r,s,t,u;
    const double eps=1e-7;
    //p∗e−x + q∗sin(x) + r∗cos(x) + s∗tan(x) + t∗x2 + u = 0
    double f(double x)
    {
        return p*exp(-x)+q*sin(x)+r*cos(x)+s*tan(x)+t*x*x+u;//单调递减函数
    }
    int main()
    {
        while(scanf("%d%d%d%d%d%d",&p,&q,&r,&s,&t,&u)!=EOF)
        {
            double l=0,r=1;
            if(f(0)*f(1)>0)
                printf("No solution
    ");
            else
            {
                while(fabs(f(r)-f(l))>eps)
                {
                    double mid=(r+l)/2;
                    if(f(mid)<0)//也可以写成if(f(l)*f(mid)<=0)
                        r=mid;
                    else
                        l=mid;
                }
                printf("%.4lf
    ",(l+r)/2);
            }
        }
        return 0;
    }
    

      

    当初的梦想实现了吗,事到如今只好放弃吗~
  • 相关阅读:
    uoj 36 玛里苟斯
    readlink
    Endless Spin
    rm
    rmdir
    [学习笔记]min-max容斥
    cp
    [HAOI2015]按位或
    java实现第四届蓝桥杯公式求值
    java实现第四届蓝桥杯危险系数
  • 原文地址:https://www.cnblogs.com/caijiaming/p/9169083.html
Copyright © 2020-2023  润新知