<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://mat.caminos.upm.es/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sof%C3%ADa+G%C3%B3mez</id>
		<title>MateWiki - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://mat.caminos.upm.es/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sof%C3%ADa+G%C3%B3mez"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/Sof%C3%ADa_G%C3%B3mez"/>
		<updated>2026-04-30T08:59:02Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=73076</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=73076"/>
				<updated>2024-05-27T17:20:29Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* algo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a analizar la ecuación de ondas mediante el estudio del movimiento de una cuerda. Para ello, vamos a ver cómo varía la solución en función de las condiciones iniciales y de contorno. También, estudiaremos la solución fundamental de este problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t), &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ahora, para ver como se comporta esta solución, vamos a tomar como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt;, lo cual nos da que la solución se expresa de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) .&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para representarla vamos a calcular las integrales necesarias para obtener los &amp;lt;math&amp;gt; a_k &amp;lt;/math&amp;gt; mediante el [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals método del trapecio] y a dibujar los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3.gif|400px|thumb|right|Video de la evolución de la solución en el intervalo de tiempo [0,2]]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Vemos que los extremos de la cuerda se mantienen siempre en cero, por lo que la solución satisface las condiciones frontera que hemos establecido en todo momento. Además, cabe destacar que la cuerda empieza dividiéndose en dos viajando cada parte hacia un lado, y cuando estas llegan al final del intervalo se reflejan y cambian el sentido de su desplazamiento.&lt;br /&gt;
&lt;br /&gt;
Ahora si observamos la solución en un intervalo de tiempo más largo &amp;lt;math&amp;gt;t\in[0,4]&amp;lt;/math&amp;gt; vemos que la solución hace el mismo recorrido dos veces, como se puede observar en el video inferior, por lo que podemos concluir que la solución es periódica de periodo 2.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3pe.gif|400px|thumb|center|Video de la evolución de la solución en el intervalo de tiempo [0,4]]]&lt;br /&gt;
&lt;br /&gt;
==Onda que viaja en un solo sentido==&lt;br /&gt;
&lt;br /&gt;
En este caso, vamos a tomar como condiciones iniciales: &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=200(x-\frac{1}{2})e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; que es la derivada de &amp;lt;math&amp;gt;u_0(x)&amp;lt;/math&amp;gt; cambiada de signo, lo que va a hacer que la onda viaje en un solo sentido a diferencia del caso anterior. &lt;br /&gt;
&lt;br /&gt;
Para representarlo, también vamos a realizar las integrales para calcular los coeficientes de la solución mediante el método del trapecio y a representar los primeros 50 términos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj4b.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial &lt;br /&gt;
u1=@(x) -(100-200.*x).*exp(-100*(x-0.5).^2); %Impulso inicial&lt;br /&gt;
uk_cos=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Primera parte de la solución del problema&lt;br /&gt;
uk_sen=@(x,t,k) sin(k.*pi.*x).*sin(k*pi.*t); %Segunda parte de la solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g1=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        g2=-u1(x)*sin(k*pi*x)'/(k*pi);&lt;br /&gt;
        a_k=2*h*w'*g1; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        b_k=2*h*w'*g2;&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk_cos(x,t(i),k)+b_k.*uk_sen(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f)&lt;br /&gt;
    axis([0 1 -2 2])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso vemos que efectivamente la cuerda viaja en un solo sentido y sigue manteniendo los extremos fijos en cero, ya que la condición frontera no se ha variado. Además, como el intervalo en el que viaja la cuerda tiene longitud uno y lo recorre dos veces en el intervalo de tiempo &amp;lt;math&amp;gt;[0,2]&amp;lt;/math&amp;gt;, podemos deducir que la velocidad a la que viaja la onda es 1. Esto coincide con la constante &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; que hemos elegido la cual representa esta velocidad.&lt;br /&gt;
&lt;br /&gt;
También podemos observar que cuando la cuerda llega a un extremo sigue el mismo comportamiento que en el caso anterior, se refleja y cambia de sentido pero manteniendo la misma velocidad.&lt;br /&gt;
&lt;br /&gt;
==Condiciones Neumann==&lt;br /&gt;
&lt;br /&gt;
En los dos casos anteriores hemos considerado condiciones frontera de tipo Dirichlet, es decir, imponíamos que la solución en la frontera fuera siempre cero. Ahora vamos a poner condiciones frontera de tipo Neumann imponiendo que la derivada espacial de la solución en los extremos sea siempre cero: &amp;lt;math&amp;gt;u_x(0,t)=u_x(1,t)=0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para resolverlo y representarlo, procedemos igual que en los apartados anteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj5.gif|400px|thumb|right|Video de la evolución de la solución en el intervalo de tiempo [0,4]]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial &lt;br /&gt;
u1=@(x) -(100-200.*x).*exp(-100*(x-0.5).^2); %Impulso inicial&lt;br /&gt;
uk_cos=@(x,t,k) cos(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
uk_sen=@(x,t,k) cos(k.*pi.*x).*sin(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 100 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
&lt;br /&gt;
    for k=1:100&lt;br /&gt;
        g1=u0(x)*cos(k*pi*x)'; &lt;br /&gt;
        g2=-u1(x)*cos(k*pi*x)'/(k*pi);&lt;br /&gt;
        a_k=2*h*w'*g1; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        b_k=2*h*w'*g2;&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk_cos(x,t(i),k)+b_k.*uk_sen(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
    f_n(i,:) = f_n(i,:) + h*w'*u0(x)' ;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    axis([0 1 -2 2])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso vemos como ya los extremos de la cuerda no están fijos sino que suben y bajan como si viajaran por un carril, esto se debe a que lo que hemos establecido en 0 es la derivada y no la posición. Sin embargo, si observamos más detenidamente el vídeo se ve cómo en los extremos la solución hace un pico un poco raro, lo que podría dar lugar a pensar que la derivada en los extremos es distinta de cero y que esta solución no satisface las condiciones frontera. Pero realmente este comportamiento se debe a que estamos aproximando las integrales con el método del trapecio y solo estamos pintando 100 términos de la solución.&lt;br /&gt;
&lt;br /&gt;
=Solución fundamental=&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a analizar la solución fundamental de la ecuación de ondas en dimensiones 1, 2 y 3. La solución fundamental es crucial para comprender cómo una perturbación inicial localizada se propaga en el espacio con el tiempo. Para la ecuación de ondas, la solución fundamental se obtiene resolviendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
u_{tt}- c^2 \Delta u = 0,&amp;amp; x\in\mathbb{R}^n,t&amp;gt;0,\\&lt;br /&gt;
u(x,0)=0,u_t(x,0)=\delta(x),&amp;amp;x\in\mathbb{R}^n&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde \(\delta(x)\) es la delta de Dirac, que representa una perturbación puntual en el origen. La forma de la solución fundamental depende de la dimensión del espacio en el que se propaga la onda, por lo que la vamos a dibujarlas en dimensiones 1, 2 y 3, y como todas son radiales, lo haremos en su variable radial.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 1==&lt;br /&gt;
&lt;br /&gt;
En una dimensión, la solución fundamental está dada por &amp;lt;math&amp;gt;K_1(x, t) = \frac{1}{2c} [H(x + ct) - H(x - ct)]&amp;lt;/math&amp;gt;, donde \(H(s)\) es la función de Heaviside. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:fundamental1.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 1 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Parámetros&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0.01, 3, 100); % Tiempo&lt;br /&gt;
x = linspace(-3, 3, 1000); % Dominio espacial&lt;br /&gt;
&lt;br /&gt;
% Función de Heaviside&lt;br /&gt;
H = @(s) double(s &amp;gt;= 0);&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental en dimensión 1&lt;br /&gt;
K1 = @(x, t) (1 / (2 * c)) * (H(x + c * t) - H(x - c * t));&lt;br /&gt;
&lt;br /&gt;
%Lo representamos en un video&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental1&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,K1(x,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Esta solución describe una onda que se propaga en ambas direcciones a partir del punto de perturbación.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 2==&lt;br /&gt;
&lt;br /&gt;
En dos dimensiones, la solución fundamental se expresa como: \(K_2(x, t) = \frac{1}{2\pi c \sqrt{c^2 t^2 - |x|^2}} \chi_{B(0,ct)}(x)\), donde \(\chi_{B(0,ct)}(x)\) es la función característica de la bola de radio \(ct\) centrada en el origen. Debido a la singularidad en esta expresión, se introduce la siguiente regularización:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
K_2^\epsilon (x, t) = \frac{1}{\epsilon + 2\pi c \sqrt{c^2 t^2 - |x|^2}} \chi_{B(0,ct)}(x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo \(\epsilon\) un pequeño valor positivo para evitar la singularidad, este le vamos a tomar como: \(\epsilon=0.01\).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental2b.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 2 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Parámetros&lt;br /&gt;
epsilon = 0.01; % Regularización&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0, 1, 1000); % Tiempo&lt;br /&gt;
r = linspace(0, 1, 1000); % Radio&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental regularizada en dimensión 2&lt;br /&gt;
K2 = @(r,t) 1./(epsilon+2*pi*c.*sqrt(c^2*t^2-r.^2)).*(r &amp;lt;= c * t);&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental2&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=100;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(r,K2(r,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    axis([0 1 0 100])&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso emos cómo la solución también representa una onda que se propaga radialmente formando círculos concéntricos alrededor del origen.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 3==&lt;br /&gt;
&lt;br /&gt;
En tres dimensiones, la solución fundamental es \(K_3(x, t) = \frac{\delta(|x| - ct)}{4\pi c |x|}\), donde \(\delta(s)\) es la delta de Dirac. Para representar esta solución se utiliza una aproximación de la delta de Dirac mediante una función gaussiana: \(\delta(s) \approx \phi_k(s) = \sqrt{\frac{k}{\pi}} e^{-ks^2}\), siendp \(k\) un parámetro grande que vamos a tomar como: \(k=1000\).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:fundamental3.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 3 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Parámetros&lt;br /&gt;
k = 1000; % Parámetro de aproximación&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0.01, 3, 100); % Tiempo&lt;br /&gt;
r = linspace(0, 3, 1000); % Radio&lt;br /&gt;
&lt;br /&gt;
% Aproximación de la delta de Dirac&lt;br /&gt;
phi_k = @(s) sqrt(k / pi) * exp(-k * s.^2);&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental en dimensión 3&lt;br /&gt;
K3 = @(r, t) (phi_k(r - c * t) ./ (4 * pi * c * r));&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental3&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(r,K3(r,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    axis([0 3 0 20])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el caso de dimensión 3 vemos que de nuevo la solución representa una onda que se propaga radialmente por culpa de una perturbación formando círculos concéntricos alrededor del origen. A diferencia del caso anterior, aquí se ve cómo la onda va perdiendo intensidad a medida que avanza el tiempo.&lt;br /&gt;
&lt;br /&gt;
==Principio de Huygens==&lt;br /&gt;
&lt;br /&gt;
El principio de Huygens es un concepto fundamental en la física de ondas, este establece que cada punto de un frente de onda se puede considerar como una fuente secundaria de ondas esféricas. Estas ondas secundarias se superponen para formar el nuevo frente de onda a medida que avanza.&lt;br /&gt;
&lt;br /&gt;
Las soluciones fundamentales de la ecuación de ondas, que hemos visto en las secciones anteriores, describen cómo una perturbación inicial localizada se propaga a través del espacio. Por lo que estas soluciones proporcionan una interpretación del principio de Huygens.&lt;br /&gt;
&lt;br /&gt;
En una dimensión, la perturbación inicial se propaga en dos direcciones opuestas a velocidad c y cada punto a lo largo de la línea puede ser visto como una fuente de ondas que se propaga hacia la izquierda y hacia la derecha, formando así el nuevo frente de onda. Este comportamiento lineal refleja cómo las ondas se suman en una dimensión para avanzar. &lt;br /&gt;
&lt;br /&gt;
En el caso de dos dimensiones, la perturbación inicial se expande radialmente formando círculos concéntricos y en el de tres dimensiones la perturbación inicial se propaga esféricamente.&lt;br /&gt;
&lt;br /&gt;
==algo==&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a tomar el siguiente problemas;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
u_{tt}- c^2 \Delta u = 0,&amp;amp; x\in\mathbb{R}^n,t&amp;gt;0,\\&lt;br /&gt;
u(x,0)=0,u_t(x,0)=h(x)=_{B(0,\frac{1}{2})}(x),&amp;amp;x\in\mathbb{R}^n,&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cuya solución viene dada por: &amp;lt;math&amp;gt;u(x,t)=\int_{\mathbb{R}^2}K_2(x-y,t)h(y)dy.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para entender el comportamiento de esta solución vamos a representarla para distin tos timepos.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
  &lt;br /&gt;
 c=1;  % Velocidad de propagación.  &lt;br /&gt;
 t=[2];             % Valores de t&lt;br /&gt;
 theta=linspace(0,2*pi);      %  Intervalo de theta&lt;br /&gt;
 r=linspace(0,1,50);      % Intervalo del radio&lt;br /&gt;
 &lt;br /&gt;
 [TT,RR]=meshgrid(theta,r); &lt;br /&gt;
 n=size(TT);&lt;br /&gt;
 U=zeros(n);                % Inicializamos de la matriz U&lt;br /&gt;
 XX=RR.*cos(TT);&lt;br /&gt;
 YY=RR.*sin(TT);&lt;br /&gt;
 &lt;br /&gt;
% Solución fundamental en polares&lt;br /&gt;
 K=@(x,y,r,t)(sqrt(r.^2+y.^2-2*r.*y.*cos(x))&amp;lt;c*t)./(0.01*(c^2*t.^2-r.^2- y.^2 + 2.*r.*y.*cos(x)&amp;lt;10^-16)+2*pi*c*sqrt(abs(c^2*t.^2- r.^2- y.^2 + 2.*r.*y.*cos(x)))); &lt;br /&gt;
 &lt;br /&gt;
 % Solución para cada valor de t&lt;br /&gt;
 for j=1:length(t)&lt;br /&gt;
     for i=1:length(r)&lt;br /&gt;
         U(i,:)=integral2(@(x,y)K(x,y,r(i),t(j)), 0,2*pi,  0,1/2)*ones(1,length(theta));&lt;br /&gt;
     end&lt;br /&gt;
    colormap jet&lt;br /&gt;
     figure(j)&lt;br /&gt;
     surf(XX,YY,U)&lt;br /&gt;
     shading interp&lt;br /&gt;
     title(&amp;quot;t=&amp;quot;+num2str(t(j)))&lt;br /&gt;
 &lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t0.png|400px|thumb|left|Solución en t=0]]&lt;br /&gt;
[[Archivo:tt05.png|400px|thumb|right|Solución en t=0.5]]&lt;br /&gt;
[[Archivo:t1.png|400px|thumb|left|Solución en t=1]]&lt;br /&gt;
[[Archivo:tt2.png|400px|thumb|right|Solución en t=2]]&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=73075</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=73075"/>
				<updated>2024-05-27T17:20:02Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Solución fundamental */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a analizar la ecuación de ondas mediante el estudio del movimiento de una cuerda. Para ello, vamos a ver cómo varía la solución en función de las condiciones iniciales y de contorno. También, estudiaremos la solución fundamental de este problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t), &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ahora, para ver como se comporta esta solución, vamos a tomar como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt;, lo cual nos da que la solución se expresa de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) .&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para representarla vamos a calcular las integrales necesarias para obtener los &amp;lt;math&amp;gt; a_k &amp;lt;/math&amp;gt; mediante el [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals método del trapecio] y a dibujar los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3.gif|400px|thumb|right|Video de la evolución de la solución en el intervalo de tiempo [0,2]]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Vemos que los extremos de la cuerda se mantienen siempre en cero, por lo que la solución satisface las condiciones frontera que hemos establecido en todo momento. Además, cabe destacar que la cuerda empieza dividiéndose en dos viajando cada parte hacia un lado, y cuando estas llegan al final del intervalo se reflejan y cambian el sentido de su desplazamiento.&lt;br /&gt;
&lt;br /&gt;
Ahora si observamos la solución en un intervalo de tiempo más largo &amp;lt;math&amp;gt;t\in[0,4]&amp;lt;/math&amp;gt; vemos que la solución hace el mismo recorrido dos veces, como se puede observar en el video inferior, por lo que podemos concluir que la solución es periódica de periodo 2.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3pe.gif|400px|thumb|center|Video de la evolución de la solución en el intervalo de tiempo [0,4]]]&lt;br /&gt;
&lt;br /&gt;
==Onda que viaja en un solo sentido==&lt;br /&gt;
&lt;br /&gt;
En este caso, vamos a tomar como condiciones iniciales: &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=200(x-\frac{1}{2})e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; que es la derivada de &amp;lt;math&amp;gt;u_0(x)&amp;lt;/math&amp;gt; cambiada de signo, lo que va a hacer que la onda viaje en un solo sentido a diferencia del caso anterior. &lt;br /&gt;
&lt;br /&gt;
Para representarlo, también vamos a realizar las integrales para calcular los coeficientes de la solución mediante el método del trapecio y a representar los primeros 50 términos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj4b.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial &lt;br /&gt;
u1=@(x) -(100-200.*x).*exp(-100*(x-0.5).^2); %Impulso inicial&lt;br /&gt;
uk_cos=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Primera parte de la solución del problema&lt;br /&gt;
uk_sen=@(x,t,k) sin(k.*pi.*x).*sin(k*pi.*t); %Segunda parte de la solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g1=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        g2=-u1(x)*sin(k*pi*x)'/(k*pi);&lt;br /&gt;
        a_k=2*h*w'*g1; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        b_k=2*h*w'*g2;&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk_cos(x,t(i),k)+b_k.*uk_sen(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f)&lt;br /&gt;
    axis([0 1 -2 2])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso vemos que efectivamente la cuerda viaja en un solo sentido y sigue manteniendo los extremos fijos en cero, ya que la condición frontera no se ha variado. Además, como el intervalo en el que viaja la cuerda tiene longitud uno y lo recorre dos veces en el intervalo de tiempo &amp;lt;math&amp;gt;[0,2]&amp;lt;/math&amp;gt;, podemos deducir que la velocidad a la que viaja la onda es 1. Esto coincide con la constante &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; que hemos elegido la cual representa esta velocidad.&lt;br /&gt;
