def abs(x: Double) = if (x < 0) -x else x def isGoodEnough(guess: Double, x: Double) = abs(guess * guess - x) / x < 0.0001 def improve(guess: Double, x: Double) = (guess + x / guess) / 2 def sqrtIter(guess: Double, x: Double): Double = if (isGoodEnough(guess, x)) guess else sqrtIter(improve(guess, x), x) def sqrt(x: Double) = sqrtIter(1.0, x)x_n+1 = x_n - ( f(x_n)/f'(x_n) ) x_n+1 = x_n - ( f(x_n)*eps/(f(x_n+eps)-f(x_n)) )x = x - f(x) / derivative(x);def abs(x: Double) = if (x < 0) -x else x def isGoodEnough(guess: Double, x: Double) = abs(guess * guess - x) / x < 0.0001 def improve(guess: Double, x: Double) = (guess + x / guess) / 2 def sqrtIter(guess: Double, x: Double): Double = if (isGoodEnough(guess, x)) guess else sqrtIter(improve(guess, x), x) def sqrt(x: Double) = sqrtIter(1.0, x)