/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 0.8.4 ] */ /* [wxMaxima: title start ] Tema CS4: Sucesiones y recursión (Ejercicios resueltos) [wxMaxima: title end ] */ /* [wxMaxima: section start ] Formas de generar una sucesión [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Ejercicio 1.1. Definir la sucesión u[n] cuyo término general es 1-(-1/2)^n. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ u[n]:=1-(-1/2)^n ; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 1.2. Calcular el término que ocupa la posición 20 de la sucesión anterior. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ u[20] ; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 1.3. Calcular el valor decimal del término anterior. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ float(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 1.4. Calcular el límite de la sucesión u[n]. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ limit(u[n],n,inf); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 1.5. Definir, por recursión, la sucesión v[n] = 1, si n = 0 = v[n-1]/2+3, si n > 0. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ v[0] : 1$ v[n] := v[n-1]/2+3$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 1.6. Calcular la lista de pares [k,v[k]] para k entre 0 y 9. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ makelist([k,v[k]],k,0,9); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 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]. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ terminos : makelist([k,float(v[k])],k,0,9); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 1.7. Dibujar los puntos de la lista terminos. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d([discrete,terminos], [style, points],[xlabel,"n"],[ylabel,"v[n]"]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 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]. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ makelist([k,float(v[k])],k,100,105); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 1.9. Calcular el límite de la sucesión v. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ limit(v[n],n,inf); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Nota. Maxima no calcula el límite de esta sucesión. [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Recurrencias [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Ejercicio 2.1. Cargar el paquete solve_rec para resolver recurrencias. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load(solve_rec)$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 2.2. Resolver la ecuación recurrente w[n]=w[n-1]/2+3 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ solve_rec(w[n]=w[n-1]/2+3,w[n]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratsimp(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 2.2. Resolver la ecuación recurrente w[n]=w[n-1]/2+3 con la condición inicial w[0]=1 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ solve_rec(w[n]=w[n-1]/2+3,w[n],w[0]=1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratsimp(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 2.3. Calcular w[2] [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ w[2]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 2.4. Definir la sucesión w[n] como la solución de w[n]=w[n-1]/2+3 w[0]=1 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ratsimp(solve_rec(w[n]=w[n-1]/2+3,w[n],w[0]=1)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ define(w[n],rhs(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 2.5. Calcular w[2]. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ w[2]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 2.6. Calcular el desarrollo de w[n]. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ expand(w[n]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 2.7. Borra el valor de la variable u. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ kill(u)$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 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] [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ solve_rec(u[n+2]=u[n+1]+u[n],u[n],u[0]=0,u[1]=1); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 2.9. Definir la sucesión uC como la forma cerrada de la sucesión de Fibonacci. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define(uC[n],rhs(%)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 2.10. Calcular el décimo término de la sucesión de Fibonacci usando su forma cerrada. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ uC[10]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratsimp(%); /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Representación gráfica de uns sucesión [wxMaxima: section end ] */ /* [wxMaxima: comment start ] 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. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ puntos : makelist([k,ratsimp(uC[k])],k,0,8); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 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. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d([discrete,puntos],[x,0,9],[style,points]); /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Sucesiones definidas por sumatorios [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Ejercicio 4.1. Calcular la suma de los cuadrados de los n primeros números [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ sum(k^2,k,1,n); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 4.2. Cargar el paquete simplify_sum. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load(simplify_sum) $ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 4.3. Calcular la suma de los cuadrados de los n primeros números [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 'sum(k^2,k,1,n)=simplify_sum(sum(k^2,k,1,n)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 4.4. Descomponer en factores la suma anterior. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ factor(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 4.5. Calcular la suma de la serie de término 1/k^2. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 'limit(sum(1/k^2,k,1,n),n,inf) = simplify_sum(sum(1/k^2,k,1,inf)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 4.6. Calcular la suma de 1 a n de k*binomial(n,k). [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 'sum(k*binomial(n,k),k,1,n) = simplify_sum(sum(k*binomial(n,k),k,1,n)); /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Productos y factoriales [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Ejercicio 5.1. Calcular el producto de los cuadrados de los 5 primeros números. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ product(k^2,k,1,5); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 5.2. Definir la sucesión q[n] cuyo término n-ésimo es binomial(2*n,n)/4^n [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ q[n] := binomial(2*n,n)/4^n; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 5.2. Expresar q[n] mediante factoriales. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ makefact(q[n]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 5.2. Expresar q[n+1]/q[n] mediante factoriales. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ q[n+1]/q[n]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ makefact(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 5.3. Simplificar los factoriales de la expresión anterior. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ minfactorial(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 5.4. Simplificar la expresión anterior. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ratsimp(%); /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Sucesiones del tipo u[n+1]=f(u[n]) [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Ejecicio 6.1. Definir la función f como la función coseno. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x):=cos(x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ejercicio 6.2. Redefinir la sucesión u por recurrencia: u[n] = 1.5, si n=0 = f(u[n-1]), si n>0 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ kill(u)$ u[0] : 1.5$ u[n] := f(u[n-1])$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 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. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ L1:makelist([u[k],u[k+1]],k,0,10)$ L2:makelist([u[k+1],u[k+1]],k,0,10)$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 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],...] [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ L : join(L1,L2)$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 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. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 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"])$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Fin. [wxMaxima: comment end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$