Hola a todos. Yo suelo usar el programa Mathematica para calcular integrales, determinantes muy grandes... Pero no solo sirve para hacer cálculos, también se pueden crear animaciones y simulaciones de fenómenos físicos entre otras cosas. Ya que tengo el programa desde hace bastante tiempo he decidido aprender un poco como funciona esta parte de Mathematica. En este blog quiero explicar paso a paso como animar una onda en una región determinada con Mathematica. De paso me servirá para acabar de sedimentar lo que he estado viendo estos días.

Una onda obedece a la llamada ecuación de onda (valga la redundancia):



Supondré solo dos coordenadas espaciales y por comodidad tomaré como la unidad. Con estos cambios la ecuación queda:



Ahora toca escribir esta ecuación en nuestro programa. La función se escribirá u[x, y, t] y para las derivadas parciales usaremos D[f, x, y,...]. D[f, x] es la derivada parcial de respecto , D[f, x, y] es la derivada parcial de respecto y luego respecto ... Y así con todas las variables que pongamos. Por lo tanto nuestra ecuación es:

Haz clic en la imagen para ampliar

Nombre:	EcOndasv=1.png
Vitas:	1
Tamaño:	3,8 KB
ID:	340703

Las condiciones de contorno que usaré son:

Haz clic en la imagen para ampliar

Nombre:	CondicioensdeContorno.png
Vitas:	1
Tamaño:	5,3 KB
ID:	340700


Para solucionar la ecuación utilizaré NDSolve:

Haz clic en la imagen para ampliar

Nombre:	Res.png
Vitas:	1
Tamaño:	9,4 KB
ID:	340702

Aviso que tarda unos treinta segundos largos. Los valores mínimos y máximos de , y son totalmente arbitrarios. Se pueden poner los valores que queramos. Dicho esto voy a representar la onda. Para ello usaré Plot3D:

Haz clic en la imagen para ampliar

Nombre:	Plot3D.png
Vitas:	1
Tamaño:	4,6 KB
ID:	340704

PlotRange sirve para indicar el rango de una coordenada. Lo que ha quedado ahora es una gráfica vacía. Para animarla hay que usar Manipulate con el que especificando una variable podemos hacer que varíe a nuestro gusto. Nosotros elegimos el tiempo:

Haz clic en la imagen para ampliar

Nombre:	Manipulate.png
Vitas:	1
Tamaño:	5,0 KB
ID:	340705

Ahora nos queda lo siguiente:

Haz clic en la imagen para ampliar

Nombre:	Graficat=0.png
Vitas:	1
Tamaño:	41,2 KB
ID:	340714

Con la barra podemos ir variando el tiempo y veremos la gráfica animada. También podemos especificar un valor concreto apretando el + del final de la barra (el más pequeño). Por ejemplo para :

Haz clic en la imagen para ampliar

Nombre:	Graficat=8,3.png
Vitas:	1
Tamaño:	79,9 KB
ID:	340708

Con esto la animación ya estaría hecha pero yo prefiero añadirle un mapa de colores. Para ello hay que poner ColorFunction->"TemperatureMap" después de PlotRange. Normalmente se pone para destacar las variaciones de temperatura en una distribución de calor pero me gusta como queda en las ondas. Si no también se puede colorear con todas las opciones que hay en el anterior enlace. En el mismo instante que antes la gráfica queda:

Haz clic en la imagen para ampliar

Nombre:	GraficaDefinitiva.png
Vitas:	1
Tamaño:	85,0 KB
ID:	340710
Archivos adjuntos