Diferencia entre revisiones de «Ejercicios 4: Sucesiones y recursión»
De Software Libre para la Enseñanza y el Aprendizaje de las Matemáticas (2010-11)
(→Ejercicio 1.1.) |
(→Ejercicio 2.3.) |
||
(No se muestran 26 ediciones intermedias de 4 usuarios) | |||
Línea 4: | Línea 4: | ||
=== Ejercicio 1.1. === | === Ejercicio 1.1. === | ||
La sucesión de Fibonacci está definida como | La sucesión de Fibonacci está definida como | ||
+ | |||
<math> | <math> | ||
f(n) = | f(n) = | ||
\left\{ | \left\{ | ||
\begin{array}{ll} | \begin{array}{ll} | ||
− | 0, & si n=0, \\ | + | 0, & \mbox{si } n=0, \\ |
− | 1, & si n=1, \\ | + | 1, & \mbox{si } n=1, \\ |
− | f(n-1)+f(n-2), si n>1 | + | f(n-1)+f(n-2), & \mbox{si }n>1 |
+ | \end{array} | ||
\right. | \right. | ||
</math> | </math> | ||
+ | |||
Definir f[n] como la sucesión de Fibonacci. | Definir f[n] como la sucesión de Fibonacci. | ||
'''Solución:''' | '''Solución:''' | ||
+ | (%i1) f[0] : 0$ | ||
+ | (%i2) f[1] : 1$ | ||
+ | (%i3) f[n] := f[n-1]+f[n-2]$ | ||
=== Ejercicio 1.2. === | === Ejercicio 1.2. === | ||
Línea 21: | Línea 27: | ||
'''Solución:''' | '''Solución:''' | ||
+ | (%i4) l1: makelist ([n,f[n]],n,0,20); | ||
+ | (%o4) [[0,0],[1,1],[2,f[2]],[3,f[3]],[4,f[4]],[5,f[5]],[6,f[6]],[7,f[7]],[8,f[8]],[9,f[9]], | ||
+ | [10,f[10]],[11,f[11]],[12,f[12]],[13,f[13]],[14,f[14]],[15,f[15]],[16,f[16]],[17,f[17]], | ||
+ | [18,f[18]],[19,f[19]],[20,f[20]]] | ||
=== Ejercicio 1.3. === | === Ejercicio 1.3. === | ||
Línea 26: | Línea 36: | ||
'''Solución:''' | '''Solución:''' | ||
+ | (%i52) f[20]; | ||
+ | (%o52) 6765 | ||
=== Ejercicio 1.4. === | === Ejercicio 1.4. === | ||
Línea 31: | Línea 43: | ||
'''Solución:''' | '''Solución:''' | ||
+ | Al poder utilizar tan solo dos variables, debemos ir utilizando la de menor valor en cada iteración para almacenar el nuevo | ||
+ | elemento, de esta forma a y b contienen siempre los dos últimos elementos de la sucesión de forma alterna. | ||
+ | En todo caso la suma de ambos nos dará el elemento siguiente. El resultado final estará almacenado en la variable de mayor valor. | ||
+ | |||
+ | |||
+ | (%i65) a:0$ | ||
+ | b:1$ | ||
+ | for i step 1 from 2 thru 20 do | ||
+ | (if (<nowiki>a<b</nowiki>) then (a:a+b) | ||
+ | else (b:a+b))$ | ||
+ | if (a>b) then (a) else (b)$ | ||
+ | (%065) 6765 | ||
=== Ejercicio 1.5. === | === Ejercicio 1.5. === | ||
Línea 48: | Línea 72: | ||
'''Solución:''' | '''Solución:''' | ||
+ | sum((-1)^(k+1)/k!,k,1,n); | ||
=== Ejercicio 2.2. === | === Ejercicio 2.2. === | ||
Línea 53: | Línea 78: | ||
'''Solución:''' | '''Solución:''' | ||
+ | s[1]; | ||
+ | s[2]; | ||
+ | s[5]; | ||
+ | s[9]; | ||
=== Ejercicio 2.3. === | === Ejercicio 2.3. === | ||
Línea 58: | Línea 87: | ||
'''Solución:''' | '''Solución:''' | ||
+ | (%i98) float(s[20]); | ||
+ | (%o98) 0.63212055882856 | ||
+ | |||
+ | (%i99) float(s[50]); | ||
+ | (%o99) 0.63212055882856 | ||
=== Ejercicio 2.4. === | === Ejercicio 2.4. === | ||
Línea 63: | Línea 97: | ||
'''Solución:''' | '''Solución:''' | ||
+ | load(simplify_sum)$ | ||
+ | 'sum((-1)^(k+1)/k!,k,1,n)=simplify_sum(sum((-1)^(k+1)/k!,k,1,n)); | ||
== Ejercicio 3 == | == Ejercicio 3 == | ||
Línea 73: | Línea 109: | ||
'''Solución:''' | '''Solución:''' | ||
+ | c[n]:=(1+t)*c[n-1]-x; | ||
=== Ejercicio 3.2. === | === Ejercicio 3.2. === | ||
Línea 83: | Línea 120: | ||
'''Solución:''' | '''Solución:''' | ||
+ | solve_rec(c[n]=(1+0.055)*c[n-1]-x,c[n],c[0]=100000); | ||
== Ejercicio 4 == | == Ejercicio 4 == | ||
Línea 90: | Línea 128: | ||
'''Solución:''' | '''Solución:''' | ||
+ | f[x]:=x/(3-2*x); | ||
=== Ejercicio 4.2. === | === Ejercicio 4.2. === | ||
− | Definir la sucesión u[n] tal que | + | Definir la sucesión u[n] tal que <math>u_0 = 2</math> y <math>u_{n+1} = f(u_n)</math>. |
− | |||
− | |||
'''Solución:''' | '''Solución:''' | ||
+ | u[0]:2$ | ||
+ | u[n]:=f[u[n]]; | ||
=== Ejercicio 4.3. === | === Ejercicio 4.3. === | ||
Línea 102: | Línea 141: | ||
'''Solución:''' | '''Solución:''' | ||
+ | u[1]; | ||
+ | u[2]; | ||
+ | u[9]; | ||
=== Ejercicio 4.4. === | === Ejercicio 4.4. === | ||
Línea 107: | Línea 149: | ||
'''Solución:''' | '''Solución:''' | ||
+ | L:makelist([u[k],f(u[k])),k,0,15)$ | ||
+ | wxplot2d([f(x),x, [discrete,L]],[x,0,%pi/2],[y,0,2]); | ||
=== Ejercicio 4.5. === | === Ejercicio 4.5. === | ||
Línea 112: | Línea 156: | ||
'''Solución:''' | '''Solución:''' | ||
+ | limit(u[n],n,inf); | ||
=== Ejercicio 4.6. === | === Ejercicio 4.6. === | ||
Línea 122: | Línea 167: | ||
'''Solución:''' | '''Solución:''' | ||
+ | w[n]:=(u[n]-a)/(u[n]-b); | ||
=== Ejercicio 4.8. === | === Ejercicio 4.8. === | ||
Línea 127: | Línea 173: | ||
'''Solución:''' | '''Solución:''' | ||
+ | makelist([n,v[n]],n,0,9); | ||
=== Ejercicio 4.9. === | === Ejercicio 4.9. === | ||
Línea 132: | Línea 179: | ||
'''Solución:''' | '''Solución:''' | ||
+ | solve_rec(w[n]=(u[n]-a)/(u[n]-b),w[n]); | ||
=== Ejercicio 4.10. === | === Ejercicio 4.10. === | ||
Línea 137: | Línea 185: | ||
'''Solución:''' | '''Solución:''' | ||
+ | ratsimp(%); |
Revisión actual del 13:07 30 abr 2011
Ejercicio 1
Ejercicio 1.1.
La sucesión de Fibonacci está definida como
<math> f(n) = \left\{
\begin{array}{ll} 0, & \mbox{si } n=0, \\ 1, & \mbox{si } n=1, \\ f(n-1)+f(n-2), & \mbox{si }n>1 \end{array}
\right. </math>
Definir f[n] como la sucesión de Fibonacci.
Solución:
(%i1) f[0] : 0$ (%i2) f[1] : 1$ (%i3) 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.
Solución:
(%i4) l1: makelist ([n,f[n]],n,0,20); (%o4) [[0,0],[1,1],[2,f[2]],[3,f[3]],[4,f[4]],[5,f[5]],[6,f[6]],[7,f[7]],[8,f[8]],[9,f[9]], [10,f[10]],[11,f[11]],[12,f[12]],[13,f[13]],[14,f[14]],[15,f[15]],[16,f[16]],[17,f[17]], [18,f[18]],[19,f[19]],[20,f[20]]]
Ejercicio 1.3.
Calcular el término que ocupa la posición 20 en la sucesión de Fibonacci.
Solución:
(%i52) f[20]; (%o52) 6765
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.
Solución:
Al poder utilizar tan solo dos variables, debemos ir utilizando la de menor valor en cada iteración para almacenar el nuevo elemento, de esta forma a y b contienen siempre los dos últimos elementos de la sucesión de forma alterna. En todo caso la suma de ambos nos dará el elemento siguiente. El resultado final estará almacenado en la variable de mayor valor.
(%i65) a:0$ b:1$ for i step 1 from 2 thru 20 do (if (a<b) then (a:a+b) else (b:a+b))$ if (a>b) then (a) else (b)$ (%065) 6765
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.
Solución:
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.
Solución:
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!
Solución: sum((-1)^(k+1)/k!,k,1,n);
Ejercicio 2.2.
Calcular los valores exactos de s[1], s[2], s[5] y s[9].
Solución: s[1]; s[2]; s[5]; s[9];
Ejercicio 2.3.
Calcular los valores decimales aproximados de s[20] y s[50].
Solución:
(%i98) float(s[20]); (%o98) 0.63212055882856 (%i99) float(s[50]); (%o99) 0.63212055882856
Ejercicio 2.4.
Cargar el paquete simplify_sum y calcular la suma de la serie s[n].
Solución: load(simplify_sum)$ 'sum((-1)^(k+1)/k!,k,1,n)=simplify_sum(sum((-1)^(k+1)/k!,k,1,n));
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.
Solución: c[n]:=(1+t)*c[n-1]-x;
Ejercicio 3.2.
Se sabe que c[N]=0. Deducir el valor de x en función de K, t y N.
Solución:
Ejercicio 3.3.
Calcular el importe de una anualidad, cuando K = 100000, t = 5,5% y N = 15.
Solución: solve_rec(c[n]=(1+0.055)*c[n-1]-x,c[n],c[0]=100000);
Ejercicio 4
Ejercicio 4.1.
Definir la función f(x) = x/(3-2x).
Solución: f[x]:=x/(3-2*x);
Ejercicio 4.2.
Definir la sucesión u[n] tal que <math>u_0 = 2</math> y <math>u_{n+1} = f(u_n)</math>.
Solución: u[0]:2$ u[n]:=f[u[n]];
Ejercicio 4.3.
Calcular u[1], u[2] y u[9].
Solución: u[1]; u[2]; u[9];
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.
Solución: L:makelist([u[k],f(u[k])),k,0,15)$ wxplot2d([f(x),x, [discrete,L]],[x,0,%pi/2],[y,0,2]);
Ejercicio 4.5.
Conjeturar la monotonía de la sucesión u[n] y su limite.
Solución: limit(u[n],n,inf);
Ejercicio 4.6.
Resolver la ecuación f(x)=x. Llamar a las raices a y b.
Solución:
Ejercicio 4.7.
Definir la sucesión w[n] = (u[n]-a)/(u[n]-b)
Solución: w[n]:=(u[n]-a)/(u[n]-b);
Ejercicio 4.8.
Calcular los 10 primeros términos de la sucesión w[n].
Solución: makelist([n,v[n]],n,0,9);
Ejercicio 4.9.
Comprobar que w[n] es una progresión geométrica y calcular su razón.
Solución: solve_rec(w[n]=(u[n]-a)/(u[n]-b),w[n]);
Ejercicio 4.10.
Deducir la expresión de u[n] en función de n.
Solución: ratsimp(%);