Tema CS4. Sucesiones
(Soluciones de los ejercicios propuestos)

En esta relación se usan las siguientes funciones: define, float,
for...do, if...then...elseif...else, join, makelist, plot2d, rhs,
simplify_sum, solve, solve_rec y sum.

1 Ejercicio 1

Ejercicio 1.1. La sucesión de Fibonacci está definida como
   F[0] = 0,
   F[1] = 1,
   F[n+2] = F[n+1]+F[n].
Definir f[n] como la sucesión de Fibonacci.

(%i1) f[0] : 0$
f[1] : 1$
f[n] := f[n-1]+f[n-2]$

Ejercicio 1.2. Definir la lista l1 cuyos elementos son los 20 primeros
términos de la sucesión de Fibonacci.

(%i4) l1: makelist([n,f[n]],n,0,20);
Result

Ejercicio 1.3. Calcular el término que ocupa la posición 20 en la sucesión
de Fibonacci.

(%i5) f[20];
Result

Ejercicio 1.4. Calcular el término de posición 20 de la sucesión de
Fibonacci de forma iterativa, usando sólo dos variables: a y b.

(%i6) a:0$
b:1$
for i:1 thru 20 do (c:a, d:b, a:d, b:c+d)$
b;

Result

Ejercicio 1.5. Definir la sucesión g, que calcule el término n-ésimo de
la sucesión de Fibonacci de forma iterativa, usando sólo dos variables:
a y b. Usando la función g, calcular el término de posición 20 de la
sucesión de Fibonacci.

(%i10) g[n]:= block ([a:0,b:1,c,d],
   for i:1 thru n do (c:a, d:b, a:d, b:c+d),
   a)$

(%i11) g[20];
Result

Ejercicio 1.6. Comprobar si se puede obtener el término 800 de la
sucesión de Fibonacci mediante alguna de las dos funciones f ó g.

(%i12) g[800];
Result

(%i13) f[800];
Result

2 Ejercicio 2

Ejercicio 2.1. Definir s[n] como la suma de los n primeros términos de la
sucesión (-1)^(k+1)/k!

(%i14) s[n] := sum((-1)^(k+1)/k!,k,1,n);
Result

Ejercicio 2.2. Calcular los valores exactos de s[1], s[2], s[5] y s[9].

(%i15) makelist('s[i]=s[i],i,[1,2,5,9]);
Result

Ejercicio 2.3. Calcular los valores decimales aproximados de s[20] y s[50].

(%i16) makelist('s[i]=s[i],i,[20,50]), numer;
Result

Ejercicio 2.4. Cargar el paquete simplify_sum y calcular la suma de la
serie s[n].

(%i17) load(simplify_sum)$
'sum((-1)^(k+1)/k!,k,1,inf) = simplify_sum(sum((-1)^(k+1)/k!,k,1,inf));

Result

3 Ejercicio 3

Un banco presta un capital K al t por ciento aunual, que se reembolsa en
N años, con anualidades x constante. Sea c[0]=K y sea c[n] el capital
pendiente de pagar después de la n-ésima anualidad. Entonces,
c[n+1] = (1+t)*c[n]-x

Ejercicio 3.1. Expresar c[n] de manera explícita en función de n, K, t y x.

(%i19) load(solve_rec)$
kill(c)$
solve_rec(c[n]=(1+t)*c[n-1]-x,c[n],c[0]=K);

Result

(%i22) ratsimp(%);
Result

Ejercicio 3.2. Se sabe que c[N]=0. Deducir el valor de x en función de
K, t y N.

(%i23) define(c[n],rhs(%));
Result

(%i24) solve(c[N],x);
Result

Ejercicio 3.3. Calcular el importe de una anualidad, cuando
K = 100000, t = 5,5% y N = 15.

(%i25) subst([K=100000,t=5.5,N=15],%);
Result

4 Ejercicio 4

Ejercicio 4.1. Definir la función f(x) = x/(3-2x).

(%i26) f(x) := x/(3-2*x);
Result

Ejercicio 4.2. Definir la sucesión u[n] tal que
   u[0] = 2
   u[n+1] = f(u[n])

(%i27) u[0] : 2$
u[n] := f(u[n-1])$

Ejercicio 4.3. Calcula u[1], u[2] y u[9].

(%i29) makelist('u[i]=u[i],i,[1,2,9]);
Result

Ejercicio 4.4. Dibujar, en la misma gráfica, la función f, la recta de
ecuación y=x y los puntos de coordenada (u[k],f(u[k])) para 0<=k<=15.

(%i30) puntos : makelist([u[k],f(u[k])],k,0,15)$

(%i31) wxplot2d([f(x),x,[discrete,puntos]],[x,-9,9],[y,-9,9],
                [style, lines,lines,linespoints],
                [gnuplot_preamble, "set key left top"]);

Result

(%i32) wxplot2d([f(x),x,[discrete,puntos]],[x,-3,3],[y,-3,3],
                [style, lines,lines,linespoints],
                [gnuplot_preamble, "set key left top"]);

Result

(%i33) wxplot2d([f(x),x,[discrete,puntos]],[x,-0.5,0.5],[y,-0.5,0.5],
                [style, lines,lines,linespoints],
                [gnuplot_preamble, "set key left top"]);

Result

Ejercicio 4.4. Conjeturar la monotonía de la sucesión u[n] y su limite.

Solución: La sucesión u[n] es monótona decreciente y su límite es 0.

Ejercicio 4.5. Resolver la ecuación f(x)=x. Llamar a las raices a y b.

(%i34) solve(f(x)=x,x);
Result

(%i35) a:0$ b:1$

Ejercicio 4.6. Definir la sucesión w[n] = (u[n]-a)/(u[n]-b)

(%i37) w[n] := (u[n]-a)/(u[n]-b);
Result

Ejercicio 4.7. Calcular los 10 primeros términos de la sucesión w[n].

(%i38) makelist(w[n],n,0,9);
Result

Ejercicio 4.8. Comprobar que w[n] es una progresión geométrica y calcular
su razón.

Solución: se observa que w[n] es la progresión geométrica de término
inicial 2 y razón 1/3.

Ejercicio 4.9. Deducir la expresión de u[n] en función de n.

(%i39) solve((x-a)/(x-b)=2/3^n,x);
Result

Por tanto, u[n] = -2/(3^n-2). Puede comprobarse como sigue

(%i40) makelist([u[n],-2/(3^n-2)],n,0,5);
Result


Created with wxMaxima.