问一个c++迭代法开方的问题:
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/08/04 00:50:50
问一个c++迭代法开方的问题:
迭代公式就是指用现在的值,代到一个公式里面,算出下一个值
再用下一个值代入公式,如此往复地代.公式是x=(x+a/x)/2
比如对2开方
x=(x+2/x)/2
你随便拿一个x=10代入,得x=(10+2/10)/2=5.1
再代进去x=(5.1+2/5.1)/2=2.746
再代入得1.737
再代得1.444
再代得1.414525655
再代得1.414213597
再代得1.414213562
初始不用10,用任一个正数,只要计算几次都可以得到1.414213562这样的结果.
#include
#include
using namespace std;
int main()
{
\x09float a,x0,x1;
\x09couta;
\x09x0=a/2;
\x09x1=(x0+a/x0)/2;
\x09do
\x09{
\x09\x09x0=x1;
\x09\x09x1=(x0+a/x0)/2;
\x09}while(fabs(x0-x1)
迭代公式就是指用现在的值,代到一个公式里面,算出下一个值
再用下一个值代入公式,如此往复地代.公式是x=(x+a/x)/2
比如对2开方
x=(x+2/x)/2
你随便拿一个x=10代入,得x=(10+2/10)/2=5.1
再代进去x=(5.1+2/5.1)/2=2.746
再代入得1.737
再代得1.444
再代得1.414525655
再代得1.414213597
再代得1.414213562
初始不用10,用任一个正数,只要计算几次都可以得到1.414213562这样的结果.
#include
#include
using namespace std;
int main()
{
\x09float a,x0,x1;
\x09couta;
\x09x0=a/2;
\x09x1=(x0+a/x0)/2;
\x09do
\x09{
\x09\x09x0=x1;
\x09\x09x1=(x0+a/x0)/2;
\x09}while(fabs(x0-x1)
![问一个c++迭代法开方的问题:](/uploads/image/z/18989668-28-8.jpg?t=%E9%97%AE%E4%B8%80%E4%B8%AAc%2B%2B%E8%BF%AD%E4%BB%A3%E6%B3%95%E5%BC%80%E6%96%B9%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%9A)
初值赋值为a/2,可以减少迭代次数
while(fabs(x0-x1)=1e-5)
可以适用非整数
while(fabs(x0-x1)=1e-5)
可以适用非整数
牛顿迭代法在开方中的应用,最好有C代码~
c语言中用迭代法求X的平方根的问题
这个c程序怎么不对了(求a的开方,用牛顿迭代法,为什么输出的总是x2的初值)
c语言开方问题用sqrt算一个数的二次方,结果显示sqrt:DOMAIN errorFloating point err
C语言求开方,用户输入一个数字,系统判定是否开方为整数,若不是,提示用户前一个和后一个可开方整数的数
c语言的开方函数
如何用牛顿迭代法开方根?
关于求jacobi迭代法的问题
牛顿迭代法+气体的量关系问题
牛顿迭代法,要c语言的!急用,
高分求newton迭代法求解非线性方程的一个根的c/c++程序
求一个能被开方的数减一也能被开方!