You are on page 1of 35

Matlab: Symbolic Math Toolbox

Dr. Luis Sánchez


Symbolic Math Toolbox
Permite:
• Calculus – integration, differentiation, Taylor series
expansion, …
• Linear Algebra – inverses, determinants, eigenvalues, …
• Simplification – algebraic and trigonometric expressions
• Equation Solutions – algebraic and differential equations
• Transforms – Fourier, Laplace, Z transforms and inverse
transforms, …
Symbolic
Use sym to create a symbolic number, and double
to convert to a normal number.

>> sqrt(2)
ans = 1.4142

>> var = sqrt(sym(2))


var = 2^(1/2)

>> double(var)
ans = 1.4142

>> sym(2)/sym(5) + sym(1)/sym(3)


ans = 11/15
Symbolic variables
Use syms to define symbolic variables. (Or use sym to create
an abbreviated symbol name.)

>> syms m n b c x
>> th = sym('theta')
>> sin(th)
ans = sin(theta)
>> sin(th)^2 + cos(th)^2
ans = cos(theta)^2 + sin(theta)^2
>> y = m*x + b
y = b + m*x
Expresiones simbólicas
The subs function substitutes values or expressions for
variables in a symbolic expression.

>> clear
>> syms m x b
>> y = m*x + b → y = b + m*x
>> subs(y,x,3) → ans = b + 3*m
>> subs(y, [m b], [2 3]) → ans = 2*x + 3
>> subs(y, [b m x], [3 2 4])→ ans = 11

The symbolic expression itself is unchanged.

>> y → y = b + m*x
Diferenciación
Use diff to do symbolic differentiation.

>> clear
>> syms m x b th n y

>> y = m*x + b;
>> diff(y, x) → ans = m
>> diff(y, b) → ans = 1

>> p = sin(th)^n → p = sin(th)^n


>> diff(p, th) → ans = n*cos(th)*sin(th)^(n
- 1)
Integración
>> clear
>> syms m b x >> y = m*x + b;
Indefinite integrals
>> int(y, x) → ans = (m*x^2)/2 +
b*x
>> int(y, b) → ans = (b + m*x)^2/2
>> int(1/(1+x^2)) → ans = atan(x)

Definite integrals

>> int(y,x,2,5) → ans = 3*b +


(21*m)/2
>> int(1/(1+x^2),x,0,1) → ans = pi/4
Graficando expresiones simbólicas

The ezplot function will plot symbolic expressions.

>> clear; syms x y


>> ezplot( 1 / (5 + 4*cos(x)) );
>> hold on; axis equal
>> g = x^2 + y^2 - 3;
>> ezplot(g);
Solución de Ecuaciones
diferenciales con Matlab: dsolve
y • y

dy
• Dy
dt
2
d y
2 • D2y
dt
n
d y
n
dt • Dny
Ejemplo. Resolver la ED usando
Matlab
dy
 2 y  12sin 4t y (0)  10
dt

• >> y = dsolve('Dy + 2*y = 12*sin(4*t)',


'y(0)=10')
• y=
• -12/5*cos(4*t)+6/5*sin(4*t)+62/5*exp(-2*t)

• >> ezplot(y, [0 8])


• >> axis([0 8 -3 10])
Ejemplo. Resolver la ED usando
Matlab 2
d y dy
2
 3  2 y  24
dt dt
y (0)  10 y '(0)  0

• >> y = dsolve('D2y + 3*Dy + 2*y = 24',


'y(0)=10', 'Dy(0)=0')
• y=
• 12+2*exp(-2*t)-4*exp(-t)

• >> ezplot(y, [0 6])


La trasformada de Laplace
simbólica con Matlab
Establezca s y t como variables
simbólicas.
>> syms t s
• La trasformada de laplace de una
función f(t) se obtiene como:
>> F = laplace(f)
• Algunas simplificaciones utiles son:
>> pretty(F)
>> simplify(F)
La trasformada inversa de Laplace
simbólica con Matlab
•Establish t and s as symbolic variables.

