迭代法求a的平方根的近似值,计算公式如下:
迭代是重复反馈过程的活动,目的是为了逼近所需目标或结果。每次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
算法:先给定一个假设的平方根值,如x0=a/2;用迭代公式x1=(x0+a/x0)/2,一直算到|x0-x1|<deta,即可输出。
输入:一个整数a,误差deta
输出:根号a的近似值
代码实现:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double x0,x1,a,deta;
cin>>a; //要计算平方根的数
deta=1e-5; //误差值
if(a>=0){ //a>0才有平方根
x1=a/2; //先给一个假设的平方根值a/2
do{ //循环迭代
x0=x1;
x1=(x0+a/x0)/2;
}while(abs(x1-x0)>=deta); //判断条件
cout<<x1<<endl;
}
return 0;
}
tips:循环中x1每得到一个新值,都在下一次循环中赋给x0,再用新的x0的值计算新的x1,从而实现迭代。