1
0

solution to exercise 1

This commit is contained in:
Stephen M. McQuay 2012-08-02 14:39:21 -06:00
parent 05649fb4d2
commit a5ba7c63b1

34
loopfuncs/go.go Normal file
View File

@ -0,0 +1,34 @@
package main
import (
"fmt"
"math"
)
const min_threshold = 1e-200
func Sqrt(x float64, threshold float64) (z float64, iterations int) {
z = x
old_z := z
for {
z = z - (z*z-x)/(2*x)
if math.Abs(z-old_z) < threshold {
break
}
old_z = z
iterations++
}
return
}
func main() {
threshold := 1.0
right_answer := math.Sqrt(2)
for threshold > min_threshold {
answer, iterations := Sqrt(2, threshold)
fmt.Printf("%0.4g %0.4g %0.20f %0.20f %0.2d\n",
threshold, right_answer-answer, right_answer, answer,
iterations)
threshold = threshold / 10.0
}
}