牛顿迭代法
2014-08-21 13:11
218 查看
牛顿迭代
详细介绍见维基百科 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和精度影响。
迭代次数很少相对(二分),(精度倍增)
详细介绍见维基百科 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和精度影响。
迭代次数很少相对(二分),(精度倍增)
相关文章推荐
- 牛顿迭代法求方程根
- C语言程序设计 牛顿迭代法
- 牛顿迭代法 求解方程
- 很牛的牛顿迭代法
- 牛顿迭代法求求一个数的算术平方根
- 计算方法之牛顿迭代法求方程根
- 牛顿迭代法
- 牛顿迭代法开N次方根
- 牛顿迭代法解非线性方程matlab实现
- 牛顿迭代法求方程的根
- 华为OJ1964-求解立方根(牛顿迭代法)
- C语言(2)--牛顿迭代法、舍罕王的赏赐、解两个不等式、枚举类型变量输出三原色全排列
- 利用牛顿迭代法求平方根
- HDU 2199(牛顿迭代法)/(二分)(高次方程求解)
- 辗转相除法、埃拉托色尼筛选法、牛顿迭代法证明与C++实现
- 利用牛顿迭代法求平方根
- 牛顿迭代法(Newton's Method)
- C语言之基本算法25—牛顿迭代法求方程近似根
- “玲珑杯”ACM比赛 Round #19题解&源码【A,规律,B,二分,C,牛顿迭代法,D,平衡树,E,概率dp】