Sie sind auf Seite 1von 3

1

Utilizacin del toolbox PDE de Matlab o

Este toolbox nos permite resolver ecuaciones diferenciales en derivadas parciales utilizando el mtodo de elementos nitos. En particular, con la utilizacin de la interfaz e o grca denominada pdetool veremos que es muy sencillo especicar el dominio 2-D a de nuestro problema, la triangulacin del dominio, los coecientes de la EDP y las o condiciones de contorno. A continuacin se resumen algunos elementos bsicos para trabajar con el toolo a box. Para comenzar a trabajar con la interfaz grca para EDPs de Matlab, teclearea mos pdetool en la l nea de comandos. Para especicar el dominio de nuestro problema procederemos del siguiente modo: en Options, elegir Axes Limits para concretar el rea (x, y) (por a defecto, x = 1.5 : 1.5 e y = 1 : 1); seleccionar Grid para situar un mallado sobre el rea que aparece y Snap para ajustar automticamente la gura de a a nuestro dominio al mallado (esto facilita dibujar regiones simples). Seleccionar Grid Spacing si se desea modicar el espaciado del mallado (el que est por a defecto es 0.5 en x y 0.2 en y). Los dominios se construyen en base a la composicin (suma y/o resta) de una o serie de dominios elementales tales como rectngulos, pol a gonos y elipses (los que aparecen en el men de opciones), cuya manipulacin es muy sencilla. Se u o recomienda escoger un par de ejemplos para comprobarlo. Para formar el rea de inters en nuestro problema, escribiremos en el espacio a e destinado a Set formula (que aparece sobre la regin grca) la frmula o a o que describe nuestro dominio como suma y/o resta de las guras elementales. Si queremos guardar este dominio para utilizarlo a posteriori, seleccionaremos Export geometry description del men de la opcin Draw y elegiremos u o OK en el cuadro mostrado. De este modo, exportaremos los datos de la geometr bajo los nombres de las variables gd sf ns (salvo que se cambie). a De hecho, sin entrar en detalles, esta especicacin de la geometr debe ser o a procesada antes de poder utilizarla con diferentes comandos Matlab. Es ms a sencillo esperar a tener especicadas las condiciones de contorno y exportar simultneamente stas y la geometr del problema, como comentaremos a a e a continuacin. o Para establecer las condiciones de contorno, seleccionar en Boundary la opcin Boundary mode o, equivalentemente, pinchar el botn . Seo o leccionar uno o varios segmentos y en el men de Boundary elegir Specify u Boundary Conditions. Se pueden especicar condiciones de contorno tipo Dirichlet de la forma h*u=r introduciendo los valores de los parmetros h y a r (por defecto, h = 1 y r = 0). Si elegimos condiciones de contorno tipo

Neumann, deberemos especicar los coecientes g y q. La forma general de la condicin de contorno aparece en la parte superior del cuadro de dilogo (n es o a el vector unitario normal y c es un cociente en la EDP). Para guardar las condiciones de contorno en una forma que permita ser utilizada en un programa Matlab, seleccionar Export Decomposed Geometry, Boundary Conds en el men de Bundary y elegir OK en el cuadro. u De este modo, exportaremos los datos de geometr y condiciones de contorno a con los nombres g b (salvo que los cambiemos). Para especicar la EDP a resolver, seleccionaremos PDE specication en el men de la opcin PDE y escogeremos un problema prototipo (por defecto, u o el ptico, de la forma -div(c*grad(u))+ a*u =f ). Introducir los coecientes c y a de la EDP y la funcin f del lado derecho de la ecuacin. Los coeo o cientes pueden ser funciones de x, y y para problemas no lineales tambin e pueden ser funcin de u, ux, uy. Utilizaremos entonces x, y, u, ux, uy en la o expresin a introducir, dndonos cuenta de que Matlab interpreta estas cano a tidades como vectores. Teniendo en cuenta esto, si queremos introducir la funcin xy, teclearemos x.*y en lugar de x*y. o Seleccionando Parameters en el men de la opcin Mesh estableceremos (opu o cionalmente) los parmetros de la triangulacin inicial de nuestro problema a o de elementos nitos. Para generar la triangulacin, pincharemos en el botn o o con el tringulo o, alternativamente, elegiremos Initialize Mesh en el men a u de Mesh. Para guardar la triangulacin de forma que pueda ser utilizada en un programa o Matlab, seleccionaremos Export Mesh en el men de Mesh y pincharemos u OK en el cuadro de dilogo. Esto permite exportar los vrtices, los bordes y a e la ordenacin de los tringulos con los nombres: p e t (salvo cambio), respectio a vamente. Dmonos cuenta de que necesitaremos esta informacin si queremos e o comparar la solucin exacta y la aproximada en los vrtices o calcular diversas o e normas del error que se comete. Para renar la triangulacin pincharemos el tringulo dividido o seleccionareo a mos Rene Mesh en el men de Mesh. El mtodo de renamiento por deu e fecto es regular (para cambiarlo, iremos a Parameters). La solucin numrica o e de la EDP puede realizarse de manera adaptativa seleccionando primero Solve Parameters y luego Adaptive Mode, en el men de la opcin Solve: introu o duciremos el mximo nmero de tringulos que deseamos o el mximo numero a u a a de pasos de renamiento. Para resolver la EDP y dibujar la solucin, seleccionaremos Solve PDE o en el men de Solve. Para exportar la solucin al espacio de trabajo principal u o de Matlab, elegiremos Export Solution. Disponemos de varias opciones de

