欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

迭代算法5——近似迭代法之求一个数的平方根

程序员文章站 2024-02-27 19:12:57
...

【分析】

求平方根的迭代公式:x1 = 1/2 × (x0 + a/x0)。

算法步骤如下:
(1)先定一个初值x0,作为a的平方根值,取a/2作为a的平方根初值。
(2)利用上述迭代公式求出一个x1,把新的x1代入x0中。
(3)再次利用迭代公式求出一个新的x1,比较x1和x0,如果它们的差值小于指定的EPS(假设为1e-6),该值非常趋近于真正的平方根,x1可以作为平方根的近似值;否则将x1代入x0,继续转步骤(2)执行。

code:

#include<stdio.h> 
#include<math.h> 
#include <iostream>
#define EPS 1e-6
void main()
{
	double a, x0, x1;
	printf("请输入一个实数:");
	scanf("%lf", &a);
	if (a < 0)
		printf("输入错误,请重新输入!\n");
	else
	{
		x0 = a / 2;
		x1 = (x0 + a / x0) / 2;
		do
		{
			x0 = x1;
			x1 = (x0 + a / x0) / 2;
		} while (fabs(x0 - x1) >= EPS);
	}
	printf("%g的平方根是:%g\n", a, x1);
	system("pause");
}

结果:

迭代算法5——近似迭代法之求一个数的平方根