How do I calculate internal rate of return (IRR) and yield to maturity (YTM) in Maxima? I am trying to calculate the YTM of a bond of $1000 face value that pays $50 in coupons every year. The bond is currently selling for $900, and matures in 3 years. Using the formula for the YTM:
900 = [50 / (1 + r)] + [50 / (1 + r)^2] + [50 / (1 + r)^3] + [1000 / (1 + r)^3]
How do I use Maxima to solve for r, the YTM?
The equation is a cubic polynomial, so it has an exact solution, which Maxima can find, but for problems like it's probably more useful to just look for a numerical approximation.
First note that Maxima only recognizes parentheses for grouping; square brackets are only for lists.
Call
find_rootto find an approximate root.By the way, there is an add-on package named
financewhich might be relevant. Try:?? financeto get some info.