Diferencia entre revisiones de «Ecuaciones de Laplace y de Poisson»

De MateWiki
Saltar a: navegación, buscar
(Ecuación de Laplace)
Línea 109: Línea 109:
  
 
=== Comportamiento de la solución ===
 
=== Comportamiento de la solución ===
 +
 +
== Ecuación de Poisson ==
 +
 +
En esta parte del documento se va a proceder a resolver la ecuación de Poisson mediante un nuevo método. En primer lugar, esta ecuación viene dada por  <math> \Delta u = f </math> siendo <math>u:\mathbb{R}^n \rightarrow \mathbb{R}</math>y <math> f \in C^2(\mathbb{R})</math>. Para este estudio se particularizará para n=2 y n=3.
 +
 +
Se comenzará definiendo la solución fundamental de esta ecuación, pues se utilizará posteriormente para calcular el potencial newtoniano o logarítimico. Esta viene dada por <math>  \phi(x) = -\frac{1}{2\pi} log(|x|) </math> si n=2 y <math>  \phi(x) = \frac{1}{4\pi |x| } </math> si n=3.
 +
=== Potencial newtoniano para <math> \mathbb{R}^3</math> ===
 +
Supongamos que <math> f(x) </math>
 +
representa la densidad de una carga contenida en un conjunto compacto dentro del espacio tridimensional <math> \mathbb{R}^3</math>.
 +
 +
Entonces, la expresión <math> \phi(x-y)f(y)dy</math> denota el potencial en el punto x. De esta manera el potencial total viene dado por la siguiente expresión:
 +
 +
<center><math> u(\mathbf{x}) = \int_{\mathbb{R}^n} f(\mathbf{y}) \phi(\mathbf{x} - \mathbf{y}) d\mathbf{y} </math></center>
 +
 +
Esta fórmula se conoce como potencial Newtoniano de f y se aplica sobre funciones que en el infinito tienden de manera rápida a cero.
 +
 +
A su vez, sea <math>f \in C^2(\mathbb{R}^3)</math> con soporte compacto. Sea <math>u</math> el potencial newtoniano de <math>f</math>, definido por el potencial Newtoniano. Entonces, <math>u</math> es la única solución en <math>\mathbb{R}^3</math> de <math>\Delta u = -f</math>  que pertenece a <math>C^2(\mathbb{R}^3)</math> y se anula en el infinito. Es decir, dado:
 +
<center><math>  \begin{cases}
 +
    \Delta u = -f \\
 +
  u(x) \rightarrow 0  & \text{si } |x| \rightarrow \infty
 +
\end{cases}</math></center>
 +
su solución viene dada por el potencial newtoniano que se presenta anteriormente.
 +
 +
=== Potencial logarítmico para <math> \mathbb{R}^2</math> ===
 +
Si el problema se presenta en <math> \mathbb{R}^2</math> el potencial newtoniano se sustituye por el potencial logarítimico:
 +
<center><math> u(\mathbf{x}) = -\frac{1}{2\pi}\int_{\mathbb{R}^2}  log|\mathbf{x} - \mathbf{y}|f(\mathbf{y}) d\mathbf{y} </math></center>
 +
 +
De esta manera, Sea <math>f \in C^2(\mathbb{R}^2)</math> con soporte compacto, <math>u(\mathbf{x})</math> es la única solución en <math>\mathbb{R}^2</math> de:
 +
<center><math>  \begin{cases}
 +
    \Delta u = -f \\
 +
  u(x)=-\frac{M}{2\pi} log |x| + O\left(\frac{1}{|x|} \right)  & \text{si } |x| \rightarrow \infty
 +
\end{cases}</math></center>
 +
donde <center><math> M= \int _{\mathbb{R}^2} f(\mathbf y) d\mathbf y</math></center>.
 +
=== Ejemplo ===
 +
A continuación, veremos un ejemplo de lo explicado anteriormente para una correcta comprensión de ello. De esta manera, mediante el potencial logarítmico se aproximará la ecuación de Poisson cuando f sea la función característica de la bola de radio 1 y se estudiará su comportamiento en el infinito.
 +
 +
 +
