用C语言编写如下程序:牛顿法求方程f(x)=x^3-x-1=0在x0=1.5附近的实根,精确到6位小数。
#include<stdio.h>
#include<math.h>
float Function(float x){//原函数的值
return (x*x*x-x-1);
}
float Differential(float x){//一阶导函数的值
return (3*x*x-1);
}
void main(){
float result=1.5,a;
int i=0;
for(;;)
{
a=result;
result=result-Function(result)/Differential(result); //牛顿计算法。
printf("%f\n",result);//将每个结果都输出来
//判断小数点后6位的值是否相等,当出现4次都相等时输出该值。
if(fabs(a)==fabs(result))
{
i++;
if(i>2) break;
}
}
printf("最后的结果为%f\n",result);
}

如若有可以改进的地方,欢迎各位大佬提出。