Professional Documents
Culture Documents
M AT L A B Y C L C U L O
ndice general
Introduccin
Curvas
5
7
11
13
17
Superficies Paramtricas
19
Ecuaciones diferenciales
23
Bibliografa
35
Introduccin
Matlab es una herramienta que permite una amplia gama de opciones para graficar en dos o tres dimensiones, como tambin permite hacer curvas, trabajar con campos vectoriales.
Creando scripts
Matlab a travs de la linea de comando va ejecutando ordenes. Esto resulta simple para problemas sencillos, sin embargo para cuando
se tiene muchos ordenes y en forma repetitiva, esta forma es muy
tediosa. Para solucionar este problema Matlab permite crear archivos
de texto llamados script o archivos M para guardar estas ordenes y
poder ejecutarlas posteriormente.
Para crear un archivo M usaremos la opcin File / New / M-FileL,
que abre una ventana para la edicin del texto. Luego de escribir
nuestro conjunto de ordenes podemos guardar el archivo para posteriormente editarlo y modificarlo, ejecutarlo, ... Podemos abrir un
archivo M previamente creado con la opcin File / Open ... o con la
orden open archivo.m desde la lnea de comandos. Podemos ejecutar
un archivo M con la opcin File / Run Script ... o directamente con la
orden archivo desde la lnea de comandos.
Seteando archivos
Para poder usar estos archivos en el Matlab, por ejemplo los
archivos del libro A Matlab Companion for Multivariable Calculus
http://www-users.math.umd.edu/jkolesar/241/241Cooper/,
deber seguir las siguientes instrucciones
1. Coloque los archivos de extensin *.m en la carpeta que usted crea
conveniente. Llammosla C:/matlab/cooper
2. En la barra de herramientas del men de matlab elija la ventana
File y luego la opcin Set Path (Setear ruta) como se muestra en la
figuras siguientes
>>
help arrow.m
Curvas
Al construir la grfica de una funcin y = f ( x ) en el intervalo
[ a, b], se debe tener presente que Matlab dibuja las curvas punto a
punto; es decir, calcula los puntos ( x, f ( x )), para los valores de x que
se le indique y representa dichos puntos unidos por un segmento.
Por ello, se empieza estableciendo la matriz fila x cuyos elementos
son los valores de x para los que se calcular el valor correspondiente
de f ( x ). Si la distancia entre dos valores consecutivos de x es convenientemente pequea, el aspecto final ser el de una verdadera
curva en lugar de una poligonal.
fplot
>> fplot(x^2*exp(-x),[0,10])
0.6
0.5
0.4
0.3
plot
0.2
0.1
10
>> x=0:0.1:10;
>> y=x.^2.*exp(-x);
>> plot(x,y)
>>
>>
>>
>>
>>
theta=0:0.1:2*pi;
r=1;
x=r*(theta-sin(theta));
y=r*(1-cos(theta));
plot(x,y)
Figura 2: Cicloide
3
2.5
obtenindose la figura 2
2
1.5
1
0.5
0
0.5
1
0
plot3
5
4
3
1
2
3
4
>>
>>
>>
>>
t=0:0.1:2*pi;
x=cos(t); y=sin(t); z=t ; plot3(x,y,z);
axis equal
grid
2
1
0
0.5
0
0.5
0
0.5
0.5
>> f=inline(x.^2+y.^2,x,y)
se crea la funcin f.
En Matlab se usa el signo % para escribir los comentarios. Toda
expresin despus del signo % es ignorado por Matlab.
Tambin usaremos los comandos subplot, contour, contour3, quiver, comet, etc.
Curvas en el plano
Empezamos graficando funciones reales continuas definidas en
un intervalo. Si f es una funcin real de variable real, su grfica es el
conjunto Gr ( f ) = ( x; y)/y = f ( x ), x Dom( f ).
Ejemplo 4.
1
2
3
4
5
>>
>>
>>
>>
>>
o equivalentemente
Figura 4: f ( x ) = e x ,x [2, 3]
8
>> fplot(exp(-x),[-2,3])
7
6
5
4
3
2
1
0
2
matlab y clculo
f (x) =
x,
x<0
x2 ,
0x<2
1 x,
2x
function y = f(x)
y1 = x.*(x < 0);
y2 = x.^2.*( (x < 2) - (x < 0) );
y3 = (1-x).*(1 - (x < 2));
y = y1 + y2 + y3;
>>
>>
>>
>>
x=-2:0.01:4;
y=func1_partes1(x);
plot(x,y)
grid
Figura 5:
4
3
4
3
2
>>
>>
>>
>>
>>
theta=linspace(0,2*pi,50);
r=1+cos(theta);
polar(theta,r);
grid
title(Grfica del cardioide r=1+cos\theta )
Figura 6: r = 1 + cos ,
[0, 2 ]
Grfica del cardioide r=1+cos
90
120
60
1.5
1
150
30
0.5
180
Aplicacin
210
330
240
300
270
1
2
3
4
5
6
>>
>>
>>
>>
>>
>>
t=-2:0.1:2;
c=-1;
x=t.^2;
y=t.^3-c*t;
plot(x,y)
grid
10
7
8
9
10
11
12
13
14
15
16
17
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
Figura 7:
10
c=1
c=0
c=1
c=2
8
6
4
2
0
x (t) = cos t
t [0, 1]
C=
y(t) = sen t
2
4
6
8
10
0.5
1.5
2.5
3.5
>>
>>
>>
>>
>>
>>
t=linspace(0,pi,30);
plot(cos(t),sin(t));
hold on;
t=linspace(0,pi,10);
quiver(cos(t),sin(t),-sin(t),cos(t));
grid
x ( t ) = ( t + 1)3
y ( t ) = ( t + 2)2
0.4
0.6
0.8
1.5
0.5
0.5
1.5
>> syms t;
>> x=(t+1)^3; y=(t+2)^2;
>> P=[1 4]; % punto de paso
y0 (t)
La pendiente de la recta tangente en t es 0
.
x ( t ) t =0
1
2
>> yp=diff(y,t)/diff(x,t)
>> m=subs(yp,0);
% calcula la y/x
% evalue en t=0
6
7
>>
>>
>>
>>
>>
Figura 9:
Curva y tangente
14
12
10
6
Punto de tangencia
0
1
>> a=[1 2]
>> b=[3 5 6]
>>
>>
>>
>>
>>
>>
>>
>>
P0 = [2 6];
v = [1 2];
arrow(P0,v)
hold on
w = [-2 2];
arrow(P0,w)
arrow(P0,v+w,r)
axis equal
Figura 10:
10
9.5
9
8.5
8
7.5
6.5
Ejemplo 11. Determinar el producto escalar y vectorial de los vectores a = h1, 2, 4i y b = h3, 2, 1i
1
2
3
>> a=[1,2,4];
>> b=[3,2,1];
>> dot(a,b)
6
1
12
4
5
6
7
8
ans =
11
>> cross(a,b)
ans =
-6
11
-4
y ( t ) = y0 + t b z ( t ) = z0 + t c
>>
>>
>>
>>
>>
>>
>>
>>
v=[1 4 -2];
a=v(1);b=v(2);c=v(3);
x0=5;y0=1;z0=3;
t=-1:0.01:1; % parmetro
x=x0+a*t; y=y0+b*t; z=z0+c*t;
plot3(x,y,z)
grid; box;view(150,36)
xlabel(x);ylabel(y);zlabel(z);
Figura 11:
0.5
0.5
0
0.5
1
1.5
2
x
0.5
y
0.5
2 y2
function z=f(x,y)
%comentario para la funcin
z=3*x+y.*exp(-x.^2-y.^2);
>> f1(1,4)
ans =
3.0000
>> f=inline(3*x+y.*exp(-x.^2-y.^2),x,y);
>> feval(f,1,4)
ans =
3.0000
>>
>>
>>
>>
>>
>>
>>
x=-2:0.1:2;
y=x;
[X,Y]=meshgrid(x,y);
Z=exp(-X.^2-Y.^2);
surf(X,Y,Z)
xlabel(x); ylabel(y); zlabel(z);
title(e^{-x^2-y^2})
2 y2
de dominio D =
Figura 12: f ( x, y) = e x
2
2 y2
x y
14
0.6
0.4
0.2
0
2
2
1
1
2
3
4
5
6
7
8
9
10
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
f=inline(exp(-x.^2-y.^2),x,y);
x=linspace(-2,2,20);
y=linspace(-2,2,20);
[X,Y]=meshgrid(x,y);
Z=feval(f,X,Y);
surfl(X,Y,Z);
colormap(cool)
axis([-2 2 -2 2 0 1])
xlabel(x); ylabel(y); zlabel(z);grid off;
title(e^{-x^2-y^2})
1
2
Figura 13:
2 2
ex y
1
0.8
0.6
0.4
0.2
0
2
1
2
3
4
5
6
7
8
9
10
11
subplot(2,2,1)
x=-2:0.1:2;y=x;[X,Y]=meshgrid(x,y);
Z=exp(1-X.^2-Y.^2);
surfl(X,Y,Z)
shading interp
colormap gray
xlabel(x);
ylabel(y);
zlabel(z);
title(e^{1-x^2-y^2})
view(31,34)
12
13
14
15
16
17
18
19
20
21
22
23
subplot(2,2,2)
x=-2:0.1:2;y=x;[X,Y]=meshgrid(x,y);
Z=exp(1-X.^2+Y.^2);
surfl(X,Y,Z)
shading interp
colormap gray
xlabel(x);
ylabel(y);
zlabel(z);
title(e^{1-x^2+y^2})
view(50,34)
24
25
subplot(2,2,3)
26
27
28
29
30
31
32
33
34
35
36
x=-5:0.1:5;y=-6:0.1:6;[X,Y]=meshgrid(x,y);
Z=log(abs(Y-X.^2));
surfl(X,Y,Z)
shading interp
colormap gray
xlabel(x);
ylabel(y);
zlabel(z);
title(f(x,y)=ln(|y-x^2|))
view(53,60)
37
38
subplot(2,2,4)
1
y
0
1
2
matlab y clculo
39
40
x=-2*pi:0.1:2*pi;y=-4:0.1:4;[X,Y]=meshgrid(x,y);
Z=cos((X.^2+2*Y.^2)/4);
Curvas de nivel
Para una funcin de dos variables z = f ( x, y) se define las curvas
de nivel de f como la interseccin de la superficie generada por f y
los planos z = k, es decir
Sc = {( x, y) : f ( x, y) = k}
Las curvas de nivel son las proyecciones de estas curvas sobre el
plano x y.
MATLAB tiene un comando que genera las curvas de nivel de
una funcin. Primer construimos una malla sobre un rectngulo con
[X,Y]=meshgrid(x,y). El comando bsico es contour(X,Y,f(X,Y)) que
dibuja lineas de contorno de f sobre el rectngulo en los colores
correspondiente a colormap. El comando puede ser refinado de
varias maneras contour(X,Y,f(X,Y),n,k) divide el intervalo
[min f , m a x f ] en n + 1 subintervalos iguales. El ltimo argumento k indica que las curvas de nivel sern dibujadas de color negro. Finalmente podemos elegir los valores de la curva de nivel
substituyendo n por un vector de valores. Por ejemplo, si deseamos dibujar las curvas de nivel para f ( x, y) = 1,5, 2, 2,5, 4 , defi-
15
16
nimos el vector niveles=[1.5, 2, 2.5, 4]. Estos valores no necesariamente son igualmente espaciados. Entonces ejecutamos con
contour(X,Y,f(X,Y),niveles,k).
Otras opciones para graficar las curvas de nivel son contour3(X,Y,f(X,Y),n,k)
que muestra las curvas sobre la superficie y meshc(X,Y,f(X,Y)) que
grafica la superficie y las curvas de nivel proyectadas al plano xy.
Ejemplo 17. Las curvas de nivel de la superficie f ( x, y) = 4x2 + y2
son elipses, pues si
z = k = f ( x, y) = 4x2 + y2
se tiene
x2
y2
q 2 + 2 = 1
k
k
4
1
2
3
4
5
6
>>
>>
>>
>>
>>
>>
x=-2:0.1:2;y=x;
[X,Y]=meshgrid(x,y);
Z=4*X.^2+Y.^2;
surfl(X,Y,Z);grid off;
pause
contour(X,Y,Z)
1.5
1
0.5
0
0.5
1
1.5
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
x=-2:0.1:2;y=x;
[X,Y]=meshgrid(x,y);
Z=4*X.^2+Y.^2;
surfl(X,Y,Z);colormap copper;shading interp;grid off;
alpha(0.9) % para ver transparente
pause
hold on
contour3(X,Y,Z,20)
hold off
pause
meshc(X,Y,Z)
2
2
1.5
0.5
0.5
1.5
20
15
10
0
2
1
2
1
1
2
20
15
10
0
2
1
2
1
1
2
Campos vectoriales
Para dibujar un campo vectorial se usa los comandos quiver y
quiver3 como se muestra en el ejemplo siguiente
Ejemplo 18. Dibujar el campo vectorial F( x, y) = y i + x j en la
regin [5, 5] [5, 5]
1
2
3
4
>>
>>
>>
>>
x=-5:1:5;
y=x;
[X,Y]=meshgrid(x,y);
quiver(X,Y,-Y,X) % -Y,X corresponde a las componentes del campo
Figura 16: F( x, y) = y i + x j
5
4
3
2
1
y
0
1
2
Ejemplo 19. Dibujar el campo vectorial F( x, y) = ln 1 + y2 , ln 1 + x2
en la regin [5, 5] [5, 5]
1
2
3
4
>>
>>
>>
>>
x=-5:1:5;
y=x;
[X,Y]=meshgrid(x,y);
quiver(X,Y,log(1+Y.^2),log(1+X.^2))
3
4
5
5
0
x
Figura 17: F( x, y)
ln 1 + y2 , ln 1 + x2
y
x
z
i j + k en la regin
z
z
4
5
4
3
2
1
2
3
4
5
x=-2:1:2;
y=x;
z=1:1:5;
[X,Y,Z]=meshgrid(x,y,z);
quiver3(X,Y,Z,Y./Z,-X./Z,Z/4)
>>
>>
>>
>>
>>
1
2
3
4
5
5
0
x
Figura 18:
F( x, y) =
y
x
z
i j+ k
z
z
4
5
4
z
3
2
1
2
2
1
1
0
0
1
y
1
2
Superficies Paramtricas
Campo vectorial gradiente
El vector gradiente de una funcin de tres variables es
f ( x, y, z) = f x ( x, y, z), f y ( x, y, z), f z ( x, y, z)
Para funciones de dos variables, el vector gradiente en un punto
P0 = ( x0 , y0 , z0 ) es ortogonal a las superficies de nivel S de f a travs
del punto P0 . Esto significa que si r(t) es cualquier curva suave sobre
la superficie S con r(0) = P0 , entonces el vector tangente a la curva
en t = 0, el cual es r0 (0), es ortogonal a f ( x0 , y0 , z0 ).
Ejemplo 20. Sea f ( x, y, z) = z + 41 y2 x2 . Las superficies de nivel
de f son paraboloide hiperblicos. El campo vectorial gradiente es
f ( x, y, z) = h x/2, y/2, 1i.
Una forma de mostrar esto vectores gradientes atravesando una
porcin de las superficies de nivel f ( x, y, z) = 0 que hace sobre el
mismo cuadrado 0 x, y 2. La superficie de nivel f = 0 tiene como
ecuacin z = ( x2 y2 )/4. Hacemos
1
2
3
4
5
6
7
8
9
10
>> [X,Y]=meshgrid(0:0.05:2);
>> Z=.25*(X.^2-Y.^2);
>> surf(X,Y,Z);
>> shading interp; colormap gray
% El gradiente
>> [X,Y]=meshgrid(0:0.4:2);
>> U=-X/2;V=Y/2;W=1+0*X;
>> Z=.25*(X.^2-Y.^2);
>> hold on;
>> quiver3(X,Y,Z,U,V,W)
20
1
2
3
4
5
6
7
>>
>>
>>
>>
>>
>>
>>
x (, v)
= a cos( )
y(, v)
= a sen( )
z(, v)
= v
u=linspace(0,2*pi,21);
v=linspace(-pi/2,pi/2,21);
[U,V]=meshgrid(u,v);
a=1;
X=a*cos(U); Y=a*sin(U); Z=V;
surf(X,Y,Z)
colormap gray
Figura 19:
2
x (, )
= sen cos
y(, )
= sen sen ,
z(, )
= cos
2
1
0.5
1
0.5
0.5
0.5
1
x 2 + y2 + z2 = 2
1
2
3
4
5
6
7
8
9
>>
>>
>>
>>
>>
>>
>>
>>
>>
a=1;
theta=linspace(0,2*pi,41);
phi=linspace(0,pi,31);
[THETA,PHI]=meshgrid(theta,phi);
X=a*sin(PHI).*cos(THETA);
Y=a*sin(PHI).*sin(THETA);
Z=a*cos(PHI);
surf(X,Y,Z);
colormap gray
0.5
0.5
1
1
0.5
1
0.5
0.5
0.5
1
matlab y clculo
>>
>>
>>
>>
>>
>>
>>
>>
u=linspace(0,4*pi,41);
v=linspace(0,2*pi,21);
[U,V]=meshgrid(u,v);
X=(2+sin(V)).*cos(U);
Y=(2+sin(V)).*sin(U);
Z=U+cos(V);
surf(X,Y,Z)
colormap gray
4
5
21
Ecuaciones diferenciales
Solucin analtica
Ecuaciones de primer orden
Supongamos que deseamos resolver la ED de primer orden
y0 = xy
En MATLAB usamos la funcin dsolve(). La entrada y salida para la
solucin de este problema en MATLAB es dada por
1
2
1
0.95
0.9
0.85
0.8
0.75
0.7
>> ecn2=D2y+8*Dy+2*y=cos(x);
>> cin=y(0)=0, Dy(0)=1;
>> y=dsolve(ecn2,cin,x);
y =
(14^(1/2)*exp(4*x - 14^(1/2)*x)*exp(x*(14^(1/2) - 4))*
(sin(x) - cos(x)*(14^(1/2)- 4)))/(28*((14^(1/2) - 4)^2 + 1))
- (14^(1/2)*exp(4*x + 14^(1/2)*x)*exp(-x*(14^(1/2) + 4))*(sin(x) +
cos(x)*(14^(1/2) + 4)))/(28*((14^(1/2) + 4)^2 + 1)) (14^(1/2)*exp(-x*(14^(1/2) + 4))*(7*14^(1/2) + 27))/(28*(8*14^(1/2) + 31))
-
0.65
0.2
0.4
0.6
0.8
24
10
11
12
13
0.2
0.15
0.1
0.05
Si deseas encontrar la solucin simblica de un sistema de ecuaciones diferenciales podemos usar nuevamente dsolve.
0.05
0.1
10
dx = 2x y
dt
dy = 3x 2y
dt
podemos usar
1
2
3
4
5
2
3
4
5
6
7
8
9
2.5
Mtodos Numricos
1.5
0.5
1.5
matlab y clculo
1
2
3
4
25
>>f=inline(x*y^2+y)
f =
Inline function:
f(x,y) = x*y^2+y
dy
>> [x,y]=ode45(f,[0,.5],1);
>> plot(x,y)
xy2 +
Figura 25: dx
y, y(0) = 1
2
1.9
1.8
1.7
1.6
1.5
Sistema de ED
1.4
1.3
1.2
1.1
1
0.1
0.2
0.3
0.4
0.5
dx1 = 2 x + 1 x
25 1
50 2
dt
,
dx1 = 2 x1 2 x2
dt
25
25
function dydt=yprime(t,x)
dydt(1,1)=-2*x(1)/25+ x(2)/50;
dydt(2,1)= 2*x(1)/25- 2*x(2)/25;
y luego usando la orden ode45 para resolver ecuaciones diferenciales usando el mtodo de Runke Kutta 4-5 y considerando las
condiciones iniciales
x1 (0) = 25, x2 (0) = 0
hacemos
1
2
15
10
20
40
60
80
100
26
dx
dt
dy
dt
= 2x x2 xy
= xy y
con condiciones iniciales x (0) = 1 y y(0) = 2. Para poder solucionarlo en el intervalo t [0, 20] hacemos primero, crear una funcin
inline del lado derecho de la ecuacin para que sea una funcin de
la variable dependiente de t, y las funciones desconocidas x e y que
son representadas por y(1) y y(2) respectivamente. Luego usando la
orden ode45 tenemos
1
2
que crea una tabla de valores para t, x e y para 0 t 20 empezando en t = 0, x = 1 y y = 2. Observe que y es un vector cuyas entradas
son los valores y(1) y y(2).
El comando
1
>>ode45(f,[0,20],[1;2])
1.5
d2 y
dy
+ b + cy = f (t)
2
dx
dx
(1)
dy
f (t) b
cy
dx
dx1 = x
2
dt
dx2 = 1 ( f (t) b x2 c x1 )
dt
o en la forma matricial
"
# "
x 1
=
x 2
x2
1
a ( f ( t ) b x2 c x1 )
0.5
10
15
20
matlab y clculo
27
Pndulo no lineal
Ejemplo 28. Para un pndulo no lineal mostrado en la figura
La ecuacin de movimiento es
d2
g
+ sen = 0
2
l
dt
g
function dydt=pend(t,y)
G=9.8; L=9.8;
dydt=zeros(2,1);
dydt(1)=y(2);
dydt(2)=-(G/L)*sin(y(1));
end
t=[0 4*pi];
y0=[0.5 2];
[t,Y]=ode45(@pend,t,y0);
a=plot(t,Y(:,1),.-r)
hold on
y0=[0.5 0.5];
[t,Y]=ode45(@pend,t,y0);
b=plot(t,Y(:,1),--b)
grid on
legend([a,b],\theta(0)=0.5,\theta\prime(0)=2 ,\theta(0)=0.5,\theta\
prime(0)=0.5)
14
12
10
8
6
Una simulacin
4
2
0
1
2
3
4
5
6
function eng80_june_03_2013()
clear all; close all;
t_start =0 ;
t_end
=6 ;
time_span = t_start:0.001:t_end;
10
12
14
28
7
8
9
10
11
12
13
14
15
pos_inicial = 0 ; vel_inicial = 0 ;
x0 = [pos_inicial, vel_inicial];
16
17
18
19
20
21
22
23
24
25
26
27
grid
28
29
30
31
32
33
34
35
36
37
%*****************************************
% soluciona
m x + c x +k x = f(t)
%*****************************************
function xdot=rhs(t,x)
xdot = zeros(2,1);
xdot(1)= x(2);
xdot(2)= - (c/m)*x(2)-(k/m)*x(1)+ force(t)/m;
end
38
function y=force(t)
y=sin(10*t);
end
39
40
41
42
end
Transformadas de Laplace
El clculo de la transformada de Laplace F (s) de una funcin
f (t) es fcil en Matlab. Primero especifica las variables t y s como
simblicos.
1
>> syms t s
>> syms t s
>> f=-1.25+3.5*t*exp(-2*t)+1.25*exp(-2*t);
>> F=laplace(f,t,s)
F = -5/4/s+7/2/(s+2)^2+5/4/(s+2)
>> simplify(F)
ans = (s-5)/s/(s+2)^2
>> pretty(ans)
s - 5
matlab y clculo
9
10
---------2 s (s + 2)
s5
s ( s + 2)2
>>F2=laplace(-1.25+3.5*t*exp(-2*t)+1.25*exp(-2*t))
Transformada inversa
El comando que se usa es ilaplace. De nuevo tenemos que definir
los smbolos t y s. Por ejemplo calculemos la inversa de la funcin
anterior
s5
F (s) =
s ( s + 2)2
1
2
3
4
5
6
7
8
9
10
>> syms t s
>> F = (s-5)/s/(s+2)^2;
>> ilaplace(F)
ans = -5/4+(7/2*t+5/4)*exp(-2*t)
>> simplify(ans)
ans = -5/4+7/2*t*exp(-2*t)+5/4*exp(-2*t)
>>pretty(ans)
5 exp(-2 t)
7 t exp(-2 t)
----------- + ------------- - 5/4
4
2
o alternativamente
1
>> ilaplace((s-5)/(s*(s+2)^2))
>> [r,p,k]=residue(B,A)
encuentra los residuos, polos y trminos de la expansin en fracciones parciales de la razn de dos polinomios B(s)/A(s). El cociente de
los polinomios B(s) y A(s) es representado por
B(s)
r1
r2
rn
=
+
++
+ ks
A(s)
s p1
s p2
s pn
donde r = (r1 , r2 , , rn ) T es el vector columna de los residuos,
p = ( p1 , p2 , , pn ) T es el vector columna de los polos ( races del
denominador), y k es un vector fila de los trminos directos ( si el grado del numerador es menor que el grado del denominador, entonces
29
30
5s 1
s3 3s 2
Resultado en
1
2
3
4
5
6
7
8
9
10
11
1
1
2
+
s 2 s + 1 ( s + 1)2
8t, 0 t < 5
donde g(t) =
.
40, t 5
1. Use la MATLAB para encontrar la trasformada de laplace de
trmino g(t) y su grfica
Veamos: Tenemos que g(t) = 8t + (40 8t) U (t 5).
Podemos graficar la funcin g(t) (ver figura (29))y encontrar us
transformada de Laplace usando los siguientes comandos de
MATLAB
matlab y clculo
1
2
3
4
5
6
>> syms s t
>> g=8*t+(40-8*t)*heaviside(t-5)
g = 8*t - heaviside(t - 5)*(8*t - 40)
>> ezplot(g,[0,10])
>> G= laplace(g)
G =
8/s^2 - (8*exp(-5*s))/s^2
31
8
As la trasformada de Laplace de g(t) es G (s) = 1 e
s2
2. Aplicando la transformada de Laplace a ambos lados de la ecuacin diferencial y reemplazando las condiciones iniciales tenemos
8
Y (s) = 1 e5s 2 2
s ( s + 4)
5s
8
+ 4)
s2 ( s2
3
4
5
6
7
8
9
10
11
12
13
Luego
0,5i
0,5i
2
+
s 2i s + 2i s2
y combinando el trmino complejo obtenemos
F (s) =
F (s) =
2
2
+
s2 + 4 s2
30
25
20
15
10
5
0
0
6
t
10
32
8
en MATLAB, y entonces
+ 4)
ingrese diff(int(F)). Cul es la salida?
s2 ( s2
Solucin.
1
2
3
4
5
6
7
8
9
10
>> F= 8/(s^2*(s^2+4));
>> diff(int(F))
ans =
2/s^2 - 1/(2*(s^2/4 + 1))
>> pretty(ans)
2
1
-- - -----------2
/ 2
\
s
| s
|
2 | -- + 1 |
\ 4
/
2
2
, el cual
2
s
4 + s2
es la descomposicion en fracciones parciales en la parte a).
Simplificando el segundo trmino tenemos
>> Y = (1-exp(-5*s))*8/(s^2*(s^2+4));
>> y = ilaplace(Y)
y =
2*t - sin(2*t) + 8*heaviside(t - 5)*(sin(2*t - 10)/8 - t/4 + 5/4)
3. Escriba la solucin y(t) encontrada en la parte b) como una funcin por partes. Esta solucin es una funcin oscilante alrededor
de la recta inclinada en la parte 0 t 5 y alrededor de la recta
horizontal en 5 < t. Compara la grfica de la funcin solucin
con la grfica del trmino de forzamiento g(t) de la parte a) Tiene
sentido la grafica en el contexto de un sistema de masa resorte?
Solucin.- La solucin de y(t) puede ser escrito por una funcin
por partes como
2t sin(2t)
0t5
y(t) =
10 sen(2t) + sen(2(t 5)) t > 5
As y(t) es una funcin oscilante alrededor de la linea y = 2t para
0 t 5 y alrededor de la recta y = 10 para t > 5.
Podemos combinar estas dos entradas en una simple funcin
h(t) = 2t + U (t 5)(10 2t). Graficaremos la solucin y(t) usando
el comando explot y la funcin h(t) con lineas punteadas. La
salida se muestra en la figura (30)
1
2
3
>> p1 = ezplot(y,[0,10]);
>> hold on
>> h = 2*t + heaviside(t-5)*(10-2*t);
matlab y clculo
4
5
6
7
8
9
>>
>>
>>
>>
>>
>>
p2 = ezplot(h,[0,10]);
set(p2, Color,red,LineStyle,--)
axis([0,10,0,12])
title()
legend(solution,lines y= 2t and y = 10,2)
hold off
33
Es ms fciil general la grfica con diferentes estilos de linea usando el comando plot. Las siguientes instrucciones producen la
misma figura de la lista de intrucciones anteriores.
1
2
3
4
5
6
>>t = 0:0.1:10;
>> y = eval(vectorize(y));
>> h = 2.*t + heaviside(t-5).*(10-2*t);
% escribimos una formula para h que funciona con vectores
>> plot(t,y,b-,t,h,r--)
>> legend(solucin,lines y= 2t and y = 10,2)
MATHEMATICA
Para la solucin en series usando Wolfram
Series[e^x,{x,0,10}]
6
t
10
Bibliografa
1. Clculo integral y aplicaciones con Matlab. Ana Mara Vieites
Rodrguez