迭代法求平方根公式 迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。重复执行一系列运算步骤,从前面的量依次求出后面的量的过程。此过程的每一次结果,都是由对前一次所得结果施行相同的运算步骤得到的。 算法描述 使用牛顿迭代法。输入的变量为a。迭代公式为
x
n
+
1
=
(
x
n
+
a
/
x
n
)
/
2
x_{n+1}=(x_{n}+a/x_{n})/2
xn+1=(xn+a/xn)/2由此产生的序列x1,x2,x3,x4…将接近a的平方根。 迭代条件可以是迭代次数,或者精确程度。这里以精度为迭代条件:
a
b
s
(
(
x
n
+
1
−
x
n
)
/
x
n
)
<
1.
0
e
−
10
abs((x_{n+1}-x_{n})/x_{n})<1.0^{e-10}
abs((xn+1−xn)/xn)<1.0e−10
doublemysqrt(double x){//判断输入的数,如果小于0就返回0if(x <=0){return0;}double result = x;// 10次迭代for(int i =0; i <10;++i){if(result <=0){
result =0.1;}double delta = x -(result * result);
result = result +0.5* delta / result;
std::cout <<"Computing sqrt of "<< x <<" to be "<< result << std::endl;}return result;}