Está en la página 1de 16

CLCULO SIMBLICO

Operaciones realizadas a la fecha: Numricas.


En muchas aplicaciones matemticas, cientficas y tcnicas se requieren operaciones
simblicas. Es decir, operaciones matemticas con expresiones que contienen variables
simblicas (variables que no contienen un valor numrico especfico asignado cuando la
operacin se ejecuta).
El resultado de tal operacin es tambin una expresin matemtica que contiene variables
simblicas. Un ejemplo sencillo es despejar una variable de una ecuacin algebraica de
varias variables. Por ejemplo, si a, b y x son variables simblicas y ax - b = 0 , se desea
calcular x a partir de a y b, cuyo resultado es x = b/a .
Otros ejemplos de operaciones simblicas son la resolucin analtica de derivadas, integrales
y ecuaciones diferenciales. Por ejemplo, la derivada con respecto a t de la ecuacin: 2t 3 + 5t
8 , es 6t2 + 5.
MatLab permite realizar diferentes tipos de operaciones simblicas, donde la parte numrica
de la operacin simblica, se lleva a cabo de forma exacta, sin aproximar valores numricos.
Por ejemplo, el resultado de sumar: x/4 y x/3 es (7/12)x y no 0.5833x.
Para trabajar en MatLab con operaciones simblicas, se debe instalar la caja de
herramientas correspondiente (SymbolicMathToolbox).
Los comandos y funciones para las operaciones simblicas tienen el mismo estilo y sintaxis
que las operaciones numricas. Las operaciones simblicas son ejecutadas por Maple, el
cual est integrado dentro de MatLab. Para comprobar si la librera de operaciones
simblicas est instalada, utilizar la instruccin: ver mostrndose las herramientas (tool
boxes) instaladas.
Para trabajar con operaciones simblicas, se debe tratar con objetos simblicos. Un objeto
simblico est compuesto por variables y nmeros que, cuando se utilizan en operaciones
matemticas, indican a MatLab que debe ejecutar la operacin en forma simblica.
El usuario inicialmente define o crea las variables simblicas (objetos) necesarias, y despus
las utiliza para crear expresiones simblicas.

FUNCIONES POR CATEGORA


FUNCIONES
Clculo

Funciones que llevan a cabo operaciones de clculo con


expresiones simblicas.

Algebra Lineal

Funciones para manipulacin matricial simblica.


1

Simplificacin

Funciones para modificar o simplificar datos simblicos.

Solucin de ecuaciones

Funciones para resolver una expresin simblica

Aritmtica
Variable

de

Presicin Funciones para clculo que requiere control exacto de la


exactitud numrica

OperacionesAritmticas

Funciones para la funcionalidad de expresiones aritmticas o


simblicas

FuncionesEspeciales

Funciones con aplicacin matemtica especfica

Acceso a Maple

Funciones para accesar el Kernel de Maple

AplicacionesPedaggicas y Funciones que suministran ms informacin con grficos y


Grficas
calculus.
Conversiones

Funciones para convertir datos simblicos de un tipo a otro

OperacionesBsicas

Funciones para operaciones bsicas de datos simblicos

TransformacionesIntegrale
s

Funciones que llevan a cabo transformaciones integrales

Creacin de Objetos Simblicos.


Pueden ser variables o nmeros. Se crean con el comando symy/o syms , los cuales crean
nmeros, variables u objetos simblicos.
Sintaxis:

nombre_objeto = sym(cadena)

Donde cadena puede ser:


-

Una letra o combinacin de letras sin espacios. Ejemplo: a, x o var.


Una combinacin de letras y dgitos que comience por letra (sin espacios). Ejemplos:
xh12, r2d2.
Un nmero. Por ejemplo: 15, 4.

Ejemplo: Crear con el mismo nombre las variables simblicas para a, bb y x.


>> a = sym(a)
a =a
>>bb = sym(bb)
bb = bb
>> x = sym(x)
x=x
Ejemplo: Crear el objeto simblico gamma con el nombre g.
>> g = sym(gamma)
g = gamma
Nota: El objeto simblico se llama gamma, y el nombre del objeto es g.
2

Ejemplo: Crear objetos simblicos a partir de los nmeros 5 y 7.


>> c = sym(5)
c=5
>> d = sym(7)
Para crear ms de una variable simblica, utilizar el comando syms.
Sintaxis:

