He construido un programa que valora activos financieros y lo hace en parte calculando la TIR. El problema es que no se ejecuta tan rápidamente como me gustaría.
Actualmente utilizo el método de Newton-Raphson para calcular raíces de ecuaciones, pero luego cambio al método de Bisección de Intervalos después de un número determinado de intentos. Esto se debe a que existe la posibilidad de que el método de Newton-Raphson no pueda encontrar la TIR, por ejemplo, debido a asíntotas. Mi entendimiento es que el método de Newton-Raphson es más eficiente para los casos con los que realmente funciona, razón por la cual mi sistema está configurado de esta manera en la actualidad.
¿Existe una fórmula o algoritmo más eficiente que pueda utilizar para calcular la TIR de un activo financiero que los que estoy empleando actualmente? O, si no existe ninguno, ¿hay alguna forma en la que pueda cambiar mi orden actual de cálculos para hacerlo más eficiente?
Si necesitas que cualquiera de las fórmulas que utilizo sean escritas en esta pregunta, por favor házmelo saber. Gracias por tu tiempo.
Actualización
El software de valoración que he diseñado es una extensión de PHP escrita en lenguaje C. Esto se debe a que es un programa basado en la web. No puedo cambiar de lenguaje debido a cuestiones relacionadas con la empresa para la que trabajo, por lo tanto, a pesar de ser buenas sugerencias, no puedo utilizar PERL ni la función IRR de Excel. No mencioné los lenguajes antes ya que no creí que fueran demasiado importantes debido a que estoy buscando un aumento en la eficiencia matemática, no computacional.