题目描述
用迭代法求 。求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n]) 要求前后两次求出的得差的绝对值少于0.00001。 输出保留3位小数
输入
X
输出
X的平方根
样例输入
4
样例输出
2.000
#include<bits/stdc++.h>
using namespace std;
int main()
{double x,x1;cin>>x;x1=x/2.0;int a;while(1){a=x1;x1=(x1+x/x1)/2.0;if(a-x1<0.00001){break;}}
printf("%.3f",x1);
}
迭代解释:
假设a。欲求a的平方根,首先猜测一个值X1=a/2,然后根据迭代公式X(n+1)=(Xn+a/Xn)/2,算出X2,再将X2代公式的右边算出X3等等,直到连续两次算出的Xn和X(n+1)的差的绝对值小于某个值,即认为找到了精确的平方根。例算步骤如下。
1.假设要求6的平方根,当Xn和X(n+1)的差值小于0.001时,可以认为已经找到了精确值。
2.根据牛顿迭代法的步骤,首先猜测一个值X1,猜测X1=6/2=3。
3.将X1=3代入公式X(n+1)=(Xn+a/Xn&