symsnombre_variablenombre_variablenombre_variable..

Ejemplo: Crear variables simblicas para y, z, d.


>>syms y z d
(Observar que no se muestran automticamente. Para visualizarlas, teclear su nombre)
>>y
y= y

Crea la variable simblica yy la guarda en y.

Creacin de expresiones simblicas.


Sintaxis:

nombre_expresion = expresin matemtica

Ejemplo: Crear la expresin simblica para:

ax2 + bx + c con el nombre f

>>syms a b c x y
>> f = a * x ^ 2 + b * x + c
f=
a*x^2+b*x+c
(Sin sangra)
Cuando se introduce una expresin simblica que incluye operaciones matemticas que se
pueden ejecutar ( suma, resta, multiplicacin y divisin), MatLab las ejecuta a medida que se
crean. Por ejemplo:
>> g=2*a/3+4*a/7-6.5*x+x/3+4*5/3-1.5
g=
(26*a)/21 - (37*x)/6 + 31/6
Ejemplo: Analice las siguientes operaciones realizadas en forma simblica y numrica.
>> a = sym(3); b=sym(5);
>> e=b/a+sqrt(2)
e=
2^(1/2) + 5/3
>> c=3; d=5;
>> f=d/c+sqrt(2)
f=
3

3.0809

(Con sangra)

Ejemplo:
syms x beta real es equivalente a:
x = sym('x','real');
beta = sym('beta','real');

COMENTARIOS SOBRE EXPRESIONES Y OBJETOS SIMBLICOS


1. Las expresiones simblicas pueden incluir variables numricas, ocasionando que el
resultado sea exacto.
Ejemplo:
>> h = 10 / 3
h=
3.3333
>> k = sym(5); m = sym(7);
>> p = k / m + h
p=
85/21
2. Se puede utilizar la instruccin double(S)para convertir una expresin simblica
(objeto) S, escrita en forma exacta, a su forma numrica (No. en punto flotante de
doble precisin).
Ejemplo:
a) p se convierte a su valor numrico.
>>pN = double(p)
pN =
4.0476
b) Se crea un objeto simblico y despus se convierte a forma numrica:
>> y = sym(10) * cos(5*pi/6)
y=
-5*3^(1/2)
>>yN = double(y)
yN =
-8.6603
3. Se puede crear una funcin simblica sin declarar las variables.
Ejemplo:
>> f = sym(a*x^2+b*x+c)
f=
a*x^2+b+c
NOTA: Diferencia con caso anterior: No se pueden realizar operaciones simblicas.
4

4. Se pueden crear nuevas expresiones simblicas utilizando las existentes.


Ejemplo:
>>syms x y
>> SA = x + y, SB = x y
SA =
x+y
SB =
x-y
>> F = SA ^ 2 / SB ^ 3 + x ^ 2
F=
(x + y)^2 / (x - y)^3 + x^2
COMANDOSfindsym, collect, expand y factor
COMANDO
findsym

collect

expand

SINTAXIS
findsym(F)
findsym(F,n)

collect(F)
collect(F,variable)

expand(S)

DESCRIPCIN Y EJEMPLO
Enlista las variables simblicas involucradas en una
expresin simblica.
n son las primeras variables simblicas.
Agrupa los trminos de igual potencia que se
encuentran en una expresin.
>>syms x y
>> S = (x^2 + x exp(x)) * (x + 3)
S=
(x^2 + x exp(x)) * (x + 3)
>> F = collect(S)
F=
x^3 + 4 * x^2 + ((-exp(x) + 3) * x 3 * exp(x)
Desarrolla expresiones aplicando la propiedad
distributiva
utilizando
sumas,
identidades
trigonomtricas, exponenciales y logartmicas.
>>syms a x y
>> S = (x + 5) * (x - a) * (x + 4)
S=
(x + 5) * (x - a) * (x + 4)
>> T = expand(S)
T=
x^3 + 9 * x^2 x^2 * a 9 * a + 20 * x 20 * a
>>expand(sin(x - y))
ans =
sin(x) * cos(y) cos(x) * sin(y)
Factoriza una expresin en forma de polinomio y
entrega otra expresin simblica compuesta por
5

factor

factor(S)

productos de polinomios de grado menor.


>>sym x
>> S = x^3 + 4 * x^2 11 * x 30
>> factor(S)
ans =
(x + 2) * (x 3) * (x + 5)

COMANDOS simplify, simple y pretty


COMAND
O

simplify

simple

pretty

SINTAXIS

simplify(S)

DESCRIPCIN Y EJEMPLO
Genera la forma ms simple posible de una expresin.
>>syms x y
>> S = x * (x * (x - 8) + 10) 5
S=
x * (x * (x - 8) + 10) 5
SA = simplify(S)
SA =
x^3 8 * x^2 + 10 *x -5
>>simplify((x + y) / 1 /x + 1 / y))
ans =
x*y

