Sea una funcion f(x) infinitamente derivable (puede ser real o compleja) definida en un intervalo abierto (a-r,a+r), tenemos:donde f(n) (a) representa la n-ésima derivada de f en el punto a. Si a=0 entonces es una serie de McLaurin.

La aplicación que tienen estas series en informática es muy grande, puesto que gracias a ellas, podemos desarrollar algoritmos que nos calculen fácilmente operaciones complejas que no tenemos implementadas por sw o hw.

En una arquitectura CISC típica como la x86 tenemos una instrucción que nos calcula fácilmente cualquier función trigonométrica, pero ¿que pasa si estamos operando bajo una arquitectura tipo RISC que no posee tal instrucción?

Aqui tendríamos el algoritmo para calcular por ejemplo el sen(x):

Tomamos a=0 (McLaurin) y calculamos las derivadas 1 a 7 por ejemplo de sen(x) en el punto a=0

f(x)=sen x
fI(x)=cos x, por lo tanto fI(0)=1
fII(x)=-sen x, por lo tanto fII(0)=0
fIII(x)=-cos x, por lo tanto fIII(0)=-1
fIV(x)=sen x, por lo tanto fIV(0)=0
…. aqui se repetiría

entonces, según el desarrollo, tenemos que:

sen(x)=0 + (1/1!)x + (0/2!)x2 + (-1/3!)x3 + (0/4!)x4 + (1/5!)x5….

y vemos fácilmente que los términos pares son siempre igual a 0 y los impares son 2n+1, por lo tanto podemos simplificar la función y mediante un bucle tenemos que

Resultado=0;
for(i=0;i<precision;i++)
Resultado+=((0-1)^i)/((2*i-1)!)*x^(2*i-1);

donde precision es el numero de iteraciones del bucle. Recordemos que cuantas mas iteraciones, mas precisión tendremos en nuestra función.

No responses yet

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Time limit is exhausted. Please reload CAPTCHA.