Para resolver este ejemplo se ha realizado un código en Matlab. La integral se ha simplificado de la siguiente manera:
 +
<center><math> -\frac{1}{2\pi}\int_{\partial B_1 0} log|\mathbf{x} - \mathbf{y}| d\mathbf{y} = -\frac{\pi}{4}\frac{1}{2\pi}\int_{-1} ^1 \int_{-1} ^1 log|\mathbf{x} - \mathbf{y}| dx dy </math></center>
 +
{{matlab|codigo=
 +
%aSe divide el dominio de cada variable en 200 puntos. Para y1 e y2 se coge
 +
%el intervalo [-1,1] pues cuando este fuera de este intervalo la función vale 0 y por tanto la integral se anulará y para x1 y x2 se coge un intervalo muy grande pues la función tiene dominio todo R2.
 +
i1 = linspace(-1,1,200);
 +
i2 = linspace(-1,1,200);
 +
i3 = linspace(-10^4,10^4,200);
 +
i4 = linspace(-10^4,10^4,200);
 +
 +
% Se define la función f anteriormente obtenida
 +
f = @(y1, y2, x1, x2) -(pi/4)*(1/(2*pi))*log(sqrt((y1-x1).^2 + (y2-x2).^2));
 +
 +
% Generamos una malla de puntos
 +
[A, B] = meshgrid(i1, i2);
 +
[C, D] = meshgrid(i3,i4);
 +
 +
%Creamos una matriz cero donde se irán metiendo los valores que
 +
%próximamente evaluaremos
 +
values = zeros(size(A));
 +
 +
% Se crea el siguiente bucle para obtener los valores que necesitamos para
 +
% la representación gráfica
 +
for i = 1:length(i1)
 +
    for j = 1:length(i2)
 +
        fnum = @(x, y) f(x, y, i3(i), i4(j)); % Se crea este bucle para ir evaluando f en los distintos puntos (x1,x2)
 +
        values(i, j) = trapz(i2, trapz(i1, fnum(A, B), 2)); % Evaluar fnum en la malla (A, B) y calcular la integral por el método del trapecio
 +
    end
 +
end
 +
 +
% Se dibujan todos los puntos obtenidos
 +
surf(C,D,values)
 +
}}
 +
 +
La representación obtenida es la siguiente:
 +
 +
[[Archivo: Unoaitana.jpg|400px|thumb|center|Representación de la solución ]]
 +
 +
 +
A continuación se va a comprobar si la solución se comporta de la manera esperada en el infinito. Tal y como se ha especificado anteriormente el comportamiento asintótico sigue la siguiente función:
 +
 +
<center><math> u(x)=-\frac{M}{2\pi} log |x| + O(\frac{1}{|x|})</math></center>
 +
 +
siendo
 +
 +
<center><math> M= \int _{\mathbb{R}^2} f(\mathbf y) d\mathbf y</math></center>
 +
 +
 +
A continuación, se compara esta función con la solución obtenida anteriormente con el fin de observar si se comporta adecuadamente. Se ha creado el siguiente código:
 +
 +
{{matlab|codigo=
 +
graf=zeros(length(i1));
 +
xgraf=zeros(length(i1));
 +
for i = 1:length(i1)
 +
        fnum = @(x, y) f(x, y, i3(i), i4(i));
 +
       
 +
        graf(i) = trapz(i2, trapz(i1, fnum(A,B), 2));
 +
        xgraf(i)=sqrt(2*(i3(i)^2));
 +
end
 +
 +
 +
hold on
 +
hol= @(x) -1/2*log(x);
 +
valy = hol(xgraf);
 +
% Crear el gráfico de las líneas y los puntos
 +
hold on
 +
plot(xgraf, valy, '-','DisplayName','Función asintótica');
 +
plot(xgraf, graf, '*','DisplayName','Función obtenida');
 +
xlabel('Eje x')
 +
ylabel('Eje y')
 +
title('Gráfico función asintótica y función obtenida')
 +
}}
 +
 +
