编写一个C++风格的程序,用二分法求解方程f(x)=0的根
1个回答
展开全部
#include
<iostream>
#include
<cmath>
using
namespace
std;
double
result(double
x);//计算出代入X的值
void
binary(double
a,double
b,double
c);//输出求出的值c代表误差值
int
main()
{
cout<<"跟据闭区间的零点定理计算出一个区间:f(a)<0且f(b)>0"<<endl;
double
a,b,c;
cin>>a>>b;
cout<<"你选择的区间是从"<<a<<"到"<<b<<endl;
cout<<"输入你能接受的误差"<<endl;
cin>>c;
binary(a,b,c);
return
0;
}
double
result(double
x)
{
double
temp;
temp=f(x);//这个函数依情况而定计算出函数值
return
temp;
}
void
binary(double
a,double
b,double
c)
{
double
average=(a+b)/2;
while(sqrt(result(average)*result(average))>c)
{
if(result(average)<0)
{
a=average;
b=b;
}
if(result(average)>0)
{
b=average;
a=a;
}
average=(a+b)/2;
}
cout<<"最后的近似结果是:x="<<average<<endl;
}
<iostream>
#include
<cmath>
using
namespace
std;
double
result(double
x);//计算出代入X的值
void
binary(double
a,double
b,double
c);//输出求出的值c代表误差值
int
main()
{
cout<<"跟据闭区间的零点定理计算出一个区间:f(a)<0且f(b)>0"<<endl;
double
a,b,c;
cin>>a>>b;
cout<<"你选择的区间是从"<<a<<"到"<<b<<endl;
cout<<"输入你能接受的误差"<<endl;
cin>>c;
binary(a,b,c);
return
0;
}
double
result(double
x)
{
double
temp;
temp=f(x);//这个函数依情况而定计算出函数值
return
temp;
}
void
binary(double
a,double
b,double
c)
{
double
average=(a+b)/2;
while(sqrt(result(average)*result(average))>c)
{
if(result(average)<0)
{
a=average;
b=b;
}
if(result(average)>0)
{
b=average;
a=a;
}
average=(a+b)/2;
}
cout<<"最后的近似结果是:x="<<average<<endl;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询