Herramientas computacionales para la
matemática
MATLAB: Álgebra Simbólica
Verónica Borja Macías
Junio 2012
1
Matlab
Introducción
2
 MATLAB tiene algunos tipos diferentes de datos, incluidos datos
numéricos de precisión doble y sencilla, datos carácter, datos
lógicos y datos simbólicos, los cuales se almacenan en una
variedad de distintos arreglos.
 La capacidad simbólica de MATLAB se basa en el software
Maple, producido por Waterloo Maple. El motor Maple es parte
de la caja de herramientas simbólica.
 La caja de herramientas simbólicas de MATLAB le permite
manipular expresiones simbólicas para simplificarlas, resolverlas
simbólicamente y evaluarlas numéricamente.
 También le permite obtener derivadas, integrar y realizar
manipulaciones algebraicas lineales, transformadas de LaPlace y
transformadas de Fourier entre otras cosas.
Matlab
Álgebra simbólica
3
 La matemática simbólica se usa regularmente en las clases de
matemáticas, ingeniería y ciencias. Con frecuencia es
preferible manipular las ecuaciones simbólicamente antes de
sustituir valores para las variables. Por ejemplo, considere la
ecuación
 Cuando la observa por primera vez, parece “complicada”. Sin
embargo, si expande se hace evidente que puede simplificar
2 2
2
2( 3)
6 9
x
y
x x
+
=
+ +
2 2 2
2 2
2( 3) 2( 6 9)
2
6 9 6 9
x x x
y
x x x x
+ + +
= = =
+ + + +
Matlab
Álgebra simbólica
4
 Al realizar esta simplificación es posible perder algo de
información.
 Las capacidades simbólicas de MATLAB le permiten realizar
esta simplificación o manipular el numerador y denominador
por separado.
2 2
2
2(( 3) 3) 0
lo cual está indefinido
( 3) 6( 3) 9 0
y
− +
=
− + − +
para 3 tenemos que:
x = −
Matlab
Creación de variables simbólicas
5
 Las variables simbólicas simples se pueden crear en dos
formas. Por ejemplo, para crear la variable simbólica x,
escriba o
x=sym('x') o syms x
 Ambas técnicas hacen al carácter 'x' igual a la variable
simbólica x.
 Se pueden crear variables más complicadas usando las
variables simbólicas existentes, como en la expresión
y = 2*(x+3)^2/(x^2+6*x+9)
Matlab
Variables simbólicas
6
 Podemos declarar varias variables en un solo comando:
syms a b
 Es posible manipular los objetos simbólicos como es habitual
en matemáticas:
>> a+ a + b
ans =
2*a + b
 También es posible crear variables simbólicas con valores de
más de un carcter:
a = sym('alpha')
 Nota: En el Symbolic Math Toolbox, pi es una palabra
reservada.
Matlab
Expresiones simbólicas
7
 Supongamos que deseamos usar una variable
simbólica para representar la razón dorada:
>> rho = sym('(1 + sqrt(5))/2');
 Ahora podemos realizar las operaciones que deseemos con