&lt;br /&gt;
También podemos observar que cuando la cuerda llega a un extremo sigue el mismo comportamiento que en el caso anterior, se refleja y cambia de sentido pero manteniendo la misma velocidad.&lt;br /&gt;
&lt;br /&gt;
==Condiciones Neumann==&lt;br /&gt;
&lt;br /&gt;
En los dos casos anteriores hemos considerado condiciones frontera de tipo Dirichlet, es decir, imponíamos que la solución en la frontera fuera siempre cero. Ahora vamos a poner condiciones frontera de tipo Neumann imponiendo que la derivada espacial de la solución en los extremos sea siempre cero: &amp;lt;math&amp;gt;u_x(0,t)=u_x(1,t)=0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para resolverlo y representarlo, procedemos igual que en los apartados anteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj5.gif|400px|thumb|right|Video de la evolución de la solución en el intervalo de tiempo [0,4]]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial &lt;br /&gt;
u1=@(x) -(100-200.*x).*exp(-100*(x-0.5).^2); %Impulso inicial&lt;br /&gt;
uk_cos=@(x,t,k) cos(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
uk_sen=@(x,t,k) cos(k.*pi.*x).*sin(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 100 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
&lt;br /&gt;
    for k=1:100&lt;br /&gt;
        g1=u0(x)*cos(k*pi*x)'; &lt;br /&gt;
        g2=-u1(x)*cos(k*pi*x)'/(k*pi);&lt;br /&gt;
        a_k=2*h*w'*g1; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        b_k=2*h*w'*g2;&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk_cos(x,t(i),k)+b_k.*uk_sen(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
    f_n(i,:) = f_n(i,:) + h*w'*u0(x)' ;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    axis([0 1 -2 2])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso vemos como ya los extremos de la cuerda no están fijos sino que suben y bajan como si viajaran por un carril, esto se debe a que lo que hemos establecido en 0 es la derivada y no la posición. Sin embargo, si observamos más detenidamente el vídeo se ve cómo en los extremos la solución hace un pico un poco raro, lo que podría dar lugar a pensar que la derivada en los extremos es distinta de cero y que esta solución no satisface las condiciones frontera. Pero realmente este comportamiento se debe a que estamos aproximando las integrales con el método del trapecio y solo estamos pintando 100 términos de la solución.&lt;br /&gt;
&lt;br /&gt;
=Solución fundamental=&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a analizar la solución fundamental de la ecuación de ondas en dimensiones 1, 2 y 3. La solución fundamental es crucial para comprender cómo una perturbación inicial localizada se propaga en el espacio con el tiempo. Para la ecuación de ondas, la solución fundamental se obtiene resolviendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
u_{tt}- c^2 \Delta u = 0,&amp;amp; x\in\mathbb{R}^n,t&amp;gt;0,\\&lt;br /&gt;
u(x,0)=0,u_t(x,0)=\delta(x),&amp;amp;x\in\mathbb{R}^n&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde \(\delta(x)\) es la delta de Dirac, que representa una perturbación puntual en el origen. La forma de la solución fundamental depende de la dimensión del espacio en el que se propaga la onda, por lo que la vamos a dibujarlas en dimensiones 1, 2 y 3, y como todas son radiales, lo haremos en su variable radial.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 1==&lt;br /&gt;
&lt;br /&gt;
En una dimensión, la solución fundamental está dada por &amp;lt;math&amp;gt;K_1(x, t) = \frac{1}{2c} [H(x + ct) - H(x - ct)]&amp;lt;/math&amp;gt;, donde \(H(s)\) es la función de Heaviside. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:fundamental1.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 1 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Parámetros&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0.01, 3, 100); % Tiempo&lt;br /&gt;
x = linspace(-3, 3, 1000); % Dominio espacial&lt;br /&gt;
&lt;br /&gt;
% Función de Heaviside&lt;br /&gt;
H = @(s) double(s &amp;gt;= 0);&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental en dimensión 1&lt;br /&gt;
K1 = @(x, t) (1 / (2 * c)) * (H(x + c * t) - H(x - c * t));&lt;br /&gt;
&lt;br /&gt;
%Lo representamos en un video&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental1&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,K1(x,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Esta solución describe una onda que se propaga en ambas direcciones a partir del punto de perturbación.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 2==&lt;br /&gt;
&lt;br /&gt;
En dos dimensiones, la solución fundamental se expresa como: \(K_2(x, t) = \frac{1}{2\pi c \sqrt{c^2 t^2 - |x|^2}} \chi_{B(0,ct)}(x)\), donde \(\chi_{B(0,ct)}(x)\) es la función característica de la bola de radio \(ct\) centrada en el origen. Debido a la singularidad en esta expresión, se introduce la siguiente regularización:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
K_2^\epsilon (x, t) = \frac{1}{\epsilon + 2\pi c \sqrt{c^2 t^2 - |x|^2}} \chi_{B(0,ct)}(x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo \(\epsilon\) un pequeño valor positivo para evitar la singularidad, este le vamos a tomar como: \(\epsilon=0.01\).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental2b.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 2 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Parámetros&lt;br /&gt;
epsilon = 0.01; % Regularización&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0, 1, 1000); % Tiempo&lt;br /&gt;
r = linspace(0, 1, 1000); % Radio&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental regularizada en dimensión 2&lt;br /&gt;
K2 = @(r,t) 1./(epsilon+2*pi*c.*sqrt(c^2*t^2-r.^2)).*(r &amp;lt;= c * t);&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental2&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=100;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(r,K2(r,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    axis([0 1 0 100])&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso emos cómo la solución también representa una onda que se propaga radialmente formando círculos concéntricos alrededor del origen.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 3==&lt;br /&gt;
&lt;br /&gt;
En tres dimensiones, la solución fundamental es \(K_3(x, t) = \frac{\delta(|x| - ct)}{4\pi c |x|}\), donde \(\delta(s)\) es la delta de Dirac. Para representar esta solución se utiliza una aproximación de la delta de Dirac mediante una función gaussiana: \(\delta(s) \approx \phi_k(s) = \sqrt{\frac{k}{\pi}} e^{-ks^2}\), siendp \(k\) un parámetro grande que vamos a tomar como: \(k=1000\).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:fundamental3.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 3 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Parámetros&lt;br /&gt;
k = 1000; % Parámetro de aproximación&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0.01, 3, 100); % Tiempo&lt;br /&gt;
r = linspace(0, 3, 1000); % Radio&lt;br /&gt;
&lt;br /&gt;
% Aproximación de la delta de Dirac&lt;br /&gt;
phi_k = @(s) sqrt(k / pi) * exp(-k * s.^2);&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental en dimensión 3&lt;br /&gt;
K3 = @(r, t) (phi_k(r - c * t) ./ (4 * pi * c * r));&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental3&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(r,K3(r,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    axis([0 3 0 20])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el caso de dimensión 3 vemos que de nuevo la solución representa una onda que se propaga radialmente por culpa de una perturbación formando círculos concéntricos alrededor del origen. A diferencia del caso anterior, aquí se ve cómo la onda va perdiendo intensidad a medida que avanza el tiempo.&lt;br /&gt;
&lt;br /&gt;
==Principio de Huygens==&lt;br /&gt;
&lt;br /&gt;
El principio de Huygens es un concepto fundamental en la física de ondas, este establece que cada punto de un frente de onda se puede considerar como una fuente secundaria de ondas esféricas. Estas ondas secundarias se superponen para formar el nuevo frente de onda a medida que avanza.&lt;br /&gt;
&lt;br /&gt;
Las soluciones fundamentales de la ecuación de ondas, que hemos visto en las secciones anteriores, describen cómo una perturbación inicial localizada se propaga a través del espacio. Por lo que estas soluciones proporcionan una interpretación del principio de Huygens.&lt;br /&gt;
&lt;br /&gt;
En una dimensión, la perturbación inicial se propaga en dos direcciones opuestas a velocidad c y cada punto a lo largo de la línea puede ser visto como una fuente de ondas que se propaga hacia la izquierda y hacia la derecha, formando así el nuevo frente de onda. Este comportamiento lineal refleja cómo las ondas se suman en una dimensión para avanzar. &lt;br /&gt;
&lt;br /&gt;
En el caso de dos dimensiones, la perturbación inicial se expande radialmente formando círculos concéntricos y en el de tres dimensiones la perturbación inicial se propaga esféricamente.&lt;br /&gt;
&lt;br /&gt;
==algo==&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a tomar el siguiente problemas;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
u_{tt}- c^2 \Delta u = 0,&amp;amp; x\in\mathbb{R}^n,t&amp;gt;0,\\&lt;br /&gt;
u(x,0)=0,u_t(x,0)=h(x)=_{B(0,\frac{1}{2})}(x),&amp;amp;x\in\mathbb{R}^n,&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
cuya solución viene dada por: &amp;lt;math&amp;gt;u(x,t)=\int_{\mathbb{R}^2}K_2(x-y,t)h(y)dy./math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para entender el comportamiento de esta solución vamos a representarla para distin tos timepos.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
  &lt;br /&gt;
 c=1;  % Velocidad de propagación.  &lt;br /&gt;
 t=[2];             % Valores de t&lt;br /&gt;
 theta=linspace(0,2*pi);      %  Intervalo de theta&lt;br /&gt;
 r=linspace(0,1,50);      % Intervalo del radio&lt;br /&gt;
 &lt;br /&gt;
 [TT,RR]=meshgrid(theta,r); &lt;br /&gt;
 n=size(TT);&lt;br /&gt;
 U=zeros(n);                % Inicializamos de la matriz U&lt;br /&gt;
 XX=RR.*cos(TT);&lt;br /&gt;
 YY=RR.*sin(TT);&lt;br /&gt;
 &lt;br /&gt;
% Solución fundamental en polares&lt;br /&gt;
 K=@(x,y,r,t)(sqrt(r.^2+y.^2-2*r.*y.*cos(x))&amp;lt;c*t)./(0.01*(c^2*t.^2-r.^2- y.^2 + 2.*r.*y.*cos(x)&amp;lt;10^-16)+2*pi*c*sqrt(abs(c^2*t.^2- r.^2- y.^2 + 2.*r.*y.*cos(x)))); &lt;br /&gt;
 &lt;br /&gt;
 % Solución para cada valor de t&lt;br /&gt;
 for j=1:length(t)&lt;br /&gt;
     for i=1:length(r)&lt;br /&gt;
         U(i,:)=integral2(@(x,y)K(x,y,r(i),t(j)), 0,2*pi,  0,1/2)*ones(1,length(theta));&lt;br /&gt;
     end&lt;br /&gt;
    colormap jet&lt;br /&gt;
     figure(j)&lt;br /&gt;
     surf(XX,YY,U)&lt;br /&gt;
     shading interp&lt;br /&gt;
     title(&amp;quot;t=&amp;quot;+num2str(t(j)))&lt;br /&gt;
 &lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t0.png|400px|thumb|left|Solución en t=0]]&lt;br /&gt;
[[Archivo:tt05.png|400px|thumb|right|Solución en t=0.5]]&lt;br /&gt;
[[Archivo:t1.png|400px|thumb|left|Solución en t=1]]&lt;br /&gt;
[[Archivo:tt2.png|400px|thumb|right|Solución en t=2]]&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=73070</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=73070"/>
				<updated>2024-05-27T17:13:51Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* algo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a analizar la ecuación de ondas mediante el estudio del movimiento de una cuerda. Para ello, vamos a ver cómo varía la solución en función de las condiciones iniciales y de contorno. También, estudiaremos la solución fundamental de este problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t), &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ahora, para ver como se comporta esta solución, vamos a tomar como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt;, lo cual nos da que la solución se expresa de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) .&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para representarla vamos a calcular las integrales necesarias para obtener los &amp;lt;math&amp;gt; a_k &amp;lt;/math&amp;gt; mediante el [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals método del trapecio] y a dibujar los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3.gif|400px|thumb|right|Video de la evolución de la solución en el intervalo de tiempo [0,2]]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Vemos que los extremos de la cuerda se mantienen siempre en cero, por lo que la solución satisface las condiciones frontera que hemos establecido en todo momento. Además, cabe destacar que la cuerda empieza dividiéndose en dos viajando cada parte hacia un lado, y cuando estas llegan al final del intervalo se reflejan y cambian el sentido de su desplazamiento.&lt;br /&gt;
&lt;br /&gt;
Ahora si observamos la solución en un intervalo de tiempo más largo &amp;lt;math&amp;gt;t\in[0,4]&amp;lt;/math&amp;gt; vemos que la solución hace el mismo recorrido dos veces, como se puede observar en el video inferior, por lo que podemos concluir que la solución es periódica de periodo 2.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3pe.gif|400px|thumb|center|Video de la evolución de la solución en el intervalo de tiempo [0,4]]]&lt;br /&gt;
&lt;br /&gt;
==Onda que viaja en un solo sentido==&lt;br /&gt;
&lt;br /&gt;
En este caso, vamos a tomar como condiciones iniciales: &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=200(x-\frac{1}{2})e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; que es la derivada de &amp;lt;math&amp;gt;u_0(x)&amp;lt;/math&amp;gt; cambiada de signo, lo que va a hacer que la onda viaje en un solo sentido a diferencia del caso anterior. &lt;br /&gt;
&lt;br /&gt;
Para representarlo, también vamos a realizar las integrales para calcular los coeficientes de la solución mediante el método del trapecio y a representar los primeros 50 términos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj4b.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial &lt;br /&gt;
u1=@(x) -(100-200.*x).*exp(-100*(x-0.5).^2); %Impulso inicial&lt;br /&gt;
uk_cos=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Primera parte de la solución del problema&lt;br /&gt;
uk_sen=@(x,t,k) sin(k.*pi.*x).*sin(k*pi.*t); %Segunda parte de la solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g1=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        g2=-u1(x)*sin(k*pi*x)'/(k*pi);&lt;br /&gt;
        a_k=2*h*w'*g1; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        b_k=2*h*w'*g2;&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk_cos(x,t(i),k)+b_k.*uk_sen(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f)&lt;br /&gt;
    axis([0 1 -2 2])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso vemos que efectivamente la cuerda viaja en un solo sentido y sigue manteniendo los extremos fijos en cero, ya que la condición frontera no se ha variado. Además, como el intervalo en el que viaja la cuerda tiene longitud uno y lo recorre dos veces en el intervalo de tiempo &amp;lt;math&amp;gt;[0,2]&amp;lt;/math&amp;gt;, podemos deducir que la velocidad a la que viaja la onda es 1. Esto coincide con la constante &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; que hemos elegido la cual representa esta velocidad.&lt;br /&gt;
