Varios
Ecuaciones diferenciales parabólicas
Ecuaciones Diferenciales Parabólicas
Problemas PDE Parabólica
Esta sección describe la solución de algunos problemas de PDE parabólicos. Los problemas que usan la interfaz del usuario gráfica se resuelven y el orden-línea funciona de la Caja de herramientas de PDE. Los temas incluyen:
La Ecuación de Calor: Un Bloque de Metal Acalorado
Caliente la Distribución en Rod Radiactivo
La Ecuación de Calor: Un Bloque de Metal Acalorado
Un problema parabólico común es la ecuación de calor:
(1)
La ecuación de calor describe la difusión de calor en un cuerpo de algún amable. Vea los Modos de Aplicación de sección para más información sobre el traslado de calor y problemas de difusión.
Este primer ejemplo estudia un bloque de metal acalorado con un crujido rectangular o cavidad. El lado izquierdo del bloque se calienta a 100 centígrado de los grados. Al lado correcto del bloque de metal, el calor está fluyendo del bloque al aire circundante a una proporción constante. Todos los otros límites del bloque se aislan. Esto lleva al juego siguiente de condiciones del límite (cuando el descascarar apropiado de t es escogido):
(2)
en el lado izquierdo (Dirichlet condiciona)
(3)
en el lado correcto (Neumann condiciona)
(4)
En todos los otros límites (Neumann condicionan)
También, para la ecuación de calor nosotros necesitamos un valor inicial: la temperatura en el bloque de metal al t0 de tiempo de arranque. En este caso, la temperatura del bloque está 0 grados en el momento que nosotros empezamos aplicando el calor.
Finalmente, para completar la formulación del problema, nosotros especificamos que el tiempo de arranque es 0 y que nosotros queremos estudiar la distribución de calor durante los primeros cinco segundos.
Usando la Interfaz Gráfica de Usuario
Una vez usted ha empezado el pdetool GUI y seleccionó el modo de Scalar Genérico, mientras dibujando al modelo de CSG pueden hacerse muy rápidamente: Dibuje un rectángulo (R1) con las esquinas en x = [-0.5 0.5 0.5 -0.5] y y = [-0.8 -0.8 0.8 0.8]. Dibuje otro rectángulo (R2) para representar la cavidad rectangular. Sus esquinas deben tener las coordenadas x = [-0.05 0.05 0.05 -0.05] y y = [-0.4 -0.4 0.4 0.4]. Para ayudar dibujando el rectángulo estrecho que representa la cavidad, abra la Reja que Espacia la caja del diálogo de las Opciones y entre en el x-eje los tictaces extras a las -0.05 y 0.05. Entonces enciende la reja y el rasgo de la "chasquido-a-reja." Una cavidad rectangular con las dimensiones correctas es entonces fácil dibujar.
Los CSG planean del bloque de metal se expresa ahora simplemente como la fórmula fija R1-R2.
Salga el Dibuje el modo y entre en el modo del Límite pulsando el botón el botón, y continúa seleccionando los límites y especificando las condiciones del límite. Usando el Selecto Toda la opción del Revise el menú y definiendo la condición de Neumann entonces
(5)
Para todos los límites primero es una idea buena desde que eso deja sólo los leftmost y límites del rightmost para definir individualmente.
El próximo paso es abrir la PDE Especificación diálogo caja y entrar en los coeficientes de PDE.
El PDE parabólico genérico que la Caja de herramientas de PDE resuelve es:
(6)
Con el valor inicial u0 = u(t0) y las veces a que computar una solución especificaron en el tlist de la serie.
Para éste caso, se tiene d = 1, c = 1, a = 0, y f = 0.
Inicialice la malla pulsando el botón el botón. Si usted quiere, usted puede refinar la malla haciendo clic el botón Refine.
El valor inicial u0 = 0, y en la lista de tiempos se entra como la forma MATLAB [0:0.5:5]. Ellos se registran en el cuadro de dialogo de Resolución de Parametros, al cual se accede seleccionando Parameters . . . en el menú Solve.
El problema puede resolverse ahora. Presionando el botón = resuelve la ecuación de calor en 11 momentos diferentes de 0 a 5 segundos. Por defecto, una parcela interpolada de la solución, es decir, la distribución de calor, al final del palmo de tiempo se despliega.
Una manera más interesante de visualizar la dinámica del proceso de distribución de calor es animar la solución. Para empezar una animación, verifique la caja de Animation en el cuadro de dialogo Plot selection. También, seleccione el colormap hot. Pulse el botón Plot para iniciar la grabación de la solución, en una ventana por separado. La animación grabada se toca cinco veces entonces.
Obsérvese que la temperatura en el bloque sube muy rápidamente. Mejorar la animación y enfocar en el primer segundo, intente cambiar la lista de tiempos a la expresión de MATLAB logspace(-2,0.5,20).
También, intente cambiar el coeficiente de capacidad de calor d y el calor fluyen al límite del rightmost, para ver cómo ellos afectan la distribución de calor.
Usando Funciones del Comando-línea
Primero, se debe crear geometría y condición de límite M-files (archivos MATLAB). Los M-files fueron creados unando el pdetool. La geometría del bloque de metal se describe en crackg.m, las condiciones de límite pueden encontrase en crackb.m.
Para crear un mesh inicial, ingrésese initmesh:
» [p,e,t]=initmesh('crackg');
La ecuación de calor ahora puede ser resuelta usando la función de herramientas PDE parabolic. EL PDE parabólico genérico que resuelve a parabolic es:
(7)
Con el valor inicial u0 = u(t0) y las veces en que se computan una solución se especifican en el tlist de la serie. Para éste caso, usted tiene d = 1, c = 1, a = 0, y f = 0. El valor inicial u0 = 0, y la lista de tiempo, el tlist, se pone el MATLAB 0:0.5:5.
Para computer la solución, indique parabolic:
u=parabolic(0,0:0.5:5,'crackb',p,e,t,1,0,0,1);
La solución u creó de ésta manera una matriz con 11 columnas, donde cada columna corresponde a tiempo a la solución a los 11 puntos en tiempo 0,0.5, . . . ,4.5,5.0.
Permítanos trazar la solución a t= 5.0 segundos que usan sombreado interpolado y una malla oculta. Use el hot colormap:
pdeplot(p,e,t,'xydata',u(:,11),'mesh','off',...
'colormap','hot')
Proceso de MATLAB
% We solve the standard heat equation with a source term
% du/dt-div(grad(u))=1
% on a square with a discontinuous initial condition.
pause % Strike any key to continue.
% Problem definition
g='squareg'; % The unit square
b='squareb1'; % 0 on the boundary
c=1;
a=0;
f=1;
d=1;
% Mesh
[p,e,t]=initmesh(g);
% Initial condition: 1 inside the circle with radius 0.4.
% 0 otherwise.
u0=zeros(size(p,2),1);
ix=find(sqrt(p(1,:).^2+p(2,:).^2)<0.4);
u0(ix)=ones(size(ix));
pause % Strike any key to continue.
% We want the solution at 20 points in time between 0 and 0.1.
nframes=20;
tlist=linspace(0,0.1,nframes);
% Solve parabolic problem
u1=parabolic(u0,tlist,b,p,e,t,c,a,f,d);
Time: 0.00526316
Time: 0.0105263
Time: 0.0157895
Time: 0.0210526
Time: 0.0263158
Time: 0.0315789
Time: 0.0368421
Time: 0.0421053
Time: 0.0473684
Time: 0.0526316
Time: 0.0578947
Time: 0.0631579
Time: 0.0684211
Time: 0.0736842
Time: 0.0789474
Time: 0.0842105
Time: 0.0894737
Time: 0.0947368
Time: 0.1
75 successful steps
1 failed attempts
154 function evaluations
1 partial derivatives
17 LU decompositions
153 solutions of linear systems
pause % Strike any key to continue.
% To speed up the plotting, we interpolate to a rectangular grid.
x=linspace(-1,1,31);y=x;
[unused,tn,a2,a3]=tri2grid(p,t,u0,x,y);
% Make the animation
newplot;
Mv = moviein(nframes);
umax=max(max(u1));
umin=min(min(u1));
for j=1:nframes,...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
u=tri2grid(p,t,u1(:,j),tn,a2,a3);i=find(isnan(u));u(i)=zeros(size(i));...
surf(x,y,u);caxis([umin umax]);colormap(cool),...
axis([-1 1 -1 1 0 1]);...
Mv(:,j) = getframe;...
end
% Show movie
movie(Mv,10)
pause % Strike any key to end.
echo off
Conclusiones
El objetivo fue el estudio de algunos problemas matemáticos asociados a sistemas de ecuaciones diferenciales en derivadas parciales parabólicas:
-
Las ecuaciones derivadas parciales tienen un sin fin de usos en el diseño y la ingeniería
-
El Toolbox numérico nos permite trabajar de mejor manera las ecuaciones derivadas parciales facilitando el trabajo y brindándonos mayores alternativas
-
La resolución de estos problemas es vital el estudios de los métodos de diferencias finitas
-
Mediante las graficas de resultados podemos comprar múltiples datos obtenidos de manera mas confiable
.
7
Descargar
Enviado por: | Juan Ernesto La Riva Amaya |
Idioma: | castellano |
País: | Venezuela |