Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Calculo Simbolico Con Matlab Syms PDF
Calculo Simbolico Con Matlab Syms PDF
Boyan Bonev
Facultad de Ciencias Económicas y Empresariales
Universidad de Alicante
31 de octubre de 2011
Resumen de funcionalidades
A continuación se describen varias funcionalidades del paquete de cálculo
simbólico.
Paquete syms
En un principio Matlab se diseñó orientado al cálculo numérico. Así, si
intentamos calcular el seno de una variable no numérica:
>> y=sin(x)
??? Undefined function or variable 'x'.
Matlab no conoce el valor numérico de x.
Recientemente se añadió un paquete adicional que permite a Matlab trabajar
con variables simbólicas, teniendo que declararlas antes de usarlas:
>> syms x
Simplicar
Ahora podemos usar expresiones que contengan a esta variable. Por ejemplo,
si queremos simplicar o evaluar una expresión lo hacemos con el comando
simplify.
>> y=sin(x);
>> z=cos(x);
>> simplify(y^2+z^2)
ans = 1
1
>> subs(x^2-x-1,-3)
ans =
11
Resolver ecuaciones
Para resolver la ecuación x2 − x − 1 = 0:
>> solve(x^2-x-1)
ans =
5^(1/2)/2 + 1/2
1/2 - 5^(1/2)/2
obteniendo estas dos soluciones.
Límites
Con el paquete simbólico también podemos calcular límites, derivadas, integrales,
etc. Para calcular el límite para f (x)= sin(x)
x cuando x tiende a cero:
>> limit(sin(x)/x,0)
ans = 1
n3 +3n2 −2n
Y un límite en el innito de f (n) = 3n3 −1 :
>> syms n
>> limit((n^3+3*n^2-2*n)/(3*n^3-1),inf)
ans = 1/3
Derivadas
Para calcular derivadas usamos el comando diff:
>> syms x
>> f=x^3-cos(x)+1;
>> g=diff(f)
g = 3*x^2+sin(x)
Evaluar funciones
Nótese que en los comandos introducidos se ha denido la función f (x), así
como la función g(x), que almacena el resultado de la derivada. Estas funciones
se pueden evaluar en un valor concreto de x por medio del comando subs, por
ejemplo, evaluamos f (1):
>> subs(f,1)
ans = 1.4597
2
Integrales indenidas
Por otro lado también es posible calcular primitivas utilizando el comando
int. Si queremos calcular la primitiva del último resultado, g:
>> int(g)
x^3 - cos(x)
Integrales denidas
Para calcular integrales denidas en un intervalo, podemos indicar los límites
´3
de éste en la función int. Por ejemplo, para la integral denida 1
3x3 +sin(x) dx
introducimos:
>> int(3*x^2+sin(x),1,3)
ans = cos(1) - cos(3) + 26
Nota: para integrales impropias utilizaremos -inf ó inf para indicar el límite
inferior y/o superior.
Representación gráca
Podemos representar grácamente una función utilizando la función ezplot:
>> ezplot(f)
o bien tecleando la expresión directamente (pero habiendo declarado previamente
x syms x):
como simbólica, con
>> ezplot(x^3 - cos(x) + 1)
El resultado se puede ver en la gura 1.
Más información en la documentación del paquete syms:
http://www.mathworks.es/help/toolbox/symbolic/index.html
Suma de series
1
Sea la serie
2n ; su suma desde un término hasta otro, por ejemplo desde 1
hasta 3, se calcula con:
>> syms n
>> symsum(1/2^n,1,3)
ans = 7/8
La suma desde un término hasta el innito se calcula así:
>> symsum(1/2^n,1,inf)
ans = 1
3
x3 − cos(x) + 1
250
200
150
100
50
−50
−100
−150
−200
−250
−6 −4 −2 0 2 4 6
x
4
-2
Para ver si 4 − x2 es positivo o negativo en el intervalo [−2, 2], sustituimos
un valor que pertenezca al intervalo y otro que no pertenezca, por ejemplo el 1
y el 3:
>> subs(4-x^2,1)
ans =
3
>> subs(4-x^2,3)
ans =
-5
Por tanto la función es negativa fuera del intervalo y positiva dentro, así que:
D(f ) = [−2, 2]
La función es continua en su dominio y no tiene asíntotas verticales. Los
límites del dominio son cerrados así que no hace falta estudiar los límites (sobra
con sustituir en la función), pero si hubiera que hacerlo se haría con el comando:
>> limit(f,-2)
ans =
0
>> limit(f,2)
ans =
0
5
Asíntotas horizontales
No es posible estudiar el comportamiento de la función en el innito porque
está fuera de su dominio. De haberlo sido, lo habríamos hecho así:
>> limit(f,inf)
ans =
i*Inf
>> limit(f,-inf)
ans =
-i*Inf
En este caso obtenemos números complejos (la i signica parte imaginaria),
que no pertencen al dominio real (se debe a la raíz cuadrada de números
negativos).
6
-4.0000
>> subs(f2,-2^(1/2))
ans =
4.0000
√ √ √
obteniendo f 00 ( √2) < 0, por tanto x = 2 es un máximo local, y f 00 (− 2) >
0, por tanto x = − 2 es un mínimo local.
Para ver qué valor alcanza la función en dichos extremos, sobra con sustituirlos
en f (x):
>> subs(f, 2^(1/2))
ans =
2
>> subs(f,-2^(1/2))
ans =
-2
Finalmente vamos a comprobar el crecimiento/decrecimiento de la función
dentro de todo su dominio, particionado por los dos extremos que hemos obtenido,
√ √ √ √
es decir, en los intervalos [−2, − 2), (− 2, 2) y ( 2, 2]. Para ello sobra con
que sustituyamos algún valor de cada uno de los intervalos en f 0 (x) para ver si
la pendiente es positiva o negativa, por ejempo, −1,9, 0 y 1,9:
>> subs(f1,-1.9)
ans =
-5.1561
>> subs(f1,0)
ans =
2
>> subs(f1,1.9)
ans =
-5.1561
Por tanto:
√ 0
Si x ∈ [−2, − 2) ⇒ f (x) < 0 ⇒ f (x) es decreciente,
√ √
si x ∈ (− 2,
√ 2) ⇒ f 0 (x) > 0 ⇒ f (x) es creciente,
0
si x ∈ (− 2, 2] ⇒ f (x) < 0 ⇒ f (x) es decreciente.
7
pero de los tres, sólo el punto x = 0 pertenece al dominio de f (x). Estudiamos
el signo de la segunda derivada a ambos lados de dicho punto, sustituyendo en
-1 y 1:
>> subs(f2,-1)
ans =
1.9245
>> subs(f2,1)
ans =
-1.9245
00
Si x ∈ (−2, 0) ⇒ f (x) > 0 ⇒ f (x) es convexa,
00
si x ∈ (0, 2) ⇒ f (x) < 0 ⇒ f (x) es cóncava.
La función cambia de convexa a cóncava en x = 0, por tanto el punto (0, 0)
es un punto de inexión.
Representación gráca
Representamos grácamente una función utilizando la función ezplot:
>> ezplot(f, [-2.1, 2.1])
x (4 − x2)1/2
1.5
0.5
−0.5
−1
−1.5
−2
En este caso hemos indicado entre qué intervalos debe dibujarse la función,
para dejar un pequeño margen de 0.1 unidades a los lados del dominio de la
función.
Limitaciones
Nótese que la gráca no llega a representarse en los puntos (−2, 0) y (2, 0).
Según la implementación de las funciones de representación puede haber distintas
8
limitaciones a la hora de representar. En este caso la gáca está incompleta
probablemente debido a que la pendiente de la función tiende a innito conforme
se acerca al nal de su dominio. Sin embargo no signica que la función no esté
denida en estos puntos. Lo podemos comprobar dibujando la gráca en un
intervalo muy pequeño alrededor del punto -2. (Nota: el cambio de curvatura
en la segunda gráca con respecto a la primera se debe a diferentes cambios de
escala en los ejes x e y).
>> ezplot(f,[-2.01,-1.99])
x (4 − x2)1/2
0
−0.05
−0.1
−0.15
−0.2
−0.25
−0.3
−0.35
−0.4
Referencias
Más información en la documentación del paquete syms:
http://www.mathworks.es/help/toolbox/symbolic/index.html