diff options
author | Nguyễn Gia Phong <vn.mcsinyx@gmail.com> | 2020-02-16 14:26:55 +0700 |
---|---|---|
committer | Nguyễn Gia Phong <vn.mcsinyx@gmail.com> | 2020-02-16 14:26:55 +0700 |
commit | 82e6cf7d1046d6cee16f7e8b044ec33e7ec6c4b7 (patch) | |
tree | f7b7ae0bce69070c47a1b31a85bd2bc69dfecf09 /usth/MATH2.4/labwork/1/ratpoison.m | |
parent | 29d1001e2e21eff289bff23412e284c8b2e44595 (diff) | |
download | cp-82e6cf7d1046d6cee16f7e8b044ec33e7ec6c4b7.tar.gz |
[usth] Numerical Method is MATH2.4
Diffstat (limited to 'usth/MATH2.4/labwork/1/ratpoison.m')
-rw-r--r-- | usth/MATH2.4/labwork/1/ratpoison.m | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/usth/MATH2.4/labwork/1/ratpoison.m b/usth/MATH2.4/labwork/1/ratpoison.m new file mode 100644 index 0000000..f2db823 --- /dev/null +++ b/usth/MATH2.4/labwork/1/ratpoison.m @@ -0,0 +1,15 @@ +function [x fx ea i] = ratpoison (f, df, x0, es = 0.00000001, imax = 20) + nargin < 2 && error ('ratpoison requires at least 2 ingredients'); + [x fx dfx ea i] = deal (x0, f (x0), df (x0), 1, 0); + while (ea > es && i++ < imax) + [xold x] = deal (x, x - fx/dfx); + [fx dfx] = deal (f (x), df (x)); + if (fx == 0) + ea = 0; + break; + elseif (x) + % just drop the percent BS + ea = abs ((x - xold) / x); + end + end +end |