&lt;br /&gt;
También podemos observar que cuando la cuerda llega a un extremo sigue el mismo comportamiento que en el caso anterior, se refleja y cambia de sentido pero manteniendo la misma velocidad.&lt;br /&gt;
&lt;br /&gt;
==Condiciones Neumann==&lt;br /&gt;
&lt;br /&gt;
En los dos casos anteriores hemos considerado condiciones frontera de tipo Dirichlet, es decir, imponíamos que la solución en la frontera fuera siempre cero. Ahora vamos a poner condiciones frontera de tipo Neumann imponiendo que la derivada espacial de la solución en los extremos sea siempre cero: &amp;lt;math&amp;gt;u_x(0,t)=u_x(1,t)=0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para resolverlo y representarlo, procedemos igual que en los apartados anteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj5.gif|400px|thumb|right|Video de la evolución de la solución en el intervalo de tiempo [0,4]]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial &lt;br /&gt;
u1=@(x) -(100-200.*x).*exp(-100*(x-0.5).^2); %Impulso inicial&lt;br /&gt;
uk_cos=@(x,t,k) cos(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
uk_sen=@(x,t,k) cos(k.*pi.*x).*sin(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 100 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
&lt;br /&gt;
    for k=1:100&lt;br /&gt;
        g1=u0(x)*cos(k*pi*x)'; &lt;br /&gt;
        g2=-u1(x)*cos(k*pi*x)'/(k*pi);&lt;br /&gt;
        a_k=2*h*w'*g1; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        b_k=2*h*w'*g2;&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk_cos(x,t(i),k)+b_k.*uk_sen(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
    f_n(i,:) = f_n(i,:) + h*w'*u0(x)' ;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    axis([0 1 -2 2])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso vemos como ya los extremos de la cuerda no están fijos sino que suben y bajan como si viajaran por un carril, esto se debe a que lo que hemos establecido en 0 es la derivada y no la posición. Sin embargo, si observamos más detenidamente el vídeo se ve cómo en los extremos la solución hace un pico un poco raro, lo que podría dar lugar a pensar que la derivada en los extremos es distinta de cero y que esta solución no satisface las condiciones frontera. Pero realmente este comportamiento se debe a que estamos aproximando las integrales con el método del trapecio y solo estamos pintando 100 términos de la solución.&lt;br /&gt;
&lt;br /&gt;
=Solución fundamental=&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a analizar la solución fundamental de la ecuación de ondas en dimensiones 1, 2 y 3. La solución fundamental es crucial para comprender cómo una perturbación inicial localizada se propaga en el espacio con el tiempo. Para la ecuación de ondas, la solución fundamental se obtiene resolviendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
u_{tt}- c^2 \Delta u = 0,&amp;amp; x\in\mathbb{R}^n,t&amp;gt;0,\\&lt;br /&gt;
u(x,0)=0,u_t(x,0)=\delta(x),&amp;amp;x\in\mathbb{R}^n&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde \(\delta(x)\) es la delta de Dirac, que representa una perturbación puntual en el origen. La forma de la solución fundamental depende de la dimensión del espacio en el que se propaga la onda, por lo que la vamos a dibujarlas en dimensiones 1, 2 y 3, y como todas son radiales, lo haremos en su variable radial.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 1==&lt;br /&gt;
&lt;br /&gt;
En una dimensión, la solución fundamental está dada por &amp;lt;math&amp;gt;K_1(x, t) = \frac{1}{2c} [H(x + ct) - H(x - ct)]&amp;lt;/math&amp;gt;, donde \(H(s)\) es la función de Heaviside. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:fundamental1.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 1 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Parámetros&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0.01, 3, 100); % Tiempo&lt;br /&gt;
x = linspace(-3, 3, 1000); % Dominio espacial&lt;br /&gt;
&lt;br /&gt;
% Función de Heaviside&lt;br /&gt;
H = @(s) double(s &amp;gt;= 0);&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental en dimensión 1&lt;br /&gt;
K1 = @(x, t) (1 / (2 * c)) * (H(x + c * t) - H(x - c * t));&lt;br /&gt;
&lt;br /&gt;
%Lo representamos en un video&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental1&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,K1(x,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Esta solución describe una onda que se propaga en ambas direcciones a partir del punto de perturbación.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 2==&lt;br /&gt;
&lt;br /&gt;
En dos dimensiones, la solución fundamental se expresa como: \(K_2(x, t) = \frac{1}{2\pi c \sqrt{c^2 t^2 - |x|^2}} \chi_{B(0,ct)}(x)\), donde \(\chi_{B(0,ct)}(x)\) es la función característica de la bola de radio \(ct\) centrada en el origen. Debido a la singularidad en esta expresión, se introduce la siguiente regularización:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
K_2^\epsilon (x, t) = \frac{1}{\epsilon + 2\pi c \sqrt{c^2 t^2 - |x|^2}} \chi_{B(0,ct)}(x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo \(\epsilon\) un pequeño valor positivo para evitar la singularidad, este le vamos a tomar como: \(\epsilon=0.01\).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental2b.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 2 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Parámetros&lt;br /&gt;
epsilon = 0.01; % Regularización&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0, 1, 1000); % Tiempo&lt;br /&gt;
r = linspace(0, 1, 1000); % Radio&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental regularizada en dimensión 2&lt;br /&gt;
K2 = @(r,t) 1./(epsilon+2*pi*c.*sqrt(c^2*t^2-r.^2)).*(r &amp;lt;= c * t);&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental2&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=100;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(r,K2(r,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    axis([0 1 0 100])&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso emos cómo la solución también representa una onda que se propaga radialmente formando círculos concéntricos alrededor del origen.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 3==&lt;br /&gt;
&lt;br /&gt;
En tres dimensiones, la solución fundamental es \(K_3(x, t) = \frac{\delta(|x| - ct)}{4\pi c |x|}\), donde \(\delta(s)\) es la delta de Dirac. Para representar esta solución se utiliza una aproximación de la delta de Dirac mediante una función gaussiana: \(\delta(s) \approx \phi_k(s) = \sqrt{\frac{k}{\pi}} e^{-ks^2}\), siendp \(k\) un parámetro grande que vamos a tomar como: \(k=1000\).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:fundamental3.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 3 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Parámetros&lt;br /&gt;
k = 1000; % Parámetro de aproximación&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0.01, 3, 100); % Tiempo&lt;br /&gt;
r = linspace(0, 3, 1000); % Radio&lt;br /&gt;
&lt;br /&gt;
% Aproximación de la delta de Dirac&lt;br /&gt;
phi_k = @(s) sqrt(k / pi) * exp(-k * s.^2);&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental en dimensión 3&lt;br /&gt;
K3 = @(r, t) (phi_k(r - c * t) ./ (4 * pi * c * r));&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental3&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(r,K3(r,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    axis([0 3 0 20])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el caso de dimensión 3 vemos que de nuevo la solución representa una onda que se propaga radialmente por culpa de una perturbación formando círculos concéntricos alrededor del origen. A diferencia del caso anterior, aquí se ve cómo la onda va perdiendo intensidad a medida que avanza el tiempo.&lt;br /&gt;
&lt;br /&gt;
==Principio de Huygens==&lt;br /&gt;
&lt;br /&gt;
El principio de Huygens es un concepto fundamental en la física de ondas, este establece que cada punto de un frente de onda se puede considerar como una fuente secundaria de ondas esféricas. Estas ondas secundarias se superponen para formar el nuevo frente de onda a medida que avanza.&lt;br /&gt;
&lt;br /&gt;
Las soluciones fundamentales de la ecuación de ondas, que hemos visto en las secciones anteriores, describen cómo una perturbación inicial localizada se propaga a través del espacio. Por lo que estas soluciones proporcionan una interpretación del principio de Huygens.&lt;br /&gt;
&lt;br /&gt;
En una dimensión, la perturbación inicial se propaga en dos direcciones opuestas a velocidad c y cada punto a lo largo de la línea puede ser visto como una fuente de ondas que se propaga hacia la izquierda y hacia la derecha, formando así el nuevo frente de onda. Este comportamiento lineal refleja cómo las ondas se suman en una dimensión para avanzar. &lt;br /&gt;
&lt;br /&gt;
En el caso de dos dimensiones, la perturbación inicial se expande radialmente formando círculos concéntricos y en el de tres dimensiones la perturbación inicial se propaga esféricamente.&lt;br /&gt;
&lt;br /&gt;
==algo==&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
  &lt;br /&gt;
 c=1;  % Velocidad de propagación.  &lt;br /&gt;
 t=[2];             % Valores de t&lt;br /&gt;
 theta=linspace(0,2*pi);      %  Intervalo de theta&lt;br /&gt;
 r=linspace(0,1,50);      % Intervalo del radio&lt;br /&gt;
 &lt;br /&gt;
 [TT,RR]=meshgrid(theta,r); &lt;br /&gt;
 n=size(TT);&lt;br /&gt;
 U=zeros(n);                % Inicializamos de la matriz U&lt;br /&gt;
 XX=RR.*cos(TT);&lt;br /&gt;
 YY=RR.*sin(TT);&lt;br /&gt;
 &lt;br /&gt;
% Solución fundamental en polares&lt;br /&gt;
 K=@(x,y,r,t)(sqrt(r.^2+y.^2-2*r.*y.*cos(x))&amp;lt;c*t)./(0.01*(c^2*t.^2-r.^2- y.^2 + 2.*r.*y.*cos(x)&amp;lt;10^-16)+2*pi*c*sqrt(abs(c^2*t.^2- r.^2- y.^2 + 2.*r.*y.*cos(x)))); &lt;br /&gt;
 &lt;br /&gt;
 % Solución para cada valor de t&lt;br /&gt;
 for j=1:length(t)&lt;br /&gt;
     for i=1:length(r)&lt;br /&gt;
         U(i,:)=integral2(@(x,y)K(x,y,r(i),t(j)), 0,2*pi,  0,1/2)*ones(1,length(theta));&lt;br /&gt;
     end&lt;br /&gt;
    colormap jet&lt;br /&gt;
     figure(j)&lt;br /&gt;
     surf(XX,YY,U)&lt;br /&gt;
     shading interp&lt;br /&gt;
     title(&amp;quot;t=&amp;quot;+num2str(t(j)))&lt;br /&gt;
 &lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t0.png|400px|thumb|left|Solución en t=0]]&lt;br /&gt;
[[Archivo:tt05.png|400px|thumb|right|Solución en t=0.5]]&lt;br /&gt;
[[Archivo:t1.png|400px|thumb|left|Solución en t=1]]&lt;br /&gt;
[[Archivo:tt2.png|400px|thumb|right|Solución en t=2]]&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=73065</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=73065"/>
				<updated>2024-05-27T17:11:14Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a analizar la ecuación de ondas mediante el estudio del movimiento de una cuerda. Para ello, vamos a ver cómo varía la solución en función de las condiciones iniciales y de contorno. También, estudiaremos la solución fundamental de este problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t), &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ahora, para ver como se comporta esta solución, vamos a tomar como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt;, lo cual nos da que la solución se expresa de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) .&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para representarla vamos a calcular las integrales necesarias para obtener los &amp;lt;math&amp;gt; a_k &amp;lt;/math&amp;gt; mediante el [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals método del trapecio] y a dibujar los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3.gif|400px|thumb|right|Video de la evolución de la solución en el intervalo de tiempo [0,2]]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Vemos que los extremos de la cuerda se mantienen siempre en cero, por lo que la solución satisface las condiciones frontera que hemos establecido en todo momento. Además, cabe destacar que la cuerda empieza dividiéndose en dos viajando cada parte hacia un lado, y cuando estas llegan al final del intervalo se reflejan y cambian el sentido de su desplazamiento.&lt;br /&gt;
&lt;br /&gt;
Ahora si observamos la solución en un intervalo de tiempo más largo &amp;lt;math&amp;gt;t\in[0,4]&amp;lt;/math&amp;gt; vemos que la solución hace el mismo recorrido dos veces, como se puede observar en el video inferior, por lo que podemos concluir que la solución es periódica de periodo 2.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3pe.gif|400px|thumb|center|Video de la evolución de la solución en el intervalo de tiempo [0,4]]]&lt;br /&gt;
&lt;br /&gt;
==Onda que viaja en un solo sentido==&lt;br /&gt;
&lt;br /&gt;
En este caso, vamos a tomar como condiciones iniciales: &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=200(x-\frac{1}{2})e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; que es la derivada de &amp;lt;math&amp;gt;u_0(x)&amp;lt;/math&amp;gt; cambiada de signo, lo que va a hacer que la onda viaje en un solo sentido a diferencia del caso anterior. &lt;br /&gt;
&lt;br /&gt;
Para representarlo, también vamos a realizar las integrales para calcular los coeficientes de la solución mediante el método del trapecio y a representar los primeros 50 términos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj4b.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial &lt;br /&gt;
u1=@(x) -(100-200.*x).*exp(-100*(x-0.5).^2); %Impulso inicial&lt;br /&gt;
uk_cos=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Primera parte de la solución del problema&lt;br /&gt;
uk_sen=@(x,t,k) sin(k.*pi.*x).*sin(k*pi.*t); %Segunda parte de la solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g1=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        g2=-u1(x)*sin(k*pi*x)'/(k*pi);&lt;br /&gt;
        a_k=2*h*w'*g1; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        b_k=2*h*w'*g2;&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk_cos(x,t(i),k)+b_k.*uk_sen(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f)&lt;br /&gt;
    axis([0 1 -2 2])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso vemos que efectivamente la cuerda viaja en un solo sentido y sigue manteniendo los extremos fijos en cero, ya que la condición frontera no se ha variado. Además, como el intervalo en el que viaja la cuerda tiene longitud uno y lo recorre dos veces en el intervalo de tiempo &amp;lt;math&amp;gt;[0,2]&amp;lt;/math&amp;gt;, podemos deducir que la velocidad a la que viaja la onda es 1. Esto coincide con la constante &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; que hemos elegido la cual representa esta velocidad.&lt;br /&gt;
