Está en la página 1de 18

Catalina Gonzlez Castao

Neiva, 17 de Marzo de 2015

DECLARACION DE VARIABLES SIMBOLICAS


Las variables simblicas simples se pueden
crear en dos formas. Por ejemplo, para
crear la variable simblica x, se puede
describir de la siguiente forma:
x=sym('x')
syms x
Ambas tcnicas hacen al carcter 'x' igual a
la variable simblica x. Se pueden crear
variables ms complicadas usando las
variables simblicas existentes, como en la
expresin y = 2*(x+3)^2/(x^2+6*x+9)
2

Podemos declarar varias variables en un solo


comando: syms a b Es posible manipular los
objetos simblicos como es habitual en
matemticas:
>> a+ a + b
ans = 2*a + b
Tambin es posible crear variables
simblicas con valores de ms de un carcter:
a = sym('alpha')

Supongamos que deseamos usar una variable


simblica para representar la razn 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
la funcin cuadrtica
f = ax2 + bx + c.
Una primera opcin sera 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;

La creacin y manipulacin de matrices de


variables simblicas es anloga a la de
matrices numricas,
>> 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

>> 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]

Es posible convertir un nmero en un objeto


simblico
>> a1 =2
>> a2 = sym(2)
>> sqrt(a1)
ans = 1.4142
a = sqrt(a2)
a = 2^(1/2)
double(a)
ans = 1.4142

>> 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

Las funcin pretty. Imprime en un formato


agradable las expresiones:
>> 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)
>> pretty(g);
(x - 1) (x - 2) (x - 3)
>> pretty(h);
x (x (x - 6) + 11) 6

El Symbolic Math Toolbox pose un conjunto de


funciones para simplificar expresiones simblicas.
Veamos la funcin simplify. Por ejemplo
previamente ya habamos realizado operaciones
con la expresin rho:
>> 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

Las funciones expand, factor y horner


>> 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)

la funcin collect.
>> 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)

12

La funcin simple trata de reescribir la


expresin empleando la menor cantidad de
caracteres
>> 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

La funcin subs, reemplaza variables en una ecuacin


por otras variables o nmeros.
>>f=5.1*x^3+a*x^2+b*x+c
f=
51/10*x^3+a*x^2+b*x+c
>> subs(f,a,c)
ans =
51/10*x^3+c*x^2+b*x+c
>> subs(f,a,1)
51/10*x^3+x^2+b*x+c
>>subs(f,{a,b},{c,1})
ans =
51/10*x^3+c*x^2+x+c

La funcin diff es la sustraccin en


vectores y arreglos, y es la derivada
en expresiones.
f =
51/10*x^3+a*x^2+b*x+c
>> diff(f),diff(f,x),diff(f,a)
ans =

153/10*x^2+2*a*x+b
ans =
153/10*x^2+2*a*x+b

>> diff(f,2), diff(f,a,2)


ans =
153/5*x+2*a
ans =
0

ans =
x^2

15

La funcin int, realiza la integral simblica de la


expresin.
f = 51/10*x^3+a*x^2+b*x+c
int(f),int(f,a)
ans =
51/40*x^4+1/3*a*x^3+1/2*b*x^2+c*x
ans =
51/10*a*x^3+1/2*a^2*x^2+b*x*a+a*c

16

Cuando se tiene funciones de transferencia


complicadas, se puede hacer distributiva en tres
pasos.
syms s; G=(54*(s+27)*(s^3+52*s^2+37*s+73))...
/(s*(s^4+872*s^3+437*s^2+89*s+65)*(s^2+79*s+
36));
[numg,deng]=numden(G); numg=sym2poly(numg);
deng=sym2poly(deng);
'Funcin transferencia reordenada'
Gtf=tf(numg,deng)
'Funcin de transferencia en forma de ceros y polos'
Gzpk=zpk(Gtf)

17

Se pueden hacer grficas bidimensionales con


objetos simblicos, se utiliza la instruccin ezplot(f,
[xmin xmax]), si no se colocan los valores [xmin
xmax], MatLab grafica automticamente entre -2*pi y
2*pi.
syms x;
hold on;
ezplot(abs(x), [-3 3]);
ezplot(x^2, [-3 3])
figure
subplot(2,1,1)
ezplot(cos(x))
subplot(2,1,2)
ezplot(x^3)
18

También podría gustarte