#1.1.7 Example: Square Roots by Newton's Method #(1.1.7 例:ニュートン法による平方根) def square(x): return x * x def sqrt_iter (guess, x): if good_enough(guess, x): return guess else: return sqrt_iter(improve(guess,x), x) def improve(guess, x): return average(guess, x / guess) def average(x, y): return (x + y) / 2 def good_enough(guess, x): if abs(square(guess) - x) < 0.001: return True def sqrt(x): return sqrt_iter(1.0, x) print sqrt(9) print sqrt(100 + 37) print sqrt(sqrt(2) + sqrt(3)) print square(sqrt(1000))
結果
3.00009155413 11.7046999178 1.77392790232 1000.00036992