about summary refs log tree commit diff
path: root/usth/MATH2.2/labwork/1/ratpoison.py
diff options
context:
space:
mode:
authorNguyễn Gia Phong <vn.mcsinyx@gmail.com>2019-12-16 21:31:18 +0700
committerNguyễn Gia Phong <vn.mcsinyx@gmail.com>2019-12-16 21:31:18 +0700
commite461df7573c2b7b7e26c965d8cf2d8e175d67378 (patch)
tree193b8439edac52c1749764395fe5f7787889eda9 /usth/MATH2.2/labwork/1/ratpoison.py
parentc1008fe39217be7f91f0ea23483e747bfbc5743e (diff)
downloadcp-e461df7573c2b7b7e26c965d8cf2d8e175d67378.tar.gz
[usth/MATH2.2] Numerical Methods
The future starts now.
Diffstat (limited to 'usth/MATH2.2/labwork/1/ratpoison.py')
-rw-r--r--usth/MATH2.2/labwork/1/ratpoison.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/usth/MATH2.2/labwork/1/ratpoison.py b/usth/MATH2.2/labwork/1/ratpoison.py
new file mode 100644
index 0000000..16aa65d
--- /dev/null
+++ b/usth/MATH2.2/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