Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ecuaciones Diferenciales Parciales Elipticas
Ecuaciones Diferenciales Parciales Elipticas
HUÁNUCO – 2 009
SOLUCIONES NUMÉRICAS PARA LAS ECUACIONES
DIFERENCIALES PARCIALES
CUERPO ISOTROPICO
Si la conductividad térmica en cada uno de los puntos es independiente
de la dirección del flujo de calor a través del punto.
En un punto la Tº se obtiene resolviendo la siguiente ecuación
y
S (x,y):la temperatura se
mantiene
R constante a g(x,y)
grados
x
Este método permite el cálculo de la derivada de orden r
de señales discretas, a partir de la determinación de las
diferencias centrales existentes entre datos consecutivos,
la cual viene dada de forma general mediante:
Para el cálculo de la derivada de cualquier orden se
sustituye r en la ecuación anterior por el orden de la
derivada de interes, obteniéndose para las derivadas de
primer, segundo, tercer y cuarto orden las siguientes
expresiones que corresponden a los valores de r=1; r=2;
r=3 y r=4 respectivamente.
En la forma de diferencias, esto da como resultado el
método de las diferencias centrales con un error local de
truncamiento del orden ;
h 2 h
2
ym = d
. . .
. . .
. . .
. . .
. . .
. . . xi = a + ih, para cada i = 0, 1, 2, 3, . . . , n,
y2
. . . yi = c + jk, para cada j = 0, 1, 2, 3, . . . , m.
y1
. . .
y0 = c
x 0= a x1 x2 x3 x4 x n= b
Las líneas son líneas de cuadrícula, y sus intersecciones
son los puntos de red de la cuadrícula. En cada punto de
red del interior de la cuadrícula con i = 1, 2, …, n-1 y con j
= 1, 2, …, m-1, utilizando la serie de Taylor en la variable
x alrededor de Xi para generar la fórmula de las
diferencias centrales:
También usamos
i (x i - la
1, xserie
i +1 ) de Taylor en la variable y
alrededor de Yi para generar la fórmula de las diferencias
centrales:
Donde
i ( y i - 1, y i +1 )
El uso de estas fórmulas nos permite expresar la ecuación de
Poisson en los puntos como: (xi ,y j )
yj + 1 X
yj X X
X
yj -1 X
a xi - 1 xi xi + 1
b
Si utilizamos la información de las condiciones de frontera siempre que
sea conveniente en el sistema dado, es decir, en todos los puntos
(x ired
adyacentes al punto de , y j de
) la frontera, tendremos un sistema lineal
(n-1)(m-1) por
(n-1)(m-1) cuyas incógnitas son las aproximaciones a w i,j en el
u(x i ,y j ) interior de los puntos de red.
El sistema lineal que contiene estas incógnitas se expresa más
eficientemente en cálculos matriciales, si se introduce un remarcaje de
los puntos interiores de la red. Un sistema de marcaje de estos puntos
consiste en utilizar
Pl = (xi , y j ) y Wl = wi,j,
Donde l = i + (m - 1 – j)(n – 1), para toda i = 1, 2, … , n-1 y j = 1, 2,
…, m-1. Y así se marcan consecutivamente los puntos de red de
izquierda a derecha y de arriba abajo. Por ejemplo, con n = 4 y m = 5
con el remarque se obtiene una cuadrícula cuyos puntos se muestran en
el gráfico. Al marcar los puntos de este modo, se garantiza que el
sistema necesario para determinar sea una matriz de banda con
un ancho de banda máximo de 2n-1.
y5
P1 P2 P3
y4
P4 P5 P6
y3
y2 P7 P8 P9
y0
xo x1 x2 x3 x4
a, b, c, d, m, n,
PROCESO
PROCESO X, Y, v,t,
f, g(condiciones
de frontera), F, w
tol, N
a: Limite inferior de las abscisas
b: Limite superior de las abscisas
c: Limite inferior de las ordenadas
d: Limite superior de las ordenadas
n: Numero de particiones del intervalo [a,b]
m: Numero de particiones del intervalo [c,d]
fun1: La función general, g(x,y)
fun2: La función, f(x,y)
tol: Tolerancia para las iteraciones
N: El numero de iteraciones
w(i,j): Variable matricial que aproxima a g(x,y)
h: Equidistancia entre los nudos horizontales
k: Equidistancia entre los nudos verticales
l: Contador que asigna el número de iteraciones
norm: Variable estático o valor constante
X: Vector fila que representa a las abscisas
Y: Vector fila que representa a las ordenadas
F: Matriz que representa a los puntos de f(x,y)
G: Matriz que representa a los puntos de G(x,y)
Para el comprender mejor el programa
se ha realizado un diagrama de flujo,
mediante el cual este programa puede
ser codificado en cualquier lenguaje de
programación, facilitando así a la
persona interesada en programar este
tema.
INICIO
INICIO
LEER:a,b,c,d,n,m,fun,fun1,fun2,fun
LEER:a,b,c,d,n,m,fun,fun1,fun2,fun F=zeros(n+1,m+1);
3,fun4,tol,N F=zeros(n+1,m+1);
3,fun4,tol,N
FOR i=1: n+1
FOR i=1: n+1
h=(b-a)/n; k=(d-c)/m;
h=(b-a)/n; k=(d-c)/m;
X=zeros(1,n+1); Y=zeros(1,m+1); FOR j=1:m+1
X=zeros(1,n+1); Y=zeros(1,m+1); FOR j=1:m+1
v=zeros(1,n+1); t=zeros(1,m+1);
v=zeros(1,n+1); t=zeros(1,m+1);
y=Y(j);
y=Y(j);
FOR i=1: n+1 x=X(i);
FOR i=1: n+1 x=X(i);
F(i,j)=eval(fun);
F(i,j)=eval(fun);
X(i)=a+(i-1)*h; NEXT (j)
X(i)=a+(i-1)*h; NEXT (j)
NEXT (i) NEXT (i)
NEXT (i) NEXT (i)
FOR j=1: m+1 w=zeros(n-1,m-1);
FOR j=1: m+1 w=zeros(n-1,m-1);
la=(h^2)/(k^2);
la=(h^2)/(k^2);
Y(i)=a+(i-1)*k; mu=2*(1+la); l=1;
Y(i)=a+(i-1)*k; mu=2*(1+la); l=1;
abs(w(i-1,m-1)-z)>norm
F abs(w(i-1,m-1)-z)>norm
NEXT (j) F
NEXT (j)
V
V
norm=abs(w(i-1,m-1)-z);
norm=abs(w(i-1,m-1)-z);
w(i-1,m-1)=z;
w(i-1,m-1)=z;
NEXT (i)
NEXT (i)
A
A
A B
A B
z=(-h^2*F(n,m)+t(m)+la*v(n)+w(n-2,m-1)+la*w(n-1,m-2))/mu
z=(-h^2*F(n,m)+t(m)+la*v(n)+w(n-2,m-1)+la*w(n-1,m-2))/mu z=(-h^2*F(n,j)+t(j)+w(n-2,j-1)+la*w(n-1,j)+la*w(n-1,j-2))/mu;
abs(w(n-1,m-1)-z)>norm
F abs(w(n-1,m-1)-z)>norm abs(w(n-1,j-1)-z)>norm
F F abs(w(n-1,j-1)-z)>norm
F
V
V V
V
norm=abs(w(n-1,m-1)-z);
norm=abs(w(n-1,m-1)-z); norm=abs(w(n-1,j-1)-z);
w(n-1,m-1)=z; norm=abs(w(n-1,j-1)-z);
w(n-1,m-1)=z; w(n-1,j-1)=z;
w(n-1,j-1)=z;
for j=m-1:-1:3
for j=m-1:-1:3 NEXT (j)
NEXT (j)
z=(-h^2*F(2,j)+Y(j)+la*w(1,j)+la*w(1,j-2)+w(2,j-1))/mu
z=(-h^2*F(2,2)+G(1,2)+la*G(2,1)+la*w(1,2)+w(2,1))/mu;
abs(w(1,j-1)-z)>norm
F abs(w(1,j-1)-z)>norm
F abs(w(1,1)-z)>norm
F abs(w(1,1)-z)>norm
F
V
V
V
norm=abs(w(1,j-1)-z); V
norm=abs(w(1,j-1)-z);
w(1,j-1)=z; norm=abs(w(1,1)-z);
w(1,j-1)=z; norm=abs(w(1,1)-z);
w(1,1)=z;
w(1,1)=z;
FOR i=3:n-1
FOR i=3:n-1
FOR i=3:n-1
z=(-h^2*F(i,j)+w(i-2,j-1)+la*w(i-1,j)+w(i,j-1)+la*w(i-1,j-2))/mu FOR i=3:n-1
z=(-h^2*F(i,j)+w(i-2,j-1)+la*w(i-1,j)+w(i,j-1)+la*w(i-1,j-2))/mu
z=(-h^2*F(i,2)+la*X(i)+w(i-2,1)+la*w(i-1,2)+w(i,1))/mu;
abs(w(i-1,j-1)-z)>norm
abs(w(i-1,j-1)-z)>norm abs(w(i-1,1)-z)>norm
F abs(w(i-1,1)-z)>norm
F
F
F
V
V V
V
norm=abs(w(i-1,j-1)-z);
norm=abs(w(i-1,j-1)-z); norm=abs(w(i-1,1)-z);
w(i-1,j-1)=z; norm=abs(w(i-1,1)-z);
w(i-1,j-1)=z; w(i-1,1)=z;
w(i-1,1)=z;
z=(-h^2*F(n,2)+t(2)+la*X(n)+w(n-2,1)+la*w(n-1,2))/mu
z=(-h^2*F(n,2)+t(2)+la*X(n)+w(n-2,1)+la*w(n-1,2))/mu
abs(w(n-1,j1)-z)>norm
abs(w(n-1,j1)-z)>norm
F
F
V
V
norm=abs(w(n-1,1)-z);
norm=abs(w(n-1,1)-z);
w(n-1,1)=z;
w(n-1,1)=z;
V
V V
V
IMPRIMIR X, Y, v,t, F, w,“Procedimiento terminado con éxito IMPRIMIR X, Y, v,t, F, w, ”Excedió el numero máximo de
IMPRIMIR X, Y, v,t, F, w,“Procedimiento
para l” terminado con éxito IMPRIMIR X, Y, v,t, F,iteraciones
w, ”Excedió el numero máximo de
a N”
para l” iteraciones
“Procedimiento a N” sin éxito…”
terminado
“Procedimiento terminado sin éxito…”
l=N;
l=N;
l=l+1;
l=l+1;
END WHILE
END WHILE
END
END
CODIFICACIÓN EN MATLAB
OBSERVACIONES
El numero de particiones; h, k; deben ser mayores o iguales que 3.
El tipo de problema que se presenta es mayormente de temperaturas
de placas o semejante a ellos con consideraciones de frontera.
En el grafico que se muestra al ejecutar el programa la parte oscura
representa temperatura cero en las tronteras.
El resultado se muestra en una matriz (A) que es lo mismo que (w)
que tiene dimensiones de (n-1 x m-1),
EJEMPLO
Consideremos el problema de determinar la distribución de calor en estado
estable, en una placa cuadrada metálica delgada, con las dimensiones 0.5 m
por 0.5 m. Conservamos dos fronteras adyacentes de 0º C, mientras el calor
en las otras dos fronteras aumenta linealmente de 0º C en una esquina a
100º C en el sitio donde ambos lados se encuentran. Si ponemos los lados
con las condiciones de frontera cero a lo largo de los ejes x y y, el problema
se expresa así:
2u(x,y) 2u(x,y)
+ =0
x 2
y 2
u( x , 0.5 ) = 200x
0.5
P1 P2 P3
P4 P5 P6
u( 0 , y ) = 0 u( 0.5 , y ) = 200y
P7 P8 P9
u( x , 0 ) = 0 0.5
Y=
v=
0 25 50 75 100
t=
0 25 50 75 100
F=
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
w=
Y=
v=
t=
F=
0 0 0 0 0 0 0
0.4000 0.4725 0.5582 0.6595 0.7791 0.9204 1.0873
0.8000 0.9451 1.1165 1.3190 1.5582 1.8408 2.1746
1.2000 1.4176 1.6747 1.9785 2.3373 2.7612 3.2619
1.6000 1.8902 2.2330 2.6380 3.1164 3.6816 4.3493
2.0000 2.3627 2.7912 3.2974 3.8955 4.6020 5.4366
w=