迭代法求x=sqrt(a)

  • Post author:
  • Post category:其他



用迭代法求x=sqrt(a),求平方根的迭代公式为:

Xn+1=1/2(Xn+a/Xn),

要求前后两次求出的x的差的绝对值小于

1e-5.



直接给出代码:


#include<stdio.h>
#include<math.h>
#define a 5//求x=sqrt(5);
int main()
{
	int i=0;
	double X1=1,X2;//相当于Xn与Xn+1

	do
	{
		X1=(1.0/2)*(X1+a/X1);
		X2=(1.0/2)*(X1+a/X1);
		printf("第%d次迭代  x1=%9.6f\tx2=%9.6f\n",++i,X1,X2);
	}while (fabs(X2-X1)>=1e-5);

	printf("\n迭代结果:x=%9.6f\t共迭代:%d次\n",X2,i);
	printf("\nsqrt(%d)=%9.6f\n\n",a,sqrt(a));

	return 0;

}

下面给出测试结果:




版权声明:本文为wtdm_160604原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。