Ejemplo de operaciones con series de potencia con ayuda de Máxima

A continuación ilustraremos el uso de Máxima para la realización de algunas operaciones con series de potencias.

Definición de sumatorias y operaciones.

Para definir una serie, simplemente usamos el comando sum(expr,indice,inicio,fin).

De esta forma, si queremos definir la serie: y(x)= \sum\limits_{k=0}^{\infty}\dfrac{x^k}{k!} = e^x

el comando es:

(%i1) y(x):=sum(x^k/k!,k,0,inf)Maxima

Si tomamos solo 10 diez términos de la serie, evaluamos en x=1 y comparamos con el valor teórico (número e), nos queda:

(%i1) y(x):=sum(x^k/k!,k,0,10);Maxima
float(y(1));float(exp(1));

Cuyo resultado es:

y(x):=sum(x^k/k!,k,0,10)
(%o1) 2.718281801146384Maxima
(%o2) 2.718281828459045

También podemos realizar operaciones de suma/resta, multiplicación/división, derivación/integración en las series. Por ejemplo, si quisiéramos realizar la operación:

x\dfrac{d^2}{dx^2}\sum\limits_{k=0}^{\infty}c_k x^k-\int{\sum\limits_{k=0}^{\infty}c_k x^k}dx+\sum\limits_{k=0}^{\infty}c_k x^k

Entonces la secuencia de comando es:

y(x):=sum(c[k]*x^k,k,0,inf);Maxima
x*diff(y(x),x,2)-integrate(y(x),x)+y(x);

Si queremos simplificar y encontrar el resultado,  usamos las funciones intosum() y sumcontract(), asi:

intosum(%);Maxima
sumcontract(%);

Cuyo resultado arroja:

(%o2)(sum(-(c[k]*x^(k+1))/(k+1),k,0,inf))+(sum(c[k]*x^k,k,0,inf))+sum((k-1)*k*c[k]*x^k-1,k,0,inf)=0Maxima
(%o3) sum(-(c[k]*x^(k+1))/(k+1)+c[k]*x^k+(k-1)*k*c[k]*x^k-1,k,0,inf)=0

\sum\limits_{k=0}^{\infty }-\frac{{c}_{k}\,{x}^{k+1}}{k+1}+{c}_{k}\,{x}^{k}+\left( k-1\right) \,k\,{c}_{k}\,{x}^{k-1}

También podemos definir, la fórmula de recurrencia con la que han de calcularse los coeficientes cn, por ejemplo:

c[0]:1$ 
c[n]:=c[n-1]/n;
y(x):=sum(c[n]*x^n,n,0,10);Maxima
float(y(1));

Cuyo resultado es:

(%o1) c[n]:=c[n-1]/n
(%o2) y(x):=sum(c[n]*x^n,n,0,10)Maxima
(%o3) 2.718281801146384

La siguiente secuencia de comandos, grafica la serie definida mediante una ecuación de recurrencia c[n], en el intervalo -4<x<1 para 20 términos de la serie:

c[0]:1$ c[1]:0$ c[2]:0$
c[k]:=c[k-3]/(k*(k-1));
y1(x,m):=sum(c[k]*x^(k),k,0,m);
plot2d(y1(x,20),[x,-4,1]);

Ejem01OperacionesSeries

De esta forma y con el uso de otros comandos, es fácil realizar operaciones más complejas y simplificaciones de ecuaciones que contengan series de potencias.

 

Cálculo de coeficientes de series y aproximación en series de Taylor:

Para aproximar una función en series de Taylor de 10 términos, se usa el comando taylor() de la siguiente manera:

(%i1) f(x):=sin(x);
      taylor(f(x),x,0,10);Maxima
(%o2)/T/  x-x^3/6+x^5/120-x^7/5040+x^9/362880+...

Si queremos encontrar la expresión para el n-ésimo coeficiente, podemos usar la función powerseries():

(%i2) powerseries(f(x),x,inf);Maxima

Cuya resultado es:

sum(((-1)^i9*x^(2*i9+1))/(2*i9+1)!,i9,0,inf)Maxima

\sum\limits_{i7=0}^{\infty }\frac{{\left( -1\right) }^{i7}\,{x}^{2\,i7+1}}{\left( 2\,i7+1\right) !}

 

De esta manera, usted puede encontrar rápidamente la expresión en series de potencia de funciones más complejas, por ejemplo:

f(x):=tan(x)$
powerseries(f(x),x,inf);
Maximataylor(f(x),x,0,10);

Cuya resultado es:

(%o3)sum(((-1)^i8-1*(2^(2*i8)-1)*2^(2*i8)*bern(2*i8)*x^(2*i8-1))/(2*i8)!,i8,0,inf)
(%o4)/T/ x+x^3/3+(2*x^5)/15+(17*x^7)/315+(62*x^9)/2835Maxima

\sum\limits_{i1=0}^{\infty }\frac{{\left( -1\right) }^{i1-1}\,\left( {2}^{2\,i1}-1\right) \,{2}^{2\,i1}\,\mathrm{bern}\left( 2\,i1\right) \,{x}^{2\,i1-1}}{\left( 2\,i1\right) !}

Donde bern() son los números de Bernoulli.

Observe en el siguiente ejemplo como se puede obtener la expresión y gráfica de la aproximación en series de potencia de una función:

 f(x):=atan(x)$
 faprox:taylor(f(x),x,0,12);
 powerseries(f(x),x,inf);Maxima
 plot2d([f(x),faprox],[x,-4,4],[y,-%pi/2,%pi/2]);

El resultado es:

(%o1)/T/ x−x^3/3+x^5/5−x^7/7+x^9/9−x^11/11+...
(%o2) sum(((−1)^i1*x^(2*i1+1))/(2*i1+1),i1,0,inf)

\sum_{i1=0}^{\infty }\frac{{\left( -1\right) }^{i1}\,{x}^{2\,i1+1}}{2\,i1+1}

GrafAproxSeries

 

Finalmente, con los comandos mostrados y usando las fórmulas del método de reducción de orden, podemos encontrar fácilmente la 2da solución (expresada en series de potencia) de la EDO: (1-x^2)y''-2xy'+6y=0 si sabemos que y_1=1-3x^2 es una solución.  Usamos la siguiente secuencia de comandos:

y1:1-3*x^2$
fi:y1^2*exp(-integrate(2*x/(1-x^2),x))$
y2:y1*integrate(taylor(fi^-1,x,0,10),x)$
expand(%);
-(6015*x^13)/11-(2*x^11)/33-(5*x^9)/63-(4*x^7)/35-x^5/5-(2*x^3)/3+x