Algebra simbólica I

Anuncio
Herramientas computacionales para la
matemática
MATLAB: Álgebra Simbólica
Verónica Borja Macías
Junio 2012
1
Matlab
Introducción
 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.
2
Matlab
Álgebra simbólica
 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
2( x 2 + 3) 2
y= 2
x + 6x + 9
 Cuando la observa por primera vez, parece “complicada”. Sin
embargo, si expande se hace evidente que puede simplificar
2( x 2 + 3) 2 2( x 2 + 6 x + 9)
=
y =
= 2
2
2
x + 6x + 9
x + 6x + 9
3
Matlab
Álgebra simbólica
 Al realizar esta simplificación es posible perder algo de
información.
para x = −3 tenemos que:
y
2((−3) 2 + 3) 2
0
=
lo cual está indefinido
2
(−3) + 6(−3) + 9 0
 Las capacidades simbólicas de MATLAB le permiten realizar
esta simplificación o manipular el numerador y denominador
por separado.
4
Matlab
Creación de variables simbólicas
 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)
5
Matlab
Variables simbólicas
 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.
6
Matlab
Expresiones simbólicas
 Supongamos que deseamos usar una variable
1+ 5
ρ=
simbólica para representar la razón dorada:
2
>> 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;
7
Matlab
Matrices de variables simbólicas
 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
8
Matlab
Encontrar variables simbólicas en expresiones y matrices
 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]
9
Matlab
Números simbólicos
 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
10
Matlab
Números simbólicos
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
11
Matlab
Impresión de expresiones simbólicas
 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
12
Matlab
Simplificar de expresiones simbólicas
 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
13
Matlab
Simplificar de expresiones simbólicas
 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)
14
Matlab
Simplificar de expresiones simbólicas
 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]
15
Matlab
syms x; f = cos(x) + i*sin(x); simple(f)
Simplificar de expresiones simbólicas
 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
16
Descargar