&lt;br /&gt;
También podemos observar que cuando la cuerda llega a un extremo sigue el mismo comportamiento que en el caso anterior, se refleja y cambia de sentido pero manteniendo la misma velocidad.&lt;br /&gt;
&lt;br /&gt;
==Condiciones Neumann==&lt;br /&gt;
&lt;br /&gt;
En los dos casos anteriores hemos considerado condiciones frontera de tipo Dirichlet, es decir, imponíamos que la solución en la frontera fuera siempre cero. Ahora vamos a poner condiciones frontera de tipo Neumann imponiendo que la derivada espacial de la solución en los extremos sea siempre cero: &amp;lt;math&amp;gt;u_x(0,t)=u_x(1,t)=0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para resolverlo y representarlo, procedemos igual que en los apartados anteriores.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj5.gif|400px|thumb|right|Video de la evolución de la solución en el intervalo de tiempo [0,4]]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial &lt;br /&gt;
u1=@(x) -(100-200.*x).*exp(-100*(x-0.5).^2); %Impulso inicial&lt;br /&gt;
uk_cos=@(x,t,k) cos(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
uk_sen=@(x,t,k) cos(k.*pi.*x).*sin(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 100 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
&lt;br /&gt;
    for k=1:100&lt;br /&gt;
        g1=u0(x)*cos(k*pi*x)'; &lt;br /&gt;
        g2=-u1(x)*cos(k*pi*x)'/(k*pi);&lt;br /&gt;
        a_k=2*h*w'*g1; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        b_k=2*h*w'*g2;&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk_cos(x,t(i),k)+b_k.*uk_sen(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
    f_n(i,:) = f_n(i,:) + h*w'*u0(x)' ;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    axis([0 1 -2 2])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso vemos como ya los extremos de la cuerda no están fijos sino que suben y bajan como si viajaran por un carril, esto se debe a que lo que hemos establecido en 0 es la derivada y no la posición. Sin embargo, si observamos más detenidamente el vídeo se ve cómo en los extremos la solución hace un pico un poco raro, lo que podría dar lugar a pensar que la derivada en los extremos es distinta de cero y que esta solución no satisface las condiciones frontera. Pero realmente este comportamiento se debe a que estamos aproximando las integrales con el método del trapecio y solo estamos pintando 100 términos de la solución.&lt;br /&gt;
&lt;br /&gt;
=Solución fundamental=&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a analizar la solución fundamental de la ecuación de ondas en dimensiones 1, 2 y 3. La solución fundamental es crucial para comprender cómo una perturbación inicial localizada se propaga en el espacio con el tiempo. Para la ecuación de ondas, la solución fundamental se obtiene resolviendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
u_{tt}- c^2 \Delta u = 0,&amp;amp; x\in\mathbb{R}^n,t&amp;gt;0,\\&lt;br /&gt;
u(x,0)=0,u_t(x,0)=\delta(x),&amp;amp;x\in\mathbb{R}^n&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde \(\delta(x)\) es la delta de Dirac, que representa una perturbación puntual en el origen. La forma de la solución fundamental depende de la dimensión del espacio en el que se propaga la onda, por lo que la vamos a dibujarlas en dimensiones 1, 2 y 3, y como todas son radiales, lo haremos en su variable radial.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 1==&lt;br /&gt;
&lt;br /&gt;
En una dimensión, la solución fundamental está dada por &amp;lt;math&amp;gt;K_1(x, t) = \frac{1}{2c} [H(x + ct) - H(x - ct)]&amp;lt;/math&amp;gt;, donde \(H(s)\) es la función de Heaviside. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:fundamental1.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 1 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Parámetros&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0.01, 3, 100); % Tiempo&lt;br /&gt;
x = linspace(-3, 3, 1000); % Dominio espacial&lt;br /&gt;
&lt;br /&gt;
% Función de Heaviside&lt;br /&gt;
H = @(s) double(s &amp;gt;= 0);&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental en dimensión 1&lt;br /&gt;
K1 = @(x, t) (1 / (2 * c)) * (H(x + c * t) - H(x - c * t));&lt;br /&gt;
&lt;br /&gt;
%Lo representamos en un video&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental1&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,K1(x,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Esta solución describe una onda que se propaga en ambas direcciones a partir del punto de perturbación.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 2==&lt;br /&gt;
&lt;br /&gt;
En dos dimensiones, la solución fundamental se expresa como: \(K_2(x, t) = \frac{1}{2\pi c \sqrt{c^2 t^2 - |x|^2}} \chi_{B(0,ct)}(x)\), donde \(\chi_{B(0,ct)}(x)\) es la función característica de la bola de radio \(ct\) centrada en el origen. Debido a la singularidad en esta expresión, se introduce la siguiente regularización:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
K_2^\epsilon (x, t) = \frac{1}{\epsilon + 2\pi c \sqrt{c^2 t^2 - |x|^2}} \chi_{B(0,ct)}(x),&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo \(\epsilon\) un pequeño valor positivo para evitar la singularidad, este le vamos a tomar como: \(\epsilon=0.01\).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Fundamental2b.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 2 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Parámetros&lt;br /&gt;
epsilon = 0.01; % Regularización&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0, 1, 1000); % Tiempo&lt;br /&gt;
r = linspace(0, 1, 1000); % Radio&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental regularizada en dimensión 2&lt;br /&gt;
K2 = @(r,t) 1./(epsilon+2*pi*c.*sqrt(c^2*t^2-r.^2)).*(r &amp;lt;= c * t);&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental2&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=100;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(r,K2(r,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    axis([0 1 0 100])&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En este caso emos cómo la solución también representa una onda que se propaga radialmente formando círculos concéntricos alrededor del origen.&lt;br /&gt;
&lt;br /&gt;
==Dimensión 3==&lt;br /&gt;
&lt;br /&gt;
En tres dimensiones, la solución fundamental es \(K_3(x, t) = \frac{\delta(|x| - ct)}{4\pi c |x|}\), donde \(\delta(s)\) es la delta de Dirac. Para representar esta solución se utiliza una aproximación de la delta de Dirac mediante una función gaussiana: \(\delta(s) \approx \phi_k(s) = \sqrt{\frac{k}{\pi}} e^{-ks^2}\), siendp \(k\) un parámetro grande que vamos a tomar como: \(k=1000\).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:fundamental3.gif|400px|thumb|right|Video de la evolución de la solución fundamental en dimensión 3 a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Parámetros&lt;br /&gt;
k = 1000; % Parámetro de aproximación&lt;br /&gt;
c = 1; % Velocidad de propagación&lt;br /&gt;
t = linspace(0.01, 3, 100); % Tiempo&lt;br /&gt;
r = linspace(0, 3, 1000); % Radio&lt;br /&gt;
&lt;br /&gt;
% Aproximación de la delta de Dirac&lt;br /&gt;
phi_k = @(s) sqrt(k / pi) * exp(-k * s.^2);&lt;br /&gt;
&lt;br /&gt;
% Solución fundamental en dimensión 3&lt;br /&gt;
K3 = @(r, t) (phi_k(r - c * t) ./ (4 * pi * c * r));&lt;br /&gt;
&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;fundamental3&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(r,K3(r,t(i)),color='b',LineWidth=1.5);&lt;br /&gt;
    axis([0 3 0 20])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el caso de dimensión 3 vemos que de nuevo la solución representa una onda que se propaga radialmente por culpa de una perturbación formando círculos concéntricos alrededor del origen. A diferencia del caso anterior, aquí se ve cómo la onda va perdiendo intensidad a medida que avanza el tiempo.&lt;br /&gt;
&lt;br /&gt;
==Principio de Huygens==&lt;br /&gt;
&lt;br /&gt;
El principio de Huygens es un concepto fundamental en la física de ondas, este establece que cada punto de un frente de onda se puede considerar como una fuente secundaria de ondas esféricas. Estas ondas secundarias se superponen para formar el nuevo frente de onda a medida que avanza.&lt;br /&gt;
&lt;br /&gt;
Las soluciones fundamentales de la ecuación de ondas, que hemos visto en las secciones anteriores, describen cómo una perturbación inicial localizada se propaga a través del espacio. Por lo que estas soluciones proporcionan una interpretación del principio de Huygens.&lt;br /&gt;
&lt;br /&gt;
En una dimensión, la perturbación inicial se propaga en dos direcciones opuestas a velocidad c y cada punto a lo largo de la línea puede ser visto como una fuente de ondas que se propaga hacia la izquierda y hacia la derecha, formando así el nuevo frente de onda. Este comportamiento lineal refleja cómo las ondas se suman en una dimensión para avanzar. &lt;br /&gt;
&lt;br /&gt;
En el caso de dos dimensiones, la perturbación inicial se expande radialmente formando círculos concéntricos y en el de tres dimensiones la perturbación inicial se propaga esféricamente.&lt;br /&gt;
&lt;br /&gt;
==algo==&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
close all&lt;br /&gt;
  &lt;br /&gt;
 c=1;  % Velocidad de propagación.  &lt;br /&gt;
 t=[2];             % Valores de t&lt;br /&gt;
 theta=linspace(0,2*pi);      %  intervalo de theta&lt;br /&gt;
 r=linspace(0,1,50);      % intervalo del radio&lt;br /&gt;
 &lt;br /&gt;
 [TT,RR]=meshgrid(theta,r); &lt;br /&gt;
 n=size(TT);&lt;br /&gt;
 U=zeros(n);                % Inicializamos la matriz U&lt;br /&gt;
 XX=RR.*cos(TT);&lt;br /&gt;
 YY=RR.*sin(TT);&lt;br /&gt;
 &lt;br /&gt;
% Solución fundamental en polares&lt;br /&gt;
 K=@(x,y,r,t)(sqrt(r.^2+y.^2-2*r.*y.*cos(x))&amp;lt;c*t)./(0.01*(c^2*t.^2-r.^2- y.^2 + 2.*r.*y.*cos(x)&amp;lt;10^-16)+2*pi*c*sqrt(abs(c^2*t.^2- r.^2- y.^2 + 2.*r.*y.*cos(x)))); &lt;br /&gt;
 &lt;br /&gt;
 % Solución para cada valor de t&lt;br /&gt;
 for j=1:length(t)&lt;br /&gt;
     for i=1:length(r)&lt;br /&gt;
         U(i,:)=integral2(@(x,y)K(x,y,r(i),t(j)), 0,2*pi,  0,1/2)*ones(1,length(theta));&lt;br /&gt;
     end&lt;br /&gt;
    colormap jet&lt;br /&gt;
     figure(j)&lt;br /&gt;
     surf(XX,YY,U)&lt;br /&gt;
     shading interp&lt;br /&gt;
     title(&amp;quot;t=&amp;quot;+num2str(t(j)))&lt;br /&gt;
 &lt;br /&gt;
 end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t0.png|400px|thumb|right|Video de la evolución de la solución fundamental a lo largo del tiempo]]&lt;br /&gt;
[[Archivo:tt05.png|400px|thumb|left|Video de la evolución de la solución fundamental a lo largo del tiempo]]&lt;br /&gt;
[[Archivo:t1.png|400px|thumb|right|Video de la evolución de la solución fundamental a lo largo del tiempo]]&lt;br /&gt;
[[Archivo:tt2.png|400px|thumb|left|Video de la evolución de la solución fundamental a lo largo del tiempo]]&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72654</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72654"/>
				<updated>2024-05-26T11:29:55Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar la ecuación de ondas mediante el estudio de del movimiento de una cuerda. Para ello, vamos a ver cómo varía la solución en función de las condiciones iniciales...&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t), &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora, para entender mejor esta solución, vamos a tomar como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt;, lo cual nos da que la solución se expresa de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) .&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para representarla vamos a calcular las integrales necesarias para obtener los &amp;lt;math&amp;gt; a_k &amp;lt;/math&amp;gt; mediante el [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals método del trapecio] y a dibujar los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Onda que viaja en un solo sentido==&lt;br /&gt;
&lt;br /&gt;
En este caso tomamos como condiciones iniciales: &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=200(x-\frac{1}{2})e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; que es la derivada de &amp;lt;math&amp;gt;u_0(x)&amp;lt;/math&amp;gt; cambiada de signo. Al igual que en el caso anterior para representarlo vamos a realizar las integrales correspondientes para calcular los coeficientes de la solución mediante el método del trapecio y a representar los primeros 50 términos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj4.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Solución fundamental=&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72648</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72648"/>
				<updated>2024-05-26T11:23:35Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Separación de variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar la ecuación de ondas mediante el estudio de del movimiento de una cuerda. Para ello, vamos a ver cómo varía la solución en función de las condiciones iniciales...&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t), &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora, para entender mejor esta solución, vamos a tomar como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-\frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt;, lo cual nos da que la solución se expresa de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) .&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para representarla vamos a calcular las integrales necesarias para obtener los &amp;lt;math&amp;gt; a_k &amp;lt;/math&amp;gt; mediante el [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals método del trapecio] y a dibujar los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Onda que viaja en un solo sentido==&lt;br /&gt;
&lt;br /&gt;
En este caso tomamos como condiciones inciales:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj4.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Solución fundamental=&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72641</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72641"/>
				<updated>2024-05-26T11:14:25Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Separación de variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar la ecuación de ondas mediante el estudio de del movimiento de una cuerda. Para ello, vamos a ver cómo varía la solución en función de las condiciones iniciales...&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Separación de variables==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora, tomamos como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt; y vamos a dibujar la solución con los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos un video representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Onda que viaja en un solo sentido==&lt;br /&gt;
&lt;br /&gt;
En este caso tomamos como condiciones inciales:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj4.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Solución fundamental=&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72640</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72640"/>
				<updated>2024-05-26T11:13:37Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar la ecuación de ondas mediante el estudio de del movimiento de una cuerda. Para ello, vamos a ver cómo varía la solución en función de las condiciones iniciales...&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Separación de variables==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora, tomamos como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt; y vamos a dibujar la solución con los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos la pelicuala representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Onda que viaja en un solo sentido==&lt;br /&gt;
&lt;br /&gt;
En este caso tomamos como condiciones inciales:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj4.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Solución fundamental=&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72638</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72638"/>
				<updated>2024-05-26T11:11:12Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Separación de variables==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora, tomamos como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt; y vamos a dibujar la solución con los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos la pelicuala representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Onda que viaja en un solo sentido==&lt;br /&gt;
&lt;br /&gt;
En este caso tomamos como condiciones inciales:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj4.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Solución fundamental=&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72632</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72632"/>
				<updated>2024-05-26T11:08:23Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Separación de variables==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora, tomamos como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt; y vamos a dibujar la solución con los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:CuerdaEj3.gif|400px|thumb|right|Video de la evolución de la solución a lo largo del tiempo]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos la pelicuala representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:CuerdaEj3.gif&amp;diff=72629</id>
		<title>Archivo:CuerdaEj3.gif</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:CuerdaEj3.gif&amp;diff=72629"/>
				<updated>2024-05-26T11:07:12Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Cuerda3.gif&amp;diff=72625</id>
		<title>Archivo:Cuerda3.gif</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Cuerda3.gif&amp;diff=72625"/>
				<updated>2024-05-26T11:05:47Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72624</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72624"/>
				<updated>2024-05-26T11:04:36Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,\\&lt;br /&gt;
u(0,t)=u(1,t)=0,\\&lt;br /&gt;
u(x,0)=u_0(x),\\&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Separación de variables==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora, tomamos como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt; y vamos a dibujar la solución con los primeros 50 términos de la serie.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Definimos las funciones&lt;br /&gt;
u0=@(x) exp(-100*(x-0.5).^2); %Condición inicial&lt;br /&gt;
uk=@(x,t,k) sin(k.*pi.*x).*cos(k*pi.*t); %Solución del problema&lt;br /&gt;
&lt;br /&gt;
%Aplicamos la regla del trapecio&lt;br /&gt;
a=0; b=1; %Extremos del intervalo                 &lt;br /&gt;
x=linspace(a,b,100); %Vector de espacio&lt;br /&gt;
t=linspace(a,2,100); %Vector de tiempo&lt;br /&gt;
N=length(x)-1; %Número de puntos&lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
w=ones(N+1,1); %Vector de pesos             &lt;br /&gt;
w(1)=1/2; w(N+1)=1/2;&lt;br /&gt;
f_n=zeros(length(x),length(t));&lt;br /&gt;
&lt;br /&gt;
%Suma de los 10 primeros términos en todo el vector de tiempo&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    for k=1:50&lt;br /&gt;
        g=u0(x)*sin(k*pi*x)'; &lt;br /&gt;
        a_k=2*h*w'*g; %Resultado de la regla del trapecio (c_k)&lt;br /&gt;
        f_n(i,:)= f_n(i,:)+a_k.*uk(x,t(i),k);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Hacemos la pelicuala representando la solución para distintos tiempos&lt;br /&gt;
pelicula=VideoWriter(&amp;quot;cuerda&amp;quot;,'MPEG-4');&lt;br /&gt;
pelicula.FrameRate=10;&lt;br /&gt;
open(pelicula)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
    f=f_n(i,:);&lt;br /&gt;
    figura=figure(1);&lt;br /&gt;
    plot(x,f,color='b',LineWidth=1.5)&lt;br /&gt;
    title(['t = ' num2str(t(i))]);&lt;br /&gt;
    axis([0 1 -1 1])&lt;br /&gt;
    imagen=getframe(figura);&lt;br /&gt;
    writeVideo(pelicula,imagen);&lt;br /&gt;
end&lt;br /&gt;
close(pelicula)&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72609</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72609"/>
				<updated>2024-05-26T10:48:35Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,&lt;br /&gt;