Devuelve la expresin ms corta a partir de la original.


>>syms x
>> S = (x^3 4 * x^2 + 16 * x) / (x^3 + 64)
S=
simple(S)
(x^3 4 * x^2 + 16 * x) / (x^3 + 64)
[F how] = simple(S) >>F = simple(S)
F=
x(x + 4)

pretty(S)

Visualiza la expresin como se escribe normalmente


>>syms a b c x
>> S = sqrt(a * x^2 + b * x + c)
>>pretty(S)

Creando Funciones Matemticas Simblicas

Existen dos formas para crear funciones: utilizando expresiones simblicas, o utilizando un
archivo m.
Utilizando Expresiones Simblicas:
La secuencia de commandos:
syms x y z
r = sqrt(x^2 + y^2 + z^2)
t = atan(y/x)
f = sin(x*y)/(x*y)
generan las expresiones simblicas r, t, y f. Con estas funciones se puede: diferenciar con la
instruccin diff, integrar con int, sustituir con subs, y otras funciones de las Herramientas
Matemticas Simblicas (SymbolicMathToolboxfunctions) para manipular tales expresiones.
Creando un archivo m
Los archivos m permiten un uso general de funciones. Suponer por ejemplo, que se desea
crear la funcin sincsin(x)/x. Para hacer esto, se crea el archivo de funcinm:
function z = sinc(x)
%SINC La functionsinc simblica
% sin(x)/x. Esta funcin
% acepta un sym como el argumento de entrada.
if isequal(x,sym(0))
z = 1;
else
z = sin(x)/x;
end
CLCULO SIMBLICO AVANZADO
Matlab realiza los clculos avanzados equivalentes a los realizados normalmente, como la
solucin de: una ecuacin no lineal, sistemas de ecuaciones no lineales, derivacin,
integracin, solucin de ecuaciones diferenciales ordinarias (EDOs), etc.
Solucin de una ecuacin no lineal.
Una ecuacin no lineal puede tener una o ms variables simblicas. Si tiene una variable, la
solucin es numrica. Si tiene ms de una variable, la solucin se obtiene para una variable
en funcin de las dems.
Se utiliza el comando solve.
Sintaxis:

h = solve(eq) ,

h = solve(eq, var)

eq puede ser el nombre de una expresin simblica o una expresin completa.


Cuando la expresin no contiene el smbolo = , se resuelve para eq = 0.
Se pueden resolver f(x) = g(x)
solve(eq) opera en funcin de la variable simblica por defecto. Para obtener la
solucin para otra variable, usar solve(eq, var)
Si la ecuacin tiene ms de una solucin, la salida h ser un vector columna
simblico, donde cada elemento representar una solucin.

Ejemplos:
1.- Resolver con clculo simblico:

e(2z) = 5

>>syms a b x y z
>> h = solve(exp(2*z) 5)
h=
* log(5)
2.- Resolver con clculo simblico:

f(x) = x2 x - 6 = 0

>> S = x^2 x 6
S=
x^2 x 6
>> k = solve(S)
k=
[-2]
[3]
3.- Resolver con clculo simblico:

cos(2y) + 3 sen(y) = 2

>>solve(cos(2 * y) + 3 * sin(y) = 2)
ans =
[1/2 * pi]
[1/6 * pi]
[5/6 * pi]
4.- Resolver con clculo simblico: f(x) = ax2 + 5bx + 20
>> T = a * x ^ 2 + 5 * b * x + 20
T=
a * x ^ 2 + 5 * b * x + 20
>>solve(T)
ans =
[1 / 2 / a * ( -5 * b + ( 25 * b ^ 2 80 * a ) ^ (1 / 2 )) ]
[1 / 2 / a * ( -5 * b - ( 25 * b ^ 2 80 * a ) ^ (1 / 2 )) ]
>> M = solve(T, a)
M=
8

