牛顿迭代法求平方根
牛顿迭代法求平方根
1.假设要求6的平方根,当Xn和X(n+1)的差值小于0.000001时,可以认为已经找到了精确值。
2.根据牛顿迭代法的步骤,首先猜测一个值X1,猜测X1=6/2=3。
3.将X1=3代入公式X(n+1)=(Xn+a/Xn)/2,则X2=(X1+6/X1)/2=(3+6/3)/2=2.5,由于3和2.5的差大于0.000001,需要继续计算。
4.将X2=2.5代入公式X(n+1)=(Xn+a/Xn)/2,则X3=(X2+6/X2)/2=(2.5+6/2.5)/2=2.45,由于2.5-2.45=0.5>0.000001,故需要继续计算。
...
代码
#include<stdio.h> #include<math.h>double my_sqrt(double a) {double x0=a/2;double x1=(x0+a/x0)/2;while(fabs(x0-x1)>0.000001){x0=x1;x1=(x0+a/x0)/2;}return x1; }int main() {double a=0.0,x=0.0;scanf("%lf",&a);//双精度lfx=my_sqrt(a);printf("%lf",x);return 0;}总结
- 上一篇: 基于javaweb项目ssm食品管理系统
- 下一篇: java正则表达式保姆级教程,从小白到高