Post Reply 
Looking for TVM contributions
05-24-2024, 03:04 PM
Post: #23
RE: Looking for TVM contributions
(05-15-2024 12:57 PM)dm319 Wrote:  I had a go last night adapting the plus42 code into R and using the Rmpfr package which has arbitrary precision ...
I think I now have an arbitrary precision calculator, which looks like it will show plus42 is getting the best accuracy.

Plus42 algorithm to check Plus42 may not show numbers are accurate.
Unless, of course, Rmpfr setup with much higher precisions to compensate.

For better accuracy, we may apply time-symmetry.

Plus42 core_commands9.cc
Code:
do_pv():
pv = -(pmt * (-expm1(-n * log1p(i)) / i) + fv * exp(-n * log1p(i)))

do_fv():
fv = -(pv + pmt * (-expm1(-n * log1p(i)) / i)) / exp(-n * log1p(i))

expm1(-n*log1p(i)) == (1+i)^-n - 1

The problem is with positive (n*i), and |n| is huge, expression approaches -1.
Numerically, there are only so many representable numbers between -0.9 to -1.0

lua> expm1(-30), expm1(30)
-0.9999999999999064      10686474581523.463

We may use time symmetry, turned n to -n: {n,i,pv,pmt,fv} --> {-n,i,fv,-pmt,pv}

fv = -(-pmt * (-expm1(n * log1p(i)) / i) + pv * exp(n * log1p(i)))
pv = -(fv - pmt * (-expm1(n * log1p(i)) / i)) / exp(n * log1p(i))

Plus42 core_commands9.cc
Code:
do_n():         
n = -log1p(-(pv + fv) / (fv - (pmt / i))) / log1p(i);

do_i_pct_yr(): 
f(i) = ((pv+fv)/expm1(log1p(i)*n) + pv) * i + pmt 
f(i) = 0, solved for i, by newton's method.

do_pmt():
pmt = -((pv + fv) / expm1(n * log1p(i)) + pv) * i

do_n() is better if |fv| is small (best if fv=0)
do_i_pct_yr() and do_pmt() is better if |pv| is small. (best if pv=0)

Apply time-symmetry to reduce cancellation errors, we get tvm(n,i,pv,pmt,fv), and tvm_begin(n,i,pv,pmt,fv)
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Looking for TVM contributions - dm319 - 05-12-2024, 06:58 PM
RE: Looking for TVM contributions - dm319 - 05-12-2024, 08:48 PM
RE: Looking for TVM contributions - dm319 - 05-12-2024, 08:49 PM
RE: Looking for TVM contributions - dm319 - 05-12-2024, 08:00 PM
RE: Looking for TVM contributions - dm319 - 05-14-2024, 11:04 AM
RE: Looking for TVM contributions - dm319 - 05-14-2024, 05:58 PM
RE: Looking for TVM contributions - dm319 - 05-14-2024, 05:59 PM
RE: Looking for TVM contributions - dm319 - 05-14-2024, 08:34 PM
RE: Looking for TVM contributions - dm319 - 05-14-2024, 08:31 PM
RE: Looking for TVM contributions - dm319 - 05-15-2024, 01:00 PM
RE: Looking for TVM contributions - dm319 - 05-15-2024, 12:57 PM
RE: Looking for TVM contributions - Albert Chan - 05-24-2024 03:04 PM
RE: Looking for TVM contributions - dm319 - 05-24-2024, 10:05 PM
RE: Looking for TVM contributions - dm319 - 05-25-2024, 01:43 PM
RE: Looking for TVM contributions - dm319 - 05-25-2024, 08:40 PM
RE: Looking for TVM contributions - dm319 - 05-24-2024, 11:22 AM
RE: Looking for TVM contributions - dm319 - 05-24-2024, 02:58 PM
RE: Looking for TVM contributions - dm319 - 05-24-2024, 09:22 PM
RE: Looking for TVM contributions - dm319 - 06-02-2024, 02:46 PM
RE: Looking for TVM contributions - robve - 06-09-2024, 02:04 AM
RE: Looking for TVM contributions - dm319 - 06-09-2024, 12:15 PM
RE: Looking for TVM contributions - robve - 06-09-2024, 03:29 PM
RE: Looking for TVM contributions - dm319 - 06-09-2024, 06:05 PM
RE: Looking for TVM contributions - dm319 - 06-09-2024, 10:00 PM
RE: Looking for TVM contributions - robve - 06-12-2024, 08:48 PM
RE: Looking for TVM contributions - robve - 06-14-2024, 03:23 PM
RE: Looking for TVM contributions - robve - 06-14-2024, 10:11 PM
RE: Looking for TVM contributions - robve - 06-15-2024, 03:54 AM
RE: Looking for TVM contributions - dm319 - 06-12-2024, 11:56 PM
RE: Looking for TVM contributions - robve - 06-15-2024, 03:05 AM
RE: Looking for TVM contributions - robve - 06-15-2024, 05:48 PM
RE: Looking for TVM contributions - robve - 06-15-2024, 09:52 PM
RE: Looking for TVM contributions - robve - 06-15-2024, 01:38 PM
RE: Looking for TVM contributions - robve - 06-16-2024, 05:18 PM
RE: Looking for TVM contributions - Werner - 06-17-2024, 05:11 PM
RE: Looking for TVM contributions - robve - 06-16-2024, 08:26 PM
RE: Looking for TVM contributions - dm319 - 06-16-2024, 11:55 PM
RE: Looking for TVM contributions - robve - 06-17-2024, 09:03 PM
RE: Looking for TVM contributions - robve - 06-18-2024, 03:27 AM
RE: Looking for TVM contributions - robve - 06-19-2024, 12:57 AM
RE: Looking for TVM contributions - robve - 06-19-2024, 02:01 AM
RE: Looking for TVM contributions - robve - 06-19-2024, 03:47 PM
RE: Looking for TVM contributions - robve - 06-20-2024, 04:03 AM
RE: Looking for TVM contributions - robve - 06-20-2024, 05:07 PM
RE: Looking for TVM contributions - robve - 06-20-2024, 04:30 PM
RE: Looking for TVM contributions - robve - 06-20-2024, 06:27 PM
RE: Looking for TVM contributions - robve - 06-20-2024, 02:33 AM
RE: Looking for TVM contributions - robve - 06-21-2024, 09:04 PM
RE: Looking for TVM contributions - robve - 06-22-2024, 08:00 PM
RE: Looking for TVM contributions - robve - 06-23-2024, 06:03 PM
RE: Looking for TVM contributions - dm319 - 07-05-2024, 09:39 PM
RE: Looking for TVM contributions - dm319 - 07-05-2024, 09:44 PM



User(s) browsing this thread: 8 Guest(s)