首页 > 代码库 > 牛顿迭代法
牛顿迭代法
牛顿迭代
详细介绍见维基百科 http://zh.wikipedia.org/wiki/牛顿法
举一个栗子
找平方根
给一个数a,求其平方根。
设其平方根为x 则有 x^2 - a = 0,设函数f(x) = x^2 - a,
取x0的初值尽量靠近a的平方根(因为初值的选择影响迭代的次数)
根据 f(x0) = (x0 - x).f’(x0)
---> x = x0 - f(x0)/f’(x0) ①
---> x0 = x ②
重复①、②直到abs(x-x0)<=eps,达到精度要求即可。
代码:
a = input();
x0 = Init_Value;
While( fabs(x-x0)>eps){
x0 = x;
x = x0 - f(x0)/f’(x0);
}
Eg. a = 2 , eps = 1e-8
X0 = 1.0
迭代过程中x的变化
1.5000000000000000
1.4166666666666667
1.4142156862745099
1.4142135623746899
1.4142135623730951
总的来说
F(x)函数连续,且在零点范围内收敛。
迭代的次数受x0和精度影响。
迭代次数很少相对(二分),(精度倍增)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。