about summary refs log tree commit diff
path: root/usth/MATH2.4/labwork/1/ratpoison.py
diff options
context:
space:
mode:
Diffstat (limited to 'usth/MATH2.4/labwork/1/ratpoison.py')
-rw-r--r--usth/MATH2.4/labwork/1/ratpoison.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/usth/MATH2.4/labwork/1/ratpoison.py b/usth/MATH2.4/labwork/1/ratpoison.py
new file mode 100644
index 0000000..16aa65d
--- /dev/null
+++ b/usth/MATH2.4/labwork/1/ratpoison.py
@@ -0,0 +1,8 @@
+def ratpoison(f, df, x, es=10**-8, imax=20):
+    ea, i = 1, 0
+    while ea > es and i < imax:
+        i += 1
+        xold, x = x, x - f(x)/df(x)
+        if f(x) == 0: return x, 0, 0, i
+        if x: ea = abs((x - xold) / x)
+    return x, f(x), ea, i