Animaciones Matlab y Maple
Animaciones Matlab y Maple
Animaciones Matlab y Maple
2.1. Código para animaciones unidimensionales x=-2:0.1:10; nos define los valores de x. La ani-
mación se obtiene como una secuencia de los valo-
Supongamos que deseamos hacer la animación de la fun- res de u a diferentes tiempos, todos ellos graficados
2
ción u(x, t) = e−(x−2t) , la cual corresponde a la solución en un mismo marco; para ello utilizamos el comando
del problema de valor inicial: set(gca,’nextplot’,’replacechildren’); el cual mantiene las
2
ut + 2ux = 0, u(x, 0) = e−x . propiedades de los ejes. Para crear nuestra animación (se-
cuencia de gráficos) usamos un ciclo for dentro del cual
Veamos cómo se realiza esta animación en Matlab [16]: graficamos la solución al tiempo t(i) mediante el comando
La función de dos variables u(x, t) puede animarse grafi- plot(u,x) y guardamos el cuadro en una matriz M con la ayu-
cando en un mismo marco (plano x-u) sus valores a diferentes da del comando M(i)=getframe; en el transcurso de la eva-
tiempos. Ası́ definimos t=0 :0.05:6 el vector de los diferen- lución de este ciclo for, las gráficas a diferentes tiempos han
tes tiempos que toma como tiempo inicial 0, como tiempo sido guardadas en la matriz M y hemos visualizado la anima-
final 6 e incremento en tiempo de tamaño 0.05. Graficaremos ción. El siguiente código (mfile) muestra la implementación
en espacio (digamos en el intervalo [-2,10]), ası́ el vector de los comando anteriormente descritos:
Mostraremos ahora un ejemplo de un código para simulaciones en 2 dimensiones; para ello consideremos la función
2
u(x, y, t) = e−π t sin(2πx) sin(2πy) la cual resuelve el problema de valor inicial con condiciones en la frontera:
µ ¶
1 ∂2u ∂2u
ut = + 2 (1)
8 ∂x2 ∂y
u(0, y, t) = u(1, y, t) = 0 u(x, 0, t) = u(x, 1, t) = 0 t>0
u(x, y, 0) = sin(2πx) sin(2πy). (2)
La animación en Matlab se consigue mediante un código muy similiar al caso unidimensional, a continuación mostramos un
código bidimensional donde mediante el uso del simbolo %, se han incluido comentarios breves acerca de los comandos más
importantes.
% Animacion de la solucion de la ecuacion del calor 2d
% U_t = 1/8(U_xx + U_yy)
% en el dominio 0 < x, y < 1
% condicion inicial u(x,y,0)=Sin(pix) Sin(piy)
% para 0<t<3
[x y]=meshgrid(0:.01:1,0:.01:1);
%define una malla para [0,1]x[0,1] con incremento en x y y de 0.01
title(’Animacion de la temperatura’);
set(gca,’nextplot’,’replacechildren’); caxis manual;
% permite que todos los gráficos usen los mismos lı́mites en colores.
caxis([-1 1]);
% define los valores maximos para los limites como -1 y 1
axis equal;
%usa la misma escala para los ejes x y
t=0:0.05:3;
%vector de valores para los diferentes tiempos
for j=1:length(t) z=exp(-1/8*piˆ2.*t(j)).*sin(2*pi*x).*sin(2*pi*y);
%evaluacion de la funcion de dos variables
axis off;
%remueve los ejes
pcolor(x,y,z);
%grafica en dos dimensiones
shading interp;
%interpolacion de colores
colorbar;
% agrega la barra de colores
M(j) = getframe(gcf);
% captura los graficos y los guarda en la matriz M
end
[x,y,z] = meshgrid(0:.05:1,0:0.05:1,0:.05:1);
set(gca,’nextplot’,’replacechildren’); caxis manual; caxis([0,1]);
t=0:0.01:0.5; for j=1:length(t)
v=exp(-pi*pi*t(j)).*sin(pi*x).*sin(pi*y).*sin(pi*z);
h = slice(x,y,z,v,[0.25 .5 .75],[],[0]);
caxis([0,1]); alpha(’color’)
set(h,’EdgeColor’,’none’,’FaceColor’,’interp’,...
’FaceAlpha’,’interp’)
alphamap(’rampdown’) alphamap(’increase’,.1) colormap(hsv);
colorbar; F(j)=getframe(gcf); end;
Para la visualización los cortes se obtienen mediante la instrucción h = slice(x,y,z,v,[0.25 .5 .75],[ ],[0]) que corresponde
a Ω intersectado con x = 0.25, x =0.5 y x =0.75 ( [16]) . La instrucción set se usa para definir las opciones del gráfico h, alpha
y alphamap para definir las propiedades de transparencia del gráfico mientras que colormap define los colores empleados.
Para la misma animación en Maple usamos el siguiente código:
with(plots):N := 200:anim := array(1 .. N): for i to 25 do t := i/N:
P1[i] := plot3d(.25, x = 0 .. 1, y = 0 .. 1, color =
exp(-Pi*Pi*t)*sin(Pi*x)*sin(Pi*y)*sin(.25*Pi), style = patchnogrid);
P2[i] := plot3d(.5, x = 0 .. 1, y = 0 .. 1, color =
exp(-Pi*Pi*t)*sin(Pi*x)*sin(Pi*y)*sin(.5*Pi), style = patchnogrid);
P3[i] := plot3d(.75, x = 0 .. 1, y = 0 .. 1, color =
exp(-Pi*Pi*t)*sin(Pi*x)*sin(Pi*y)*sin(.75*Pi), style = patchnogrid);
anim[i] := display([P1[i], P2[i], P3[i]]) od;
display([seq(anim[i], i = 1 .. 25)], insequence = true, axes =
boxed, transparency = .5)
Para resolver este problema utilizaremos el método de carac- utt = c2 uxx , u(x, 0) = f (x),
ut (x, 0) = g(x).
terı́sticas: (5)
La Ec. (3) puede escribirse como Usaremos en este ejemplo el método de cambio de varia-
∂u bles [2]. Definimos
(c, 1) · (ux , ut ) = 0 ~ =0
= ∇u · V (4)
~
∂V ξ = x − ct, η = x + ct;
Esta ecuación nos dice que u es constante en el plano x − t
~ = (c, 1). A estas con este cambio de variables las Ecs. (5) se transforman en
a lo largo de las rectas paralelas al vector V
curvas se les llama curvas Caracterı́sticas. uξη = 0
Considere la recta que al tiempo t = 0 corta al eje x en
x0 , su parametrización está dada por cuya solución esta dada por:
½
x(t) = x0 + c t u(ξ, η) = F (ξ) + G(η).
t = t.
Por lo tanto, u expresada en las variables x, t tiene la forma
La función
v(t) = u(x(t), t) u(x, t) = F (x − ct) + G(x + ct).
es constante; en efecto De acuerdo con las condiciones iniciales,
dv ∂u dx ∂u ∂u ∂u
= + = c+ =0 f (x) = F (x) + G(x), g(x) = −cF 0 (x) + cG0 (x)
dt ∂x dt ∂t ∂x ∂t
F IGURA 3.
F IGURA 4.
donde
ZL ³ nπ ´ Las condiciones para unir las soluciones son la continuidad
2
An = g(x) sin x dx, de u y ux en x = 0,
nπa L
0
ZL ³ nπ ´ H(cl t) = F (−cr t) + G(cr t), ∀t,
2 (14)
Bn = f (x) sin x dx.
L L H 0 (cl t) = F 0 (−cr t) + G0 (cr t) ∀t.
0
Para la animación tomamos L = 2, a = 1, g ≡ 0 y
³ πx ´ 1 µ ¶ µ ¶ resolviendo estas ecuaciones para F y para H obtenemos
3πx 1 5πx
f (x) = sin + sin + sin .
2 2 2 4 2
cl − cr
Por lo tanto, la solución está dada por F (z) = G(−z),
³ πx ´ µ ¶ µ ¶ µ ¶ cl + cr
πt 1 3πx 3πt µ ¶
u(x, t)= sin cos + sin cos 2cl cr z
2 2 2 2 2 H(z) = G , z = cl t.
µ ¶ µ ¶ cl + cr cl
1 5πx 5πt
+ sin cos .
4 2 2
Por lo tanto la solución u se escribe como
La Fig. 3 muestra la solución para t = 0, 0.25, 0.5, 0.75. No-
tamos que los extremos de la cuerda están fijos y cualquier
otro punto de la cuerda oscila verticalmente. G(x + cr t) + RG(cr t − x), x > 0,
u(x, t) = (15)
T G( cr (x + c t)), x ≤ 0.
3.4. Un problema de transmisión cl l
y consideremos
U (ξ, η) = u(x, t). Considerando el cambio de variable z = (σ/2)sech2 (θ) te-
nemos que dz/dθ = −σsech2 (θ) tanh(θ) y después de inte-
Si u satisface (16), entonces U (ξ, η) satisface grar (20) obtenemos
m2
Uξη + U = 0. (17) 2 σ
4 s = √ θ + c, sech2 (θ) = v(s).
σ 2
Esta ecuación es invariante bajo la tranformación ξ → αξ,
η → α−1 η (método de escalamiento), ası́ proponemos una combinando estas expresiones tenemos que
solución de la forma
µ√ ¶
U (ξ, η) = f (z), z = ξη, σ σ
v(s) = sech2 (s − c) ,
2 2
teniendo ası́ que f (z) satisface
m2 y ası́ finalmente tenemos que la solución u(x, t) tiene la for-
zf 00 (z) + f 0 (z) + f =0 ma
4 µ√ ¶
√ σ 2 σ
y tomando s = m z obtenemos la ecuación de Bessel de u(x, t) = sech (x − σt − c) .
2 2
orden cero:
sf 00 + f 0 + sf = 0. La expresión anterior de la solución nos dice qué ondas via-
J0 (s) es una solución regular para s = 0. Ası́, proponemos jeras con velocidad de propagación σ tienen amplitud pro-
la solución porcional a σ. Ondas de mayor amplitud viajan con mayor
½ 1 √ velocidad. En la animación se consideran dos ondas con ve-
J0 (m( t2 − x2 )), x2 < t2 , locidades de propagación σ1 = 5 y σ2 = 2, la primera cen-
u(x, t) = 2 (18)
0, x2 > t2 . trada en x = 0 y la segunda en x = 5. La Fig. 6 muestra la
Para la animación consideramos m = 4. La Fig. 5 muestra solución para t = 0, 1, 2, 3, 4. Notamos que la onda de mayor
la solución para t = 0, 1, 2, 3, 4, 5. Esta solución se comporta amplitud (y mayor velocidad) alcanza y cruza a la de menor
de manera similar a la ecuación de ondas: dos ondas se pro- amplitud.
pagan en direcciones opuestas; sin embargo se tiene el efecto Las gráficas de las animaciones de esta sección fueron ob-
de fuente en el punto x = 0, donde se generan ondas que se tenidos modificando la función u(x, t), los vectores espacio
propagan a la derecha y a la izquierda. y tiempo x, t del código Matlab dado en la Sec. 2.1.
Considere el problema de valor inicial con valores en la fron- u(r, θ, 0) = f (r), ut (r, θ, 0) = 0,
tera:
de esta manera (30) se reduce a
µ ¶
2 1 1 ∞
X
utt = c urr + ur + 2 uθθ , (21)
r r u(r, t) = Am J0 (k0m r) cos(k0m ct). (31)
m=1
u(1, θ, t) = 0, 0 < t < ∞, 0 < θ < 2π, (22)
Por la condición inicial
u(r, θ, 0) = f (r, θ), ut (r, θ, 0) = g(r, θ). (23) ∞
X
f (r) = Am J0 (k0m r),
Usaremos nuevamente el método de separación de varia-
m=1
bles [4].
Supongamos que u tiene la forma Z1
2
Am = 2 rf (r)J0 (k0m r)dr.
J1 (k0m )
u(r, θ, t) = R(r)Θ(θ)T (t), 0
5. Conclusiones
En este trabajo se han presentado animaciones en Matlab de
soluciones exactas de edps de la forma u(x, tk ) con x ∈
Rn , tk ∈ R>0 . Se ha seleccionado un conjunto de las ecua-
ciones más representativas de la fı́sica matemática. Estas ani-
maciones pueden utilizarse para explicar fenómenos fı́sicos
como superposición de ondas, transmición de ondas de un
medio a otro, etc; ası́ como para despertar el interés de los es-
tudiantes y encaminarlos en el área de las edps y sus aplica-
F IGURA 10. ciones. Se han incluido códigos en Matlab y Maple para crear
animaciones en 1, 2 y 3 dimensiones, ası́ como brevemente
se describen algunas de las técnicas de solución de las edps:
· ¸
Idl β cos(ωt − βr) sin(ωt − βr) escalamiento, cambio de variables, método de caracterı́sticas,
~ =
E + cos(θ)r̂
2π²0 ω r2 r3 separación de variables, etc.
· La mayoria de las veces las edps halladas en las aplicacio-
Idl β sin(ωt − βr) β cos(ωt − βr) nes no tiene soluciones analı́ticas, en cuyo caso se tienen que
+ − +
4π²0 ω r r2 emplear métodos numéricos de aproximación. Contar con al-
¸ gunas soluciones exactas nos permite verificar la veracidad
sin(ωt − βr)
+ sin(θ)θ̂ de los métodos numéricos ( [10]). Por otra parte, el uso de
r3
animaciones de ecuaciones puede ser útil en el modelado:
Para la animación consideramos Idl = 4π, β = ω = 2π, modificando determinados parámetros en las ecuaciones o en
²0 = µ0 = 1 y por simetrı́a usamos la proyección sobre el sus soluciones pueden ajustarse las animaciones a una me-
eje xy. La Fig. 9 muestra la superposición de dos dipolos pa- jor representación de un fenómeno fı́sico, obteniendo de esta
ra t=0.5, 1.0, 1.5, y 2.0, donde se ha graficado la intensidad manera modelos matemáticos que describan con mayor exac-
del campo magnético. Observamos cómo se generan las on- titud un fenómeno.
das electromagnéticas esféricas propagándose hacia afuera y
se superponen de manera similar a las ondas en el agua. Por Agradecimientos
simetrı́a se graficó un corte por un plano, pero en realidad
éste es un ejemplo de una solución exacta de las ecuaciones Trabajo realizado con apoyo de proyecto Promep
de Maxwell en 3 dimensiones [10]. 103.5/05/1955.
1. L.C. Evans, Partial Differential Equations (Graduate Studies in 9. D.J. Griffiths, Introduction to Electrodynamics (Prentice Hall,
Mathematics, American Mathematical Society, 1998). 1999).
2. J D. Logan, Applied Partial Differential Equations (Springer- 10. G. Ortigoza, The Runge-Kutta Discontinuous Galerkin method
Verlag, Undergradute Texts in Mathematics, 1998). for Maxwell equations, Ph. D. thesis, 2003.
3. J. Cooper, Introduction to Partial Differential Equations with
11. K.A. Lonngren and Sava Savov Fundamentals of Electromag-
Matlab (Birkhäuser, 1998).
netics with MATLAB (SciTech Publishing, Incorporated, 2005).
4. S.J. Farlow, Partial Differential Equations for Scientists and en-
gineers (Dover, 1993). 12. F. Wang, Physics with MAPLE: The Computer Algebra Resour-
5. P. Duchateau and D.W. Zachmann, Partial Differential Equa- ce for Mathematical Methods in Physics (Wiley, John and Sons
tions (Schaum´s Outline series, McGraw-Hill,1986). Incorporated, 2006).
6. I.P. Stavroulakis and S.A. Tersian, Partial Differential Equa- 13. Gerd Baumann , Mathematica for Theoretical Physics: Classi-
tions: An Introduction with Mathematica and Maple (World cal Mechanics and Nonlinear Dynamics (Springer-Verlag New
Scientific Publishing Company, 2004). York, 2005).
7. L. Elden, L. Wittmeyer-Koch, and H.B. Neilsen, Introduction to 14. Maple 10 ,user manual, maplesoft, 2005.
Numerical Computation - Analysis and MATLAB Illustrations
(Studentlitteratur, 2004). 15. J. Putz,Maple Animation (CRC Press, May 2003).
8. M.L. Abell and J.P. Braselton, Differential Equations with Mat- 16. D. Hanselman and B. Littlefield, Mastering Matlab 7, (Pear-
hematica (Elsevier Science & Technology Books, 2004). son/Prentice Hall, 2005).