Tema CS4: Sucesiones y recursión
(Ejercicios resueltos)

1 Formas de generar una sucesión

Ejercicio 1.1. Definir la sucesión u[n] cuyo término general es
1-(-1/2)^n.

(%i1) u[n]:=1-(-1/2)^n ;
Result

Ejercicio 1.2. Calcular el término que ocupa la posición 20 de la sucesión
anterior.

(%i2) u[20] ;
Result

Ejercicio 1.3. Calcular el valor decimal del término anterior.

(%i3) float(%);
Result

Ejercicio 1.4. Calcular el límite de la sucesión u[n].

(%i4) limit(u[n],n,inf);
Result

Ejercicio 1.5. Definir, por recursión, la sucesión
   v[n] = 1, si n = 0
        = v[n-1]/2+3, si n > 0.

(%i5) v[0] : 1$
v[n] := v[n-1]/2+3$

Ejercicio 1.6. Calcular la lista de pares [k,v[k]] para k entre 0 y 9.

(%i7) makelist([k,v[k]],k,0,9);
Result

Ejercicio 1.6. Asignarle a la variable terminos como valor la lista de
pares [k,v'[k]] para k entre 0 y 5, donde v'[k] es la expresión decimal
de v[k].

(%i8) terminos : makelist([k,float(v[k])],k,0,9);
Result

Ejercicio 1.7. Dibujar los puntos de la lista terminos.

(%i9) wxplot2d([discrete,terminos], [style, points],[xlabel,"n"],[ylabel,"v[n]"]);
Result

Ejercicio 1.8. Calcular la lista de pares [k,v'[k]] para k entre 100 y 105,
donde v'[k] es la expresión decimal de v[k].

(%i10) makelist([k,float(v[k])],k,100,105);
Result

Ejercicio 1.9. Calcular el límite de la sucesión v.

(%i11) limit(v[n],n,inf);
Result

Nota. Maxima no calcula el límite de esta sucesión.

2 Recurrencias

Ejercicio 2.1. Cargar el paquete solve_rec para resolver recurrencias.

(%i12) load(solve_rec)$

Ejercicio 2.2. Resolver la ecuación recurrente w[n]=w[n-1]/2+3

(%i13) solve_rec(w[n]=w[n-1]/2+3,w[n]);
Result

(%i14) ratsimp(%);
Result

Ejercicio 2.2. Resolver la ecuación recurrente w[n]=w[n-1]/2+3 con la
condición inicial w[0]=1

(%i15) solve_rec(w[n]=w[n-1]/2+3,w[n],w[0]=1);
Result

(%i16) ratsimp(%);
Result

Ejercicio 2.3. Calcular w[2]

(%i17) w[2];
Result

Ejercicio 2.4. Definir la sucesión w[n] como la solución de
   w[n]=w[n-1]/2+3
   w[0]=1

(%i18) ratsimp(solve_rec(w[n]=w[n-1]/2+3,w[n],w[0]=1));
Result

(%i19) define(w[n],rhs(%));
Result

Ejercicio 2.5. Calcular w[2].

(%i20) w[2];
Result

Ejercicio 2.6. Calcular el desarrollo de w[n].

(%i21) expand(w[n]);
Result

Ejercicio 2.7. Borra el valor de la variable u.

(%i22) kill(u)$

Ejercicio 2.8. Resolver las ecuaciones que definen la sucesión de Fibonacci
   u[0] =0,
   u[1] =1,
   u[n+2]=u[n+1]+u[n]

(%i23) solve_rec(u[n+2]=u[n+1]+u[n],u[n],u[0]=0,u[1]=1);
Result

Ejercicio 2.9. Definir la sucesión uC como la forma cerrada de la
sucesión de Fibonacci.

(%i24) define(uC[n],rhs(%));
Result

Ejercicio 2.10. Calcular el décimo término de la sucesión de Fibonacci
usando su forma cerrada.

(%i25) uC[10];
Result

(%i26) ratsimp(%);
Result

3 Representación gráfica de uns sucesión

Ejercicio 3.1. Asignarle a la variable puntos la lista de los puntos
correspondientes a los 9 primeros puntos de la sucesión de Fibonacci
calculados con la forma cerrada.

(%i27) puntos : makelist([k,ratsimp(uC[k])],k,0,8);
Result

Ejercicio 3.2. Representar gráficamente los puntos correspondientes a los
9 primeros puntos de la sucesión de Fibonacci calculados con la forma
cerrada.

(%i28) wxplot2d([discrete,puntos],[x,0,9],[style,points]);
Result

4 Sucesiones definidas por sumatorios

Ejercicio 4.1. Calcular la suma de los cuadrados de los n primeros números

(%i29) sum(k^2,k,1,n);
Result

Ejercicio 4.2. Cargar el paquete simplify_sum.

(%i30) load(simplify_sum) $
Result

Ejercicio 4.3. Calcular la suma de los cuadrados de los n primeros números

(%i31) 'sum(k^2,k,1,n)=simplify_sum(sum(k^2,k,1,n));
Result

Ejercicio 4.4. Descomponer en factores la suma anterior.

(%i32) factor(%);
Result

Ejercicio 4.5. Calcular la suma de la serie de término 1/k^2.

(%i33) 'limit(sum(1/k^2,k,1,n),n,inf) = simplify_sum(sum(1/k^2,k,1,inf));
Result

Ejercicio 4.6. Calcular la suma de 1 a n de k*binomial(n,k).

(%i34) 'sum(k*binomial(n,k),k,1,n) = simplify_sum(sum(k*binomial(n,k),k,1,n));
Result

5 Productos y factoriales

Ejercicio 5.1. Calcular el producto de los cuadrados de los 5 primeros
números.

(%i35) product(k^2,k,1,5);
Result

Ejercicio 5.2. Definir la sucesión q[n] cuyo término n-ésimo es
binomial(2*n,n)/4^n

(%i36) q[n] := binomial(2*n,n)/4^n;
Result

Ejercicio 5.2. Expresar q[n] mediante factoriales.

(%i37) makefact(q[n]);
Result

Ejercicio 5.2. Expresar q[n+1]/q[n] mediante factoriales.

(%i38) q[n+1]/q[n];
Result

(%i39) makefact(%);
Result

Ejercicio 5.3. Simplificar los factoriales de la expresión anterior.

(%i40) minfactorial(%);
Result

Ejercicio 5.4. Simplificar la expresión anterior.

(%i41) ratsimp(%);
Result

6 Sucesiones del tipo u[n+1]=f(u[n])

Ejecicio 6.1. Definir la función f como la función coseno.

(%i42) f(x):=cos(x);
Result

Ejercicio 6.2. Redefinir la sucesión u por recurrencia:
   u[n] = 1.5, si n=0
        = f(u[n-1]), si n>0

(%i43) kill(u)$
u[0] : 1.5$
u[n] := f(u[n-1])$

Ejercicio 6.3. Definir la lista L1 de los puntos (u[k],u[k+1]) y la lista
L2 de los puntos (u[k+1],u[k+1]) para k entre 0 y 10.

(%i46) L1:makelist([u[k],u[k+1]],k,0,10)$
L2:makelist([u[k+1],u[k+1]],k,0,10)$

Ejercicio 6.4. Definir L como la lista obtenida intercalando los puntos de
L1 y L2; es decir, L es [L1[1],L2[1],L1[2],L2[2],L1[3],L2[3],...]

(%i48) L : join(L1,L2)$

Ejercicio 6.5. Dibujar, sobre una misma gráfica, la función f, la función
y=x y los puntos de la lista L.

(%i49) wxplot2d([f(x),x,[discrete,L]], [x,0,%pi/2], [y,0,1.2],
[style, [lines,2,1], [lines,1,2], [linespoints,1,1,3,1]],
[gnuplot_preamble, "set grid"],
[legend, "y=f(x)", "y=x", "sucesión u"])$

Result

Fin.


Created with wxMaxima.