grcos para representar la solucin: seleccionaremos Parameters del men a o u de Plot.

1.1

Trabajando desde la l nea de comandos de Matlab

Una vez resuelto nuestro problema de contorno utilizando pdetool y exportados los datos descritos con anterioridad, podemos procesar esta informacin desde la o l nea de comandos de Matlab. En primer lugar, podr ser interesante guardar la a descomposicin de la geometr de nuestro problema (g) en un chero (prob1g.m, o a por ejemplo) que podamos utilizar ms adelante. Una vez que hemos elegido en a Boundary la opcin Export Decomposed Geometry, Boundary Conds, escribiremos o en la l nea de comandos d=wgeom(g,prob1g). Para hacer lo mismo con la informacin sobre el contorno (b) que queremos guardar en un chero (prob1b.m, o por ejemplo), escribiremos d=wbound(b,prob1b). De hecho, con estos dos cheros es bastante fcil resolver un problema de cona torno sencillo sin necesidad de recurrir a la interfaz grca. Para ello, establecemos a en primer lugar una triangulacin sobre la geometr denida en el chero prob1g.m, o a escribiendo [p,e,t]=initmesh(prob1g); el comando initmesh permite especicar determinados parmetros relativos a las caracter a stica de la triangulacin. Podemos o visualizar la triangulacin con pdemesh(p,e,t). Para renar la triangulacin, eso o cribiremos [p,e,t] = renemesh(prob1g,p,e,t). Por otro lado, los coecientes de la EDP a resolver pueden ser especicados directamente. Por ejemplo, la ecuacin o escalar genrica es de la forma -div(c grad u) + a u = f. Por tanto, para resolver el e problema con c = 1, a = 0 y f = 8 16(x2 + y 2 ), escribir amos c= 1; a= 0; f = 8 - 16.*(x.^2 + y.^2) Para obtener entonces la solucin aproximada a nuestro problema de contorno, o con condiciones de contorno especicadas en el chero prob1b.m, tecleamos u = assempde(prob1b,p,e,t,c,a,f ). Para representar grcamente la solucin u, cona o sideramos pdesurf(p,t,u).

1.2

Post-procesado de la solucin o

Hay varios comandos Matlab que son utiles para obtener informacin sobre la o solucin aproximada y para el clculo de errores (en problemas modelo) cuando o a la solucin exacta es conocida. Escribiendo [ux,uy] = pdegrad(p,t,u) obtenemos o el gradiente de u en cada tringulo (la primera componente est en el vector ux y a a la segunda, en uy). Los valores de u pueden obtenerse asimismo en puntos que no sean vrtices utilizando la funcin tri2grid. Por ejemplo, v=tri2grid(p,t,u,x,y) e o calcula los valores de u sobre el mallado denido por los vectores x e y (asumiendo que u es conocido en los vrtices). e

Das könnte Ihnen auch gefallen