Given a set of cashflows (including negative ones denoting investment), IRR is found by finding a real root to a high order polynomial f(x) = c0 + c1*x + c2*x^2 + ... + cN*x^N in a single variable where the cashflows are coefficients and the unknown is x = 1/(1+r). This is pretty routine calculation, but it isn't a linear program.
There is at least one special cases, optimizing IRR for a series of bonds with bounded coupon rates, where a direct MILP formulation has been proposed, but otherwise optimizing IRR is going to involve some iteration. There are some other issues with IRR as well. One is that changing the sign of the cash flows leaves IRR unchanged, and a highly volatile cash flow can result in multiple real roots, so you have to be sure you're getting a meaningful one. The other issues relate to whether it's appropriate to a particular problem. IRR is not sensitive to the scale or utility of an investment, or to a mutually exclusive alternative investment. So it's like a chainsaw -- lots of risk if not used carefully. On Fri, Sep 14, 2012 at 10:47 PM, Andrew Makhorin <[email protected]> wrote: >> Erwin manage to implement IRR using GAMS (below). >> >> http://yetanothermathprogrammingconsultant.blogspot.com.au/2010/03/calculating-irr-internal-rate-of-return.html >> >> Any GAMS expert in the list who might be able to help translate this >> GAMS IRR script into MathProg IRR script. >> > > Literal translation is impossible, because Erwin's model finds a > feasible solution of a non-linear program (that is, solves a system of > non-linear equations defined by 'ecashflow' equality constraints). > > > > _______________________________________________ > 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
