ニュートン法で平方根を求める

def newton_sqrt(x, diff=1e-15):
    y0 = x 
    y1 = x/2 # これが最初の推定値。
    
    while abs(y0 - y1) > diff: # いくら計算しても値が変化しなくなるまで
        y0 = y1
        y1 = 0.5 * (y1 + x/y1) # この漸化式で値をどんどん更新してゆく。
        
    return y1

sol = newton_sqrt(2)
print(sol)
print(sol**2)

f:id:ti-nspire:20190328134646p:plain