u(0,t)=u(1,t)=0,&lt;br /&gt;
u(x,0)=u_0(x),&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Separación de variables==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora, tomamos como datos iniciales &amp;lt;math&amp;gt;u_0(x)=e^{-100(x-frac{1}{2})^2}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)=0&amp;lt;/math&amp;gt; y vamos a dibujar la solución con los primeros 50 términos de la serie.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72608</id>
		<title>Ecuación de ondas (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=72608"/>
				<updated>2024-05-26T10:42:50Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
=Ecuación de ondas=&lt;br /&gt;
&lt;br /&gt;
Vamos a considerar una cuerda vibrante en el intervalo [0,1], con densidad d y tensión &amp;lt;math&amp;gt; \tau _0&amp;lt;/math&amp;gt; constante, tal que la velocidad de propagación es: &amp;lt;math&amp;gt; c=\frac{\tau_0}{d}=1&amp;lt;/math&amp;gt;. Además, vamos a suponer que la cuerda está fija en los extremos con &amp;lt;math&amp;gt; u_0(x)&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u_1(x)&amp;lt;/math&amp;gt; su posición e impulso iniciales respectivamente. Teniendo todo esto en cuenta y la ecuación de ondas, obtenemos el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0,&lt;br /&gt;
u(0,t)=u(1,t)=0,&lt;br /&gt;
u(x,0)=u_0(x),&lt;br /&gt;
u_t(x,0)=u_1(x).&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde &amp;lt;math&amp;gt;u(x)&amp;lt;/math&amp;gt; representa la posición de cada punto de la cuerda en cada momento.&lt;br /&gt;
&lt;br /&gt;
==Separación de variables==&lt;br /&gt;
&lt;br /&gt;
Para resolver este sistema, vamos a utilizar el método de separación de variables, el cual consiste en suponer que &amp;lt;math&amp;gt; u(x,t)=T(t)X(x)&amp;lt;/math&amp;gt;, lo cual nos da lugar a resolver dos problemas por separado, uno que depende de t y otro que depende de x. Al hacer esto, obtenemos la siguiente solución:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u(x,t)=\sum_{k=1}^\infty a_k sin(k\pi x) cos(k \pi t) + b_k sin(k \pi x) sin(k \pi t) &amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
siendo &amp;lt;math&amp;gt; a_k=\frac{\int_0^1 sin(k\pi x)u_0(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; b_k=\frac{1}{k\pi}\frac{\int_0^1 sin(k\pi x)u_1(x)dx}{\int_0^1 sin^2(k \pi x)dx}&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71325</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71325"/>
				<updated>2024-04-19T10:43:03Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Ecuación de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar  la ecuación de Laplace y la ecuación de Poisson. Para ello vamos a calcular soluciones de distintas formas usando cosas como la fórmula de Poisson o el potencial logarítmico, graficándolas y modificando algunos de los parámetros.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución, cuya gráfica va a ser exacta ya que la serie tiene un único término.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Al haber resuelto el problema por ambos métodos, observamos que este último nos da la solución de forma exacta, por lo que en este caso va a ser más efectivo que el anterior. Esto no tendría porque ser así en todos los casos ya que la serie de Fourier para otra función G distinta puede tener infinitos términos, lo que haría que la aproximación no sea exacta, pero aun así sería más exacta que con el método anterior en los puntos cercanos a la forntera.&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
La desigualdad de Harnack establece que dada una función &amp;lt;math&amp;gt; u\geq 0 &amp;lt;/math&amp;gt; armónica en &amp;lt;math&amp;gt; \Omega \subset \mathbb{R}^n&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; B_R(z) \subset \Omega &amp;lt;/math&amp;gt; con  &amp;lt;math&amp;gt; z \in \Omega &amp;lt;/math&amp;gt;, entonces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{R^{n-2}(R-r)}{(R+r)^{n-1}}u(z)\leq u(x) \leq \frac{R^{n-2}(R+r)}{(R-r)^{n-1}}u(z)&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para poder aplicarla a nuestro problema, vamos a tomar v=U+M, siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
Primero vamos a aplicar la desigualdad variando el radio de la bola y a observar como varia la región que determina en función de esto. Para ello vamos a representar las cotas en escala logarítmica, lo cual nos permite observar mejor su comportamiento.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Lo más destacable en las 3 gráficas es que en todas ellas ambas restricciones se van al infinito cunado llegan al radio correspondiente a la bola en la que están calculadas. Esto tiene sentido ya que podemos observar que el denominador de la cota superior se anula cuando r=R y por lo tanto se va a infinito y su logaritmo también, y la cota inferior es 0 cuando r=R y por tanto su logaritmo se va a menos infinito. También podemos observar, que debido a esto, el pico que forman ambas restricciones es más estrecho cuando aumentamos el radio de la bola.&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo varían las restricciones si variamos la dimensión.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Al observar estas gráficas podemos observar que independientemente del radio cuando aumentamos la dimensión aumenta la región que definen ambas restricciones. Además, en n=3 el comportamiento sigue siendo el mismo que el comentado para n=2.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF52.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
N1=300; N2=300; %Número de puntos&lt;br /&gt;
a=0; b=1; c=0; d=2*pi; %Extremos de los intervalos&lt;br /&gt;
h1=(b-a)/N1; h2=(d-c)/N2;&lt;br /&gt;
r=a:h1:b; theta=c:h2:d; %Particiones de r y theta&lt;br /&gt;
[rr,tt]=meshgrid(r,theta); &lt;br /&gt;
w1=ones(N1+1,1);                &lt;br /&gt;
w1(1)=1/2; w1(N1+1)=1/2;&lt;br /&gt;
w2=ones(N2+1,1);                 &lt;br /&gt;
w2(1)=1/2; w2(N2+1)=1/2;&lt;br /&gt;
x11=-1:2/100:1; % Partición de x_1&lt;br /&gt;
x21=-1:2/100:1; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        f=-log(sqrt((x11(j)-rr.*cos(tt)).^2+(x21(i)-rr.*sin(tt)).^2)).*rr; %Potencial logaritmico               &lt;br /&gt;
        u1(i,j)=h1*h2*w2'*f*w1/(2*pi); %Solución del método del trapecio en 2 variable&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos la solución&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11,x21, u1, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución con el potencial logarítmico');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF5_1.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Representación de la solución asintótica&lt;br /&gt;
&lt;br /&gt;
M=pi; %Area del circulo de radio 1&lt;br /&gt;
f=@(x1,x2) -M/(2*pi).*log(sqrt(x1.^2+x2.^2)); % Función que describe el comportamiento asintótico&lt;br /&gt;
&lt;br /&gt;
N=200; %Número de intervalos&lt;br /&gt;
a=-1; b=1;                     &lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
x11=a:h:b; %Partición de x_1&lt;br /&gt;
x21=a:h:b; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
u=zeros(length(x11),length(x21));&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        u(i,j)=f(x11(i),x21(j)); %Evaluamos f en la malla de puntos&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos el resultado&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11, x21, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución cuando x tienda a \infty');&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF53.jpg|400px|thumb|right]]&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GF5_1.jpg&amp;diff=71323</id>
		<title>Archivo:GF5 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GF5_1.jpg&amp;diff=71323"/>
				<updated>2024-04-19T10:41:54Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GF53.jpg&amp;diff=71303</id>
		<title>Archivo:GF53.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GF53.jpg&amp;diff=71303"/>
				<updated>2024-04-19T10:32:23Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71289</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71289"/>
				<updated>2024-04-19T10:27:17Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar  la ecuación de Laplace y la ecuación de Poisson. Para ello vamos a calcular soluciones de distintas formas usando cosas como la fórmula de Poisson o el potencial logarítmico, graficándolas y modificando algunos de los parámetros.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución, cuya gráfica va a ser exacta ya que la serie tiene un único término.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Al haber resuelto el problema por ambos métodos, observamos que este último nos da la solución de forma exacta, por lo que en este caso va a ser más efectivo que el anterior. Esto no tendría porque ser así en todos los casos ya que la serie de Fourier para otra función G distinta puede tener infinitos términos, lo que haría que la aproximación no sea exacta, pero aun así sería más exacta que con el método anterior en los puntos cercanos a la forntera.&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
La desigualdad de Harnack establece que dada una función &amp;lt;math&amp;gt; u\geq 0 &amp;lt;/math&amp;gt; armónica en &amp;lt;math&amp;gt; \Omega \subset \mathbb{R}^n&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; B_R(z) \subset \Omega &amp;lt;/math&amp;gt; con  &amp;lt;math&amp;gt; z \in \Omega &amp;lt;/math&amp;gt;, entonces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{R^{n-2}(R-r)}{(R+r)^{n-1}}u(z)\leq u(x) \leq \frac{R^{n-2}(R+r)}{(R-r)^{n-1}}u(z)&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para poder aplicarla a nuestro problema, vamos a tomar v=U+M, siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
Primero vamos a aplicar la desigualdad variando el radio de la bola y a observar como varia la región que determina en función de esto. Para ello vamos a representar las cotas en escala logarítmica, lo cual nos permite observar mejor su comportamiento.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Lo más destacable en las 3 gráficas es que en todas ellas ambas restricciones se van al infinito cunado llegan al radio correspondiente a la bola en la que están calculadas. Esto tiene sentido ya que podemos observar que el denominador de la cota superior se anula cuando r=R y por lo tanto se va a infinito y su logaritmo también, y la cota inferior es 0 cuando r=R y por tanto su logaritmo se va a menos infinito. También podemos observar, que debido a esto, el pico que forman ambas restricciones es más estrecho cuando aumentamos el radio de la bola.&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo varían las restricciones si variamos la dimensión.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Al observar estas gráficas podemos observar que independientemente del radio cuando aumentamos la dimensión aumenta la región que definen ambas restricciones. Además, en n=3 el comportamiento sigue siendo el mismo que el comentado para n=2.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF52.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
N1=300; N2=300; %Numero de puntos&lt;br /&gt;
a=0; b=1; c=0; d=2*pi; %Extremos de los intervalos&lt;br /&gt;
h1=(b-a)/N1; h2=(d-c)/N2;&lt;br /&gt;
r=a:h1:b; theta=c:h2:d; %Particiones de r y theta&lt;br /&gt;
[rr,tt]=meshgrid(r,theta); &lt;br /&gt;
w1=ones(N1+1,1);                &lt;br /&gt;
w1(1)=1/2; w1(N1+1)=1/2;&lt;br /&gt;
w2=ones(N2+1,1);                 &lt;br /&gt;
w2(1)=1/2; w2(N2+1)=1/2;&lt;br /&gt;
x11=-1:2/100:1; % Partición de x_1&lt;br /&gt;
x21=-1:2/100:1; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        f=-log(sqrt((x11(j)-rr.*cos(tt)).^2+(x21(i)-rr.*sin(tt)).^2)).*rr; %Potencial logaritmico               &lt;br /&gt;
        u1(i,j)=h1*h2*w2'*f*w1/(2*pi); %Solución del método del trapecio en 2 variable&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos la solución&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11,x21, u1, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución con el potencial logarítmico');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF51.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Representación de la solución asintótica&lt;br /&gt;
&lt;br /&gt;
M=2*pi; %Area del circulo de radio 1&lt;br /&gt;
f=@(x1,x2) -M/(2*pi).*log(sqrt(x1.^2+x2.^2)); % Función que describe el comportamiento asintótico&lt;br /&gt;
&lt;br /&gt;
N=200; %Número de intervalos&lt;br /&gt;
a=-1; b=1;                     &lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
x11=a:h:b; %Partición de x_1&lt;br /&gt;
x21=a:h:b; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
u=zeros(length(x11),length(x21));&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        u(i,j)=f(x11(i),x21(j)); %Evaluamos f en la malla de puntos&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos el resultado&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11, x21, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución cuando x tienda a \infty');&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71277</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71277"/>
				<updated>2024-04-19T10:21:55Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Preliminares */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución, cuya gráfica va a ser exacta ya que la serie tiene un único término.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Al haber resuelto el problema por ambos métodos, observamos que este último nos da la solución de forma exacta, por lo que en este caso va a ser más efectivo que el anterior. Esto no tendría porque ser así en todos los casos ya que la serie de Fourier para otra función G distinta puede tener infinitos términos, lo que haría que la aproximación no sea exacta, pero aun así sería más exacta que con el método anterior en los puntos cercanos a la forntera.&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
La desigualdad de Harnack establece que dada una función &amp;lt;math&amp;gt; u\geq 0 &amp;lt;/math&amp;gt; armónica en &amp;lt;math&amp;gt; \Omega \subset \mathbb{R}^n&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; B_R(z) \subset \Omega &amp;lt;/math&amp;gt; con  &amp;lt;math&amp;gt; z \in \Omega &amp;lt;/math&amp;gt;, entonces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{R^{n-2}(R-r)}{(R+r)^{n-1}}u(z)\leq u(x) \leq \frac{R^{n-2}(R+r)}{(R-r)^{n-1}}u(z)&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para poder aplicarla a nuestro problema, vamos a tomar v=U+M, siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
Primero vamos a aplicar la desigualdad variando el radio de la bola y a observar como varia la región que determina en función de esto. Para ello vamos a representar las cotas en escala logarítmica, lo cual nos permite observar mejor su comportamiento.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Lo más destacable en las 3 gráficas es que en todas ellas ambas restricciones se van al infinito cunado llegan al radio correspondiente a la bola en la que están calculadas. Esto tiene sentido ya que podemos observar que el denominador de la cota superior se anula cuando r=R y por lo tanto se va a infinito y su logaritmo también, y la cota inferior es 0 cuando r=R y por tanto su logaritmo se va a menos infinito. También podemos observar, que debido a esto, el pico que forman ambas restricciones es más estrecho cuando aumentamos el radio de la bola.&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo varían las restricciones si variamos la dimensión.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Al observar estas gráficas podemos observar que independientemente del radio cuando aumentamos la dimensión aumenta la región que definen ambas restricciones. Además, en n=3 el comportamiento sigue siendo el mismo que el comentado para n=2.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF52.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
N1=300; N2=300; %Numero de puntos&lt;br /&gt;
a=0; b=1; c=0; d=2*pi; %Extremos de los intervalos&lt;br /&gt;
h1=(b-a)/N1; h2=(d-c)/N2;&lt;br /&gt;
r=a:h1:b; theta=c:h2:d; %Particiones de r y theta&lt;br /&gt;
[rr,tt]=meshgrid(r,theta); &lt;br /&gt;
w1=ones(N1+1,1);                &lt;br /&gt;
w1(1)=1/2; w1(N1+1)=1/2;&lt;br /&gt;
w2=ones(N2+1,1);                 &lt;br /&gt;
w2(1)=1/2; w2(N2+1)=1/2;&lt;br /&gt;
x11=-1:2/100:1; % Partición de x_1&lt;br /&gt;
x21=-1:2/100:1; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        f=-log(sqrt((x11(j)-rr.*cos(tt)).^2+(x21(i)-rr.*sin(tt)).^2)).*rr; %Potencial logaritmico               &lt;br /&gt;
        u1(i,j)=h1*h2*w2'*f*w1/(2*pi); %Solución del método del trapecio en 2 variable&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos la solución&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11,x21, u1, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución con el potencial logarítmico');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF51.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Representación de la solución asintótica&lt;br /&gt;
&lt;br /&gt;
M=2*pi; %Area del circulo de radio 1&lt;br /&gt;
f=@(x1,x2) -M/(2*pi).*log(sqrt(x1.^2+x2.^2)); % Función que describe el comportamiento asintótico&lt;br /&gt;
&lt;br /&gt;
N=200; %Número de intervalos&lt;br /&gt;
a=-1; b=1;                     &lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
x11=a:h:b; %Partición de x_1&lt;br /&gt;
x21=a:h:b; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
u=zeros(length(x11),length(x21));&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        u(i,j)=f(x11(i),x21(j)); %Evaluamos f en la malla de puntos&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos el resultado&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11, x21, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución cuando x tienda a \infty');&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71275</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71275"/>
				<updated>2024-04-19T10:21:24Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Ecuación de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución, cuya gráfica va a ser exacta ya que la serie tiene un único término.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Al haber resuelto el problema por ambos métodos, observamos que este último nos da la solución de forma exacta, por lo que en este caso va a ser más efectivo que el anterior. Esto no tendría porque ser así en todos los casos ya que la serie de Fourier para otra función G distinta puede tener infinitos términos, lo que haría que la aproximación no sea exacta, pero aun así sería más exacta que con el método anterior en los puntos cercanos a la forntera.&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
