If you can get by with a close approximation to the IRR, then there may be another way to approach this problem. The so-called Dietz formula is used to estimate returns on a portfolio. You can derive the Dietz formula from an expression for NPV by taking the first two terms in a Taylor series expansion with respect to return r about the point r = 0, then solving for r. The Dietz return is the ratio of two affine terms in the cash flows. Once you have that, then use a Charnes-Cooper type transformation to convert this express into a linear objective for an LP. The net result is that you could then include return in the the objective or constraints of your calculation.
I've not done actually done this but it might be worth exploring. Here is some background http://www.shestopaloff.ca/yuri_eng/articles_subject/finance/HIGH_ACCURACY_METHODS_FOR_IRR_Web.pdf http://en.wikipedia.org/wiki/Linear-fractional_programming On Sun, Sep 16, 2012 at 3:06 PM, Andrew Makhorin <[email protected]> wrote: > >> It is well known, and your links show how, to use Newton's algorithm >> (aka Newton Raphson's algorithm) to find the IRR, since it's really >> find a root of a polynomial (see the other post by Jeffery Kantor, >> which also describes the fact that depending on the cash flows, there >> could be multiple solutions). >> > > Newton-Raphson's method is not a good choice in this case because > i) it requires an initial guess, ii) it is able to find only one root; > iii) it may not converge. To find all roots of a polynomial it is much > better to use a specialized algorithm, for example, QD-algorithm or > Bairstow's algorithm. Note also that roots of polynomials of high degree > are extremely sensible to round-off errors in specifying the polynomial > coefficients, so I belive that there should exist another formulation > of IRR. > > > > _______________________________________________ > Help-glpk mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/help-glpk _______________________________________________ Help-glpk mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-glpk
