#include"stdio.h"#include"math.h"void main(){ float x1=1,x2,a; printf("input a\n"); scanf("%f",&a); x2=a; while(fabs(x1-x2)>=1e-5) { x1=x2; x2=(x1+a/x1)/2; } printf("%f,%f",x1,x2);}
1.一般来说,迭代法的收敛结果与初值有一定关系,但这里因为函数x=a^(1/2)是单调的,所以这里迭代法的收敛性与初值无关。2.这里的初值决定了迭代次数,即初值与求值的速度有关。3.lz感兴趣的话,可以看一些“数值分析”“计算方法”有关的书籍。