编写程序:用迭代法求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);
这是怎么实现迭代的 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询