[Swift算法]巴比伦法(牛顿迭代法)求平方根
生活随笔
收集整理的这篇文章主要介绍了
[Swift算法]巴比伦法(牛顿迭代法)求平方根
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
数学原理推导: f(X) = X2 - n ---公式(1) n为要求平方根的数值 比如 要求100的平方根 n = 100; 所以问题就转换成了求f(X)的零点问题了 f(Xn)的导数就是Xn+1 的斜率 所以就有了公式 所以 Xn+1 = Xn - f(Xn)/f'(Xn) 代入 公式1 f(Xn)=X2 -n f'(Xn)=2X Xn+1 = Xn - (Xn2 - n) / (2Xn) = Xn - 1/2 (Xn-n / Xn) = 1 / 2 (Xn + n / Xn) Xn 是被猜测的数字 n 是要求平方根的数值 经过多次迭代之后 Xn Swift 实现代码: import UIKitfunc babylonianMethod (toSqrt number: Double, epsilon: Double) -> Double{// epsilon 是精度控制var Xn0: Double = 1var Xn1: Double = (Xn0 + number / Xn0) / 2while( fabs(Xn0 - Xn1) > epsilon) {Xn0 = Xn1Xn1 = (Xn0 + number / Xn0) / 2}return Xn1}babylonianMethod(toSqrt: 2, 1e-10)
转载于:https://www.cnblogs.com/baaingSheep/p/4696329.html
总结
以上是生活随笔为你收集整理的[Swift算法]巴比伦法(牛顿迭代法)求平方根的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 让后台服务不被杀———电话录音
- 下一篇: 自绘制View---------左右滑动