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ápido como quisiera.
Actualmente utilizo el método de Newton-Raphson para calcular las raíces de ecuaciones, pero luego cambio al método de Bisección de Intervalo después de un número establecido de intentos. Esto se debe a que hay una posibilidad de que el método de Newton-Raphson no pueda encontrar la TIR, por ejemplo, debido a asíntotas. Mi comprensión es que el método de Newton-Raphson es más eficiente para los casos en los que realmente funciona, por lo que mi sistema está configurado de esta manera actualmente.
¿Existe una fórmula o algoritmo más eficiente que pueda usar para calcular la TIR de un activo financiero que los que estoy empleando actualmente? O, si no los hay, ¿hay alguna forma de cambiar el orden actual de mis cálculos para que sea más eficiente?
Si necesitas que alguna de las fórmulas que utilizo realmente se escriban en esta pregunta, avísame. Gracias por tu tiempo.
Actualización
El software de valoración que he diseñado es una extensión de PHP escrita en el lenguaje C. Esto se debe a que es un programa basado en la web. No puedo cambiar de lenguaje por razones relacionadas con la empresa para la que trabajo, por lo que, a pesar de ser buenas sugerencias, no puedo utilizar PERL o la función TIR de Excel. No mencioné los lenguajes antes porque no creía que fueran demasiado importantes debido al hecho de que estoy buscando un aumento en la eficiencia matemática, no computacional.