Se ha obtenido la siguiente gráfica, siendo la verde la función obtenida y la azul la función asintótica:
 +
[[Archivo: Dosaitana.jpg|400px|thumb|center|Representación de la solución ]]
 +
 +
Tal y como se ve, se observa que el comportamiento es el esperado.

Revisión del 14:48 19 abr 2024

1 Introducción

En este documento, nos centraremos en dos ecuaciones que tienen un amplio uso en diversos ámbitos como electrostática, mecánica de fluidos, física teórica y magnetostática: la ecuación de Laplace y la ecuación de Poisson. Ambas ecuaciones las estudiaremos en el plano y las veremos aplicadas en problemas concretos. Veremos las limitaciones que presenta la fórumla de Poisson así como diferentes métodos analíticos para aproximar soluciones, y raíz de esto, analizaremos errores de aproximación. Por último, estudiaremos el comportamiento de soluciones tanto en un dominio dado, utilizando la desigualdad de Harnack, como asintóticamente en infinito.

CREO QUE AQUÍ ME FALTAN PUNTOS Y COMAS

2 Ecuación de Laplace

La ecuación de Laplace, cuyo nombre nombre honra al distinguido físico-matemático Pierre-Simon Laplace, es una ecuación en derivadas parciales de tipo elíptico. REFERENCIA? Construyamos un problema de derivadas parciales a partir de la ecuación de Laplace. La ecuación es,

[math] \Delta u = 0 [/math]

con [math]u:\mathbb{R}^3 \rightarrow \mathbb{R}[/math] como incógnita. Esta ecuación se define en un dominio [math] \Omega [/math], y en su frontera [math] \partial \Omega [/math] se pueden añadir condiciones de contorno Dirichlet, Neuman o mixtas. En este trabajo nos centraremos en las condiciones de contorno de tipo Dirichlet, las cuales igualan [math] u [/math] a una función específica [math] g [/math]. Con todo esto, llegamos al siguiente problema de derivadas parciales.

[math] \begin{cases} \Delta u = 0, & \text{x} \in \Omega \\ u = g, & \text{x} \in \partial \Omega \end{cases}[/math]

A fin de comprender mejor este problema, podemos examinar el siguiente ejemplo en concreto.

2.1 Ejemplo bola unidad

Sea [math] B_1 ⊂ R^2 [/math] la bola unidad centrada en el origen. Planteamos el problema,

[math] \begin{cases} \Delta u = 0, & \text{x} \in B_1 \\ u = g, & \text{x} \in \partial B_1 \end{cases}[/math]

A lo largo de este documento, en lo que tiene que ver con la ecuación de Laplace, visitaremos este ejemplo varias veces.

2.2 Calcular la solución de la ecuación de Laplace en el plano

Dentro de la resolución del problema planteado existen varios métodos por los que proceder. En este trabajo estudiaremos dos: la fórmula de Poisson y la serie de Fourier.

2.2.1 Solución por la fórmula de Poisson

Encontrar la solución del problema mediante la fórmula de Poisson viene determinado por el siguiente teorema.

2.2.1.1 Teorema
La solución [math] u \in C^2(B_R \cup C(\overline{B_R}) [/math]del problema [math] \begin{cases} \Delta u = 0, & \text{x} \in B_R \\ u = g, & \text{x} \in \partial B_R \end{cases}[/math] donde [math]g[/math] es una función continua viene dado por la fórmula de Poisson
[math] u(\vec{x})=\frac{R^2-|\vec{x}|^2}{w_n R}\int_{\partial B_R}\frac{g(\sigma)}{|\vec{x}-\sigma|^2} d\sigma. [/math]


Es importante destacar que el denominador [math]|\vec{x}-\sigma|^2 [/math] se anula en la frontera de la bola llevándonos a una indeterminación y haciendo que la integral diverja. Esto también pasa si expresamos la fórmula en coordenadas polares [math](r, \theta)[/math]. Tomando,

[math]\vec{x} = (x_1, x_2) = (rcos(\theta), rsen(\theta)) [/math]
[math] g(rcos(\theta), rsen(\theta)) = G(\theta)[/math]

llegamos a la fórmula de Poisson,

[math] U(r,\theta)=\frac{R^2-r^2}{2\pi R}\int_{0}^{2\pi}\frac{g(s)}{R^2+r^2-2Rrcos(\theta-s)} ds. [/math]

En este caso, el denominador de la integral también se anula para puntos cercanos a la frontera, concretamente cuando el coseno se hace 1.

Veamos todo esto aplicado a la bola unidad pasado a coordenadas polares,

[math] \begin{cases} U_{rr} + \frac{1}{r} U_r + \frac{1}{r^2} U_{\theta\theta} = 0, & (r, \theta) \in B_1 \\ U(1, \theta) = G(\theta), & (r, \theta) \in \partial B_1 \end{cases}[/math]

Para la resolución de este problema vamos a tomar [math]G(\theta) = máx\{0, 1-\frac{2}{\pi} |\theta - \pi|\}[/math] y utilizaremos la fórmula de Poisson en polares tomando [math]R = 1[/math] y calculando la integral de manera aproximada con la fórmula del trapecio. Como hemos visto antes, la fórmula da problemas para puntos cercanos al borde. Esto lleva a una representación irregular de la frontera si dibujamos la solución sin tener en cuenta este problema.

FOTO SIN LA CONDICIÓN FRONTERA

Es por esto por lo que la condición frontera no es prescindible en el problema. Para estimar [math] U(r,\theta)[/math], utilizaremos la fórmula de Poisson para puntos ligeramente alejados del borde, y en el propio borde utilizaremos la condición frontera [math]U(R, \theta) = G(\theta)[/math].

FOTO CON LA CONDICION FRONTERA

En esta nueva gráfica podemos apreciar como la frontera no presenta las irregularidades anteriores. Para conseguir estas gráficas hemos implementado el siguiente código en MatLab.

CÓDICO

2.2.1.2 Errores de la fórmula de Poisson

Como hemos observado anteriormente, la fórmula de Poisson presenta ciertas dificultades a la hora de aproximar la solución en la frontera, debido a la singularidad inherente de la integral. En este apartado examinaremos estas irregularidades calculando el error de la aproximación frente a la solución exacta.

Volviendo al ejemplo de la bola unidad, esta vez vamos a suponer el problema,

[math] \begin{cases} \Delta u = 0, & \text{x} \in B_1 \\ u = g(x,y) = xy, & \text{x} \in \partial B_1 \end{cases}[/math]

que tiene como solución exacta la función armónica [math]u(x,y) = xy[/math]. Tal y como hemos hecho en el apartado anterior, calculamos la solución aproximada utilizando la fórmula de Poisson, la fórmula del trapecio y pasando a coordenadas polares.

[math] \begin{cases} U_{rr} + \frac{1}{r} U_r + \frac{1}{r^2} U_{\theta\theta} = 0, & (r, \theta) \in B_1 \\ U(1,\theta)=G(\theta)=\cos(\theta)\sin(\theta), & (r, \theta) \in \partial B_1 \end{cases}[/math]

Vamos a distinguir entre dos tipos de puntos, aquellos que estén "alejados" de la frontera y aquellos sean inmediatos a esta. Primero estudiaremos el error en puntos "alejados" de la frontera. Esto lo hacemos empleando distintas discretizaciones con [math] 10^n [/math] puntos en la fórmula del trapecio. Después, calculamos el error para cada discretización en un punto alejado, en este caso lo hacemos evaluando en [math]x = (r,\theta)=(0.9,\pi/4)[/math]. Posteriormente graficamos el error aplicando la fórmula,

[math]f(n):=\log_{10}(Error(10^n)), [/math]
.

Obteniendo así la siguiente gráfica.

GRAFICA DEL PUNTO ALEJADO DE LA FRONTERA

Los resultados de esta gráfica cuadran con nuestra intuición, a mayor número de puntos menor es el error que se comete. Además podemos apreciar que el error se acab estabilizando al rededor de [math]10^{-15}[/math]. Luego podemos concluir que la fórmula de Poisson proporciona una buena aproximación para puntos relativamente alejados de la frontera.


Estudiemos ahora el error cometido en puntos "cercanos" a la frontera. En este caso vamos utilizar una única discretización de 100 puntos de la fórmula del trapecio y puntos que cada vez se acercan más a la frontera. Partiendo del punto [math]x = (r,\theta)=(0.9,\pi/4)[/math] vamos a ir avanzando hacia la frontera con puntos de la forma [math](r,\theta)=(1-10^{-n}, \pi/4)[/math]. La gráfica entonces resulta ser:

GRÁFICA DEL PUNTO CERCA DE LA FRONTERA

En este caso el error incrementa según los puntos se acercan a la frontera y se acaba estabilizando en [math]-0,3[/math]. El código utilizado para dibujar estas gráficas es el siguiente.

CÓDIGO DE LOS ERRORES

2.2.2 Solución por la serie de Fourier

Una vez estudiada la solución por la fórmula de Poisson, en este apartado calcularemos la solución por serie de Fourier.

2.3 Comportamiento de la solución

3 Ecuación de Poisson

En esta parte del documento se va a proceder a resolver la ecuación de Poisson mediante un nuevo método. En primer lugar, esta ecuación viene dada por [math] \Delta u = f [/math] siendo [math]u:\mathbb{R}^n \rightarrow \mathbb{R}[/math]y [math] f \in C^2(\mathbb{R})[/math]. Para este estudio se particularizará para n=2 y n=3.

Se comenzará definiendo la solución fundamental de esta ecuación, pues se utilizará posteriormente para calcular el potencial newtoniano o logarítimico. Esta viene dada por [math] \phi(x) = -\frac{1}{2\pi} log(|x|) [/math] si n=2 y [math] \phi(x) = \frac{1}{4\pi |x| } [/math] si n=3.

3.1 Potencial newtoniano para [math] \mathbb{R}^3[/math]

Supongamos que [math] f(x) [/math] representa la densidad de una carga contenida en un conjunto compacto dentro del espacio tridimensional [math] \mathbb{R}^3[/math].

Entonces, la expresión [math] \phi(x-y)f(y)dy[/math] denota el potencial en el punto x. De esta manera el potencial total viene dado por la siguiente expresión:

[math] u(\mathbf{x}) = \int_{\mathbb{R}^n} f(\mathbf{y}) \phi(\mathbf{x} - \mathbf{y}) d\mathbf{y} [/math]

Esta fórmula se conoce como potencial Newtoniano de f y se aplica sobre funciones que en el infinito tienden de manera rápida a cero.

A su vez, sea [math]f \in C^2(\mathbb{R}^3)[/math] con soporte compacto. Sea [math]u[/math] el potencial newtoniano de [math]f[/math], definido por el potencial Newtoniano. Entonces, [math]u[/math] es la única solución en [math]\mathbb{R}^3[/math] de [math]\Delta u = -f[/math] que pertenece a [math]C^2(\mathbb{R}^3)[/math] y se anula en el infinito. Es decir, dado:

[math] \begin{cases} \Delta u = -f \\ u(x) \rightarrow 0 & \text{si } |x| \rightarrow \infty \end{cases}[/math]

su solución viene dada por el potencial newtoniano que se presenta anteriormente.

3.2 Potencial logarítmico para [math] \mathbb{R}^2[/math]

Si el problema se presenta en [math] \mathbb{R}^2[/math] el potencial newtoniano se sustituye por el potencial logarítimico:

[math] u(\mathbf{x}) = -\frac{1}{2\pi}\int_{\mathbb{R}^2} log|\mathbf{x} - \mathbf{y}|f(\mathbf{y}) d\mathbf{y} [/math]

De esta manera, Sea [math]f \in C^2(\mathbb{R}^2)[/math] con soporte compacto, [math]u(\mathbf{x})[/math] es la única solución en [math]\mathbb{R}^2[/math] de:

[math] \begin{cases} \Delta u = -f \\ u(x)=-\frac{M}{2\pi} log |x| + O\left(\frac{1}{|x|} \right) & \text{si } |x| \rightarrow \infty \end{cases}[/math]
donde
[math] M= \int _{\mathbb{R}^2} f(\mathbf y) d\mathbf y[/math]
.

3.3 Ejemplo

A continuación, veremos un ejemplo de lo explicado anteriormente para una correcta comprensión de ello. De esta manera, mediante el potencial logarítmico se aproximará la ecuación de Poisson cuando f sea la función característica de la bola de radio 1 y se estudiará su comportamiento en el infinito.


Para resolver este ejemplo se ha realizado un código en Matlab. La integral se ha simplificado de la siguiente manera:

[math] -\frac{1}{2\pi}\int_{\partial B_1 0} log|\mathbf{x} - \mathbf{y}| d\mathbf{y} = -\frac{\pi}{4}\frac{1}{2\pi}\int_{-1} ^1 \int_{-1} ^1 log|\mathbf{x} - \mathbf{y}| dx dy [/math]
%aSe divide el dominio de cada variable en 200 puntos. Para y1 e y2 se coge
%el intervalo [-1,1] pues cuando este fuera de este intervalo la función vale 0 y por tanto la integral se anulará y para x1 y x2 se coge un intervalo muy grande pues la función tiene dominio todo R2.
i1 = linspace(-1,1,200);
i2 = linspace(-1,1,200);
i3 = linspace(-10^4,10^4,200);
i4 = linspace(-10^4,10^4,200);

% Se define la función f anteriormente obtenida
f = @(y1, y2, x1, x2) -(pi/4)*(1/(2*pi))*log(sqrt((y1-x1).^2 + (y2-x2).^2));

% Generamos una malla de puntos
[A, B] = meshgrid(i1, i2);
[C, D] = meshgrid(i3,i4);

%Creamos una matriz cero donde se irán metiendo los valores que
%próximamente evaluaremos
values = zeros(size(A)); 

% Se crea el siguiente bucle para obtener los valores que necesitamos para
% la representación gráfica
for i = 1:length(i1)
    for j = 1:length(i2)
        fnum = @(x, y) f(x, y, i3(i), i4(j)); % Se crea este bucle para ir evaluando f en los distintos puntos (x1,x2)
        values(i, j) = trapz(i2, trapz(i1, fnum(A, B), 2)); % Evaluar fnum en la malla (A, B) y calcular la integral por el método del trapecio
    end
end

% Se dibujan todos los puntos obtenidos
surf(C,D,values)


La representación obtenida es la siguiente:

Representación de la solución


A continuación se va a comprobar si la solución se comporta de la manera esperada en el infinito. Tal y como se ha especificado anteriormente el comportamiento asintótico sigue la siguiente función:

[math] u(x)=-\frac{M}{2\pi} log |x| + O(\frac{1}{|x|})[/math]

siendo

[math] M= \int _{\mathbb{R}^2} f(\mathbf y) d\mathbf y[/math]


A continuación, se compara esta función con la solución obtenida anteriormente con el fin de observar si se comporta adecuadamente. Se ha creado el siguiente código:

graf=zeros(length(i1));
xgraf=zeros(length(i1));
for i = 1:length(i1)
        fnum = @(x, y) f(x, y, i3(i), i4(i));
        
        graf(i) = trapz(i2, trapz(i1, fnum(A,B), 2));
        xgraf(i)=sqrt(2*(i3(i)^2));
end


hold on
hol= @(x) -1/2*log(x);
valy = hol(xgraf);
% Crear el gráfico de las líneas y los puntos
hold on
plot(xgraf, valy, '-','DisplayName','Función asintótica'); 
plot(xgraf, graf, '*','DisplayName','Función obtenida');
xlabel('Eje x')
ylabel('Eje y')
title('Gráfico función asintótica y función obtenida')


Se ha obtenido la siguiente gráfica, siendo la verde la función obtenida y la azul la función asintótica:

Representación de la solución

Tal y como se ve, se observa que el comportamiento es el esperado.