例1.
求平方根

/* 迭代法求一个数的平方根 */
#define Epsilon 1.0E-6
/*控制解的精度 10的-6次方 */
#include<stdio.h>
#include <math.h>
int main()
    {
        double a,x0,x1;
        scanf("%lf",&a);
        x0=a/2;
        x1=(x0+a/x0)/2;      /*算法*/
        while(fabs(x1-x0)>=Epsilon)
        {
            x0=x1;
            x1=(x0+a/x0)/2;
        }
        printf("%f的平方根:%.5f\n",a,x1);
    }

例2.
编写一个程序,用迭代法求方程x3-x-1=0在区间[0,2]中的根。
        二分迭代法的原理:先取方程f(x)=0的两个粗略解 x1和x2,若f(x1)与f(x2)的正负符号相反,则表明区间(x1,x2)中至少有方程的一个解。
如果f(x)在区间(x1,x2)内单调递增或单调递减,则(x1,x2)内只有方程的一个解。
具体做法:取x1,x2的中点x3,计算f(x3)的值。
在x1,x2中去掉函数值与f(x3)同号者(假设f(x2)和f(x3)同号),得到一个由x1和x3构成的区间,这个区间是原来的一半,并且包含精确解。
不断重复(不是无穷多次)上述步骤,可以得到一个序列:x1,x2,x3,…,xn+1,xn,…这个序列的极限便是方程的精确值。

#include <stdio.h>
#include <math.h>
int main()
{
    double x1,x2,x3 ;
    x1 = 0; x2 = 2 ;       // 初始区间
    do
     {
          x3 = (x1 + x2) / 2;
       if ((x1 * x1 * x1 - x1 - 1) * (x3 * x3*x3 - x3 - 1) > 0 )
            x1 = x3 ;     // 改变区间
       else
            x2 = x3 ;     // 改变区间
    }
     while (fabs(x2-x1)>1e-6);  // 判断是否满足精度要求
    printf("%.6f",x1);      // 输出结果
    return 0 ;
}