c++二分法求方程的解已知函数 y = e^x+ln(x)-1,实现函数long double solve(long double y){// here}对于传入的y,返回x值.要求误差小于1e-6.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/26 08:28:54
c++二分法求方程的解已知函数 y = e^x+ln(x)-1,实现函数long double solve(long double y){// here}对于传入的y,返回x值.要求误差小于1e-6.
c++二分法求方程的解
已知函数 y = e^x+ln(x)-1,实现函数
long double solve(long double y)
{
// here
}
对于传入的y,返回x值.要求误差小于1e-6.
c++二分法求方程的解已知函数 y = e^x+ln(x)-1,实现函数long double solve(long double y){// here}对于传入的y,返回x值.要求误差小于1e-6.
#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;
}