From c24eae8e6cbc47930da31f4c4cc531ae90c50df1 Mon Sep 17 00:00:00 2001 From: parrt Date: Mon, 3 Jul 2017 10:58:51 -0700 Subject: [PATCH] rm dead stuff --- notes/figures/sqrt-recurrence.png | Bin 16537 -> 0 bytes notes/sqrt.md | 57 ------------------------------ 2 files changed, 57 deletions(-) delete mode 100644 notes/figures/sqrt-recurrence.png delete mode 100644 notes/sqrt.md diff --git a/notes/figures/sqrt-recurrence.png b/notes/figures/sqrt-recurrence.png deleted file mode 100644 index fa5e20be85263faba832999815a597a240f50d0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16537 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 O0TUON5vml>_4_}TPNy&c diff --git a/notes/sqrt.md b/notes/sqrt.md deleted file mode 100644 index 4ea8bd76..00000000 --- a/notes/sqrt.md +++ /dev/null @@ -1,57 +0,0 @@ -# Approximating square root - -## Goals - -* Encode and solve a recurrence relation from mathematics using iteration in Python to approximate a real-world, real valued function: `sqrt`. -* Make a function within a function - -The end result is file `sqrt.py`. - -## Description - -To approximate square root, the idea is to pick an initial estimate, x0, and then iterate with better and better estimates, xi, using the recurrence relation: - -
- -
- -There’s a great deal on the web you can read to learn more about why this process works but it relies on the average (midpoint) of x and n/x getting us closer to the square root of n. The cool thing is that the iteration converges quickly. - -Our goal is to write a function that takes a single number and returns it square root - -```python -# Stop iterating when the new approximation is within -# PRECISION of the old value. -PRECISION = 0.00000001 -def sqrt(n): - "compute square root of n" - # print "Compute sqrt(%f)" % n - x_0 = 1.0 # pick any old initial value - x_prev = x_0 - while True: - x_new = 0.5 * (x_prev + n/x_prev) - delta = abs(x_new - x_prev) - if delta < PRECISION: - print "sqrt(%f) = %f" % (n, x_new) - return x_new - # print x_new - x_prev = x_new -``` - -And then to test it, we can use `numpy`: - -```python -import math -def test_sqrt(): - def check(n): - assert np.isclose(sqrt(n), math.sqrt(n)) - check(125348) - check(89.2342) - check(100) - check(1) - check(0) - -test_sqrt() -``` - -As you can see you can define a function within a function. It's not special in any way except that code outside of `test_sqrt()` cannot see function `check()`. On the other hand, `check()` **can** see the symbols outside of `test_sqrt()`, such as our `sqrt()`. \ No newline at end of file