Post Reply 
TVM solve for interest rate, revisited
06-14-2024, 03:29 PM
Post: #40
RE: TVM solve for interest rate, revisited
Code:
Loan:  n  pv    pmt  fv
#1:    n  pv-x  pmt  x-pv      --> i = pmt / (x-pv)
#2:    n  x     0    (pv+fv)-x --> x = -(pv+fv) / ((1+i)^n-1)

We are not done with split loan yet ... Lets scale PV column to -1

Code:
#1:    n -1     i    1   , where i = pmt/(x-pv)
#2:    n -1     0    1+i2, where i2 = -(pv+fv)/x

(1+i)^n = 1+i2      → sgn(i2) = sgn(n*i)      (*)

i2 / i = -(pv+fv) / (pmt/i+pv) / i = -(pv+fv) / (pmt+pv*i)

sgn(-(pv+fv)/n) = sgn(pmt+pv*i) = sgn(pmt-fv*i)      // RHS from time-symmetry

Or, rewrite to show edge rate (note: ∞ is not an edge ... we might not have 2 edges)

sgn(-(pv+fv)/n) = sgn(pv*(i - pmt/-pv)) = sgn(-fv*(i - pmt/fv))

Based on signs, there is no reason to start from wrong side of edge rate.
It still work, but would converge slower than starting guess from edge.

OTTH, rate better than edge may overshoot ... and we don't know where!



(*) Let Kn = (1+x)^n > 0      // integer n, x = (-1, ∞)
Let Sn = Kn - 1, we want to show sgn(Sn) = sgn(n*x)

Sa+b = (Sa+1)*(Sb+1) - 1 = Sa*(1+Sb) + Sb = Sa*Kb + Sb

S1 = (1+x) - 1 = x
S2/S1 = (x*(1+x) + x)/x = (x+2) > 1
S3/S2 = (x*K2 + S2)/S2 = K2/(S2/S1) + 1 > 1
S4/S3 = (x*K3 + S3)/S3 = K3/(S3/S1) + 1 > 1
...

0 = Sn-n = S-n Kn + Sn

(Sn≥1 / x ≥ 1) and (Sn / S-n = -Kn < 0)      ⇒ sgn(Sn) = sgn(n*x)      QED
In other words, APY and APR have same sign, even if n is negative.



This perhaps is more elegant proof. Bonus: it covered real n too!

log1p(x)' = 1/(x+1) > 0
expm1(x)' = exp(x) > exp(-1) > 0

Both are increasing function. (we don't care the shape, only signs)

expm1(0) = log1p(0) = 0      --> sgn(expm1(x)) = sgn(log1p(x)) = sgn(x)

Sn = expm1(n*log1p(x))
log1p(Sn) = n*log1p(x)
sgn(Sn) = sgn(n*x)              QED
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: TVM solve for interest rate, revisited - Albert Chan - 06-14-2024 03:29 PM



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