牛顿法开方原理及代码
来源:互联网 发布:淘宝延长收货三天 编辑:程序博客网 时间:2024/06/09 17:10
牛顿法(Newton’s method)又称为牛顿-拉弗森方法(Newton-Raphson method) (为了简便下文称之为NR法), 它是一种在实数域和复数域上近似求解方程的方法.
下面是维基百科上的演示图片.
在计算机入门的时候往往会讲解使用二分法求解一个正数的平方根. 通过不断的猜测, 检查, 改进再猜测来取到一个最接近结果的值. 实质是求
NR法在求近似根方面比二分法的效率更高, 假设我们下一次的猜测值是
设
对
可知
将
所以切线方程为
当
使用这样的计算策略, 可以让我们的猜测值在更少的迭代次数内到达我们认可的数值.
下面是python代码
def squareRootNR(x, epsilon): assert x>=0, 'x must be non negtive not'+str(x) assert epsilon>0,'epsilon must be positive not'+str(epsilon) x=float(x) guess=x diff=guess**2-x ctr=1 while abs(diff)>epsilon and ctr<=100: guess=guess-diff/(2*guess) diff=guess**2-x ctr+=1 assert ctr<=100 ,'the times of iteration is too much' print 'NR method: guess: %f iteration: %d' %(guess, ctr) return guess
0 0
- 牛顿法开方原理及代码
- 牛顿开方法的算法及其原理
- 利用牛顿开方法开任意次方
- 牛顿迭代法求开方
- [置顶] Project Euler Problem 80-高精度开方-牛顿逼近法
- 牛顿迭代法求高精度开方
- 开方 牛顿迭代公式
- 牛顿迭代法求开方值
- 牛顿迭代法求高精度开方
- 牛顿法及拟牛顿法
- java 实现 牛顿迭代法求开方
- 通俗易懂地讲解牛顿迭代法求开方
- 梯度下降的原理(泰勒证明)及与牛顿法的对比
- 牛顿法及拟牛顿法(L-BFGS)
- 牛顿法及牛顿下山法求零点
- 牛顿法及牛顿法求解优化问题
- 算法#04--详解高斯牛顿迭代法原理和代码
- 详解高斯牛顿迭代法原理和代码
- 【hibernate框架】一对多(多对一)双向CRUD-关于update
- Word Break
- Chrome插件开发学习心得(三)之传值
- 负面测试 (Testing for failure) assertRaises
- 【Unity】Mesh网格编程(一)正二十面体
- 牛顿法开方原理及代码
- 【spring框架】spring的几个Annotation实现(上)
- vim 树形目录插件NERDTree安装
- How To Handle Negative Risk-Learn Negative Risk Response Strategies
- 搭建notepad++ 下的 python编译器
- HDU 2814 - Interesting Fibonacci (Fibonacci性质 + 循环节)
- BZOJ1758 [Wc2010]重建计划(二分答案+点分治+单调队列)
- 【spring框架】spring的几个Annotation实现(下)
- aoj0033结题报告(想不出来看了别人的代码,基础实在差。。。)