-5 * (b * x + 4) / x ^2
4.- Introduciendo la funcin como cadena de caracteres, resolver con clculo simblico:
f(x) = ax2 + 5bx + 20
>>ts = solve(4 * t * h ^ 2 + 20 * t 5 * g)
ts =
5 / 4 * g / (h ^2 + 5)
NOTA: Las variables no existen como simblicas independientes.
Resolviendo para otra variable:
gs = solve(4 * t * h ^ 2 + 20 * t 5 * g, g)
gs =
4/5*t*h^2+4*t
Solucin de Sistemas de Ecuaciones no Lineales.
Se utiliza tambin el comando solve.
Si se tiene un sistema del mismo nmero de ecuaciones que de incgnitas, la solucin es
numrica. En caso contrario, la solucin es simblica.
Un sistema de ecuaciones no lineales puede tener una solucin o varias.
Sintaxis: var = solve(eq1, eq2, , eqn) ;

var = solve(eq1, eq2, eqn, var1, var2, varn)

Tambin se utiliza:
[varA, varB, varC] = solve(eq1, eq2, eq3)
Cuando se tiene arreglos como salidas.
Ejemplo: Resolver el sistema: 10x + 12y + 16t = 0 ; 5x y = 13t
>> syms x y t
>> S = 10 * x + 12 * y + 16 * t;
>> [xt yt] = solve(S, 5 * x y = 13 * t)
xt =
2*t
yt =
-3 * t
% El sistema se resuelve para x e y (primeras variables)
Ejemplo: Resolver las mismas ecuaciones, pero para y y t.
>> [tx yx] = solve(S, 5 * x y = 13 * t, y, t)
tx =
1/2 * x
yx =
-3 / 2 * x
% El sistema se resuelve para t e y (variables definidas)
Para la salida como una estructura:
AN = solve(eq1, eq2, eq3)
AN es una estructura con elementos con los nombres de las variables que dan la solucin.
9

Para ver una variable solucin: AN.nombre_var


Ejemplo: Utilizando estructuras como salidas, resolver el sistema:
10x + 12y + 16t = 0
5x y = 13t
>> syms x y t
>> S = 10*x + 12*y + 16*t
S=
16*t + 10*x + 12*y
>> AN = solve(S, '5*x - y = 13 * t')
AN =
x: [1x1 sym]
y: [1x1 sym]
>> AN.x
ans =
2*t
>> AN.y
ans =
(-3)*t
Ejemplo: Determinar los puntos de interseccin entre la circunferencia y la recta dada por las
ecuaciones:
(x - 2)2 + (y 4)2 = R2
Y = x/2 + 1
>> syms x y R
>> [xc, yc] = solve('(x - 2)^2 + (y - 4)^2 = R^2','y = x/2 + 1')
xc =
((4*R^2)/5 - 64/25)^(1/2) + 14/5
14/5 - (4/5*R^2 - 64/25)^(1/2)
yc =
((4*R^2)/5 - 64/25)^(1/2)/2 + 12/5
12/5 - ((4*R^2)/5 - 64/25)^(1/2)/2
Ejemplo: Resolver el sistema anterior, pero utilizar una estructura de salida.
>> COORD = solve('(x - 2)^2 + (y - 4)^2 = R^2','y = x/2 + 1')
COORD =
x: [2x1 sym]
y: [2x1 sym]
>> COORD.x
ans =
((4*R^2)/5 - 64/25)^(1/2) + 14/5
14/5 - (4/5*R^2 - 64/25)^(1/2)
>> COORD.y
ans =
((4*R^2)/5 - 64/25)^(1/2)/2 + 12/5
12/5 - ((4*R^2)/5 - 64/25)^(1/2)/2
10

Para trabajar con las funciones f(x) = x3 + 1y g(z) = z2 + 1 podemos hacerlo creando las
expresiones simblicas correspondientes por cualquiera de los dos mtodos:
>>clear
>>syms x, f=x^3+1, g=z^2+1
f=
x^3+1
g=
z^2+1
Una vez denidas podemos realizar con ellas las operaciones habituales: calcular su valor en
unpunto, derivarlas, integrarlas, etc.
Si en una expresin simblica queremos sustituir una variable por otra o por una constante
para calcular su valor en un punto, utilizamos el comandosubs:
Sintaxis:

