作业帮 > 综合 > 作业

c++二分法求方程的解

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/25 01:12:39
c++二分法求方程的解
已知函数 y = e^x+ln(x)-1,实现函数
long double solve(long double y)
{
// here
}
对于传入的y,返回x值.要求误差小于1e-6.
c++二分法求方程的解
#include<iostream>
using namespace std;

long double solve(long double y)
{
\x09//y = e^x+ln(x)-1
\x09double e = 1e-6;
\x09double l = 1e-300;
\x09double r = 1e10;
\x09double x;
\x09do
\x09{
\x09\x09x = (l+r)/2;
\x09\x09if (exp(x)+log(x)-1-y>0)
\x09\x09\x09r=x;
\x09\x09else
\x09\x09\x09l=x;
\x09}while(r-l>e);
\x09return x;
}
int main( ) 
{
\x09cout<<solve(1)<<endl;
\x09cout<<solve(0)<<endl;
\x09cout<<solve(-1)<<endl;
\x09cout<<solve(1000000)<<endl;
\x09return 0;
}