La desigualdad de Harnack establece que dada una función &amp;lt;math&amp;gt; u\geq 0 &amp;lt;/math&amp;gt; armónica en &amp;lt;math&amp;gt; \Omega \subset \mathbb{R}^n&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; B_R(z) \subset \Omega &amp;lt;/math&amp;gt; con  &amp;lt;math&amp;gt; z \in \Omega &amp;lt;/math&amp;gt;, entonces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{R^{n-2}(R-r)}{(R+r)^{n-1}}u(z)\leq u(x) \leq \frac{R^{n-2}(R+r)}{(R-r)^{n-1}}u(z)&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para poder aplicarla a nuestro problema, vamos a tomar v=U+M, siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
Primero vamos a aplicar la desigualdad variando el radio de la bola y a observar como varia la región que determina en función de esto. Para ello vamos a representar las cotas en escala logarítmica, lo cual nos permite observar mejor su comportamiento.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Lo más destacable en las 3 gráficas es que en todas ellas ambas restricciones se van al infinito cunado llegan al radio correspondiente a la bola en la que están calculadas. Esto tiene sentido ya que podemos observar que el denominador de la cota superior se anula cuando r=R y por lo tanto se va a infinito y su logaritmo también, y la cota inferior es 0 cuando r=R y por tanto su logaritmo se va a menos infinito. También podemos observar, que debido a esto, el pico que forman ambas restricciones es más estrecho cuando aumentamos el radio de la bola.&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo varían las restricciones si variamos la dimensión.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Al observar estas gráficas podemos observar que independientemente del radio cuando aumentamos la dimensión aumenta la región que definen ambas restricciones. Además, en n=3 el comportamiento sigue siendo el mismo que el comentado para n=2.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF52.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
N1=300; N2=300; %Numero de puntos&lt;br /&gt;
a=0; b=1; c=0; d=2*pi; %Extremos de los intervalos&lt;br /&gt;
h1=(b-a)/N1; h2=(d-c)/N2;&lt;br /&gt;
r=a:h1:b; theta=c:h2:d; %Particiones de r y theta&lt;br /&gt;
[rr,tt]=meshgrid(r,theta); &lt;br /&gt;
w1=ones(N1+1,1);                &lt;br /&gt;
w1(1)=1/2; w1(N1+1)=1/2;&lt;br /&gt;
w2=ones(N2+1,1);                 &lt;br /&gt;
w2(1)=1/2; w2(N2+1)=1/2;&lt;br /&gt;
x11=-1:2/100:1; % Partición de x_1&lt;br /&gt;
x21=-1:2/100:1; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        f=-log(sqrt((x11(j)-rr.*cos(tt)).^2+(x21(i)-rr.*sin(tt)).^2)).*rr; %Potencial logaritmico               &lt;br /&gt;
        u1(i,j)=h1*h2*w2'*f*w1/(2*pi); %Solución del método del trapecio en 2 variable&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos la solución&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11,x21, u1, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución con el potencial logarítmico');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF51.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Representación de la solución asintótica&lt;br /&gt;
&lt;br /&gt;
M=2*pi; %Area del circulo de radio 1&lt;br /&gt;
f=@(x1,x2) -M/(2*pi).*log(sqrt(x1.^2+x2.^2)); % Función que describe el comportamiento asintótico&lt;br /&gt;
&lt;br /&gt;
N=200; %Número de intervalos&lt;br /&gt;
a=-1; b=1;                     &lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
x11=a:h:b; %Partición de x_1&lt;br /&gt;
x21=a:h:b; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
u=zeros(length(x11),length(x21));&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        u(i,j)=f(x11(i),x21(j)); %Evaluamos f en la malla de puntos&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos el resultado&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11, x21, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución cuando x tienda a \infty');&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GF52.jpg&amp;diff=71273</id>
		<title>Archivo:GF52.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GF52.jpg&amp;diff=71273"/>
				<updated>2024-04-19T10:20:54Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71266</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71266"/>
				<updated>2024-04-19T10:17:07Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Ecuación de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución, cuya gráfica va a ser exacta ya que la serie tiene un único término.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Al haber resuelto el problema por ambos métodos, observamos que este último nos da la solución de forma exacta, por lo que en este caso va a ser más efectivo que el anterior. Esto no tendría porque ser así en todos los casos ya que la serie de Fourier para otra función G distinta puede tener infinitos términos, lo que haría que la aproximación no sea exacta, pero aun así sería más exacta que con el método anterior en los puntos cercanos a la forntera.&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
La desigualdad de Harnack establece que dada una función &amp;lt;math&amp;gt; u\geq 0 &amp;lt;/math&amp;gt; armónica en &amp;lt;math&amp;gt; \Omega \subset \mathbb{R}^n&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; B_R(z) \subset \Omega &amp;lt;/math&amp;gt; con  &amp;lt;math&amp;gt; z \in \Omega &amp;lt;/math&amp;gt;, entonces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{R^{n-2}(R-r)}{(R+r)^{n-1}}u(z)\leq u(x) \leq \frac{R^{n-2}(R+r)}{(R-r)^{n-1}}u(z)&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para poder aplicarla a nuestro problema, vamos a tomar v=U+M, siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
Primero vamos a aplicar la desigualdad variando el radio de la bola y a observar como varia la región que determina en función de esto. Para ello vamos a representar las cotas en escala logarítmica, lo cual nos permite observar mejor su comportamiento.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Lo más destacable en las 3 gráficas es que en todas ellas ambas restricciones se van al infinito cunado llegan al radio correspondiente a la bola en la que están calculadas. Esto tiene sentido ya que podemos observar que el denominador de la cota superior se anula cuando r=R y por lo tanto se va a infinito y su logaritmo también, y la cota inferior es 0 cuando r=R y por tanto su logaritmo se va a menos infinito. También podemos observar, que debido a esto, el pico que forman ambas restricciones es más estrecho cuando aumentamos el radio de la bola.&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo varían las restricciones si variamos la dimensión.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Al observar estas gráficas podemos observar que independientemente del radio cuando aumentamos la dimensión aumenta la región que definen ambas restricciones. Además, en n=3 el comportamiento sigue siendo el mismo que el comentado para n=2.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF51.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Representación de la solución asintótica&lt;br /&gt;
&lt;br /&gt;
M=2*pi; %Area del circulo de radio 1&lt;br /&gt;
f=@(x1,x2) -M/(2*pi).*log(sqrt(x1.^2+x2.^2)); % Función que describe el comportamiento asintótico&lt;br /&gt;
&lt;br /&gt;
N=200; %Número de intervalos&lt;br /&gt;
a=-1; b=1;                     &lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
x11=a:h:b; %Partición de x_1&lt;br /&gt;
x21=a:h:b; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
u=zeros(length(x11),length(x21));&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        u(i,j)=f(x11(i),x21(j)); %Evaluamos f en la malla de puntos&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos el resultado&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11, x21, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución cuando x tienda a \infty');&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71265</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71265"/>
				<updated>2024-04-19T10:16:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Ecuación de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución, cuya gráfica va a ser exacta ya que la serie tiene un único término.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Al haber resuelto el problema por ambos métodos, observamos que este último nos da la solución de forma exacta, por lo que en este caso va a ser más efectivo que el anterior. Esto no tendría porque ser así en todos los casos ya que la serie de Fourier para otra función G distinta puede tener infinitos términos, lo que haría que la aproximación no sea exacta, pero aun así sería más exacta que con el método anterior en los puntos cercanos a la forntera.&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
La desigualdad de Harnack establece que dada una función &amp;lt;math&amp;gt; u\geq 0 &amp;lt;/math&amp;gt; armónica en &amp;lt;math&amp;gt; \Omega \subset \mathbb{R}^n&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; B_R(z) \subset \Omega &amp;lt;/math&amp;gt; con  &amp;lt;math&amp;gt; z \in \Omega &amp;lt;/math&amp;gt;, entonces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{R^{n-2}(R-r)}{(R+r)^{n-1}}u(z)\leq u(x) \leq \frac{R^{n-2}(R+r)}{(R-r)^{n-1}}u(z)&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para poder aplicarla a nuestro problema, vamos a tomar v=U+M, siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
Primero vamos a aplicar la desigualdad variando el radio de la bola y a observar como varia la región que determina en función de esto. Para ello vamos a representar las cotas en escala logarítmica, lo cual nos permite observar mejor su comportamiento.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Lo más destacable en las 3 gráficas es que en todas ellas ambas restricciones se van al infinito cunado llegan al radio correspondiente a la bola en la que están calculadas. Esto tiene sentido ya que podemos observar que el denominador de la cota superior se anula cuando r=R y por lo tanto se va a infinito y su logaritmo también, y la cota inferior es 0 cuando r=R y por tanto su logaritmo se va a menos infinito. También podemos observar, que debido a esto, el pico que forman ambas restricciones es más estrecho cuando aumentamos el radio de la bola.&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo varían las restricciones si variamos la dimensión.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Al observar estas gráficas podemos observar que independientemente del radio cuando aumentamos la dimensión aumenta la región que definen ambas restricciones. Además, en n=3 el comportamiento sigue siendo el mismo que el comentado para n=2.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF51.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Representación de la solución asintótica&lt;br /&gt;
&lt;br /&gt;
M=2*pi; %Area del circulo de radio 1&lt;br /&gt;
f=@(x1,x2) -M/(2*pi).*log(sqrt(x1.^2+x2.^2)); % Función que describe el comportamiento asintótico&lt;br /&gt;
&lt;br /&gt;
N=200; %Número de intervalos&lt;br /&gt;
a=-1; b=1;                     &lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
x11=a:h:b; %Partición de x_1&lt;br /&gt;
x21=a:h:b; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
u=zeros(length(x11),length(x21));&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        u(i,j)=f(x11(i),x21(j)); %Evaluamos f en la malla de puntos&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos el resultado&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11, x21, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución cuando |x| tienda a \infty');&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71264</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71264"/>
				<updated>2024-04-19T10:16:04Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Ecuación de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución, cuya gráfica va a ser exacta ya que la serie tiene un único término.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Al haber resuelto el problema por ambos métodos, observamos que este último nos da la solución de forma exacta, por lo que en este caso va a ser más efectivo que el anterior. Esto no tendría porque ser así en todos los casos ya que la serie de Fourier para otra función G distinta puede tener infinitos términos, lo que haría que la aproximación no sea exacta, pero aun así sería más exacta que con el método anterior en los puntos cercanos a la forntera.&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
La desigualdad de Harnack establece que dada una función &amp;lt;math&amp;gt; u\geq 0 &amp;lt;/math&amp;gt; armónica en &amp;lt;math&amp;gt; \Omega \subset \mathbb{R}^n&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; B_R(z) \subset \Omega &amp;lt;/math&amp;gt; con  &amp;lt;math&amp;gt; z \in \Omega &amp;lt;/math&amp;gt;, entonces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{R^{n-2}(R-r)}{(R+r)^{n-1}}u(z)\leq u(x) \leq \frac{R^{n-2}(R+r)}{(R-r)^{n-1}}u(z)&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para poder aplicarla a nuestro problema, vamos a tomar v=U+M, siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
Primero vamos a aplicar la desigualdad variando el radio de la bola y a observar como varia la región que determina en función de esto. Para ello vamos a representar las cotas en escala logarítmica, lo cual nos permite observar mejor su comportamiento.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Lo más destacable en las 3 gráficas es que en todas ellas ambas restricciones se van al infinito cunado llegan al radio correspondiente a la bola en la que están calculadas. Esto tiene sentido ya que podemos observar que el denominador de la cota superior se anula cuando r=R y por lo tanto se va a infinito y su logaritmo también, y la cota inferior es 0 cuando r=R y por tanto su logaritmo se va a menos infinito. También podemos observar, que debido a esto, el pico que forman ambas restricciones es más estrecho cuando aumentamos el radio de la bola.&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo varían las restricciones si variamos la dimensión.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Al observar estas gráficas podemos observar que independientemente del radio cuando aumentamos la dimensión aumenta la región que definen ambas restricciones. Además, en n=3 el comportamiento sigue siendo el mismo que el comentado para n=2.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF51.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Representación de la solución cuando |x| tiende a infinito&lt;br /&gt;
&lt;br /&gt;
M=2*pi; %Area del circulo de radio 1&lt;br /&gt;
f=@(x1,x2) -M/(2*pi).*log(sqrt(x1.^2+x2.^2)); % Función que describe el comportamiento asintótico&lt;br /&gt;
&lt;br /&gt;
N=200; %Número de intervalos&lt;br /&gt;
a=-1; b=1;                     &lt;br /&gt;
h=(b-a)/N;&lt;br /&gt;
x11=a:h:b; %Partición de x_1&lt;br /&gt;
x21=a:h:b; %Partición de x_2&lt;br /&gt;
&lt;br /&gt;
u=zeros(length(x11),length(x21));&lt;br /&gt;
for j=1:length(x11)&lt;br /&gt;
    for i=1:length(x21)&lt;br /&gt;
        u(i,j)=f(x11(i),x21(j)); %Evaluamos f en la malla de puntos&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Graficamos el resultado&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(x11, x21, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x_1');&lt;br /&gt;
ylabel('x_2');&lt;br /&gt;
zlabel('u(x_1, x_2)');&lt;br /&gt;
title('Solución cuando |x| tienda a \infty');&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GF51.jpg&amp;diff=71257</id>
		<title>Archivo:GF51.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GF51.jpg&amp;diff=71257"/>
				<updated>2024-04-19T10:14:40Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71247</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71247"/>
				<updated>2024-04-19T10:07:57Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Desigualdad de Harnack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución, cuya gráfica va a ser exacta ya que la serie tiene un único término.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Al haber resuelto el problema por ambos métodos, observamos que este último nos da la solución de forma exacta, por lo que en este caso va a ser más efectivo que el anterior. Esto no tendría porque ser así en todos los casos ya que la serie de Fourier para otra función G distinta puede tener infinitos términos, lo que haría que la aproximación no sea exacta, pero aun así sería más exacta que con el método anterior en los puntos cercanos a la forntera.&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
La desigualdad de Harnack establece que dada una función &amp;lt;math&amp;gt; u\geq 0 &amp;lt;/math&amp;gt; armónica en &amp;lt;math&amp;gt; \Omega \subset \mathbb{R}^n&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; B_R(z) \subset \Omega &amp;lt;/math&amp;gt; con  &amp;lt;math&amp;gt; z \in \Omega &amp;lt;/math&amp;gt;, entonces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{R^{n-2}(R-r)}{(R+r)^{n-1}}u(z)\leq u(x) \leq \frac{R^{n-2}(R+r)}{(R-r)^{n-1}}u(z)&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para poder aplicarla a nuestro problema, vamos a tomar v=U+M, siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
Primero vamos a aplicar la desigualdad variando el radio de la bola y a observar como varia la región que determina en función de esto. Para ello vamos a representar las cotas en escala logarítmica, lo cual nos permite observar mejor su comportamiento.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Lo más destacable en las 3 gráficas es que en todas ellas ambas restricciones se van al infinito cunado llegan al radio correspondiente a la bola en la que están calculadas. Esto tiene sentido ya que podemos observar que el denominador de la cota superior se anula cuando r=R y por lo tanto se va a infinito y su logaritmo también, y la cota inferior es 0 cuando r=R y por tanto su logaritmo se va a menos infinito. También podemos observar, que debido a esto, el pico que forman ambas restricciones es más estrecho cuando aumentamos el radio de la bola.&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo varían las restricciones si variamos la dimensión.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Al observar estas gráficas podemos observar que independientemente del radio cuando aumentamos la dimensión aumenta la región que definen ambas restricciones. Además, en n=3 el comportamiento sigue siendo el mismo que el comentado para n=2.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71240</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71240"/>
				<updated>2024-04-19T10:00:02Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Desigualdad de Harnack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución, cuya gráfica va a ser exacta ya que la serie tiene un único término.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Al haber resuelto el problema por ambos métodos, observamos que este último nos da la solución de forma exacta, por lo que en este caso va a ser más efectivo que el anterior. Esto no tendría porque ser así en todos los casos ya que la serie de Fourier para otra función G distinta puede tener infinitos términos, lo que haría que la aproximación no sea exacta, pero aun así sería más exacta que con el método anterior en los puntos cercanos a la forntera.&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
La desigualdad de Harnack establece que dada una función &amp;lt;math&amp;gt; u\geq 0 &amp;lt;/math&amp;gt; armónica en &amp;lt;math&amp;gt; \Omega \subset \mathbb{R}^n&amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; B_R(z) \subset \Omega &amp;lt;/math&amp;gt; con  &amp;lt;math&amp;gt; z \in \Omega &amp;lt;/math&amp;gt;, entonces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;\frac{R^{n-2}(R-r)}{(R+r)^{n-1}}u(z)\leq u(x) \leq \frac{R^{n-2}(R+r)}{(R-r)^{n-1}}u(z)&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para poder aplicarla a nuestro problema, vamos a tomar v=U+M, siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
Primero vamos a aplicar la desigualdad variando el radio de la bola y a observar como varia la región que determina en función de esto.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Lo más destacable en las 3 gráficas es que en todas ellas ambas restricciones se van al infinito cunado llegan al radio correspondiente a la bola en la que están calculadas. esto tiene sentido ya que podemos observar que el denominador de ambas restricciones se anula cuando r=R. También podemos observar, que debido a esto, el pico que forman ambas restricciones es más estrecho cuando aumentamos el radio de la bola.&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo varían las restricciones si variamos la dimensión.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center|Desigualdad de Harnack]]&lt;br /&gt;
&lt;br /&gt;
Al observar estas gráficas podemos observar que independientemente del radio cuando aumentamos la dimensión aumenta la región que definen ambas restricciones.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71211</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71211"/>
				<updated>2024-04-19T09:37:01Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Serie de Fourier */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución, cuya gráfica va a ser exacta ya que la serie tiene un único término.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Al haber resuelto el problema por ambos métodos, observamos que este último nos da la solución de forma exacta, por lo que en este caso va a ser más efectivo que el anterior. Esto no tendría porque ser así en todos los casos ya que la serie de Fourier para otra función G distinta puede tener infinitos términos, lo que haría que la aproximación no sea exacta, pero aun así sería más exacta que con el método anterior en los puntos cercanos a la forntera.&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center]]&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71202</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71202"/>
				<updated>2024-04-19T09:30:02Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Serie de Fourier */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y a aplicar el método de separación de variables. Al hacer esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt;. Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de Fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt; y a igualar ambas series cuando r=1. Al hacer esto vemos que para que ambas series sean iguale los coeficientes tienen que ser iguales, por lo que vamos a calcular los coeficientes de  &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; y a ver su equivalencia con los de  &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta \quad \quad \quad a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta \quad \quad \quad b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a dibujar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center]]&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71189</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71189"/>
				<updated>2024-04-19T09:17:51Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Fórmula de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error para valores de n pequeños, es decir, puntos que están relativamente lejos de la frontera el erros es pequeño al igual que en el caso anterior. Por el contrario, según aumenta la n, es decir, según nos acercamos a la frontera el error aumenta, lo cual tiene sentido ya que como hemos comentado antes la fórmula de Poisson da problemas en la frontera.&lt;br /&gt;
