EDP Elípticas [ concepto ] Método implícito: [ Analítico ] [ Algoritmo ]
1. EDP Elípticas: Método Implícito – Desarrollo Analítico
con el resultado desarrollado en EDP elípticas para:
\frac{\partial ^2 u}{\partial x^2} + \frac{\partial ^2 u}{ \partial y^2} = 0y con el supuesto que: \lambda = \frac{(\Delta y)^2}{(\Delta x)^2} = 1
se puede plantear que:
u_{i+1,j}-4u_{i,j}+u_{i-1,j} + u_{i,j+1} +u_{i,j-1} = 0con lo que para el método implícito, se plantea un sistema de ecuaciones para determinar los valores en cada punto desconocido.
j=1, i =1
u_{2,1}-4u_{1,1}+u_{0,1} + u_{1,2} +u_{1,0} = 0 u_{2,1}-4u_{1,1}+Ta + u_{1,2} +Tc= 0 -4u_{1,1}+u_{2,1}+u_{1,2} = -(Tc+Ta)j=1, i =2
u_{3,1}-4u_{2,1}+u_{1,1} + u_{2,2} +u_{2,0} = 0 u_{3,1}-4u_{2,1}+u_{1,1} + u_{2,2} +Tc = 0 u_{1,1}-4u_{2,1}+u_{3,1}+ u_{2,2}= -Tcj=1, i=3
u_{4,1}-4u_{3,1}+u_{2,1} + u_{3,2} +u_{3,0} = 0 Tb-4u_{3,1}+u_{2,1} + u_{3,2} +Tc = 0 u_{2,1} -4u_{3,1} + u_{3,2} = -(Tc+Tb)j=2, i=1
u_{2,2}-4u_{1,2}+u_{0,2} + u_{1,3} +u_{1,1} = 0 u_{2,2}-4u_{1,2}+Ta + u_{1,3} +u_{1,1} = 0 -4u_{1,2}+u_{2,2}+u_{1,1}+u_{1,3} = -Taj = 2, i = 2
u_{1,2}-4u_{2,2}+u_{3,2} + u_{2,3} +u_{2,1} = 0j = 2, i = 3
u_{4,2}-4u_{3,2}+u_{2,2} + u_{3,3} +u_{3,1} = 0 Tb-4u_{3,2}+u_{2,2} + u_{3,3} +u_{3,1} = 0 u_{2,2} -4u_{3,2}+ u_{3,3} +u_{3,1} = -Tbj=3, i = 1
u_{2,3}-4u_{1,3}+u_{0,3} + u_{1,4} +u_{1,2} = 0 u_{2,3}-4u_{1,3}+Ta + Td +u_{1,2} = 0 -4u_{1,3}+u_{2,3}+u_{1,2} = -(Td+Ta)j=3, i = 2
u_{3,3}-4u_{2,3}+u_{1,3} + u_{2,4} +u_{2,2} = 0 u_{3,3}-4u_{2,3}+u_{1,3} + Td +u_{2,2} = 0 +u_{1,3} -4u_{2,3}+u_{3,3} +u_{2,2} = -Tdj=3, i=3
u_{4,3}-4u_{3,3}+u_{2,3} + u_{3,4} +u_{3,2} = 0 Tb-4u_{3,3}+u_{2,3} + Td +u_{3,2} = 0 u_{2,3}-4u_{3,3}+u_{3,2} = -(Td+Tb)con las ecuaciones se arma una matriz:
A = np.array([ [-4, 1, 0, 1, 0, 0, 0, 0, 0], [ 1,-4, 1, 0, 1, 0, 0, 0, 0], [ 0, 1,-4, 0, 0, 1, 0, 0, 0], [ 1, 0, 0,-4, 1, 0, 1, 0, 0], [ 0, 1, 0, 1,-4, 1, 0, 1, 0], [ 0, 0, 1, 0, 1,-4, 0, 0, 1], [ 0, 0, 0, 1, 0, 0,-4, 1, 0], [ 0, 0, 0, 0, 1, 0, 1,-4, 1], [ 0, 0, 0, 0, 0, 1, 0, 1,-4], ]) B = np.array([-(Tc+Ta),-Tc,-(Tc+Tb), -Ta, 0, -Tb, -(Td+Ta),-Td,-(Td+Tb)])
que al resolver el sistema de ecuaciones se obtiene:
>>> Xu array([ 56.43, 55.71, 56.43, 60. , 60. , 60. , 63.57, 64.29, 63.57])
ingresando los resultados a la matriz u:
xi= [ 0. 0.5 1. 1.5 2. ] yj= [ 0. 0.38 0.75 1.12 1.5 ] matriz u [[ 60. 60. 60. 60. 60. ] [ 50. 56.43 60. 63.57 70. ] [ 50. 55.71 60. 64.29 70. ] [ 50. 56.43 60. 63.57 70. ] [ 60. 60. 60. 60. 60. ]] >>>
EDP Elípticas [ concepto ] Método implícito: [ Analítico ] [ Algoritmo ]
1. EDP Elípticas: Método Implícito – Desarrollo Analítico
Instrucciones en Python
# Ecuaciones Diferenciales Parciales # Elipticas. Método implícito import numpy as np # INGRESO # Condiciones iniciales en los bordes Ta = 60 Tb = 60 Tc = 50 Td = 70 # dimensiones de la placa x0 = 0 xn = 2 y0 = 0 yn = 1.5 # discretiza, supone dx=dy tramosx = 4 tramosy = 4 dx = (xn-x0)/tramosx dy = (yn-y0)/tramosy maxitera = 100 tolera = 0.0001 A = np.array([ [-4, 1, 0, 1, 0, 0, 0, 0, 0], [ 1,-4, 1, 0, 1, 0, 0, 0, 0], [ 0, 1,-4, 0, 0, 1, 0, 0, 0], [ 1, 0, 0,-4, 1, 0, 1, 0, 0], [ 0, 1, 0, 1,-4, 1, 0, 1, 0], [ 0, 0, 1, 0, 1,-4, 0, 0, 1], [ 0, 0, 0, 1, 0, 0,-4, 1, 0], [ 0, 0, 0, 0, 1, 0, 1,-4, 1], [ 0, 0, 0, 0, 0, 1, 0, 1,-4], ]) B = np.array([-(Tc+Ta),-Tc,-(Tc+Tb), -Ta,0,-Tb, -(Td+Ta),-Td,-(Td+Tb)]) # PROCEDIMIENTO # Resuelve sistema ecuaciones Xu = np.linalg.solve(A,B) [nx,mx] = np.shape(A) xi = np.arange(x0,xn+dx,dx) yj = np.arange(y0,yn+dy,dy) n = len(xi) m = len(yj) u = np.zeros(shape=(n,m),dtype=float) u[:,0] = Tc u[:,m-1] = Td u[0,:] = Ta u[n-1,:] = Tb u[1:1+3,1] = Xu[0:0+3] u[1:1+3,2] = Xu[3:3+3] u[1:1+3,3] = Xu[6:6+3] # SALIDA np.set_printoptions(precision=2) print('xi=') print(xi) print('yj=') print(yj) print('matriz u') print(u)
La gráfica de resultados se obtiene de forma semejante al ejercicio con método iterativo.
Se podría estandarizar un poco más el proceso para que sea realizado por el algoritmo y sea más sencillo generar la matriz con más puntos. Tarea.