| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3812 人关注过本帖
标题:牛顿迭代法是什么意思
只看楼主 加入收藏
shangke
Rank: 1
等 级:新手上路
帖 子:23
专家分:5
注 册:2009-8-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
牛顿迭代法是什么意思
double mysqrt(double x)
{
double delta,y=1,epsilon=1e-8;
do
{
delta=(x/y-y)/2;
y+=delta;
}while(delta>=epsilon||delta<=-epsilon);
return y;
}

不明白什么意思麻烦解释下
感谢大家了

[ 本帖最后由 shangke 于 2009-8-6 17:51 编辑 ]
搜索更多相关主题的帖子: 迭代法 牛顿 
2009-08-06 14:34
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:20 
回复 楼主 shangke

你这个真的編的没问题吗?什么都是return 0?

其实牛顿迭代法就是一利用不动点求方程根的方法之一。
如果你想求一个数,比如a的平方根。
相当于解方程:x^2 = a,或者 x^2 - a = 0。
如果你学过数学分析,应该知道左边可以在一个初值x0附近按泰勒级数展开:
x0^2 + 2(x-x0) * x0 + (x-x0)^2 - a = 0
取x的线性部分,就得到了一个近似方程:
x0^2 + 2(x-x0) * x0  - a = 0
可以从中解出x:
x = (a + x0^2) / (2 * x0)

如果你取的x0正好是a的平方根,那么代入上式,算出来的x还是a的平方根。
如果代入的不是a的平方根,那么算出来的x将比x0更接近a的平方根。
你可以设x0 = a' + d(其中a'表示a的平方根),代入:
于是x - a'
= (a + (a'+d)^2) / (2a' + 2d)   - a'
= (2a + 2a'd + d^2) / 2a' + 2d  - a'
< (2a + 2a'd + d^2) / 2a'       - a'
< (2a + 2a'd) / 2a'             - a'
= a' + d                        - a'
= d
可见 x 与 a' 的误差是比原来的x0要小的。
这样用新算出来的x做为x0的话,再代入那个式子,就可以算出更接近a'的数来。
理论上如果能无限代下去,最后就会得到a'的精确值。实际上只用迭代几次,就能得出与a'误差不太大的值。可以做为方程的近似解。

牛顿迭代法是一类解方程根的通法,虽然它也不是在任何情况下都能收敛到方程的根上。但一般情况下都可以以很快的速度逼近方程的根,因此这种方法使用的非常广泛。我这里只是就这道题推了一下公式,你上网查查应该有全面讲解 牛顿迭代法 的地方。在数学分析里这个方法又叫 牛顿切线法。它除了可以用泰勒公式推导以外(这是一种普遍的方法,除了可以推导牛顿迭代公式以外,还可以推导出更高阶的逼近公式。在数值分析中有专门的研究),还可以用几何方法推导这个公式。

它的一般形式是:
x = x0 - f(x0) / f'(x0)

[ 本帖最后由 pangding 于 2009-8-6 23:58 编辑 ]
2009-08-06 16:42
sadan20111
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2009-8-1
收藏
得分:0 
回复 2楼 pangding

版主真是强啊,希望能在你那里学到更多的知识,呵呵
2009-08-06 17:29
shangke
Rank: 1
等 级:新手上路
帖 子:23
专家分:5
注 册:2009-8-3
收藏
得分:0 
回复 楼主 shangke

呵呵 写错了 以后我再问题绝对多多审查两遍 谢谢您的帮助thanks

我的博客:http://hi.baidu.com/hk_csm
2009-08-06 17:51
快速回复:牛顿迭代法是什么意思
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014859 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved