Discretización de la ecuación de Poisson en 1D, 2D y 3D

En $latex 1D$ tenemos:

$latex u_{xx} = f(x)$,

con $latex 0 < x < 1$ y $latex u(0)= u(1)=0$. Particionamos el dominio en $latex n$ subintervalos introduciendo los puntos $latex x_i = ih$ con $latex h=frac{1}{n}$. De esta manera, para cada uno de los puntos interiores reemplazamos las derivadas por su aproximación de segundo orden en diferencias finitas (a partir de Taylor alrededor de $latex x_i$):

$latex frac{partial^2}{partial x^2} u(x_i) = frac{u_{i-1} -2 u_i + u_{i+1}}{h^2} – frac{h^2}{12} frac{partial^4}{partial x^4}u(xi_i)$

con $latex xi_i in (x_{i-1}, x_{i+1})$ por lo que:

$latex frac{v_{i-1}-2v_i+v_{i+1}}{h^2} = f_i$.

con un error de truncamiento local del orden de $latex O(h^2)$ y donde utilizamos la $latex v$ para hablar de la aproximación a la $latex u$. Si lo escribimos de manera matricial, tenemos:

$latex frac{1}{h^2} begin{bmatrix} -2 & 1 & & & & & \ 1 & -2 & 1 & & & & \ & 1 & -2 & 1 & & & \ & & cdot & cdot & cdot & & \ & & & cdot & cdot & cdot & \ & & & & 1 & -2 & 1 \ & & & & & 1 & -2end{bmatrix} begin{bmatrix} v_1 \ v_2 \ v_3 \ cdot \ cdot \ v_{n-2} \ v_{n-1} end{bmatrix} = begin{bmatrix} f_1 \ f_2 \ f_3 \ cdot \ cdot \ f_{n-2} \ f_{n-1} end{bmatrix}$

Existen otros esquemas de mayor orden para la aproximación, por ejemplo el esquema central de cuarto orden:

$latex frac{partial^2}{partial x^2} u(x_i) = frac{-u_{i-2}+16u_{i-1}-30u_{i}+16u_{i+1}-u_{i+2}}{12 h^2} + frac{h^4}{90} frac{partial^6}{partial x^6}u(xi_i)$

con $latex xi_i in (x_{i-2},x_{i+2})$.

En $latex 2D$ tenemos:

$latex u_{xx}+u_{yy} = f(x,y)$,

con $latex 0 < x < 1$, $latex 0 < y < 1$ y $latex u=0$ en el cuadrado unidad. Particionamos el dominio en $latex n_x times n_y$ subintervalos introduciendo los puntos $latex (x_i,y_j) = (ih_x, jh_y)$ con $latex h_x=frac{1}{n_x}$ y $latex h_y = frac{1}{n_y}$. De esta manera, para cada uno de los puntos interiores reemplazamos las derivadas por su aproximación de segundo orden en diferencias finitas:

$latex frac{v_{i-1,j}-2v_{i,j}+v_{i+1,j}}{h_x^2}+frac{v_{i,j-1}-2v_{i,j}+v_{i,j+1}}{h_y^2} = f_{i,j}$

con $latex v_{0,j} = v_{n_x,j} = v_{i,0} = u_{i,n_y} = 0$. Tenemos un error local de truncamiento del orden de $latex O(h_x^2+h_y^2)$.

Si hacemos $latex h_x = h_y = h$ nos queda una plantilla, que representa un operador que interactua localmente en la malla, como esta:

$latex A = frac{1}{h^2} begin{bmatrix} & 1 & \ 1 & -4 & 1 \ & 1 & end{bmatrix}$

En $latex 3D$ tenemos:

$latex u_{xx} + u_{yy} + u_{zz} = f(x,y,z)$,

con $latex 0 < x, y, z < 1$ y $latex u=0$ en la frontera del cubo unitario. Procediento de la misma manera que antes tenemos:

$latex frac{v_{i-1,j,k}-2v_{i,j,k}+v_{i+1,j,k}}{h_x^2}+frac{v_{i,j-1,k}-2v_{i,j,k}+v_{i,j+1,k}}{h_y^2} + frac{v_{i,j,k-1}-2v_{i,j,k}+v_{i,j,k+1}}{h_z^2}= f_{i,j,k}$

En este caso, la manera mas sencilla de representar el operador local es mediante el tensor:

$latex A = frac{1}{h^2} a_{ijk}$ con $latex a_{0jk}=begin{bmatrix} & & \ & 1 & \ & & end{bmatrix}, a_{1jk}=begin{bmatrix} & 1 & \ 1 & -6 & 1 \ & 1 & end{bmatrix}$ y $latex a_{2jk} = begin{bmatrix} & & \ & 1 & \ & & end{bmatrix}$

si $latex h_x = h_y = h_z = h$.

Tags: , ,

Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


¡IMPORTANTE! Responde a la pregunta: ¿Cuál es el valor de 2 7 ?