[Swift算法]巴比伦法(牛顿迭代法)求平方根

本文详细介绍了如何通过数学原理推导并使用Swift编程语言实现Babylonian方法来求解任意数值的平方根,包括算法核心、Swift代码实现及实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

数学原理推导:
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 - (Xn- n) / (2Xn)
   = Xn - 1/2 (Xn-n / Xn)
   = 1 / 2 (Xn + n / Xn) 
 
Xn 是被猜测的数字 n 是要求平方根的数值
经过多次迭代之后 Xn
 
 
Swift 实现代码: 
 

import UIKit


func babylonianMethod (toSqrt number: Double, epsilon: Double) -> Double{
    // epsilon 是精度控制
    var Xn0: Double = 1
    var Xn1: Double = (Xn0 + number / Xn0) / 2
    
    while( fabs(Xn0 - Xn1) > epsilon) {
        Xn0 = Xn1
        Xn1 = (Xn0 + number / Xn0) / 2
    }
    return Xn1
    
}

babylonianMethod(toSqrt: 2, 1e-10)

 

 

转载于:https://www.cnblogs.com/baaingSheep/p/4696329.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值