&lt;br /&gt;
Además, podemos observar que el error se estabiliza aproximadamente en  &amp;lt;math&amp;gt; n=4 &amp;lt;/math&amp;gt;, esto se debe a que para este valor de n el punto ya esta suficientemente cerca de la frontera como para representar todo el error que se da en esta y por ello aunque nos acerquemos más a la frontera (aumente n) el error se mantiene estable en  &amp;lt;math&amp;gt; 0.5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center]]&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71163</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71163"/>
				<updated>2024-04-19T09:07:32Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Fórmula de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según nos acercamos a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error (la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson) cuando aumentamos la n, es decir, cuando nos vamos acercando a la frontera. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo cerca de la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center]]&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71153</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71153"/>
				<updated>2024-04-19T09:04:04Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Fórmula de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; n=3 &amp;lt;/math&amp;gt;, esto se debe a que con &amp;lt;math&amp;gt; 10^3 &amp;lt;/math&amp;gt; intervalos el método del trapecio ya aproxima lo suficientemente bien a la función original, lo que hace que aunque aumenete el número de intervalos la aproximación no tenga mucho margen de mejor. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson va a funcionar bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center]]&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71151</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71151"/>
				<updated>2024-04-19T09:00:54Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Fórmula de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función de n. Siendo n el número que determina el número de intervalos en &amp;lt;math&amp;gt; 10^n&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo según aumenta n. Esto tiene sentido ya que cuantos más intervalos hay en la discretización más exacta va a ser la aproximación. También podemos observar que se estabiliza cuando llega aproximadamente a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;, esto se debe a que . Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center]]&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71148</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71148"/>
				<updated>2024-04-19T08:53:39Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Fórmula de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
&lt;br /&gt;
Para hacerlo vamos a tomar tanto u como g en coordenadas polares, ya que al estudiar el problema en una bola esto nos permite hacernos una mejor idea de lo que ocurre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error, es decir, la diferencia entre el valor real de u y el valor de la aproximación por la fórmula de Poisson en ese punto, en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función ya que no es un punto cercano a la frontera, y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center]]&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71139</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71139"/>
				<updated>2024-04-19T08:46:59Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Fórmula de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera, está en coordenadas polares vamos a expresar la fórmula de Poisson en polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula de Poisson. &lt;br /&gt;
!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center]]&lt;br /&gt;
[[Archivo:GF442.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71126</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71126"/>
				<updated>2024-04-19T08:40:00Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Desigualdad de Harnack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera del problema, está en coordenadas polares, para poder resolver el problema con la fórmula de Poisson tenemos que pasar esta a polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula del trapecio. &lt;br /&gt;
!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF44_1.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GF44_1.jpg&amp;diff=71124</id>
		<title>Archivo:GF44 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GF44_1.jpg&amp;diff=71124"/>
				<updated>2024-04-19T08:39:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71122</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71122"/>
				<updated>2024-04-19T08:39:15Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Desigualdad de Harnack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera del problema, está en coordenadas polares, para poder resolver el problema con la fórmula de Poisson tenemos que pasar esta a polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula del trapecio. &lt;br /&gt;
!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
    title(['Cotas para r= ' num2str(R(i))]);&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF441.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71110</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71110"/>
				<updated>2024-04-19T08:18:16Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Desigualdad de Harnack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0,&amp;amp; x\in B_1\\&lt;br /&gt;
u=g,&amp;amp; x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera del problema, está en coordenadas polares, para poder resolver el problema con la fórmula de Poisson tenemos que pasar esta a polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula del trapecio. &lt;br /&gt;
!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0,&amp;amp; r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta),&amp;amp; \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
g=@(theta,r) r^2*sin(theta).*cos(theta); %Definimos la función g&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = [1,2,10]; %Radios de las bolas&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
C=[&amp;quot;#0000FF&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#00FF00&amp;quot;];&lt;br /&gt;
&lt;br /&gt;
for i=1:3&lt;br /&gt;
    r = 0:N^(-1):R(i); %Partición en r&lt;br /&gt;
    gR=g(theta1,R(i));&lt;br /&gt;
    M1=min(gR); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
    v1=@(r,theta) u(r,theta)-M1;&lt;br /&gt;
    A=@(r)R(i).^(n-2).*(R(i)-r)./(R(i)+r).^(n-1)*v1(0,0);&lt;br /&gt;
    B=@(r)R(i).^(n-2).*(R(i)+r)./(R(i)-r).^(n-1)*v1(0,0);&lt;br /&gt;
&lt;br /&gt;
    %Graficamos las cotas para los diferentes radios&lt;br /&gt;
    subplot(1,3,i)&lt;br /&gt;
    plot(r,log10(A(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(r,log10(B(r)),Color=C(i),LineWidth=1.5)&lt;br /&gt;
    axis([0 10,-3 6])&lt;br /&gt;
    xlabel('r');&lt;br /&gt;
    ylabel('log(Cotas)');&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:GF441.jpg|800px|thumb|center]]&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GF441.jpg&amp;diff=71106</id>
		<title>Archivo:GF441.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GF441.jpg&amp;diff=71106"/>
				<updated>2024-04-19T08:14:44Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GF44.jpg&amp;diff=71105</id>
		<title>Archivo:GF44.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GF44.jpg&amp;diff=71105"/>
				<updated>2024-04-19T08:05:14Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71056</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71056"/>
				<updated>2024-04-18T17:29:49Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Fórmula de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0, x\in B_1\\&lt;br /&gt;
u=g, x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera del problema, está en coordenadas polares, para poder resolver el problema con la fórmula de Poisson tenemos que pasar esta a polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que evitemos la singularidad de la integral en la frontera.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; como condición frontera y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; como solución del problema para calcular los diferentes errores que genera la fórmula del trapecio. &lt;br /&gt;
!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en este punto aproxime bien a la función y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;. Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. &lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0, r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta), \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = 1; %Radio de la bola&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
&lt;br /&gt;
g=u(R,theta);&lt;br /&gt;
M=min(g); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
v=@(r,theta) u(r,theta)-M;&lt;br /&gt;
%Calculamos las cotas de la desigualdad de Harnack&lt;br /&gt;
A=@(r)R.^(n-2).*(R-r)./(R+r).^(n-1)*v(0,0);&lt;br /&gt;
B=@(r)R.^(n-2).*(R+r)./(R-r).^(n-1)*v(0,0);&lt;br /&gt;
&lt;br /&gt;
%Dibujamos las cotas en función de |x| en escala logarítmica&lt;br /&gt;
plot(r,log10(A(r)))&lt;br /&gt;
hold on&lt;br /&gt;
plot(r,log10(B(r)))&lt;br /&gt;
xlabel('r');&lt;br /&gt;
ylabel('log(Cotas)');&lt;br /&gt;
title('Desigualdad de Harnack');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71052</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71052"/>
				<updated>2024-04-18T17:23:33Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Ecuación de Laplace */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0, x\in B_1\\&lt;br /&gt;
u=g, x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson, que es: &amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt; donde R es el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera del problema, está en coordenadas polares, para poder resolver el problema con la fórmula de Poisson tenemos que pasar esta a polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|center| Sustituyendo g en el borde de la bola]]&lt;br /&gt;
&lt;br /&gt;
Al comparar ambas gráficas podemos observar que efectivamente sustituir g en el borde hace que la superficie sea continua.&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera. Por lo que ahora para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; para calcular los diferentes errores que genera la fórmula del trapecio. &lt;br /&gt;
!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en ese punto aproxime bien a la función y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0, r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta), \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = 1; %Radio de la bola&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
&lt;br /&gt;
g=u(R,theta);&lt;br /&gt;
M=min(g); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
v=@(r,theta) u(r,theta)-M;&lt;br /&gt;
%Calculamos las cotas de la desigualdad de Harnack&lt;br /&gt;
A=@(r)R.^(n-2).*(R-r)./(R+r).^(n-1)*v(0,0);&lt;br /&gt;
B=@(r)R.^(n-2).*(R+r)./(R-r).^(n-1)*v(0,0);&lt;br /&gt;
&lt;br /&gt;
%Dibujamos las cotas en función de |x| en escala logarítmica&lt;br /&gt;
plot(r,log10(A(r)))&lt;br /&gt;
hold on&lt;br /&gt;
plot(r,log10(B(r)))&lt;br /&gt;
xlabel('r');&lt;br /&gt;
ylabel('log(Cotas)');&lt;br /&gt;
title('Desigualdad de Harnack');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71046</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71046"/>
				<updated>2024-04-18T17:15:15Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Fórmula de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0, x\in B_1\\&lt;br /&gt;
u=g, x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo R el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función, que es la que representa las condiciones frontera del problema, está en coordenadas polares, para poder resolver el problema con la fórmula de Poisson tenemos que pasar esta a polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, esto se debe al carácter singular de la integral cerca del borde. Para solucionar esto vamos a tomar directamente el valor de g en el borde de la bola. Al hacer esto obtenemos la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo, la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera debido al carácter singular de la integral. Por lo que ahora para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; para calcular los diferentes errores que genera la fórmula del trapecio. &lt;br /&gt;
!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en ese punto aproxime bien a la función y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0, r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta), \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = 1; %Radio de la bola&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
&lt;br /&gt;
g=u(R,theta);&lt;br /&gt;
M=min(g); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
v=@(r,theta) u(r,theta)-M;&lt;br /&gt;
%Calculamos las cotas de la desigualdad de Harnack&lt;br /&gt;
A=@(r)R.^(n-2).*(R-r)./(R+r).^(n-1)*v(0,0);&lt;br /&gt;
B=@(r)R.^(n-2).*(R+r)./(R-r).^(n-1)*v(0,0);&lt;br /&gt;
&lt;br /&gt;
%Dibujamos las cotas en función de |x| en escala logarítmica&lt;br /&gt;
plot(r,log10(A(r)))&lt;br /&gt;
hold on&lt;br /&gt;
plot(r,log10(B(r)))&lt;br /&gt;
xlabel('r');&lt;br /&gt;
ylabel('log(Cotas)');&lt;br /&gt;
title('Desigualdad de Harnack');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71039</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71039"/>
				<updated>2024-04-18T17:06:10Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Ecuación de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0, x\in B_1\\&lt;br /&gt;
u=g, x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo R el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función que es la que representa las condiciones frontera del problema está en coordenadas polares, para poder resolver el problema con la fórmula de Poisson tenemos que pasar esta a polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo todo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, por lo que en estos puntos vamos a tomar directamente el valor de g lo que nos da lugar a la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo, la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera debido al carácter singular de la integral. Por lo que ahora para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; para calcular los diferentes errores que genera la fórmula del trapecio. &lt;br /&gt;
!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en ese punto aproxime bien a la función y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0, r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta), \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = 1; %Radio de la bola&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
&lt;br /&gt;
g=u(R,theta);&lt;br /&gt;
M=min(g); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
v=@(r,theta) u(r,theta)-M;&lt;br /&gt;
%Calculamos las cotas de la desigualdad de Harnack&lt;br /&gt;
A=@(r)R.^(n-2).*(R-r)./(R+r).^(n-1)*v(0,0);&lt;br /&gt;
B=@(r)R.^(n-2).*(R+r)./(R-r).^(n-1)*v(0,0);&lt;br /&gt;
&lt;br /&gt;
%Dibujamos las cotas en función de |x| en escala logarítmica&lt;br /&gt;
plot(r,log10(A(r)))&lt;br /&gt;
hold on&lt;br /&gt;
plot(r,log10(B(r)))&lt;br /&gt;
xlabel('r');&lt;br /&gt;
ylabel('log(Cotas)');&lt;br /&gt;
title('Desigualdad de Harnack');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución del problema.&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71038</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=71038"/>
				<updated>2024-04-18T17:03:52Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: /* Ecuación de Poisson */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0, x\in B_1\\&lt;br /&gt;
u=g, x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo R el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función que es la que representa las condiciones frontera del problema está en coordenadas polares, para poder resolver el problema con la fórmula de Poisson tenemos que pasar esta a polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo todo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, por lo que en estos puntos vamos a tomar directamente el valor de g lo que nos da lugar a la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo, la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera debido al carácter singular de la integral. Por lo que ahora para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; para calcular los diferentes errores que genera la fórmula del trapecio. &lt;br /&gt;
!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en ese punto aproxime bien a la función y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo varía el error cuando aumentamos la n. Como hemos comentado anteriormente cabe esperar que al aumentar la n el error va a aumentar, ya que como hemos visto en el primer ejemplo en la frontera la fórmula de Poisson da problemas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral según nos acercamos al&lt;br /&gt;
% borde de la región.&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 20;&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for n = 1:N_max&lt;br /&gt;
    N = 10^2; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f=g(theta)*(1-(1-10^(-n)).^2)./(1+(1-10^(-n)).^2-2*(1-10^(-n))*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u=h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (1-10^-n,pi/4)&lt;br /&gt;
    err(n)=abs((1-10^(-n))^2*cos(pi/4)*sin(pi/4)-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,err,color='b',LineWidth=1.5) %Dibujamos la gráfica del error&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('Error');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica podemos ver cómo efectivamente el error crece rápidamente al principio hasta que el punto está a una distancia de &amp;lt;math&amp;gt;10^{-4}&amp;lt;/math&amp;gt;, cuando el error se estabiliza. Esto se debe a que... :)&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier]. Para hacer esto vamos a tomar nuestro problema en coordenadas polares:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta U=U_{rr}+\frac{1}{r}U_r+\frac{1}{r^2}U_{\theta\theta}=0, r\in(0,1),\theta\in[0,2\pi]\\&lt;br /&gt;
