clase 03-matlab
TRANSCRIPT
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
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
>> clear
>> syms m b x >> y = m*x + b;
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
2
2
n
n
y
dy
dt
d y
dt
d y
dt
• y
• Dy
• D2y
• Dny
• >> 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])
2 12sin 4dy
y tdt
(0) 10y
Ejemplo. Resolver la ED usando
Matlab
• >> 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])
2
23 2 24
d y dyy
dt dt
(0) 10y '(0) 0y
Ejemplo. Resolver la ED usando
Matlab
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)
•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)
La trasformada inversa de Laplace
simbólica con Matlab
2 2( ) 3 sin5 4 cos5t tv t e t e t
>> 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. Determine la trasformada
de Laplace de v(t) usando Matlab
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)
>> 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)
2
100( 3)( )
( 1)( 2)( 2 5)
sF s
s s s s
Ejemplo. Determine la trasformada Inversa
de Laplace de F(s) usando Matlab
>> 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. Continuación…
2
10 48( )
2 ( 2)( 16)Y s
s s s
>> syms t s
>> Y = 10/(s+2) + 48/((s+2)*(s^2+16))
Y =10/(s+2)+48/(s+2)/(s^2+16)
Ejemplo. Determine la trasformada
Inversa de Laplace de F(s) usando
Matlab
>> 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)
Ejemplo. Continuación…
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
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.