7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 1/11
Introducción a la
Programación en Matlab
16-20 febrero de 2015 Escuela de Doctorado de
Ciencias, Tecnologías e Ingenierías
Manuel Díez Minguito [email protected]
Agustín Millares Valenzuela [email protected]
Asunción Baquerizo Azofra [email protected]
IISTA-UGR
7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 2/11
Introducción a la programación en lenguaje simbólico
Contenidos
1. Definición de variables simbólicas
2. Cómo considera Matlab las variables simbólicas en una
expresión: findsym
3. Simplificación de expresiones4. Derivación
5. Integración
6. Resolución de ecuaciones algebraicas
7. Resolución de ecuaciones diferenciales ordinarias
7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 3/11
Variables simbólicas
▪ Variables numéricas
▪ Variables que contienen cadenas de caracteres
▪ Variables y expresiones simbólicas
deben declararse algunas variables!!
7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 4/11
Definición de variables simból icas
▪ Declaración de variables simbólicas
sym(‘x’) | syms x y t a
No es necesario declarar las variables que se obtienen con expresiones
que contienen variables simbólicas
syms x y t a
f = sin(x-y)*exp(- a*t); % No es necesario definir f!!!!
▪ Para precisar algo más….
sym(‘x’, ‘real’) | syms x y t real
sym(‘t’, ‘positive’) | syms a w positive
▪ Puede definirse una variable genérica que depende de otras:
f = sym(‘f(x,y)');
▪ Para convertir un número real en simbólico:
pi = sym(pi) | r = sym(1/3)
7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 5/11
Función findsym
a b c d ……. r s t u v w x y z
7 6 5 3 1 2 4
▪ Cómo considera las variables simbólicas de una expresión ( derivac., integrac.,…)
findsym(f,n): lista de variables simbólicas en f en orden de ‘proximidad’ a ‘x’:
a b c d ……. r s t u v w x y z
7 6 5 3 1 2 4
a b c d ……. r s t u v w x y z
7 6 5 3 1 2 4
a b c d ……. r s t u v w x y z
7 6 5 3 1 2 4
a b c d ……. r s t u v w x y z
7 6 5 3 1 2 4
7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 6/11
Simplificación de expresiones
▪ Simplificación de expresiones
simple: busca la expresión más simple
simplify : simplifica utilizando unas reglas determinadas (las de Maple)
factor : descompone la expresión en producto de otras más simples
syms x
f = (1+x)*log(x)/(1-x^2)
f = simple(f)
syms x
g = (1-sin(x)^2)*tan(x)
simplify(g)
syms x y
h = x^2-y^2
factor(h)
▪
Función pretty: representa de forma ‘bonita’ las expresiones
syms x
f = (sqrt(x^2-y^2)/log(x-1))^(x-1/y)
pretty(f)
7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 7/11
Derivación
▪ Derivación de una expresión simbólica
diff(f,x) | diff(f) | diff(f,2) | diff(f,3) | diff(f,x,3)
findsym(f,1)
syms x t a
f= sin(x)*exp(-a*t)
df_dx = diff(f,x)
syms x t a
f= sin(x)*exp(-a*t)
df_dx = diff(f)
syms x t a
f= sin(x)*exp(-a*t)
df_da = diff(f,a)
syms x t a
f= sin(x)*exp(-a*t)
d2f_dx2 = diff(f,x,2)
syms x t a
f= sin(x)*exp(-a*t)
d2f_dx2 = diff(f,2)
syms x t a
f= sin(x)*exp(-a*t)
df_da = diff(f,a,2)
7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 8/11
Integración
▪ Integración de una expresión simbólica
int(f,x) | int(f,x,a,b)
int(f) | int(f,a,b)
syms x a
f= sin(x)*exp(-a*x)
I_dx= int(f,x)
syms x a
f= sin(x)*exp(-a*x)
I_dx = int(f)
syms x a
f= sin(x)*exp(-a*x)
I_da= diff(f,a)
syms x
f= exp(-x^2)
I = int(f,x,a,b)
syms x
f= exp(-x^2)
I = int(f,x,a,2)
syms x
f= exp(-x^2)
I = int(f,x,0,Inf)
7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 9/11
Resolución de ecuaciones algebraicas
▪ Resolución de una o varias ecuaciones algebraicas: solve
syms x
f = a3*x^3+a2*x^2+a1*x+a0
xs = solve(f)
syms x y a
f = x^2*y^2;
g =x+y-a;
[x,y] = solve(f,g)
syms x
f = a3*x^3+a2*x^2+a1*x+a0
a3s = solve(f,a3)
7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 10/11
Resolución de ecuaciones diferenciales ordinarias
▪ Resolución de una o varias ecuaciones diferenciales ordinarias: dsolve
f = dsolve('D2y-5*y=0’) usa t como variable independiente
f = dsolve('D2y-5*y=0’,’x’)
f = dsolve('D2y-5*y=0','x')
f = dsolve('D2y-5*y=0','y(0)=0','x')
syms a
f = dsolve('D2y-y=0','y(0)=a','Dy(0) = 0','x'); simplify(f)
[x,y] = dsolve('Dy = y+x','Dx = y-x')
[x,y] = dsolve('Dy = y+x','Dx = y-x', 's')
[x,y] = dsolve('Dy = y+x','Dx = y-x','x(0)=0','y(0)=1', 's‘)
7/17/2019 simbolico_v1
http://slidepdf.com/reader/full/simbolicov1 11/11
Transformada de Fourier/ Fórmula de inversión
syms t w0 real
f = sin(w0*t);
F = fourier(f);
1
2
iwx
f(x) F(w)e dwπ = ∫
f ( x )syms t w0
f = sin(w0*t);
F = fourier(f);
0 f (t) sin(w t)= 2
t f (t) exp
a
= −
▪Transformada de Fourier
▪ Fórmula de inversión
F(w)
iwx
F ( w ) f ( x )e dx
−=
∫
2
4
(aw) F(w) a expπ
= −
syms w real; syms a positive; pi = sym(pi)
F = a*sqrt(pi)*exp(-(a^2*w^2)/4);
f = ifourier(F)