C++ 高手进来看看 关于迭式法的

来源:百度知道 编辑:UC知道 时间:2024/07/08 04:28:11
用迭式法求X=Sqr(A)
求平方根的迭代公式为Xn+1=1/2*(Xn+ A/Xn)
要求前后两次求出的X的差的绝对值小于10的负5次方。
高手这个怎么做啊 帮帮我吧

下列给定程序中,函数fun的功能是:应用递归算法求某数a的平方根。求平方根的迭代公式如下:
x1=(1/2)*(x0+a/x0)
例如,2的平方根值为1.414214。

#include <stdio.h>
#include <math.h>

/********found********/
double fun(double a, double x0)
{
double x1, y;
x1=(x0+ a/x0)/2.0;
/********found********/
if( fabs(x1-x0)>=0.00001 )
y=fun(a,x1);
else
y=x1;
return y;
}
main( )
{
double x;
printf("Enter x: ");
scanf("%lf",&x);
printf("The square root of %lf is %lf\n",x,fun(x,1.0));
}

#include"math.h"
#include "stdio.h"
void main()
{
float x0,x1,a;
scanf("%f",&a);
x0=a;
x1=(x0+a/x0)/2;
while(fabs(x0-x1)>=0.00001)