U(1,\theta)=G(\theta)=sin(\theta)cos(\theta), \theta\in[0,2\pi]&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y aplicar el método de separación de variables, haciendo esto obtenemos que: &amp;lt;math&amp;gt; U(r,\theta)=\frac{a_0}{2}+\sum_{k=1}^\infty a_kr^kcos(k\theta)+b_kr^ksin(k\theta).&amp;lt;/math&amp;gt; Para que esto sea solución falta hacer que cumpla la condición frontera, para ello vamos a tomar la serie de fourier de &amp;lt;math&amp;gt; G(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; L^2([-\pi,\pi]) &amp;lt;/math&amp;gt;, que es &amp;lt;math&amp;gt; G(\theta)=\frac{\alpha_0}{2}+\sum_{k=1}^\infty \alpha_kcos(k\theta)+\beta_ksin(k\theta)&amp;lt;/math&amp;gt;, y a igualar ambas series cuando r=1, lo que hace que los coeficientes tengan que ser iguales.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; a_0=\alpha_0=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; a_k=\alpha_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)cos(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; b_k=\beta_k=\frac{1}{\pi}\int_{-\pi}^\pi G(\theta)sin(k\theta)d\theta. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Al realizar estas integrales obtenemos que &amp;lt;math&amp;gt; a_0=0,a_k=0\forall k &amp;lt;/math&amp;gt; y todos los &amp;lt;math&amp;gt; b_k &amp;lt;/math&amp;gt; son 0 excepto &amp;lt;math&amp;gt; b_2=\frac{1}{2} &amp;lt;/math&amp;gt;. Por lo que la solución nos queda de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;U(r,\theta)=\frac{r^2}{2}sin(2\theta) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora dibujamos la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF43.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Dibujamos la solución calculada por serie de Fourier&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^(2).*sin(2.*theta)/2; %Solución de la ecuación&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
for j = 1:N+1&lt;br /&gt;
    for i = 1:N+1&lt;br /&gt;
        U(i,j) = u(r(i),theta(j));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, U, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución exacta calculada por serie de Fourier');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Desigualdad de Harnack==&lt;br /&gt;
&lt;br /&gt;
INTRO&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a aplicar la desigualdad de Harnack, para ello vamos a tomar v=U+M siendo &amp;lt;math&amp;gt; U(r,\theta)=\frac{r^2}{2R^2}sin(2\theta) &amp;lt;/math&amp;gt; la solución al problema en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;, y M el mínimo de &amp;lt;math&amp;gt; G(\theta)=R^2sin(\theta)cos(\theta) &amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt; B_R &amp;lt;/math&amp;gt;. Al hacer esto v va a ser una función armónica positiva a la que le podemos aplicar la desigualdad de Harnack.&lt;br /&gt;
&lt;br /&gt;
En esta sección vamos a usar la desigualdad de Harnack para obtener la región que contiene a todas las soluciones armónicas de la ecuación de Laplace que valen lo mismo en el origen que la solución que hemos calculado.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Representamos las cotas que nos da la desigualdad de Harnack&lt;br /&gt;
% para nuestro ejemplo.&lt;br /&gt;
&lt;br /&gt;
u = @(r,theta) r.^2*sin(theta).*cos(theta); %Definimos la función u(r,theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
R = 1; %Radio de la bola&lt;br /&gt;
n = 2; %Dimensión del espacio&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):1; %Partición en r&lt;br /&gt;
&lt;br /&gt;
g=u(R,theta);&lt;br /&gt;
M=min(g); %Calculamos el mínimo de g en la frontera de la bola de radio R&lt;br /&gt;
v=@(r,theta) u(r,theta)-M;&lt;br /&gt;
%Calculamos las cotas de la desigualdad de Harnack&lt;br /&gt;
A=@(r)R.^(n-2).*(R-r)./(R+r).^(n-1)*v(0,0);&lt;br /&gt;
B=@(r)R.^(n-2).*(R+r)./(R-r).^(n-1)*v(0,0);&lt;br /&gt;
&lt;br /&gt;
%Dibujamos las cotas en función de |x| en escala logarítmica&lt;br /&gt;
plot(r,log10(A(r)))&lt;br /&gt;
hold on&lt;br /&gt;
plot(r,log10(B(r)))&lt;br /&gt;
xlabel('r');&lt;br /&gt;
ylabel('log(Cotas)');&lt;br /&gt;
title('Desigualdad de Harnack');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Poisson=&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a buscar una solución de la ecuación de Poisson en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u=f,\quad x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ello vamos a utilizar la solución fundamental del laplaciano, que en &amp;lt;math&amp;gt; \mathbb{R}^2 &amp;lt;/math&amp;gt; se define como &amp;lt;math&amp;gt; \Phi(x)=-\frac{1}{2\pi}log|x| &amp;lt;/math&amp;gt; y cumple que &amp;lt;math&amp;gt; \Delta \Phi(x)=-\delta_2(x) &amp;lt;/math&amp;gt;. Donde &amp;lt;math&amp;gt;\delta_2(x) &amp;lt;/math&amp;gt; es la delta de Dirac en dimensión 2.&lt;br /&gt;
&lt;br /&gt;
Si ahora consideramos el potencial logarítmico de la función f, que es la la convolución de la solución fundamental con f, entonces podríamos expresar la solución como: &amp;lt;math&amp;gt; u(x)=\int_{\mathbb{R}^2}\Phi(x-y)f(y)dy &amp;lt;/math&amp;gt; y formalmente tenemos que: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \Delta u(x)=\int_{\mathbb{R}^2}\Delta_x\Phi(x-y)f(y)dy=- \int_{\mathbb{R}^2}\delta_2f(y)dy=-f(x),&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pero esto no es correcto ya que el laplaciano de la solución fundamental no es integrable. A pesar de no ser correcto nos da la intuición de que el potencial logarítmico podría ser una posible  solución de &amp;lt;math&amp;gt; \Delta u=f, x\in\mathbb{R}^2. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora para solucionar esto vamos a tomar f como la función característica de la bola de radio 1 ya que de esta manera obtenemos el siguietne teorema: (Remark 3.35 pag 150)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vamos a ver esto con el ejemplo concreto en el que la función f es la función característica en la bola de radio 1.&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GF43.jpg&amp;diff=70641</id>
		<title>Archivo:GF43.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GF43.jpg&amp;diff=70641"/>
				<updated>2024-04-17T17:14:22Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=70618</id>
		<title>Ecuación de Laplace y de Poisson (Raúl, Sofía, Jaime)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_Laplace_y_de_Poisson_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime)&amp;diff=70618"/>
				<updated>2024-04-17T15:19:40Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación del calor | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP23/24|2023-24]] | Raúl Ortega&lt;br /&gt;
&lt;br /&gt;
Sofía Gómez&lt;br /&gt;
&lt;br /&gt;
Jaime Sáenz de Miera}}&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a estudiar las soluciones de la ecuación de Poisson y de Laplace &lt;br /&gt;
&lt;br /&gt;
=Preliminares=&lt;br /&gt;
&amp;lt;math&amp;gt; u &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ecuación de Laplace=&lt;br /&gt;
&lt;br /&gt;
En este apartado vamos a estudiar la exactitud que tienen dos formas diferentes de resolver la ecuación de Laplace. Para hacer esto tomamos el siguiente problema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
\Delta u=0, x\in B_1\\&lt;br /&gt;
u=g, x\in\partial B_1&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con &amp;lt;math&amp;gt; B_1\subset\mathbb{R}^2 &amp;lt;/math&amp;gt; la bola de radio 1 centrada en el (0,0).&lt;br /&gt;
&lt;br /&gt;
==Fórmula de Poisson==&lt;br /&gt;
&lt;br /&gt;
Una de las formas de resolver este tipo de problemas es mediante la fórmula de Poisson:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; u=\frac{R^2-|x|^2}{2\pi R}\int_{\partial B_R}\frac{g(\sigma)}{|x-\sigma|^2} d\sigma, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
siendo R el radio de la bola y &amp;lt;math&amp;gt; |x| &amp;lt;/math&amp;gt; la distancia al centro de la bola.&lt;br /&gt;
&lt;br /&gt;
Para ver cómo funciona esta fórmula vamos a resolver el problema tomando &amp;lt;math&amp;gt; g(\theta)=max \{0,1-\frac{2}{\pi}|\theta-\pi|\}&amp;lt;/math&amp;gt;. Como esta función que es la que representa las condiciones frontera del problema está en coordenadas polares, para poder resolver el problema con la fórmula de Poisson tenemos que pasar esta a polares.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; U(r,\theta)=\frac{R^2-r^2}{2\pi}\int_{0}^{2\pi}g(s)\frac{R^2-r^2}{R^2+r^2-2rRcos(s-\theta)} ds, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez tenemos la fórmula expresada de esta manera, podemos aplicarla a nuestro problema tomando R=1 y sustituyendo g por nuestra función. Teniendo todo esto en cuenta vamos a resolver el problema realizando la integral mediante la [https://mat.caminos.upm.es/wiki/Trapezoidal_rule_to_approximate_integrals regla del trapecio] y a representar la solución.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF41.jpg|400px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
En la imagen podemos observar que la fórmula de Poisson nos da problemas en la frontera, por lo que en estos puntos vamos a tomar directamente el valor de g lo que nos da lugar a la siguiente gráfica.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF411.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calcular la solución de la ecuación de Laplace  en la bola de radio&lt;br /&gt;
% unidad usando la fórmula de Poisson. Con condición frontera la función g&lt;br /&gt;
&lt;br /&gt;
g = @(theta) max(0,1-2/pi*abs(theta-pi)); %Definimos la función g(theta)&lt;br /&gt;
&lt;br /&gt;
N = 3*10^2; %Número de particiones en theta y r&lt;br /&gt;
&lt;br /&gt;
h = 2*pi/N;&lt;br /&gt;
theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
r = 0:N^(-1):0.9; %Partición en r (no llegamos hasta el borde de la bola)&lt;br /&gt;
&lt;br /&gt;
w = ones(N+1,1);                 &lt;br /&gt;
w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
u = zeros(length(r)+1,length(theta));&lt;br /&gt;
for j = 1:length(theta)&lt;br /&gt;
    for i = 1:length(r)&lt;br /&gt;
        f = g(theta)*(1-r(i).^2)./(1+r(i).^2-2*r(i)*cos(theta-theta(j))); %Función a integrar&lt;br /&gt;
        u(i,j) = h*w'*f'/(2*pi); %Fórmula de Poison usando la fórmula del trapecio para integrar.&lt;br /&gt;
    end&lt;br /&gt;
    u(length(r)+1,j) = g(theta(j)); %Añadimos la condicón frontera directamente&lt;br /&gt;
end&lt;br /&gt;
r(length(r)+1) = 1;&lt;br /&gt;
[Theta, R] = meshgrid(theta, r); % Crear una malla de theta y r&lt;br /&gt;
% Convertir coordenadas polares a cartesianas&lt;br /&gt;
X = R.*cos(Theta);&lt;br /&gt;
Y = R.*sin(Theta);&lt;br /&gt;
% Graficar la superficie en coordenadas cartesianas&lt;br /&gt;
colormap jet&lt;br /&gt;
surf(X, Y, u, 'EdgeColor', 'none');&lt;br /&gt;
xlabel('x');&lt;br /&gt;
ylabel('y');&lt;br /&gt;
zlabel('u(x, y)');&lt;br /&gt;
title('Solución de la ecuación de Laplace');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como hemos visto con este ejemplo, la fórmula de Poisson tiene problemas para aproximar la solución cerca de la frontera debido al carácter singular de la integral. Por lo que ahora para estudiar esto, vamos a tomar &amp;lt;math&amp;gt; g(x,y)=xy &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; u(x,y)=xy &amp;lt;/math&amp;gt; para calcular los diferentes errores que genera la fórmula del trapecio. &lt;br /&gt;
!!!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \begin{cases}&lt;br /&gt;
U(r,\theta)=r^2cos(\theta)sin(\theta)\\&lt;br /&gt;
U(1,\theta)=G(\theta)=cos(\theta)sin(\theta)&lt;br /&gt;
\end{cases}&lt;br /&gt;
 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primero vamos a tomar un punto &amp;quot;lejos&amp;quot; de la frontera &amp;lt;math&amp;gt; (r,\theta)=(0.9,\frac{\pi}{4}) &amp;lt;/math&amp;gt; y a ver cómo evoluciona el error en función del número de intervalos que tomamos para la fórmula del trapecio. Por el ejemplo anterior, cabe esperar que la fórmula en ese punto aproxime bien a la función y por lo tanto el error vaya disminuyendo según aumenta el número de intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF42.jpg|400px|thumb|right]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Calculamos el error que incorpora la aproximación de la integral mediante&lt;br /&gt;
% el método del trapecio en función del tamaño de la discretización&lt;br /&gt;
&lt;br /&gt;
g = @(theta) sin(theta).*cos(theta); %Definimos la función g(theta)&lt;br /&gt;
N_max = 8; %Discretización máxima: 10^N_max&lt;br /&gt;
err = zeros(N_max);&lt;br /&gt;
for m = 1:N_max&lt;br /&gt;
    N = 10^m; %Tamaño de la discretización                     &lt;br /&gt;
    h = 2*pi/N;&lt;br /&gt;
    theta = 0:h:2*pi; %Partición en theta&lt;br /&gt;
&lt;br /&gt;
    w = ones(N+1,1);                 &lt;br /&gt;
    w(1) = 1/2; w(N+1) = 1/2;&lt;br /&gt;
    f = g(theta)*(1-0.9.^2)./(1+0.9.^2-2*0.9*cos(theta-pi/4)); %Función a integrar&lt;br /&gt;
    u = h*w'*f'/(2*pi); %Fórmula de Poisson usando la fórmula del trapecio en el punto (0.9,pi/4)&lt;br /&gt;
    &lt;br /&gt;
    % Valor de la solución exacta (x*y=R^2*cos(theta)*sin(theta))&lt;br /&gt;
    % en el punto (0.9, pi/4)&lt;br /&gt;
    exacta = 0.9^2*cos(pi/4)*sin(pi/4); &lt;br /&gt;
&lt;br /&gt;
    % Calculamos el error como la diferencia en valor absoluto entre&lt;br /&gt;
    % la solución exacta y la calculada con la fórmula de Poisson&lt;br /&gt;
    err(m) = abs(exacta-u);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
plot(1:N_max,log10(err),color='b',LineWidth=1.5) %Dibujamos la gráfica del error en escala logarítmica&lt;br /&gt;
xlabel('n');&lt;br /&gt;
ylabel('log_{10}(error(10^n))');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como hemos comentado antes, al observar la gráfica vemos que el error va disminuyendo hasta que se estabiliza cuando llega a &amp;lt;math&amp;gt; 10^{-14} &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Con esto hemos visto que en un punto que no esté cerca del borde la fórmula de Poisson funciona bien. Ahora vamos a ver cómo se comporta el error según acercamos el punto a la frontera. Para hacer esto vamos a tomar el punto &amp;lt;math&amp;gt; (r,\theta)=(1-10^{-n},\frac{\pi}{4}) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:GF421.jpg|400px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
==Serie de Fourier==&lt;br /&gt;
La otra forma que vamos a ver para resolver la ecuación de Laplace es mediante [https://mat.caminos.upm.es/wiki/Series_de_Fourier_(Ra%C3%BAl,_Sof%C3%ADa,_Jaime) series de Fourier].&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:GF421.jpg&amp;diff=70615</id>
		<title>Archivo:GF421.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:GF421.jpg&amp;diff=70615"/>
				<updated>2024-04-17T15:13:26Z</updated>
		
		<summary type="html">&lt;p&gt;Sofía Gómez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sofía Gómez</name></author>	</entry>

	</feed>