Vous êtes sur la page 1sur 11

Introduccin a la

Programacin en Matlab
Manuel Dez Minguito mdiezm@ugr.es
Agustn Millares Valenzuela mivalag@ugr.es
Asuncin Baquerizo Azofra abaqueri@ugr.es
IISTA-UGR

16-20 febrero de 2015

Escuela de Doctorado de
Ciencias, Tecnologas e Ingenieras

Introduccin a la programacin en lenguaje simblico

Contenidos
1. Definicin de variables simblicas
2. Cmo considera Matlab las variables simblicas en una
expresin: findsym
3. Simplificacin de expresiones
4. Derivacin
5. Integracin
6. Resolucin de ecuaciones algebraicas
7. Resolucin de ecuaciones diferenciales ordinarias

Variables simblicas

Variables numricas
Variables que contienen cadenas de caracteres
Variables y expresiones simblicas
deben declararse algunas variables!!

Definicin de variables simblicas


Declaracin de variables simblicas
sym(x) | syms x y t a
No es necesario declarar las variables que se obtienen con expresiones
que contienen variables simblicas
syms x y t a
f = sin(x-y)*exp(- a*t); % No es necesario definir f!!!!
Para precisar algo ms.
sym(x, real)
| syms x y t real
sym(t, positive) | syms a w positive
Puede definirse una variable genrica que depende de otras:
f = sym(f(x,y)');
Para convertir un nmero real en simblico:
pi = sym(pi) | r = sym(1/3)

Funcin findsym
Cmo considera las variables simblicas de una expresin ( derivac., integrac.,)
findsym(f,n): lista de variables simblicas en f en orden de proximidad a x:

a b c

t
7

u
6

v
5

w
3

x
1

y
2

z
4

a b c

t
7

u
6

v
5

w
3

x
1

y
2

z
4

a b c

t
7

u
6

v
5

w
3

x
1

y
2

z
4

a b c

t
7

u
6

v
5

w
3

x
1

y
2

z
4

a b c

t
7

u
6

v
5

w
3

x
1

y
2

z
4

Simplificacin de expresiones

Simplificacin de expresiones
simple: busca la expresin ms simple
simplify: simplifica utilizando unas reglas determinadas (las de Maple)
factor: descompone la expresin en producto de otras ms simples
syms x

syms x

syms x y

f = (1+x)*log(x)/(1-x^2)

g = (1-sin(x)^2)*tan(x)

h = x^2-y^2

f = simple(f)

simplify(g)

factor(h)

Funcin pretty: representa de forma bonita las expresiones


syms x
f = (sqrt(x^2-y^2)/log(x-1))^(x-1/y)
pretty(f)

Derivacin

Derivacin de una expresin simblica


diff(f,x) | diff(f) | diff(f,2) |

diff(f,3) | diff(f,x,3)

findsym(f,1)
syms x t a

syms x t a

df_dx = diff(f,x)

df_dx = diff(f)

f= sin(x)*exp(-a*t)
syms x t a

f= sin(x)*exp(-a*t)

d2f_dx2 = diff(f,x,2)

f= sin(x)*exp(-a*t)
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)
syms x t a

f= sin(x)*exp(-a*t)
df_da = diff(f,a,2)

Integracin

Integracin de una expresin simblica


int(f,x) |
int(f,x,a,b)
int(f)
| int(f,a,b)

syms x a

syms x a

I_dx= int(f,x)

I_dx = int(f)

f= sin(x)*exp(-a*x)
syms x

f= exp(-x^2)

I = int(f,x,a,b)

f= sin(x)*exp(-a*x)
syms x

f= exp(-x^2)

I = int(f,x,a,2)

syms x a

f= sin(x)*exp(-a*x)
I_da= diff(f,a)
syms x

f= exp(-x^2)

I = int(f,x,0,Inf)

Resolucin de ecuaciones algebraicas

Resolucin de una o varias ecuaciones algebraicas: solve


syms x

syms x

f = a3*x^3+a2*x^2+a1*x+a0

f = a3*x^3+a2*x^2+a1*x+a0

xs = solve(f)

a3s = solve(f,a3)

syms x y a
f = x^2*y^2;
g =x+y-a;
[x,y] = solve(f,g)

Resolucin de ecuaciones diferenciales ordinarias

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

Transformada de Fourier/ Frmula de inversin


Transformada de Fourier

f(x)
f (t) = sin(w0 t)

F ( w ) = f ( x )e iwx dx

syms t w0 real
f = sin(w0*t);
F = fourier(f);

syms t w0

t 2
=
f (t) exp
a

f = sin(w0*t);
F = fourier(f);

Frmula de inversin

F(w)

1
f(x) =
2

(aw)2
F(w) a exp

F(w)e iwx dw

syms w real; syms a positive; pi = sym(pi)


F = a*sqrt(pi)*exp(-(a^2*w^2)/4);
f = ifourier(F)

Vous aimerez peut-être aussi