Pregunta

Me cuesta entender por qué sería útil usar la serie de Taylor para una función a fin de obtener una aproximación de una función, en lugar de simplemente usar la función misma al programar.Si puedo decirle a mi computadora que calcule e^(.1) y me dará un valor exacto, ¿por qué debería tomar una aproximación?

¿Fue útil?

Solución

Las series de Taylor generalmente no se utilizan para aproximar funciones.Por lo general, se utiliza alguna forma de polinomio minimax.

Las series de Taylor convergen lentamente (se necesitan muchos términos para obtener la precisión deseada) y son ineficientes (son más precisas cerca del punto alrededor del cual están centradas y menos precisas lejos de él).El mayor uso de las series de Taylor probablemente sea en clases y trabajos de matemáticas, donde son útiles para examinar las propiedades de funciones y para aprender sobre cálculo.

Para aproximar funciones, a menudo se utilizan polinomios minimax.Un polinomio minimax tiene el error máximo mínimo posible para una situación particular (intervalo sobre el cual se aproxima una función, grado disponible para el polinomio).Por lo general, no existe una solución analítica para encontrar un polinomio minimax.Se encuentran numéricamente, utilizando la algoritmo remez.Los polinomios Minimax se pueden adaptar para satisfacer necesidades particulares, como minimizar el error relativo o el error absoluto, aproximar una función en un intervalo particular, etc.Los polinomios minimax necesitan menos términos que las series de Taylor para obtener resultados aceptables y "esparcen" el error a lo largo del intervalo en lugar de ser mejores en el centro y peores en los extremos.

Cuando llamas al exp función para calcular eX, probablemente esté utilizando un polinomio minimax, porque alguien hizo el trabajo por usted y construyó una rutina de biblioteca que evalúa el polinomio.En su mayor parte, lo único que los procesadores de computadora pueden hacer aritmética es suma, resta, multiplicación y división.Por tanto, es necesario construir otras funciones a partir de esas operaciones.Los primeros tres proporcionan polinomios, y los polinomios son suficientes para aproximar muchas funciones, como el seno, el coseno, el logaritmo y la exponenciación (con algunas operaciones adicionales para mover elementos dentro y fuera del campo exponencial de los valores de punto flotante).La división agrega funciones racionales, lo cual es útil para funciones como arcotangente.

Otros consejos

por dos razones. En primer lugar, la mayoría de los procesadores no tienen implementaciones de hardware de operaciones complejas como exponenciales, logaritmos, etc. En tales casos, el lenguaje de programación puede proporcionar una función de la biblioteca para computar aquellas: en otras palabras, alguien usó una serie de taylor u otra aproximación para ti.

segundo, puede tener una función que ni siquiera el idioma admite.

Recientemente quería usar las tablas de búsqueda con interpolación para obtener un ángulo y luego calcular el pecado () y COS () de ese ángulo. El problema es que es un DSP sin punto flotante ni funciones trigonométricas, por lo que esas dos funciones son realmente lentas (implementación de software). En su lugar, pongo el pecado (x) en la tabla en lugar de x y luego usé la serie Taylor para y= sqrt (1-x * x) para calcular el COS (x) de eso. Esta serie de Taylor es precisa sobre el rango que necesitaba con solo 5 términos (los denominadores son todos los poderes de dos!) Y se pueden implementar en punto fijo usando Plain C y genera un código más rápido que cualquier otro enfoque.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top