subs(f, antiguas, nuevas)

Sustituye las variables antiguas por las nuevas. Si hay ms deuna variable las escribiremos
entre llaves y separada por comas.
Ejemplo, calcularf(3) yg(1)
>>subs(f,x,3),subs(g,z,1)
ans=
28
ans=
2
Notar que se escribe subs(g,z,1), en vez de subs(g,z,1), ya que al no estar declarada z
como variable simblica, al ejecutar esta ultima orden el programa nos devolvera un
mensajede error indicando que la variable z no existe.
>>subs(g,z,3)
???Undefinedfunctionor variable z.
Ejemplo: Construir f = ax2 +bx +c y sustituir x por t. Para a=2, b=1, c=0,obtener el valor def,
cuando t=2 y t=[1:4].
>>symsxa b c
>>f=a*x^2+b*x+c
f=
a*x^2+b*x+c
>>syms t
>>g=subs(f,x,t) %sustituyeen f, xpor t
g=
a*t^2+b*t+c
>>h=subs(g,{a,b,c},{2,1,0})
h=
11

2*t^2+t
>>u=subs(h,t,2)
u=
10
>>v=subs(h,t,[1:4])
v=
3 10 21 36
DERIVACIN E INTEGRACIN
Para derivar e integrar una expresin simblica f, se utilizan los comandos di e int, que
actan como se indica en el siguiente cuadro:
COMANDO

DEFINICIN

diff(f)

Deriva f respecto de la variable simblica preferente.

diff(f,u)

Deriva f respecto a la variable u.

int(f)

Calcula una primitiva de f respecto de la variable simblica


preferente.

int(f,s)

Calcula una primitiva de f respecto de la variable s.

int(f,a,b)

Calcula la integral denida de f respecto de la variable simblica


preferente.

int(f,s,a,b)

Calcula la integral denida de f respecto de la variable s.

Nota: Por defecto, la variable preferente en una expresin simblica es la letra x. Si sta no
interviene en la expresin, se toma la letra minscula ms prxima a ella segn el
orden alfabtico y que no sea ni la i ni la j. En caso de que haya dos (una anterior y
otra posterior), se considera variable preferente el carcter posterior.
DERIVACIN

diff(f) ;

diff(S, u) ;

diff(S, u, n)

n es el orden de la derivada a calcular.


Ejemplo: Determinar la derivada de la funcin f(x) = e (x4)
>> syms x y t
>> S = exp(x^4)
S=
exp(x^4)
>> diff(S)
ans =
4*x^3*exp(x^4)
Ejemplo: Determinar la derivada de la funcin f(x) = (1 4x) 3
12

>> diff((1 - 4*x)^3)


ans =
(-12)*(4*x - 1)^2
Ejemplo: Determinar la derivada de la funcin f(x) = 5y2 cos(3t)
>> R = 5 * y^2*cos(3*t)
R=
5*y^2*cos(3*t)
>> diff(R)
ans =
10*y*cos(3*t)
>> diff(R,t)
ans =
(-15)*y^2*sin(3*t)
>> diff(S,2)
ans =
12*x^2*exp(x^4) + 16*x^6*exp(x^4)
INTEGRACIN
Se pueden evaluar integrales definidas o indefinidas.
Sintaxis:

int(S) ;

int(S, var)

Ejemplos: Construir las expresiones simblicas f =ax+b y g =y2+z y calcular:


1.

fdx

2.

fda

3.

g dy
1

4.

g dz
0

Solucin:
>>syms ab x; f=a*x+b; g=y^2+z;
>>I1=int(f)
I1=
1/2*a*x^2+b*x

% practicamos los dos modos de definir expresiones

% integra respecto de la variable preferente x

13

>>I2=int(f,a)
I2=
1/2*a^2*x+b*a

% integra respecto de a

>>I3=int(g)
I3=
1/3*y^3+z*y

%integra respecto de la variable preferente y. Equivale a int(g,y).

>>I4=int(g,z,0,1)
I4=
y^2+1/2

%integra respecto de la variable z.

