Student Package

Este paquete permite mostrar paso a paso cómo se resuelven los distintos problemas matemáticos que se plantean a los alumnos:

Rectas tangentes

> restart;

> with(student);

La pendiente de la recta tangente a una curva en x=a se calcula como el límite del cociente incremental:

> f:=x->x^2+3;

> slope([x,f(x)],[a,f(a)]);

> Limit(%,x=a);

Para calcular el límite, en primir lugar debemos simplificar la expresión racional (dado que presenta una indeterminación), y luego realizar el límite:

> normal(%);

> value(%);

En el caso particular que queramos calcular la pendiente de la recta tangente a la curva dada por f en x=3, simplemente debemos sustituir en la expresión anterior a=3.

> subs(a=3,%);

Para mostrar gráficamente la tangente podemos usar el comando showtangent:

> showtangent(f(x),x=3,x=0..4);

Ahora podríamos crear un programa que representara las rectas tangentes a f(x) en los puntos x= 0.8+0.2*i, cuando i toma valores enteros de 1 a 11. Usaremos el comando display con la opción insequence=true para obtener la animación:

> for i to 11 do
p||i:=showtangent(f(x),x=0.8+0.2*i,x=0..4,colour=black) od:

> plots[display]([p||(1..11)],insequence=true);

>

Área bajo la curva

El Student Package contiene un conjunto de funciones que pueden resultar útiles para el aprendizaje de Cálculo Infinitesimal por parte de los alumnos.

> restart;

> with(student);

Consideremos el área de la curva y=sin(x), de x=0.1 a x=1. Podemos aproximarla mediante 4 rectángulos usando la función leftbox (contenida en el Student Package).

> leftbox(sin(x),x=0..1,4);

La parte coloreada representa la aproximación al área bajo la curva. Si aumentamos el número de rectángulos (disminuyendo su base) parece ser que obtendremos mejores aproximaciones. Realicemos algunas pruebas:

> leftbox(sin(x),x=0..1,8);

> leftbox(sin(x),x=0..1,16);

Ahora realizaremos las aproximaciones numéricamente. Calcularemos la suma de las áreas de los rectángulos que hemos empleado en cada caso:

> leftsum(sin(x),x=0..1,4);

> value(%);

> leftsum(sin(x),x=0..1,8);

> value(%);

> leftsum(sin(x),x=0..1,16);

> value(%);

Veamos cómo varía el valor aproximado cuando aumentamos el número de rectángulos usados. Para ello usaremos un lazo:

> for k from 20 to 200 by 20 do
print(evalf(leftsum(sin(x),x=0..1,k)));

od;

Podemos observar cómo las sumas convergen hacia cierto valor 0.457... Calculemos el límite de la suma de rectángulos para un número indeterminado n de rectángulos:

> leftsum(sin(x),x=0..1,n);

> limit(%,n=infinity);

Para comprobar la bondad de esta aproximación, podemos calcular la integral de la curva desde 0.1 hasta 1:

> Int(sin(x),x=0..1);

> value(%);

>