
编写程序:用迭代法求x=根号a。 求平方根的迭代公式为Xn+1=1/2(Xn+a/Xn) 20
编写程序:用迭代法求x=根号a。求平方根的迭代公式为Xn+1=1/2(Xn+a/Xn),要求前后两次求出的x的差的绝对值小于10的负7次方。#include<cmath>...
编写程序:用迭代法求x=根号a。
求平方根的迭代公式为Xn+1=1/2(Xn+a/Xn),要求前后两次求出的x的差的绝对值小于10的负7次方。
#include<cmath>
using namespace std;
double f(double n);
int main()
{
double a;
do{
cout<<"输入非负数";
cin>>a;
}while(a<0);
cout<<f(a);
return 0;
}
double f(double n)
{
double m,v;
if(n<=1)
m=1;
else
do{
v=f(n-1);
m=(v+n/v)/2;
} while(fabs(m-v)>=10E-7);
return m;
}
哪里有问题,绝对值>=10E-7有什么作用
do {
x=y;
y=(x+a/x)/2;
} while (fabs(y-x)>1e-7);
这是怎么实现迭代的 展开
求平方根的迭代公式为Xn+1=1/2(Xn+a/Xn),要求前后两次求出的x的差的绝对值小于10的负7次方。
#include<cmath>
using namespace std;
double f(double n);
int main()
{
double a;
do{
cout<<"输入非负数";
cin>>a;
}while(a<0);
cout<<f(a);
return 0;
}
double f(double n)
{
double m,v;
if(n<=1)
m=1;
else
do{
v=f(n-1);
m=(v+n/v)/2;
} while(fabs(m-v)>=10E-7);
return m;
}
哪里有问题,绝对值>=10E-7有什么作用
do {
x=y;
y=(x+a/x)/2;
} while (fabs(y-x)>1e-7);
这是怎么实现迭代的 展开
展开全部
# include <stdio.h>
# include <math.h>
main()
{
double m,n=1.0,a;
printf("请输入a:");
scanf("%lf",a);
do
{
m=n;
n= (m + a/m) / 2;
}
while(fabs(n-m)>1e-5);
printf("结果为:%7.5f\n",n);
}
# include <math.h>
main()
{
double m,n=1.0,a;
printf("请输入a:");
scanf("%lf",a);
do
{
m=n;
n= (m + a/m) / 2;
}
while(fabs(n-m)>1e-5);
printf("结果为:%7.5f\n",n);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询