SOLUCIN DE ECUACIONES DIFERENCIALES ORDINARIAS (ODEs)


Se utiliza el comando:

dsolve(eq) ;

dsolve(eq, var)

eq:
1. Toma como defecto la variable independiente t.
2. Si se requiere que sea otra variable independiente, se especifica en var.
3. Para introducir el trmino diferencial, iniciar con D.
dy
+3 y=100
Ejemplo: dt
se introduce como: Dy + 3*y = 100
4. La segunda derivada se representa como D2y, la tercera como D3y, y as
sucesivamente.
2
d y
dy
+ 3 +5 y=sent , se introducira como: D2y + 3*Dy + 5*y = sin(t)
2
Ejemplo:
dt
dt
5. No se requiere definir las variables como simblicas.
6. En la solucin que ofrece Matlab, se utilizan C1, C2, C3, etc. Como constantes de
integracin.
SOLUCIN GENERAL
Ejemplo: Resolver

dy
=4 t +2 y
.
dt

>> dsolve('Dy = 4*t + 2*y')


ans =
C3*exp(2*t) - 2*t 1
Ejemplo: Resolver

d2 x
dx
+2 + x=0 .
2
dt
dt

>> dsolve('D2x + 2*Dx + x = 0')


14

ans =
C5/exp(t) + (C6*t)/exp(t)
Ejemplo: Resolver

ds
=a x 2
dt

>> dsolve('Ds = a * x^2')


ans =
a*t*x^2 + C8
Ejemplo: Resolver la ec. anterior, pero con respecto a x:

ds
=a x 2
dx

>> dsolve('Ds = a * x^2','x')


ans =
(a*x^3)/3 + C10

Ejemplo: Resolver la ec. anterior, pero con respecto a a:

ds
=a x 2
da

>> dsolve('Ds = a * x^2','a')


ans =
(a^2*x^2)/2 + C12
SOLUCIN PARTICULAR
La solucin de una ODE en forma particular, se obtiene cuando se tiene planteado el
problema de los valores iniciales o a la frontera. Una ODE de primer orden, requiere una
condicin inicial, una de 2do orden requiere 2 condiciones iniciales, y as sucesivamente.
Sintaxis para 1er orden:

dsolve(eq, cond1,var)

Sintaxis para orden superior:

dsolve(eq, cond1,cond2,,var)

Para introducir las condiciones iniciales, se escriben de la siguiente manera:


Matemticas
y(a) = A
y() = A
y(a) = A

Ejemplo: Resolver

Matlab
y(a) = A
Dy(a)
D2y(a) = A

dy
+ 4 y=60
, con una condicin inicial y(0) = 5.
dt
15

>> dsolve('Dy + 4 * y = 60','y(0) = 5')


ans =
15 - 10/exp(4*t)
Ejemplo: Resolver

d2 y
dy
'
2 +2 y=0, y ( 0 )=1, y ( 0 ) =0
2
dt
dt

>> dsolve('D2y - 2*Dy + 2 * y = 0','y(0) = 1','Dy(0) = 0')


ans =
exp(t)*cos(t) - exp(t)*sin(t)
GRFICOS PARA EXPRESIONES SIMBLICAS
Se utiliza el comando ezplot.
Sintaxis: ezplot(S)

ezplot(S, [min, max])

ezplot(S, [xmin, xmax, ymin, ymax])

Si la expresin a graficar tiene una sola variable simblica, se graficar S(var) vs var.
Si tiene dos variables simblicas, graficar una contra la otra.
Si se tiene una sola variable simblica, el grfico se realizar por defecto en el intervalo
-2var2.
Para representar y frente a x, donde x = x(t) e y = y(t), se utilizan las siguientes formas:
ezplot(S1, S2)o

ezplot(S1, S2, [min, max])

S1 y S2 tienen la misma variable independiente. Se grafican S2(var) contra S1(var) con


dominio: 0 < var < 2
Ejemplo: Realizar el grfico de la funcin simblica:

( 3 x+2 ) / ( 4 x1 ) .

Ejemplo: Realizar el grfico de la funcin simblica:

4 x 218 x +4 y 2+12 y11=0

Ejemplo: Realizar el grfico de la funcin simblica:

x=cos ( 2 t ) , y=sen( 4 t) .

16