用二分法求方程X^5-3X+1=0在(0,1)上的近似解,精确到C=0.001,写出算法
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/10 06:25:31
用二分法求方程X^5-3X+1=0在(0,1)上的近似解,精确到C=0.001,写出算法
用二分法求方程X^5-3X+1=0在(0,1)上的近似解,精确到C=0.001,写出算法
用二分法求方程X^5-3X+1=0在(0,1)上的近似解,精确到C=0.001,写出算法
假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找
算法如下:
#include
#include
double f(double x)
{
\x09return x*x*x*x*x-3*x+1; //方程
}
void main()
{
\x09double e=1e-3; //精确值
全部展开
算法如下:
#include
#include
double f(double x)
{
\x09return x*x*x*x*x-3*x+1; //方程
}
void main()
{
\x09double e=1e-3; //精确值
\x09double start,end,mid;
\x09cout<<"输入二分法的起始最小值和最大值"<
\x09cin>>end;
\x09while(f(start)*f(end)>0)
\x09{
\x09\x09cout<<"f(start)*f(end)必须小于0!请重新输入二分法的起始最小值和最大值"<
\x09cin>>end;
\x09}
\x09if(fabs(f(start))<=e)
\x09{cout<<"求出的值为x="<
\x09{cout<<"求出的值为x="<
\x09{
\x09\x09mid=(start+end)/2;
\x09\x09while(fabs(f(mid))>e)
\x09\x09{
\x09\x09\x09if(f(start)*f(mid)<0)
\x09\x09\x09{
\x09\x09\x09\x09end=mid;
\x09\x09\x09}
\x09\x09\x09else
\x09\x09\x09{
\x09\x09\x09\x09start=mid;
\x09\x09\x09}
\x09\x09\x09mid=(start+end)/2;
\x09\x09}
\x09\x09cout<<"求出的值为x="<
}
ps:运行程序,输入起始值0和1,求出了x=0.334961
收起