Pregunta

Estoy tratando de utilizar la serie de Taylor para desarrollar un algoritmo para resolver numéricamente el sonido de una función. He estado trabajando durante bastante tiempo, pero no he tenido suerte todavía. No estoy seguro de lo que estoy haciendo mal.

La función es

f(x)=1 + x - sin(x)/ln(1+x)   x~0

También: ¿por qué la pérdida de precisión incluso se producen en esta función? cuando x es cercano a cero, sin (x) / ln (1 + x) no es ni siquiera cerca de ser el mismo número que x. No veo donde incluso se está perdiendo importancia.

Para resolver esto, creo que necesitaré utilizar los desarrollos de Taylor para sen (x) y ln (1 + x), que son

x - x^3/3! + x^5/5! - x^7/7! + ...

y

x - x^2/2 + x^3/3 - x^4/4 + ...

respectivamente. He intentado utilizar como denominadores para combinar la xy sen (x) / ln (1 + x) componentes, e incluso combinar los tres, pero nada parece funcionar de manera correcta al final. Cualquier ayuda es apreciada.

¿Fue útil?

Solución 6

Método utilizado en cuestión es correcta -. Sólo asegúrese de que su calculadora está en el modo de radianes

Otros consejos

La pérdida de precisión puede entrar porque cuando x ~ 0, ln(1+x) también está cerca de 0, por lo que terminan dividiendo por un número muy pequeño. Las computadoras no son muy buenos en eso; -)

Si utiliza la serie de Taylor para ln(1+x) directamente, va a ser una especie de dolor, porque vas a terminar dividiendo por una serie infinita de términos. Para casos como este, por lo general prefiero simplemente calcular la serie de Taylor para toda la función en su conjunto de la definición:

f(x) = f(0) + f'(0) x + f''(0) x/2 + f'''(0) x/6 + ...

desde el que se obtendrá

f(x) = 2 + 3x/2 - x^2/4 - x^3/24 - x^4/240 - 23x^5/1440 + 31x^6/2880 ...

(hice trampa y lo conecté a Mathematica ;-) Al igual que Steve dice, esta serie no converge todo lo que rápidamente, aunque no puedo pensar en un mejor método por el momento.

editar . Creo que leí mal la pregunta - si todo lo que estamos tratando de hacer es encontrar los ceros de la función, sin duda hay mejores maneras de utilizar una serie de Taylor

Como se trata de la tarea, sólo voy a tratar de dar algunas indicaciones en la dirección correcta.

Solución 1

En lugar de utilizar la aproximación serie Talyor, tratar de utilizar simplemente un algoritmo de búsqueda de raíces tales como el método de Newton-Raphson, interpolación lineal, o bisección intervalo (o combinarlos par). Son muy fáciles de implementar, y con una elección apropiada del valor (s) de partida, la raíz pueden converger a un valor preciso con bastante rapidez.

Solución 2

Si realmente necesita usar la aproximación de Taylor por cualquier razón, a continuación, sólo ampliar el sen (x), ln (x), y cualquier otra cosa. (Multiplicando por ln (x) para eliminar el denominador en su caso funcionará). A continuación, tendrá que utilizar algún tipo de polinomio de resolución de ecuaciones. Si quieres un grado razonable de precisión, que tendrá que ir más allá de la 3ª o 4ª poderes me imagino, lo que significa una solución analítica simple no va a ser fácil. Sin embargo, es posible que desee ver en algo así como el href="http://en.wikipedia.org/wiki/Durand-Kerner_method" rel="nofollow noreferrer"> Durand-Kerner método para resolver

Espero que ayude ...

Creo que hay que buscar lo que ocurre con ln (x + 1) cuando x -.> 0 y verá por qué esta función no se comporta bien cerca de x = 0

No he mirado en esto que de cerca, pero debes tener en cuenta que algunas series de Taylor converge muy, muy lentamente.

Just calcular la serie de Taylor de f directamente.

Maxima me da (4 primeros términos de x = 0):

(%i1) f(x):=1 + x - sin(x)/log(1+x);
                                           - sin(x)
(%o1)                     f(x) := 1 + x + ----------
                                          log(1 + x)


(%i2) taylor(f(x),x,0,4);
                                2    3    4
                           x   x    x    x
(%o2)/T/                   - + -- + -- + --- + . . .
                           2   4    24   240
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top