Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CalculoDIF Maple PDF
CalculoDIF Maple PDF
Esta interfaz de Maple tiene un aspecto muy similar a la de otros programas usados
en sistemas operativos con entorno gráfico y permite el acceso a todas las
2) Cada vez que finalice una frase deberá escribir punto y coma (si desea que su resultado
aparezca explícitamente) ó dos puntos (si desea que no aparezca el resultado).
3) Puede abandonar Maple por dos vías: eligiendo Exit del menú File o bien escribiendo el
comando quit. Si usa Exit, Maple le preguntará si desea respaldar su trabajo (usted deberá
decidir entre Si, No ó Cancelar). Si usa el comando quit, Maple no le hará consulta alguna.
Después de haber ingresado dicho comando, simplemente deberá presionar la tecla enter.
Con ésta acción usted abandona su hoja de trabajo y el programa Maple, perdiendo la
información que tenía en la hoja de trabajo.
5) Usted puede detener un cálculo que considere que es demasiado largo y demoroso para
Maple. Para ello puede usar el icono Stop que aparece en el menú de Maple y que se
enciende cada vez que Maple está procesando un cálculo. El proceso se detiene haciendo
un click con el mouse sobre dicho icono.
COMANDOS DE MAPLE
x+y; suma x e y
x - y; resta x e y
x*y; multiplica x e y
x/y; divide x por y
x ^ y; eleva x a y
abs(x); valor absoluto de x
x :=2 ; asigna a x el valor 2
x = ‘x’; suprime un valor asignado a x, quedando x libre
subs(x=a, f); sustituye la variable x en f por a
evalf(expr); evalúa una expresión usando decimales
evalf(expr,n); evalúa hasta n dígitos
evalc(imagin, expr); evalúa números complejos
evalm(matr,expres); evalúa una expresión matricial
collect(expression,x); agrupa expresiones según la potencia de x
collect(f,[p,q]); en f, agrupa todos los términos con p, y todos
los términos con q
expand(expr); desarrolla una expresión algebraicamente
factor(expr); factoriza un polinomio
fsolve(f(x)=0, x); soluciona numéricamente la ecuación en x, f(x) =0
fsolve(f(x)=0, x, a..b) soluciona numéricamente en x, f(x)=0, entre a y b
fsolve(f(x)=0, x ,complex); halla numéricamente todas las raíces de una ecuación
polinomial en x, f(x) = 0
Pi ; π (debe escribirse con mayúscula)
simplify(expresión); reduce expresiones , más o menos
solve(f(x)=0, x); resuelve simbólicamente la ecuación en x, f(x)=0
solve({f(x,y)=0, g(x,y)=0},{x,y}); resuelve simbólicamente sistemas de ecuaciones
sqrt(x); raíz cuadrada de x
I; número complejo i
(%); da el resultado obtenido en el paso anterior
coeff(expression,x,2); coeficiente de x 2 en la expresión
with(student); carga la librería student
completesquare(expr,[x,y]); completa cuadrados de binomio en x e y en la
expresión expr
completesquare(quad,[x,y,z]); completa cuadrados de binomio en x,y,z
1) En Maple, al igual que en Matemáticas, existe una diferencia entre una expresión y
una función. Una función toma argumentos y retorna valores. Una expresión es un objeto.
Una función es activa y una expresión es pasiva. La sintaxis básica para definir una función
es:
nombre:= variable -> expresión
Para escribir la flecha con el teclado se usa primero la tecla - y después la tecla >
sin dejar espacio entre ambas.
2) El comando para realizar gráficas es plot. Hay varios tipos de sintaxis para éste
comando, dependiendo si se trata de funciones o expresiones:
3) Una vez que Maple está en la ventana de gráficas, el mouse maneja un cursor en
forma de flecha que sirve para determinar las coordenadas de cualquier punto de la gráfica.
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.
5) Para representar una función a trozos, o sea una función 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 sólo se trata de una condición la sintaxis es:
s:= proc(x)
if (condición) then (expresión)
else (expresión)
fi
end:
s:=proc(x)
(El comando elif es una abreviatura para else if que significa “de otra manera si...”)
7) Para hacer en Maple una tabla de valores se puede usar dos vías:
a) usando el comando seq que se aplica a una función f ya definida mediante la
sintaxis:
seq(f(i), i = a..b)
b) usando el comando array que se aplica a una función ya definida mediante la sintaxis:
pointplot ({ [a , b ] , [c , d ] , [e , f ] });
12) piecewise(x < a , f(x) , x >= b , g(x) , u(x)); define una función a trozos
2) Para usar las funciones trigonométricas tome en cuenta que todos los argumentos
180 Pi
deben estar en radianes (1 radian = grados sex. ; 1 grado sex. = radianes)
Pi 180
4) Debe observarse que para convertir grados sexagesimales a radianes, Maple usa
“degrees” (grados) como una unidad que se nombra explícitamente y por la cual hay que
7) Una opción interesante que posee el comando plot es el que permite poner título a
una gráfica. Para ello se usa la siguiente sintaxis:
1. Manipulando Números
No aparece ningún 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(%);
>
Cambiando a 10 digitos.
> Digits:= 10:
Haciendo sumatorias. Descubra a diferencia entre los comandos Sum y sum
> Sum((1+i)/(1+i^4), i=1..10);
> 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(%);
Repita los comandos de somatoria y produtos, iniciando con letra minúscula para ver un
que ocorre .
> sum((1+i)/(1+i^4), i=1..10);
Números Complejos:
> (3+5*I)/(7+4*I); # dividiendo ...
> (2-4*I)*(1+I);
> sqrt(4*I);
> (sqrt(4*I))^2;
> evalc(%);
> expand(%);
Factorizar un polinomio
> factor(%);
> 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;
> D(p)(1);
Resolviendo un sistema
> eqns := {7*x-14*y=1.111, -14*x+140*y=-0.642};
2. Solución de Ecuaciones:
Solucionar una ecuación es encontran los valores para los cuales dicha ecuación es
verdadera. Las soluciones más usadas son aquellas que buscan las raices de una expresión
polinómica. Para tal efecto usaremos el comando: fsolve( expresión )
Orden ........: solve
Sintáxis ......: solve( expresión , x , a..b)
Propósito ...: Calcula la solución de expresión . 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 expresión algebráica para la solución de una función
cuadrática.
> 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});
Supongamos ahora que deseamos calcular los puntos de intersección de una recta y una
cuadrática:
> Linea:=2*x+4;
Cuadratica:=x^2+2*x+3;
Sol:=fsolve(Linea=Cuadratica,x);
#subs( x=2, x^2+x+1 );
digits:=2;
Hemos usado la opción de remplazar o sustituir una variable en una ecuación. La sintáxis es
la siguiente:
Orden ........: subs
Sintáxis ......: subs( x=a,expresión)
Propósito ...: Remplaza el valor de la variable x en la expresión .
> subs(x=a,x^2+3*x+4);
1 . Calculando Límites
Límites:
El límite de una suceción o de una función se calcula en Maple con la orden limit
Orden ........: limit
Sintaxis ......: limit (expresion, variable= a , opción)
Propósito ...: Calcular el límite de la expresión , cuando variable tiende a..: a . Veamos
algunos ejemplos:
> f2:=(x^2-sqrt(x))/(sqrt(x)-1);
limit(f2,x=1);
> 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 límites laterales de la función no son iguales, por tanto el
límite no existe. Intentemos ver estos resultados en un gráfico
> with(plots):
plot(f4,x=0..6,y=-100..100,title=`Limite x-->3`);
> f(x);
> f:=piecewise(x<-1,7*x,x<4,x^2-2,4*x-2);
⎧⎪ 7 x x < -1
f := ⎪⎨⎪ x 2 − 2 x<4
⎪⎪
⎩4x−2 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);
⎧ 3 x + 244 x<4
⎪
f := ⎪⎪⎨ x 3 − 64
⎪⎪ otherwise
⎩ x −2
> f:=x->piecewise(x<4,3*x+244,(x^3-64)/(sqrt(x)-2));
⎛ x 3 − 64 ⎞
f := x → piecewise ⎜⎜ x < 4, 3 x + 244 , ⎟
⎝ x − 2 ⎟⎠
> plot(f(x),x=3..5,discont=true);
> value(%);
0
Definindo una función.
> f1:=(x,y) -> (x^2-5*y)/(x^3+2*x);
> limit(f1(x,y),x=1);
Haga otros gráficos. Experimente funciones conocidas por usted tal como seno, coseno,
etc...
Otra forma de definir una función 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 función 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));
> value(%);
Si un comando comienza con letra mayúscula, 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, función. Por lo tanto, A no es función (es
una expresión).
> Limit(A, x=0);
> value(%);
> value(%);
> value(%);
> f4:=(x+2)/(x^2-4*x+3);
limit(f4,x=3,left);
El Maple puede calcular límites para funciones de más 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 vários puntos.
> F2:=(x,y,z)-> (x^2+y^2+z^2)/ (x^2+y^2+z^2+1);
> limit(sin(x^2+y^2)/(x^2+y^2),{x=0,y=0});
Tal ves uno de los conceptos más importantes del Cálculo, en todos los niveles,
inicialmente trataremos de calcular algunas derivadas y luego intentaremos estudiar el
concepto de Derivada de una función desde el punto de vista gráfico:
Orden ........: diff
Sintaxis ......: diff (expresión, variable)
Propósito ...: Calcular la derivada de expresión en términos de variable .
Derivando 3 veces,
> diff(f2(x),x,x,x);
Calculando derivadas con operador diferencial "D". Una salida (output) es siempre una
función
> h:=x -> x^2;
> h(x);
> f1:=sin(x);
diff(f1,x);
f2:=3*x^2+5*x+5;
diff(f2,x);
> f4:=(x^2+3*x)*(2*sin(2*x));
diff(f4,x);
simplify(%);
> f1:=(x^2+y^2);
diff(f1,x);
Podemos calcular derivadas parciales de orden superior, para lo cual usamos el operador $
en la variable.
> f1:=x^4-y^5;
diff(f1,x$3);
diff(f1,y$3);
> f2:=x^2*sin(x);
diff(f2,x$10);
> f4:=exp((x/y));
diff(f4,x$3,y$2);
simplify(%);
> f:=8*sin(3*x);
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 ] (expresión)
> 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 Función y su derivada`);
> 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 Cuadrática`);
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))]:
Queremos a menor distancia. De la fórmula anterior vemos que distancia es una función de
x. Por lo tanto, del Cálculo, concluimos que la menor distancia debe ser dada por una x que
anula a derivada de dist.
Vamos ver un gráfico de Función dist.
> plot( sqrt( (2-x)^2 + (3-cos(x))^2),x=0..2);
> evalf(%);
> respuesta:=evalf(%);
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 )
1 3
x− x
3
1 3
g := x → x − x
3
> series( D(f)(x), x = c, 15); convert(int(%, x), polynom); h := unapply( %,x);
1 − x 2 + x 4 − x 6 + x 8 − x 10 + x 12 − x 14 + O( x 16 )
1 3 1 5 1 7 1 9 1 11 1 13 1 15
x− x + x − x + x − x + x − x
3 5 7 9 11 13 15
1 3 1 5 1 7 1 9 1 11 1 13 1 15
h := x → x − 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]
);
Indefinidas:
La integral está definida como la antiderivada, como un límite de una sumatoria ó como el
área bajo la curva de una función en un intervalo [a , b] .
Inicialmente trabajaremos el concepto de Antiderivada, es decir, Sí F( x ) es una función
cuya derivada es f ( x ) entonces:
> value(%);
> diff(%,x);
> restart;
F:=x^2;
f:=diff(F,x);
int(f,x);
> f:=(x^4+1)/(x^4-1);
F:=int(f,x);
> int(f,x=0..2);
> f1:=sin(x);
> Int(f1,x=0..Pi);
π
⌠ sin( x ) dx
⎮
⌡0
> int(f1,x=0..Pi);
> AA:=Int(x^2*exp(x^2),x=0..1);
Observe que el resultado de una integral indefinida es un número, 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 específicos.
Vamos a observar la gráfica de la función f ( x ) = x+2, en el intervalo [0,2], intente evaluar
el area por debajo de esta curva.
Ahora, vamos a calcular el área comprendida entre dos curvas que se intersectan.
> f1:=x^3+x^2+x;
df1:=diff(f1,x);
df2:=diff(df1,x);
int(int(df2,x),x);
> value(%);
> value(%);
> evalf(%);
> int(f8,x=0..infinity):
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
simbólica.
> assume(u>0);int(f8,x=0..infinity);
> value(%);
Otro ejemplo.
> int(1/x, x=0..1);
Uno mas:
> int(1/(x^3), x=-1..4, 'CauchyPrincipalValue' );
> 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 "película", aproximando el área bajo la curva de una
función desde un intervalo a hasta b, y presentando el valor del área en la medida en que
esta cambia.
La función leftbox en el paquete student produce una aproximación a el área bajo la curva
de una función f(x) en el intervalo a<x<b usando rectángulos. El rango de valores de x esta
dividido en un número n de subintervalos.
La altura de los rectángulos esta dada por el valor de f en el límite izquierdo de cada
subintervalo. El llamado de la función es leftbox es: leftbox(f(x),x=a..b,n); Si no se da el
valor de n, se usa el valor por omisión de n = 4. Por ejemplo:
> leftbox(x^2,x=0..2);
El área de los rectángulos puede ser calculada usando la función leftsum. Por ejemplo:
> leftsum(x^3+3*x^2-2*x+5,x=0..2,10);
1⎛ ⎞
9
⎜ ∑ ⎛⎜ i − i + 5 ⎞⎟⎟ ⎟⎟
1 3 3 2 2
⎜ ⎜ i +
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 también incluye las funciones middlebox, rightbox, middlesum, y
rightsum para calcular aproximaciones a la integral usando rectángulos con la altura
del rectángulo dada por f(x) evaluada en el punto medio o el lado derecho de los
intervalos. Por ejemplo:
> simpson(exp(0.1*x),x=0..10,10);evalf(%);
con t en [0,2Pi]
> plot( [cos(t), sin(2*t), t=0..2*Pi] );
PROBLEMA 2
Un cierto algoritmo genera una lista de puntos x, y una lista de puntos y de la forma
siguiente:
Para graficar en tres dimensiones precisamos llamar un paquete para gráficos, Hacemos
esto tecleando "with(plots)".Un comando es plot3d. Clique sobre un gráfico y gírelo.
> plot3d(exp(-x^2-y^2),x=-2..2,y=-2..2);
Más ejemplos
> restart;
> with(plots):
> f:=(x,y) -> -(x^2+y^2);
> contourplot(sin(x^2+y^2),x=-1..1,y=-1..1);
> gradplot3d(x^2+2*y^2+z+1,x=-1..1,y=-1..1,z=-1..1);
Coordenadas cilíndricas
> cylinderplot(z+ 3*cos(2*theta),theta=0..Pi,z=0..3);
Ejercicios
> # Lea "?plots[spacecurve]" y diseñe una espiral.
> # DIGA: use la opción "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`);
dy
La ecuación: =a
dx
Es una ecuación diferencial que podemos escribir dy = adx y solucionarla para y integrando,
es decir:
esto es.. y = ax + c .:
Obsérvelo ahora, escrito a manera de la solución de una Ecuación 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));