>> syms t s

•The Laplace function F is then formed and


the inverse Laplace transform command is:
>> f = ilaplace(F)
Ejemplo. Determine la trasformada
de Laplace de v(t) usando Matlab
2t 2t
v(t )  3e sin 5t  4e cos5t
>> syms t s
>> v = 3*exp(-2*t)*sin(5*t)
+ 4*exp(-2*t)*cos(5*t)
v=
3*exp(-2*t)*sin(5*t)+4*exp(-2*t)*cos(5*t)
Ejemplo. Continuación…
>> V = laplace(v)
V =15/((s+2)^2+25)+4*(s+2)/((s+2)^2+25)

>> V=simplify(V)
V = (23+4*s)/(s^2+4*s+29)
Ejemplo. Determine la trasformada Inversa
de Laplace de F(s) usando Matlab

100( s  3)
F (s) 
( s  1)( s  2)( s  2s  5)
2

>> syms t s

>> F=100*(s+3)/((s+1)*(s+2)*(s^2+2*s+5))
F=
(100*s+300)/(s+1)/(s+2)/(s^2+2*s+5)
Ejemplo. Continuación…
>> f = ilaplace(F)

f = 50*exp(-t)-20*exp(-2*t)-30*exp(-t)*cos(2*t)-
10*exp(-t)*sin(2*t)

>> pretty(f)
50 exp(-t) - 20 exp(-2 t) - 30 exp(-t) cos(2 t) -
10 exp(-t) sin(2 t)
Ejemplo. Determine la trasformada
Inversa de Laplace de F(s) usando
Matlab
10 48
Y ( s)  
s  2 ( s  2)( s  16)
2

>> syms t s
>> Y = 10/(s+2) + 48/((s+2)*(s^2+16))
Y =10/(s+2)+48/(s+2)/(s^2+16)
Ejemplo. Continuación…
>> y = ilaplace(Y)

y = 62/5*exp(-2*t)-
12/5*cos(16^(1/2)*t)+3/10*16^(1/2)*sin(16^(1/
2)*t)

>> y=simplify(y)
y = 62/5*exp(-2*t)-12/5*cos(4*t)+6/5*sin(4*t)
Diversos comandos de Matlab para aplicarlos
en diferentes campos de la transformada de
Laplace
El comando roots determina las raíces de polinomios de
grado n
Ejemplo
El comando poly obtiene el polinomio de las raíces dadas

El comando conv lleva a cabo el producto de 2 funciones


representadas en el dominio s
El comando printsys representa como función racional en s a la relación
de polinomios numerador/denominador

El comando pzmap efectúa la representación gráfica de polos y ceros


en el plano s de una función racional previamente definida.
El comando residue descompone en fracciones parciales a
G(s).
Ejemplo
Find the partial fraction expansion of the following ratio of
polynomials F(s) using residue:

2𝑠 3 + 𝑠 2
𝐹 𝑠 = 3
𝑠 +𝑠+1 r=
0.5354 + 1.0390i
0.5354 - 1.0390i
>> b = [2 1 0 0]; -0.0708 + 0.0000i
>> a = [1 0 1 1]; p=
>> [r,p,k] = residue(b,a) 0.3412 + 1.1615i
0.3412 - 1.1615i
-0.6823 + 0.0000i

k= 2

This represents the partial fraction expansion:


Conversión de fracciones parciales a función racional
Ejemplo
Teoremas de valor inicial y final
Ejemplo
Ejemplo
Funciones de Trasferencia en Matlab
Funciones de Trasferencia en Matlab
Ejemplos
Escribir en Matlab las siguientes funciones de trasferencia:
Conversión de una función de trasferencia a
formato ganancia-polo-cero y viceversa
Ejemplo
Dada la función de trasferencia G(s), expresarla en formato
ganancia-polo-cero.

You might also like