迭代算法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");
}
结果: