--- 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]