Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CalculoDIF Maple PDF
CalculoDIF Maple PDF
0. Introduccin
o 1. Qu es el Maple?
o 2. Instrucciones y comandos bsicos del Maple
1.Primera parte - Introduccin con los principales comandos
o 1. Manipulando nmeros
o 2. Solucin de ecuaciones
o 3. Como usar el HELP
2. Segunda parte - Nociones de clculo diferencial y integral
o 1. Calculando Lmites
o 2. Calculando Algunas Derivadas
o 3. Un problema de Clculo Interesante.
o 4. Series de Taylor
o 5. Calculando Integrales
o 6. Ecuaciones Diferenciales
3.Tercera parte - Graficando
0. Introduccin
1. Qu es el Maple?
Maple es un sistema de clculo simblico o algebraico. Ambas expresiones hacen
referencia a la habilidad que posee Maple para trabajar con la informacin de la
misma manera que lo haramos nosotros cuando llevamos a cabo clculos
matemticos analticos. Mientras que los programas matemticos tradicionales
requieren valores numricos para todas las variables, Maple mantiene y manipula los
smbolos y las expresiones. Estas capacidades simblicas permiten obtener soluciones
analticas exactas de los problemas matemticos: por ejemplo se pueden calcular lmites,
derivadas e integrales de funciones, resolver sistemas de ecuaciones de forma exacta,
encontrar soluciones de ecuaciones diferenciales, etc. Como complemento a las
operaciones simblicas existe un amplio conjunto de rutinas grficas que permiten
visualizar informacin matemtica compleja, algoritmos numricos que dan
soluciones en precisin arbitraria de problemas cuya solucin exacta no es
calculable y un lenguaje de programacin completo y comprensible que permite al
usuario crear sus propias funciones y aplicaciones.
Internamente Maple se estructura en tres partes. En primer lugar est el ncleo, formado
por rutinas escritas y compiladas en lenguaje C, donde se realizan la mayor parte de los
clculos bsicos hechos por el sistema. La segunda parte es un conjunto de libreras,
donde se encuentra la mayora de los comandos de Maple, y que estn escritas en su
propio lenguaje de programacin (interpretado no compilado), lenguaje que permite al
usuario crear sus propios comandos y aadirlos a la librera estndar (es por tanto un
sistema extensible). Y finalmente la interfaz del programa a travs de la cual es posible
comunicarse con el sistema.
Esta interfaz de Maple tiene un aspecto muy similar a la de otros programas usados
en sistemas operativos con entorno grfico y permite el acceso a todas las
1 / 66
(3)
(4)
(5)
2 / 66
7)
Antes de intentar realizar las tareas, le sugerimos que desarrolle previamente todos
los ejemplos que aparecen en los Laboratorios.
8)
El comando restart, reinicia la pgina de trabajo, reinicia los valores de las
variables asignadas, dejndolas libres.
COMANDOS DE MAPLE
COMANDOS BASICOS PARA ARITMETICA Y ALGEBRA
x+y;
x - y;
x*y;
x/y;
x ^ y;
abs(x);
x :=2 ;
x = x;
subs(x=a, f);
evalf(expr);
evalf(expr,n);
evalc(imagin, expr);
evalm(matr,expres);
collect(expression,x);
collect(f,[p,q]);
suma x e y
resta x e y
multiplica x e y
divide x por y
eleva x a y
valor absoluto de x
asigna a x el valor 2
suprime un valor asignado a x, quedando x libre
sustituye la variable x en f por a
evala una expresin usando decimales
evala hasta n dgitos
evala nmeros complejos
evala una expresin matricial
agrupa expresiones segn la potencia de x
en f, agrupa todos los trminos con p, y todos
los trminos con q
expand(expr);
desarrolla una expresin algebraicamente
factor(expr);
factoriza un polinomio
fsolve(f(x)=0, x);
soluciona numricamente la ecuacin en x, f(x) =0
fsolve(f(x)=0, x, a..b)
soluciona numricamente en x, f(x)=0, entre a y b
fsolve(f(x)=0, x ,complex);
halla numricamente todas las races de una ecuacin
polinomial en x, f(x) = 0
Pi ;
(debe escribirse con mayscula)
simplify(expresin);
reduce expresiones , ms o menos
solve(f(x)=0, x);
resuelve simblicamente la ecuacin en x, f(x)=0
solve({f(x,y)=0, g(x,y)=0},{x,y}); resuelve simblicamente sistemas de ecuaciones
sqrt(x);
raz cuadrada de x
I;
nmero complejo i
(%);
da el resultado obtenido en el paso anterior
coeff(expression,x,2);
coeficiente de x 2 en la expresin
with(student);
carga la librera student
completesquare(expr,[x,y]);
completa cuadrados de binomio en x e y en la
expresin expr
completesquare(quad,[x,y,z]);
completa cuadrados de binomio en x,y,z
3 / 66
1)
En Maple, al igual que en Matemticas, existe una diferencia entre una expresin y
una funcin. Una funcin toma argumentos y retorna valores. Una expresin es un objeto.
Una funcin es activa y una expresin es pasiva. La sintaxis bsica para definir una funcin
es:
nombre:= variable -> expresin
Para escribir la flecha con el teclado se usa primero la tecla - y despus la tecla >
sin dejar espacio entre ambas.
2)
El comando para realizar grficas es plot. Hay varios tipos de sintaxis para ste
comando, dependiendo si se trata de funciones o expresiones:
(I) plot(f(x), x= a..b);
(II) plot(f, x=a..b);
(III) plot(f, a..b);
3)
Una vez que Maple est en la ventana de grficas, el mouse maneja un cursor en
forma de flecha que sirve para determinar las coordenadas de cualquier punto de la grfica.
Para ello se conduce la punta de la flecha hacia el punto cuyas coordenadas se desea
determinar, se hace un click y aparecer en la parte inferior de la ventana las coordenadas
del punto que se est apuntando.
4)
La sintaxis para graficar varios grficos simultneamente y controlar adems la
escala del eje vertical es:
(IV)
(V)
(VI)
5)
Para representar una funcin a trozos, o sea una funcin que presenta un dominio
dividido en diferentes partes pudiendo ser diferente el proceso que se aplica en cada una de
ellas se usa la estructura if - then - else. Hay dos alternativas:
a) Si tan slo se trata de una condicin la sintaxis es:
s:= proc(x)
if (condicin) then (expresin)
else (expresin)
fi
end:
(El comando proc(x) quiere decir procedure (procedimiento para x))
b) Si hay varias condiciones la sintaxis es:
s:=proc(x)
M. en C. Hctor Martnez Rubin Celis
4 / 66
Para hacer en Maple una tabla de valores se puede usar dos vas:
a) usando el comando seq que se aplica a una funcin f ya definida mediante la
sintaxis:
seq(f(i), i = a..b)
(Produce una secuencia de valores horizontal)
b) usando el comando array que se aplica a una funcin ya definida mediante la sintaxis:
array( [seq( [i, evalf(f(i))], i = a..b) ] )
(Produce una secuencia de valores verticales)
8)
Una de las caractersticas de Maple son sus libreras (paquetes especiales)
packages. Los packages son libreras de programas dentro de Maple con comandos
especiales que se llaman slo cuando se necesitan. As se logra tener en la memoria Ram
del computador slo lo que se necesita y no se recarga dicha memoria consciente
intilmente. Es as como Maple contiene libreras de geometra, de lgebra lineal, de series
de potencia, de estadstica, de geometra tridimensional, etc. Todos stos programas se
ingresan con el comando with. En ste laboratorio hay inters por graficar; en particular
por graficar funciones que vienen definidas implcitamente. Este tipo de grfica se obtiene
ingresando el package plots. El ingreso se har entonces con la sintaxis:
with(plots):
implicitplot( f(x,y)=0, x = a..b, y = c..d);
9)
Para transformar una expresin en una funcin se usa el comando unapply
mediante la sintaxis:
g:= unapply(nombre de la expresin, x);
10)
5 / 66
y := f(x)
11)
12)
piecewise(x < a , f(x) , x >= b , g(x) , u(x)); define una funcin a trozos
exp(x);
funcin exponencial e x
ln(x);
logaritmo natural de x
log[a](x);
logaritmo de x en base a
sin(x);
seno de x radianes
cos(x);
coseno de x radianes
tan(x);
tangente de x radianes
cot(x);
cotangente de x radianes
sec(x);
secante de x radianes
csc(x);
cosecante de x radianes
arcsin(x);
arcoseno de x ; funcin inversa de sen(x)
arccos(x);
arcocoseno de x; funcin inversa de cos(x)
arctan(x);
arcotangente de x; funcin inversa de tan(x)
arcsec(x);
arcosecante de x; funcin inversa de sec(x)
arccsc(x);
arcocosecante de x; funcin inversa de cosec(x)
arccot(x);
arcocotangente de x; funcin inversa de cot(x)
convert(*degrees, radians); convierte grados sexagesimales a radianes
convert(, degrees);
convierte b radianes a grados sexagesimales
combine(expresin, trig);
transforma frmulas trigonomtricas
animate(F(x,t),x =a..b,t=c..d);produce grficos con animacin
2)
Para usar las funciones trigonomtricas tome en cuenta que todos los argumentos
180
Pi
deben estar en radianes (1 radian =
grados sex. ; 1 grado sex. =
radianes)
Pi
180
3)
Usted puede simplificar o desarrollar identidades trigonomtricas y Maple tiene
rutinas que le permitirn convertir expresiones trigonomtricas a otras formas. Por ejemplo,
usted puede convertir cualquier expresin trigonomtrica en una expresin que contenga
slo trminos en seno y coseno. Para lograr esas transformaciones tendr que usar tanto
algunos comandos y operadores estudiados en guas anteriores como expand, factor y
simplify , como algunos nuevos tales como combine[trig], simplify[trig], y convert.
4)
Debe observarse que para convertir grados sexagesimales a radianes, Maple usa
degrees (grados) como una unidad que se nombra explcitamente y por la cual hay que
6 / 66
multiplicar el ngulo . En cambio para convertir radianes a grados Maple exige no escribir
radians, ni tampoco especificar una multiplicacin por radianes.
5)
Para producir grficos con animacin se requiere introducir primero el package de
grficas. Luego la sintaxis para producir animacin es:
> with(plots):
> animate( F(x,t), x = a..b, t = c..d);
donde F es una funcin real en x y en t y en donde a..b especifica el rango real horizontal
(abscisas) en el cual se grafica F, mientras que c..d especifica de qu manera se desea que
vare el cuadro coordenado de un cuadro al siguiente.
6) Descripcin de la ventana de grficos con animacin:
Una vez que se ha obtenido la ventana de Maple para grficos con animacin es
posible notar que aparecen dos filas de iconos en lugar de la clsica fila en las ventanas de
Maple para grficas sin animacin. Al usar el mouse en la segunda fila sobre el segundo
icono de izquierda a derecha (el que se parece a Play en un tocacintas), y hacer un click
la grfica comenzar a moverse desde abajo hacia arriba.
Al poner la flecha del mouse sobre el segundo icono de derecha a izquierda en un
icono que exhibe una flecha y hacer un click, la flecha del icono cambiar de sentido, de
izquierda a derecha a derecha a izquierda. Esto significar que la curva comenzar a
moverse de principio a fin pero en sentido contrario.
Si, en lugar de hacer un click sobre el Play, se hace un click sobre el tercer icono
que aparece de izquierda a derecha, que exhibe una flecha con una raya vertical en su
punta, se lograr que la curva se mueva un cuadro por vez: uno por cada click. Si se realiza
ste acto lentamente se descubrir que la curva bajar de comienzo a fin despus de haber
presionado 15 veces el mouse,o sea con un total de 15 clicks. Esto significa que Maple
ofrece, por defecto, un total de 16 cuadros de principio a fin.
Se puede variar la cantidad de 16 cuadros que Maple ofrece por defecto usando la
siguiente sintaxis:
animate(F(x,t), x=a..b, t= c..d, frames = n);
7 / 66
seq(a(n), n = a..b);
limit(a(n), n = infinity);
Limit(a(n), n = infinity);
seq([n, a(n)], n = a..b];
style = point;
limit(f(x), x=c);
limit(f(x), x=c, right);
diff(expr,x);
diff(f(x),x);
D(f);
showtangent(f(x), x=c,a..b);
8 / 66
normal
numer
denom
quo
rem
int(f(x),x);
int(f(x),x=a..b);
Int(f(x),x);
sum(k, k=1..3);
Sum(k, k=1..3);
with(student);
integrand(Int(f,x));
leftbox(f(x), x=a..b,n);
leftsum(f(x),x=a..b,n);
rightbox(f(x),x=a..b,n);
rightsum(f(x), x=a..b,n);
convert(f,parfrac,x);
normal(expression);
simplify(expression, symbolic);
with(student);
changevar(eqn,Int,t);
9 / 66
intparts(Int,u);
simpson(f,x=a..b,n);
trapezoid(f,x=a..b,n);
int(f,x=a..b, Cauchy Principal Value);
taylor(f,x=a,n);
mtaylor(f(x,y),[x=a,y=b],n);
convert(taylor(f,x=a,n),polynom);
plot([x(t),y(t),t=a..b]);
grafica la curva paramtrica x = x(t) , y = y(t)
plot( [r(t), t , t = a..b], coords=polar );
grfico polar de r = r(t)
plot( [r(t), t , t = a..b], c..d , e..f, coords=polar ); grafica polares y regula el tamao de los
ejes horizontal y vertical, donde c..d son
para eje horizontal y e..f para eje vertical
plot3d(f(x,y),x=a..b, y=c..d;
with(linalg);
crossprod(v1,v2);
det(A);
dotprod(v1,v2);
normalize(v);
stack(v1,v2);
matrix(2,3,[a,b,c,d,e,f])
vector([a,b,c]);
10 / 66
with(plots);
plot3d(f(x,y),x=a..b, y=c..d;
implicitplot3d(f(x,y,z),x=a..b,y=c..d,z=p..q);
with(linalg);
evalm(v/c);
norm(v,2);
11 / 66
No aparece ningn redondeo. El valor es excato. Para ver una aproximacion en decimales
ejecutamos evalf (evaluation with floating point)
> evalf(%);
Otro ejemplo:
> sin(sqrt(2/3)*Pi);
> evalf(%);
>
12 / 66
Otro ejemplo:
> 20*root[5](Pi);
> # Cuantos dgitos usados?
> Digits;
> value(%);
> Sum(1/n^2,n=1..40);
> value(%);
> evalf(%);
Productos, como una sumatoria, descubra la diferencia entre los comandos Product y
product
> Product(((i^2+3*i-11)/(i+3)), i=0..10);
> value(%);
13 / 66
> evalf(%,50);
Repita los comandos de somatoria y produtos, iniciando con letra minscula para ver un
que ocorre .
> sum((1+i)/(1+i^4), i=1..10);
Nmeros Complejos:
> (3+5*I)/(7+4*I); # dividiendo ...
> (2-4*I)*(1+I);
> sqrt(4*I);
> (sqrt(4*I))^2;
> evalc(%);
Factorizar un polinomio
> factor(%);
> simplify(cos(x)^5 + sin(x)^4 + 2*cos(x)^2 - 2*sin(x)^2 - cos(2*x));
14 / 66
> polinomio:=9*x^3-37*x^2+47*x-19;
> solve(polinomio,x);
Derivando un polinomio
> p:=x->9*x^3-37*x^2+47*x-19;
15 / 66
> D(p);
> D(p)(1);
2. Solucin de Ecuaciones:
Solucionar una ecuacin es encontran los valores para los cuales dicha ecuacin es
verdadera. Las soluciones ms usadas son aquellas que buscan las raices de una expresin
polinmica. Para tal efecto usaremos el comando: fsolve( expresin )
Orden ........: solve
Sintxis ......: solve( expresin , x , a..b)
Propsito ...: Calcula la solucin de expresin . Las raices del polinomio. Sobre la variable
x en el intervalo a..b .
> restart;
f1:=x^2+1;
solve(f1,x);
f2:=a*x^2+b*x+c;
solve(f2,x);
Lo que nos arroja, incluso, una expresin algebrica para la solucin de una funcin
cuadrtica.
16 / 66
Cuando la funcin la definimos nosotros mismos, podemos usar el comando fsolve. Vamos
a solucionar una expresin definida por nosotros y ubica los puntos de la solucin en un
grfico.
> with(plots):
f3:=x^4+2*x^2+x;
raices:=fsolve(f3,x,-2..2);
puntos:=([raices[1],0],[raices[2],0]);
p1:=plot(f3,x=-1..1):
p2:=plot([puntos],x=-1..1,style=point,color=blue,thickness=3,symbol=circle):
display({p1,p2});
Warning, the name changecoords has been redefined
Supongamos ahora que deseamos calcular los puntos de interseccin de una recta y una
cuadrtica:
> Linea:=2*x+4;
Cuadratica:=x^2+2*x+3;
Sol:=fsolve(Linea=Cuadratica,x);
#subs( x=2, x^2+x+1 );
digits:=2;
17 / 66
Puntos:=([Sol[1],subs(x=Sol[1],Linea)],[Sol[2],subs(x=Sol[2],Linea)]);
plot({Linea,Cuadratica,[Puntos]},x=5..5,style=[point,line,line],color=[red,blue,black]);
Hemos usado la opcin de remplazar o sustituir una variable en una ecuacin. La sintxis es
la siguiente:
Orden ........: subs
Sintxis ......: subs( x=a,expresin)
Propsito ...: Remplaza el valor de la variable x en la expresin .
> subs(x=a,x^2+3*x+4);
18 / 66
El help del Maple es muy amigable. Es interesante saber usrlo. El help tiene tres nveles de
ayuda con una ? interrogacin o con dos ?? interrogaciones o con tres ???
interrogaciones. Descubra la diferencia entre ellas.
Para ver los paquetes del Maple teclee ?index[package];
> ?index[package];
Cada paquete es acompaado con un comando with.
> #with(student); #ejemplo
> #?index[functions]; #ejemplo
> #with(linalg); #ejemplo
1 . Calculando Lmites
Lmites:
El lmite de una sucecin o de una funcin se calcula en Maple con la orden limit
Orden ........: limit
Sintaxis ......: limit (expresion, variable= a , opcin)
Propsito ...: Calcular el lmite de la expresin , cuando variable tiende a..: a . Veamos
algunos ejemplos:
Definiendo una expresin
> restart:
f1:=(n^2)/(n+1);
limit(f1,n=infinity);
> f2:=(x^2-sqrt(x))/(sqrt(x)-1);
limit(f2,x=1);
19 / 66
> f3:=(cos(x))/(sqrt(1-sin(x)));
limite:=limit(f3,x=0);
> f4:=(x+2)/(x^2-4*x+3);
limit(f4,x=3,left);
limit(f4,x=3,right);
limit(f4,x=3);
limit(f4,x=2);
limit(f4,x=4);
Como se puede observar, los lmites laterales de la funcin no son iguales, por tanto el
lmite no existe. Intentemos ver estos resultados en un grfico
> with(plots):
plot(f4,x=0..6,y=-100..100,title=`Limite x-->3`);
Warning, the name changecoords has been redefined
20 / 66
Podemos definir tambin una funcin cuya expresin muda con las condiciones sin
argumento. Por ejemplo:
> f:=x ->piecewise(1<=x and x<2, x^2,2*x+10);
> f(x);
> f:=piecewise(x<-1,7*x,x<4,x^2-2,4*x-2);
7 x
f := x 2 2
4x2
x < -1
x<4
otherwise
> f:=x->piecewise(x<-1,7*x,x<4,x^2-2,4*x-2);
f := x piecewise ( x < -1, 7 x, x < 4, x 2 2, 4 x 2 )
> plot(f(x),x=-4..6,discont=true,color=red);
21 / 66
> f:=piecewise(x<4,3*x+244,(x^3-64)/(sqrt(x)-2));
3 x + 244
f := x 3 64
x 2
x<4
otherwise
> f:=x->piecewise(x<4,3*x+244,(x^3-64)/(sqrt(x)-2));
x 3 64
> plot(f(x),x=3..5,discont=true);
f := x x floor( x )
> plot(f(x),x=-3..4,y=-1..5,discont=true);
22 / 66
> g:=x->x*floor(x);
g := x x floor( x )
> plot(g(x),x=-3..4,discont=true);
> value(%);
0
Definindo una funcin.
> f1:=(x,y) -> (x^2-5*y)/(x^3+2*x);
> limit(f1(x,y),x=1);
23 / 66
x2 5
, en el
x3 + 2 x
intervalo [-2,2].
> plot((x^2-5)/(x^2+1),x=-2..2);
Haga otros grficos. Experimente funciones conocidas por usted tal como seno, coseno,
etc...
Otra forma de definir una funcin es por medio del llamado procedimiento.
Un procedimiento tiene la forma:
P : = proc(argumentos)
local (variables locales)
instrucciones a ser ejecutadas
end;
Vamos a ver un ejemplo, mas tarde volveremos a este punto.
En este ejemplo, definimos una funcin salto
> salto:=proc(x);
> if 1<=x then x^2+1 else cos(x) fi;
> end;
> salto(-1);
> salto(2);
Otro ejemplo.
> pp:=proc(x);
> x^3;
> end;
> pp(sqrt(2));
24 / 66
> pp((2)^(1/3));
> value(%);
Si un comando comienza con letra mayscula, entonces el es "inerte". Esto es, se escribe
mas no calcula .
> A:=sin(2*x)/x;
Observar que A no es del tipo A:=x -> sin(2*x)/x, funcin. Por lo tanto, A no es funcin (es
una expresin).
> Limit(A, x=0);
> value(%);
> Limit(A, x=infinity);
> value(%);
> value(%);
> f4:=(x+2)/(x^2-4*x+3);
limit(f4,x=3,left);
M. en C. Hctor Martnez Rubin Celis
25 / 66
limit(f4,x=3,right);
limit(f4,x=3);
limit(f4,x=2);
limit(f4,x=4);
El Maple puede calcular lmites para funciones de ms de una variable. Vamos ver
ejemplos.
> limit(x^2-y^3+z^4,{x=1,y=2,z=3});
> limit(x^2/(x^2+y^2+z^2+1),{x=1,y=2});
> limit(limit(x/(x^2+y^2),{x=y^2}),y=0);
Veamos algunos ejemplos en que el Maple no consigue dar una respuesta satisfactoria
y en ejemplos donde un limite es calculado en vrios puntos.
> F2:=(x,y,z)-> (x^2+y^2+z^2)/ (x^2+y^2+z^2+1);
26 / 66
Calculando derivadas con operador diferencial "D". Una salida (output) es siempre una
funcin
> h:=x -> x^2;
> h(x);
> f1:=sin(x);
diff(f1,x);
f2:=3*x^2+5*x+5;
diff(f2,x);
27 / 66
> f3:=(sin(x))/(1+cos(x));
df3:=diff(f3,x);
simplify(%);
> f4:=(x^2+3*x)*(2*sin(2*x));
diff(f4,x);
simplify(%);
> f1:=(x^2+y^2);
diff(f1,x);
28 / 66
diff(f1,y);
diff(f1,x,y),diff(f1,x,x),diff(f1,y,y);
diff(f1,x$3);
diff(f1,y$3);
> f2:=x^2*sin(x);
diff(f2,x$10);
diff(f4,x$3,y$2);
simplify(%);
29 / 66
Hemos calculado:
x y
df:=diff(f,x);
evalf(subs(x=2,df));
> f:=x->8*sin(3*x);
D(f);
evalf(D(f)(2));
Podemos utilizar el operador D[](f) , para calcular derivadas parciales de orden superior.
Orden ........: D
Sintaxis ......: D [ ndices ] (expresin)
30 / 66
Propsito ...: Calcular la derivada parcial de expresin, de acuerdo a los ndices, los cuales
representan el orden de las variables tal como aparecen en la definicin.
> f:=(x,y)->x^3+y^3;
D[1](f); # Dx(f)
D[2](f); # Dy(f)
D[1,1,1](f); # Dxxx(f)
> f:=sin(2*x);
g:=diff(f,x);
plot({f,g},x=-Pi..Pi,title=`Una Funcin y su derivada`);
31 / 66
De la librera student usamos la opcin showtangent, que nos permite ubicar la derivada de
una funcin en un punto.
Orden ........: showtangent
Sintaxis ......: showtangent ( funcin, variable = a)
Propsito: Presenta la recta tangente a la curva funcin , en el punto correspondiente a la
ordenada x = a
> with(student):with(plots):
f1 := 15*x^2+3*x;
lista := seq(showtangent(f1, x = i),i=-8..8):
display(lista,title=`Derivadas de la Cuadrtica`);
Warning, the name changecoords has been redefined
32 / 66
Podramos hacer un programa para presentar las rectas tangentes del tamao que deseemos
de tal forma que estas generen la curva. Las siguientes rdenes generan un nmero de
rectas tangentes a una curva.
1- Un cantidad de rectas tangentes que forman la curva.
2- Una recta tangente que se desplaza por la curva.
3- Un segmento de recta tangente a la curva que se desplaza por la misma en una
animacin.
Las rdenes calculan:
1- Un conjunto de valores para x e y de acuerdo a la definicin de la funcin.
2- Un conjunto de rectas tangentes a la curva, teniendo en cuenta:
y = mx+b
b = y-mx
> restart:
with(plots):
F := x^2; #sin(.6*x); #-.5*x^2+2*x+2;
pF :=plot(F,x=-10..10):
m := diff(F,x);
cantidad :=40:
X := [seq(-10+i/2,i=0..cantidad)]:
Y := [seq(eval(F,x=X[i]),i=1..nops(X))]:
Pendientes := [seq(eval(m,x=i),i=X)]:
Cortes := [seq((Y[i]-Pendientes[i]*X[i]),i=1..nops(X))]:
M. en C. Hctor Martnez Rubin Celis
33 / 66
Rectas := [seq((Pendientes[i]*x+Cortes[i]),i=1..nops(X))]:
Tangentes :=seq((plot(Rectas[i], x=-10..10)), i=1..nops(X)):
display(Tangentes, insequence=true);
display(Tangentes);
largo :=.8;
Segmentos :=seq((plot([[(X[i]-largo), eval(Rectas[i], x=(X[i]-largo))], [(X[i]+largo),
eval(Rectas[i], x=(X[i]+largo))]], x=-10..10,color=magenta)), i=1..nops(X)):
display(Segmentos,insequence=true);
Warning, the name changecoords has been redefined
34 / 66
35 / 66
> derivada:=diff(dist,x);
> respuesta:=evalf(%);
> # Descubra lo que ha hecho (siguiente)
> L:=[ [2,3], [x[min] , cos(x[min]) ]];
> plot({cos(x), L }, x=0..3 , scaling=constrained);
36 / 66
4 - Series de Taylor
La funcin "series" describe la serie de Taylor de funciones analticas. En general, la
respuesta es dada en trminos de una expansin de orden 6.
> S:=exp(x)*x^2;
> S1:=series( S, x=0 ); # En torno de x=0.
37 / 66
Otro ejemplo
> f := x -> arctan(x); c := 0;
f := arctan
c := 0
> series( D(f)(x), x = c, 3); convert(int(%, x), polynom); g := unapply( %,x);
1 x 2 + O( x 4 )
x
1 3
x
3
g := x x
1 3
x
3
1 3 1 5 1 7 1 9 1 11 1 13 1 15
x + x x + x
x +
x
x
3
5
7
9
11
13
15
h := x x
1 3 1 5 1 7 1 9 1 11 1 13 1 15
x + x x + x
x +
x
x
3
5
7
9
11
13
15
> plot( [f(x),g(x), h(x) ], x = -5..5, y = -4..4, color = [red, blue, green], thickness = [3,1,2]
);
38 / 66
39 / 66
5. Calculando Integrales
Indefinidas:
La integral est definida como la antiderivada, como un lmite de una sumatoria como el
rea bajo la curva de una funcin en un intervalo [a , b] .
Inicialmente trabajaremos el concepto de Antiderivada, es decir, S F( x ) es una funcin
cuya derivada es f ( x ) entonces:
> value(%);
> diff(%,x);
> restart;
F:=x^2;
f:=diff(F,x);
int(f,x);
40 / 66
> F:=sin(x^2)*cos(x);
f:=diff(F,x);
int(f,x);
expand(%);
> f:=(x^4+1)/(x^4-1);
F:=int(f,x);
41 / 66
Definidas:
Cuando interpretamos la integral como el rea bajo la curva de una funcin en un intervalo
[ a ,b] entonces necesitamos calcular la integran definida.
Orden ........: int
Sintaxis ......: int (expresin, variable=a..b)
Propsito ...: Calcular la integran definida de la expresin en trminos de la variable , que
varia desde a hasta b .
> restart;
f:=x;
Int(f,x=0..2);
2
x dx
> int(f,x=0..2);
> f1:=sin(x);
> Int(f1,x=0..Pi);
sin( x ) dx
> int(f1,x=0..Pi);
> AA:=Int(x^2*exp(x^2),x=0..1);
42 / 66
> resp:=value(AA);
Observe que el resultado de una integral indefinida es un nmero, que representa el rea.
Los ejemplos anteriores nos han permitido calcular el rea bajo la curva de las funciones
x+2, y sin ( x ), en los intervalos especficos.
Vamos a observar la grfica de la funcin f ( x ) = x+2, en el intervalo [0,2], intente evaluar
el area por debajo de esta curva.
> plot(x,x=0..2,title=`Funcin x`);
Ahora, vamos a calcular el rea comprendida entre dos curvas que se intersectan.
M. en C. Hctor Martnez Rubin Celis
43 / 66
> f1:=x+2;
f2:=x^2;
cortes:=solve(f1=f2);
area:=int(f1-f2,x=-1..2);
X := [seq( i, i=-1..2)];
Y1 := [seq( x+2, x=X)];
Y2 := [seq( x^2, x=X)];
Puntos1 := [seq([X[i],Y1[i]],i=1..nops(X) )];
Puntos2 := [seq([X[i],Y2[i]],i=1..nops(X) )];
plot({f1,f2,Puntos1,Puntos2},x=-1..2,style=[line,line,point,point],title=`Area entre las
curvas`);
44 / 66
Los prximos ejemplos son conocidos. Vamos a ver algo sobre Integrales mltiples.
Podemos calcular integrales doble o triples usando el comando int tantas veces como sea
necesario.
> f1:=x^3+x^2+x;
df1:=diff(f1,x);
df2:=diff(df1,x);
int(int(df2,x),x);
> value(%);
> value(%);
> evalf(%);
45 / 66
Como nada es conocido sobre u, Maple no puede determinar una respuesta. Podemos usar
el comando ASSUME para informar al Maple sobre u.
> assume(u<0); int(f8,x=0..infinity);
Esta integral diverge. Por otro lado, se u>0 tenemos convergencia y una respuesta
simblica.
> assume(u>0);int(f8,x=0..infinity);
> value(%);
Otro ejemplo.
> int(1/x, x=0..1);
Otro ejemplo simple (???).
> int(1/(x^3), x=a..b);
Uno mas:
> int(1/(x^3), x=-1..4, 'CauchyPrincipalValue' );
46 / 66
Existe un comando para aproximar graficamente el rea bajo la curva de una funcin por
rectngulos, el cual usa la librera student.
Orden ........: middlebox, leftbox, rigthbox
Sintxis ......: middlebox (expresion, variable=a..b, n, shading, <options>)
Propsito ...: Genera, n cantidad de rectngulos por debajo de la curva de expresion,
Tomados en la distancia media, por la izquierda y por la derecha. El color de los
rectangulos lo da la opcin shading. Adems la orden leftsum, calcula la sumatoria de las
areas de dichos rectngulos.
> restart:with(student):
f1 := sin(x)*x+sin(x);
n:=8;
leftsum(f1, x=0..2*Pi, n): # Sumatorias
value(%):
suma:=convert(evalf(%),name):
leftbox(f1, x=0..2*Pi, n, shading=cyan,title=`Area..: `||suma);
Ahora intentaremos presentar una "pelcula", aproximando el rea bajo la curva de una
funcin desde un intervalo a hasta b, y presentando el valor del rea en la medida en que
esta cambia.
47 / 66
> with(plots):
f1 := sin(x)+cos(x);
suma:=seq((evalf(value(leftsum(f1, x=Pi/4..2*Pi, i)))),i=4..25):
area:=seq((convert(suma[i],name)),i=1..22):
lista:=seq((leftbox(f1, x=0..2*Pi, i, shading=cyan,title=`Area..: `)),i=8..25):
display(lista,insequence=true,title=`Aproximaciones del Area`);
Warning, the name changecoords has been redefined
La funcin leftbox en el paquete student produce una aproximacin a el rea bajo la curva
de una funcin f(x) en el intervalo a<x<b usando rectngulos. El rango de valores de x esta
dividido en un nmero n de subintervalos.
La altura de los rectngulos esta dada por el valor de f en el lmite izquierdo de cada
subintervalo. El llamado de la funcin es leftbox es: leftbox(f(x),x=a..b,n); Si no se da el
valor de n, se usa el valor por omisin de n = 4. Por ejemplo:
> leftbox(x^2,x=0..2);
48 / 66
> leftbox(x^3+3*x^2-2*x+5,x=0..2,10);
El rea de los rectngulos puede ser calculada usando la funcin leftsum. Por ejemplo:
> leftsum(x^3+3*x^2-2*x+5,x=0..2,10);
1
1 3 3 2 2
i +
i i + 5
5 i = 0 125
25
5
> evalf(%);
16.48000000
> # El valor exacto de la integral es:
> int(x^3+3*x^2-2*x+5,x=0..2);
18
El paquete student tambin incluye las funciones middlebox, rightbox, middlesum, y
rightsum para calcular aproximaciones a la integral usando rectngulos con la altura
del rectngulo dada por f(x) evaluada en el punto medio o el lado derecho de los
intervalos. Por ejemplo:
49 / 66
> rightbox(exp(0.1*x),x=0..10,10);
> simpson(exp(0.1*x),x=0..10,10);evalf(%);
( 0.2 i 0.1 )
( 0.2 i )
4
2
+ e
1.239427276 + e
3 i= 1
3 i= 1
17.18282782
> int(exp(0.1*x),x=0..10);
17.18281828
> middlebox(1/x,x=1..2,8);
50 / 66
Graficar
con x en [0,2Pi]
51 / 66
52 / 66
Podemos graficar dos o mas grficos juntos. Este es un recurso muy til.
Juntando dos Grficos: use llaves- plot({f(x),g(x)}, x=a..b)
> plot({arctan, sqrt}, 0..5);
53 / 66
54 / 66
PROBLEMA 2
Un cierto algoritmo genera una lista de puntos x, y una lista de puntos y de la forma
siguiente:
> X:=[seq( .1*k , k=0..10 ) ]:
> Y:=[seq( 5*( (.1*k)^2-(.1*k)^3 ) , k=0..10 ) ]:
> L:=[ seq( [ X[k], Y[k] ], k=1..11) ];
55 / 66
56 / 66
> plot3d(-3.6+0.3599*x-0.0027*x^2-0.00166*y,x=15..107,y=0..70,title=`akira`);
> plot3d(exp(-x^2-y^2),x=-2..2,y=-2..2);
57 / 66
> animate3d(x*cos(t*u),x=1..3,t=1..4,u=2..4,coords=spherical);
Ms ejemplos
> restart;
> with(plots):
> f:=(x,y) -> -(x^2+y^2);
58 / 66
59 / 66
60 / 66
> contourplot(sin(x^2+y^2),x=-1..1,y=-1..1);
61 / 66
> gradplot3d(x^2+2*y^2+z+1,x=-1..1,y=-1..1,z=-1..1);
62 / 66
Coordenadas cilndricas
> cylinderplot(z+ 3*cos(2*theta),theta=0..Pi,z=0..3);
63 / 66
Ejercicios
> # Lea "?plots[spacecurve]" y disee una espiral.
> # DIGA: use la opcin "color=black"
> # plot([5*(1-cos(t)) ,t , t=0..2*Pi], coords=polar);
> # X:=[seq( .1*k , k=0..10 ) ]:
> # Y:=[seq( 5*( (.1*k)^2-(.1*k)^3 ) , k=0..10 ) ]:
> # L:=[ seq( [ X[k], Y[k] ], k=1..11) ];
> # plot(L, scaling=constrained,title=`Graficando datos`);
64 / 66
6. Ecuaciones Diferenciales
Una ecuacin diferencial es de la forma...:
Orden ........: dsolve
Sintaxis ......: dsolve(expresin, variables)
Propsito ...: Resuelve una ecuacin diferencial, expresin , en termino de las variables,
variables
Aqu debemos tener en cuenta el orden de la derivada a la cual nos estamos refiriendo, por
ejemplo:
1- diff ( f , x ) Se refiere a la primera derivada de f respecto a x.
2- diff ( f , x$n ) Se refiere a la n-esina derivada de f respecto a x.
Adems al resolver una ecuacin diferencial aparecern distintas constantes que
representan las familias de soluciones.
La ecuacin:
dy
=a
dx
Es una ecuacin diferencial que podemos escribir dy = adx y solucionarla para y integrando,
es decir:
esto es.. y = ax + c .:
Obsrvelo ahora, escrito a manera de la solucin de una Ecuacin Diferencial, para un valor
inicial de y(0) = v .
> ecuacion:=D(y)(t)=a;
dsolve(ecuacion,y(t));
dsolve({ecuacion,y(0)=v},y(t));
> ec:=diff(y(t),t$2)=-g;
cond:=y(0)=3,D(y)(0)=5;
dsolve(ec,y(t));
dsolve({ec,cond},y(t));
65 / 66
66 / 66