帮忙看看这到C语言题目是什么意思

来源:百度知道 编辑:UC知道 时间:2024/09/23 19:02:48
不要给我答案 要通俗易懂的说法 说一下这道题让我做什么
用迭代法求x=sqrt(a)。公式为x[n+1]=1/2*(x[n]+a/x[n]).要求前后两次求出的x的差的绝对值小于e-5。

用迭代法求开方运算,
公式为f(n+1)=1/2*(f(n)+a/f(n)
要求精度大于1/(e^5)

void MySQRT()
{
printf("请输入:\n");
int x;
scanf("%d",&a);
double x1,x2;
x1 = a/2;
x2 = (x1 + a/x1) / 2;
do
{
x1 = x2;
x2 = (x1 + a/x1) / 2;
}while( fabs(x1-x2) >= 1e-5);
printf("%10f\n\n", x2);
}

大概意思就这样

这是由 牛顿逼近 推导出的。
迭代一直到前后两次求出的根值的差距小于预先给定的值。

这里是e^-5

迭代公式是 x[n+1]=1/2*(x[n]+a/x[n]).
依次求出 x[1],x[2]....一直到 x[n] - x[n-1] < e^-5
初始值 x[0] 可取任意正值