Al Chou wrote:
--- Will Stranathan <[EMAIL PROTECTED]> wrote:

Has there been any discussion about the possibility of adding some work to Commons somewhere for common financial functions? I don't know if this necessarily falls in the scope of the Math project, or if I would need to submit a proposal, or if there is any general interest in this.

Some of the functionality that I'm thinking about is things like:
- Number of periods to bring an annuity to a target value (or pay off a loan - i.e., NPER)
- Calculation of interest and principal for current payment
- Amortization schedules
- Minimum payment amount calculations, given an interest rate, principal, desired payoff date, etc.


Let me know if there's enough interest for me to put together a proposal (or if this need is already met elsewhere).


Sounds like a good idea to me, I'd say go ahead with the proposal.

I agree. Or just submit patches to MathUtils and we can discuss splitting things out as necessary down the road.



Friday I came across a derivation of amortization that I had printed out a couple of years ago, and I just looked for a little Ruby script I had written at that time to compute amortization schedules (the << operator/method of a Ruby Array is equivalent to the add method of a Java ArrayList or Vector; I could have written the following using the push() method to make it read more like Java):

principal = 10000 # whatever the principal amount is
rate = 7.5 # as an annual percentage
num_periods = 30 * 12 # total number of payment periods

rate /= 100.0 # To convert percent to a real number.
rate /= 12.0 # To convert annual rate to monthly rate.

payment_amount = principal * rate * ( 1.0 / ( ( 1.0 + rate )**num_periods - 1.0
) + 1.0 )

payment_interest_portion = Array.new
payment_principal_portion = Array.new
sum_payment_principal_portions = 0

payment_interest_portion[0] = 0
payment_principal_portion[0] = 0

1.upto( num_periods ) { |i|
  sum_payment_principal_portions += payment_principal_portion[i - 1]

  payment_interest_portion << rate * ( principal -
sum_payment_principal_portions )

  payment_principal_portion << payment_amount - payment_interest_portion[i]
}

If I remember correctly, the above code was written directly from the formulas
in the derivation and not ported from existing code, but I'll check, and if so,
I'm willing to contribute it to commons-math.


Al


=====
Albert Davidson Chou

Get answers to Mac questions at http://www.Mac-Mgrs.org/ .

__________________________________
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to