[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---------左右滑动