f(x)=x*x*x-3*x-1 迭代公式:x=x-(x*x*x-3*x-1)/(3*x*x-3)
#include <stdio.h>
#include <math.h>
#define maxrept 1000
double f(double x)
{
return (x-(x*x*x-3*x-1)/(3*x*x-3)); //迭代公式
}
void main()
{
int k=0;
double d;
double eps=0.00001; //输入精度
double x1=1.5,x2;
do
{
x2=f(x1);
d=fabs(x2-x1);
x1=x2;
k++;
printf("x=%.4lf\n",x2);
printf("k=%d\n",k); //打印迭代次数
}while((d>=eps)&(k<maxrept));
if(k<maxrept)
printf("此迭代公式收敛!\n");
else
printf("此迭代公式发散,迭代失败!\n"); //打印迭代敛散情况
}