rho.
>> f = rho^2 - rho – 1
f =
(5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2
 Veamos como estudiar la función cuadrática f = ax2 + bx + c.
 Una primera opción sería definirla como:
>> f = sym('a*x^2 + b*x + c');
 Pero así no es posible realizar sustituciones, lo adecuado es:
>> syms a b c x
>> f = a*x^2 + b*x + c;
1 5
2
ρ
+
=
Matlab
Matrices de variables simbólicas
8
 La creación y manipulación de matrices de variables
simbólicas es análoga a la de matrices numéricas, p/e:
Ejemplo:
>> syms a b c;
>> A = [a b c; c a b; b c a]
A =
[ a, b, c]
[ c, a, b]
[ b, c, a]
sum(A(1,:))
ans =
a + b + c
Matlab
Encontrar variables simbólicas en expresiones y matrices
9
 Para determinar las variables simbólicas que estan en una
expresión se emplea el comando symvar:
Ejemplo:
>> syms a b n t x z;
>> f = x^n;
>> g = sin(a*t + b);
>> symvar(f)
ans =
[ n, x]
>> symvar(g)
ans =
[ a, b, t]
Matlab
Números simbólicos
10
 Es posible convertir un número en un objeto simbólico, p/e:
Ejemplo:
>> a1 = sym('2')
>> a2 = sym(2)
>> sqrt(a1)
ans =
1.4142
a = sqrt(a2)
a =
2^(1/2)
double(a)
ans =
1.4142
Matlab
Números simbólicos
11
Ejemplo:
>> sym(2)/sym(5)
ans =
2/5
>> sym(2/5)
ans =
2/5
>> 2/5 + 1/3
ans =
0.7333
>> sym(2/5) + sym(1/3)
ans =
11/15
Matlab
Impresión de expresiones simbólicas
12
 Las función pretty. Imprime en un formato agradable las expresiones:
Ejemplo:
>> syms x
>> f = x^3 - 6*x^2 + 11*x - 6;
>> g = (x - 1)*(x - 2)*(x - 3);
>> h = -6 + (11 + (-6 + x)*x)*x;
>> pretty(f)
3 2
x - 6 x + 11 x - 6
>> pretty(g);
(x - 1) (x - 2) (x - 3)
>> pretty(h);
x (x (x - 6) + 11) – 6
Matlab
Simplificar de expresiones simbólicas
13
 El Symbolic Math Toolbox poseé un conjunto de funciones
para simplificar expresiones simbólicas. Veamos la función
simplify. Por ejemplo previamente ya habíamos realizado
operaciones con la expresión rho:
Ejemplo:
>> rho = sym('(1 + sqrt(5))/2');
>> f = rho^2 - rho – 1
f =
(5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2
>> simplify(f)
ans =
0
Matlab
Simplificar de expresiones simbólicas
14
 Veamos las funciones expand, factor y horner.
Ejemplo:
>> syms x;
>> f=(x^2- 1)*(x^4 + x^3 + x^2 + x + 1)*(x^4 - x^3 + x^2 - x + 1);
>> expand(f)
ans =
x^10 – 1
>> g = x^3 + 6*x^2 + 11*x + 6;
>> factor(g)
ans =
(x + 3)*(x + 2)*(x + 1)
>> h = x^5 + x^4 + x^3 + x^2 + x;
>> horner(h)
ans =
x*(x*(x*(x*(x + 1) + 1) + 1) + 1)
Matlab
Simplificar de expresiones simbólicas
15
 Veamos la función collect.
Ejemplo:
>> syms x y;
>> R1 = collect((exp(x)+x)*(x+2))
R1 =
x^2 + (exp(x) + 2)*x + 2*exp(x)
>> R2 = collect((x+y)*(x^2+y^2+1), y)
R2 =
y^3 + x*y^2 + (x^2 + 1)*y + x*(x^2 + 1)
>> R3 = collect([(x+1)*(y+1),x+y])
R3 =
[ y + x*(y + 1) + 1, x + y]
Matlab
Simplificar de expresiones simbólicas
16
 La función simple trata de reescribir la expresión empleando
la menor cantidad de caracteres.
Ejemplo:
>> syms x;
>> f = cos(x)^2 + sin(x)^2;
>> f = simple(f)
f =
1
>> g = cos(3*acos(x));
>> g = simple(g)
g =
4*x^3 - 3*x
syms x; f = cos(x) + i*sin(x); simple(f)

Algebra simbólica.pdf

  • 1.
    Herramientas computacionales parala matemática MATLAB: Álgebra Simbólica Verónica Borja Macías Junio 2012 1
  • 2.
    Matlab Introducción 2  MATLAB tienealgunos tipos diferentes de datos, incluidos datos numéricos de precisión doble y sencilla, datos carácter, datos lógicos y datos simbólicos, los cuales se almacenan en una variedad de distintos arreglos.  La capacidad simbólica de MATLAB se basa en el software Maple, producido por Waterloo Maple. El motor Maple es parte de la caja de herramientas simbólica.  La caja de herramientas simbólicas de MATLAB le permite manipular expresiones simbólicas para simplificarlas, resolverlas simbólicamente y evaluarlas numéricamente.  También le permite obtener derivadas, integrar y realizar manipulaciones algebraicas lineales, transformadas de LaPlace y transformadas de Fourier entre otras cosas.
  • 3.
    Matlab Álgebra simbólica 3  Lamatemática simbólica se usa regularmente en las clases de matemáticas, ingeniería y ciencias. Con frecuencia es preferible manipular las ecuaciones simbólicamente antes de sustituir valores para las variables. Por ejemplo, considere la ecuación  Cuando la observa por primera vez, parece “complicada”. Sin embargo, si expande se hace evidente que puede simplificar 2 2 2 2( 3) 6 9 x y x x + = + + 2 2 2 2 2 2( 3) 2( 6 9) 2 6 9 6 9 x x x y x x x x + + + = = = + + + +
  • 4.
    Matlab Álgebra simbólica 4  Alrealizar esta simplificación es posible perder algo de información.  Las capacidades simbólicas de MATLAB le permiten realizar esta simplificación o manipular el numerador y denominador por separado. 2 2 2 2(( 3) 3) 0 lo cual está indefinido ( 3) 6( 3) 9 0 y − + = − + − + para 3 tenemos que: x = −
  • 5.
    Matlab Creación de variablessimbólicas 5  Las variables simbólicas simples se pueden crear en dos formas. Por ejemplo, para crear la variable simbólica x, escriba o x=sym('x') o syms x  Ambas técnicas hacen al carácter 'x' igual a la variable simbólica x.  Se pueden crear variables más complicadas usando las variables simbólicas existentes, como en la expresión y = 2*(x+3)^2/(x^2+6*x+9)
  • 6.
    Matlab Variables simbólicas 6  Podemosdeclarar varias variables en un solo comando: syms a b  Es posible manipular los objetos simbólicos como es habitual en matemáticas: >> a+ a + b ans = 2*a + b  También es posible crear variables simbólicas con valores de más de un carcter: a = sym('alpha')  Nota: En el Symbolic Math Toolbox, pi es una palabra reservada.
  • 7.
    Matlab Expresiones simbólicas 7  Supongamosque deseamos usar una variable simbólica para representar la razón dorada: >> rho = sym('(1 + sqrt(5))/2');  Ahora podemos realizar las operaciones que deseemos con rho. >> f = rho^2 - rho – 1 f = (5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2  Veamos como estudiar la función cuadrática f = ax2 + bx + c.  Una primera opción sería definirla como: >> f = sym('a*x^2 + b*x + c');  Pero así no es posible realizar sustituciones, lo adecuado es: >> syms a b c x >> f = a*x^2 + b*x + c; 1 5 2 ρ + =
  • 8.
    Matlab Matrices de variablessimbólicas 8  La creación y manipulación de matrices de variables simbólicas es análoga a la de matrices numéricas, p/e: Ejemplo: >> syms a b c; >> A = [a b c; c a b; b c a] A = [ a, b, c] [ c, a, b] [ b, c, a] sum(A(1,:)) ans = a + b + c
  • 9.
    Matlab Encontrar variables simbólicasen expresiones y matrices 9  Para determinar las variables simbólicas que estan en una expresión se emplea el comando symvar: Ejemplo: >> syms a b n t x z; >> f = x^n; >> g = sin(a*t + b); >> symvar(f) ans = [ n, x] >> symvar(g) ans = [ a, b, t]
  • 10.
    Matlab Números simbólicos 10  Esposible convertir un número en un objeto simbólico, p/e: Ejemplo: >> a1 = sym('2') >> a2 = sym(2) >> sqrt(a1) ans = 1.4142 a = sqrt(a2) a = 2^(1/2) double(a) ans = 1.4142
  • 11.
    Matlab Números simbólicos 11 Ejemplo: >> sym(2)/sym(5) ans= 2/5 >> sym(2/5) ans = 2/5 >> 2/5 + 1/3 ans = 0.7333 >> sym(2/5) + sym(1/3) ans = 11/15
  • 12.
    Matlab Impresión de expresionessimbólicas 12  Las función pretty. Imprime en un formato agradable las expresiones: Ejemplo: >> syms x >> f = x^3 - 6*x^2 + 11*x - 6; >> g = (x - 1)*(x - 2)*(x - 3); >> h = -6 + (11 + (-6 + x)*x)*x; >> pretty(f) 3 2 x - 6 x + 11 x - 6 >> pretty(g); (x - 1) (x - 2) (x - 3) >> pretty(h); x (x (x - 6) + 11) – 6
  • 13.
    Matlab Simplificar de expresionessimbólicas 13  El Symbolic Math Toolbox poseé un conjunto de funciones para simplificar expresiones simbólicas. Veamos la función simplify. Por ejemplo previamente ya habíamos realizado operaciones con la expresión rho: Ejemplo: >> rho = sym('(1 + sqrt(5))/2'); >> f = rho^2 - rho – 1 f = (5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2 >> simplify(f) ans = 0
  • 14.
    Matlab Simplificar de expresionessimbólicas 14  Veamos las funciones expand, factor y horner. Ejemplo: >> syms x; >> f=(x^2- 1)*(x^4 + x^3 + x^2 + x + 1)*(x^4 - x^3 + x^2 - x + 1); >> expand(f) ans = x^10 – 1 >> g = x^3 + 6*x^2 + 11*x + 6; >> factor(g) ans = (x + 3)*(x + 2)*(x + 1) >> h = x^5 + x^4 + x^3 + x^2 + x; >> horner(h) ans = x*(x*(x*(x*(x + 1) + 1) + 1) + 1)
  • 15.
    Matlab Simplificar de expresionessimbólicas 15  Veamos la función collect. Ejemplo: >> syms x y; >> R1 = collect((exp(x)+x)*(x+2)) R1 = x^2 + (exp(x) + 2)*x + 2*exp(x) >> R2 = collect((x+y)*(x^2+y^2+1), y) R2 = y^3 + x*y^2 + (x^2 + 1)*y + x*(x^2 + 1) >> R3 = collect([(x+1)*(y+1),x+y]) R3 = [ y + x*(y + 1) + 1, x + y]
  • 16.
    Matlab Simplificar de expresionessimbólicas 16  La función simple trata de reescribir la expresión empleando la menor cantidad de caracteres. Ejemplo: >> syms x; >> f = cos(x)^2 + sin(x)^2; >> f = simple(f) f = 1 >> g = cos(3*acos(x)); >> g = simple(g) g = 4*x^3 - 3*x syms x; f = cos(x) + i*sin(x); simple(f)