
求出0=x^3-x-1,x∈(1,1.5)的近似点?(精确到0.1)用二分法求?
1个回答
展开全部
#include<stdio.h>
#include<math.h>
double f(double x)
{
return pow(x,3)-x-1;
//return 3*pow(x,3)-9*x+5;
}
void Two() //二分法,[a,b],x=(a+b)/2判断lf(x)是否为零,否的话 判断lf(x)*lf(b)<0与否 再重置a=x或者b=x,再从头开始
{
double limit;
double a,b;int k=0; //保存函数求解要求实现了的时候 二分法使用的次数
//printlf("请输入x的值:");
//scanlf("%lf",&x);
//for(i=0;i)
printf("\n please input the 区间:");
scanf("%lf %lf",&a,&b);
printf("\n please input 解的精确程度:");
scanf("%lf",&limit);
printf("\n x 和 y 的值分别为:%lf %lf",f(a),f(b));
if(f(a)*f(b)>=0)
printf("\n无法用二分法求解!\n");
else
{
while(b-a>limit)
{
printf("\n a 和b 和 a+b/2 和lf(a) 和f(b) 的值分别为:%lf %lf %lf, %lf %lf",a,b,(a+b)/2,f(a),f(b));
if( f( (a+b)/2 )*f(b)>0)
b=(a+b)/2;
else
a=(a+b)/2;
k++;
}
printf("\n\n 经历了 %d 次二分法运算得到此结果!\n",k);
}
}
#include<math.h>
double f(double x)
{
return pow(x,3)-x-1;
//return 3*pow(x,3)-9*x+5;
}
void Two() //二分法,[a,b],x=(a+b)/2判断lf(x)是否为零,否的话 判断lf(x)*lf(b)<0与否 再重置a=x或者b=x,再从头开始
{
double limit;
double a,b;int k=0; //保存函数求解要求实现了的时候 二分法使用的次数
//printlf("请输入x的值:");
//scanlf("%lf",&x);
//for(i=0;i)
printf("\n please input the 区间:");
scanf("%lf %lf",&a,&b);
printf("\n please input 解的精确程度:");
scanf("%lf",&limit);
printf("\n x 和 y 的值分别为:%lf %lf",f(a),f(b));
if(f(a)*f(b)>=0)
printf("\n无法用二分法求解!\n");
else
{
while(b-a>limit)
{
printf("\n a 和b 和 a+b/2 和lf(a) 和f(b) 的值分别为:%lf %lf %lf, %lf %lf",a,b,(a+b)/2,f(a),f(b));
if( f( (a+b)/2 )*f(b)>0)
b=(a+b)/2;
else
a=(a+b)/2;
k++;
}
printf("\n\n 经历了 %d 次二分法运算得到此结果!\n",k);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询