Ecuación del calor (Grupo CJMAS)
| Trabajo realizado por estudiantes | |
|---|---|
| Título |
Ecuación del calor en el océano (Grupo CJMAS). |
| Asignatura | EDP |
| Curso | 2024-25 |
| Autores | Claudia Domínguez Sánchez
Javier Martínez Saiz Marta De Miguel Prieto Analía Olivero Betancor Sofía de Benito Valdueza |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Contenido
1 Introducción
La difusión del calor en el océano es un proceso clave ya que define la distribución térmica en las masas de agua y su interacción con la atmósfera. En este trabajo, utilizamos la ecuación del calor con el objetivo de comprender cómo la temperatura ambiente afecta a la temperatura del océano profundo con el paso de tiempo.
2 Modelización de la transferencia de calor en el océano profundo
2.1 Planteamiento
Consideremos una porción de la Tierra de longitud [math]L[/math], en la cual distinguimos regiones diferenciadas. En el extremo izquierdo, la superficie está en contacto con la atmósfera, donde la temperatura varía debido a la radiación solar y la influencia de la temperatura ambiental. A continuación, nos adentramos en el océano profundo, donde la temperatura varía principalmente por la difusión térmica.
Aplicando la ley de Fourier de conducción térmica, la ecuación de transmisión del calor en el océano es:
donde [math]\alpha[/math] es la constante que representa la difusividad del agua.
En la superficie ([math] x=0 [/math]), la temperatura del océano está influenciada por la temperatura del ambiente, luego la condición en esta frontera quedaría determinada por:
donde [math]h[/math] representa el coeficiente de transferencia del calor y [math]k[/math] la conductividad térmica.
En cambio, en el extremo opuesto, consideramos que su flujo es nulo.
Para establecer la condición inicial suponemos una situación ideal de equilibrio en el océano, por lo que podemos expresar la temperatura en el instante inicial como constante,
Por lo tanto, tenemos el siguiente problema
2.2 Solución
2.2.1 Solución estacionaria
Para tiempos muy grandes, \(t \to \infty \), la temperatura en el océano alcanza un estado estacionario donde \( u_t(x,t) \to 0 \). En este caso, la solución estacionaria viene dada por:
Es decir, a largo plazo, la temperatura del océano se iguala a la temperatura ambiente.
2.2.2 Solución mediante separación de variables
Aplicando el método de separación de variables, la solución general es:
donde los autovalores [math]\lambda_n [/math] se definen como [math]\lambda_n=\alpha \beta_n^2 [/math], y [math]\beta_n[/math] satisface la ecuación [math]\tan(L \beta )=\frac{h}{k \beta}[/math].
Los coeficientes de Fourier vienen dados por:
[math]A_n= \frac{2(u_{amb}-u_0)}{L\sqrt{\frac{\lambda_n}{\alpha}}} \sin\left(\sqrt{\frac{\lambda_n}{\alpha}}L\right) [/math]
[math]B_n= 0 [/math]
Por lo tanto, la solución final se expresa como:
3 Códigos
Mediante la implementación del siguiente código, conseguimos representar la evolución de la temperatura del océano a lo largo del espacio y tiempo bajo la influencia de la temperatura ambiente. Tomamos x=0 como el fondo y x=1000 como la superficie, donde se alcanzan los máximos valores de temperatura y que decrece con el tiempo.
% Parámetros del problema
L = 1000; % Longitud del océano (en metros)
alpha = 1.4e-6; % Difusividad térmica del agua (m^2/s)
h = 10; % Coeficiente de transferencia de calor
k = 0.6; % Conductividad térmica del agua
u_amb = 20; % Temperatura ambiente (grados Celsius)
u0 = 5; % Temperatura inicial (grados Celsius)
% Dominio espacial y temporal
Nx = 50; % Número de puntos en x
Nt = 100; % Número de pasos en t
x = linspace(0, L, Nx);
t = linspace(0, 2000, Nt); % Tiempo hasta 1 día (en segundos)
% Número de términos en la serie
N_terms = 5;
% Solución de la serie de Fourier
u = zeros(Nx, Nt);
for n = 1:N_terms
beta_n = (2*n - 1) * pi / (2 * L); % Modificación para condición de Neumann en x=L
lambda_n = alpha * beta_n^2; % Parámetro de la ecuación
A_n = 2 * (u_amb-u0) * sin(beta_n * L) / (beta_n * L); %
for i = 1:Nx
for j = 1:Nt
u(i, j) = u(i, j) + A_n * cos(beta_n * x(i)) * exp(-lambda_n * t(j));
end
end
end
% Solución
u = u_amb - u;
% Graficar evolución de la temperatura
figure;
[X, T] = meshgrid(x, t/3600); % Convertir tiempo a horas
surf(X, T, u', 'EdgeColor', 'none');
xlabel('Distancia (m)');
ylabel('Tiempo (horas)');
zlabel('Temperatura (°C)');
title('Evolución de la temperatura en el océano');
colorbar;
view(3);
En el siguiente código se ha buscado representar la evolución de la temperatura del océano cuando el tiempo tiende a infinito en un mapa de calor.
% Parámetros del problema
L = 1000; % Longitud del océano (en metros)
alpha = 1.4e-6; % Difusividad térmica del agua (m^2/s)
h = 10; % Coeficiente de transferencia de calor
k = 0.6; % Conductividad térmica del agua
u_amb = 20; % Temperatura ambiente (grados Celsius)
u0 = 5; % Temperatura inicial (grados Celsius)
% Dominio espacial y temporal
Nx = 50; % Número de puntos en x
Nt = 50; % Número de pasos en t (mucho menor para avanzar rápido)
t_max = 10000000 * 86400; % Simulación hasta 10 días en segundos
t = linspace(0, t_max, Nt); % Tiempo con pasos mucho más grandes
x = linspace(0, L, Nx);
% Número de términos en la serie
N_terms = 10;
% Solución de la serie de Fourier
u = zeros(Nx, Nt);
for n = 1:N_terms
beta_n = (2*n - 1) * pi / (2 * L); % Modificación para condición de Neumann en x=L
lambda_n = alpha * beta_n^2; % Parámetro de la ecuación
A_n = 2 * (u_amb - u0) * sin(beta_n * L) / (beta_n * L);
for i = 1:Nx
for j = 1:Nt
u(i, j) = u(i, j) + A_n * cos(beta_n * x(i)) * exp(-lambda_n * t(j));
end
end
end
% Solución
u = u_amb - u;
% Crear el objeto VideoWriter para guardar el video
v = VideoWriter('evolucion_calor_océano.mp4', 'MPEG-4'); % Nombre del archivo y formato
v.FrameRate = 5; % Velocidad de los cuadros (puedes ajustarlo según lo necesites)
open(v); % Abrir el objeto para grabar el video
% Crear la figura
figure;
colormap hot; % Mapa de calor para mejor visualización
% Crear la animación y capturar cada cuadro
for j = 1:Nt
imagesc(x, [0, L], repmat(u(:, j)', [Nx, 1])); % Representación del perfil de temperatura
set(gca, 'YDir', 'normal'); % Mantener el eje y en la dirección correcta
xlabel('Distancia (m)');
ylabel('Profundidad (m)');
title(['Evolución del calor en el océano - t = ', num2str(t(j)/86400, '%.1f'), ' días']);
colorbar;
% Ajustar la escala de colores dinámicamente
caxis([min(u(:)), max(u(:))]);
pause(0.2); % Control de la velocidad de la animación
% Capturar el cuadro actual y agregarlo al video
frame = getframe(gcf); % Capturar el cuadro de la figura
writeVideo(v, frame); % Escribir el cuadro en el archivo de video
end
% Cerrar el archivo de video
close(v); % Finalizar y guardar el archivo de video
4 Conclusión
La temperatura del océano converge en tiempo hacia la solución estacionaria de la EDP, es decir, la temperatura ambiente, que actúa como una fuente de calor constante. Sin embargo, se necesita un rango de tiempo desmesurado para poder observar cómo se alcanza dicha solución, tal y como observamos en las gráficas representadas a continuación.
Por consiguiente, en el mapa de calor vemos cómo a medida que aumenta el tiempo, el calor se difunde por el océano, provocando que se alcance la solución estacionaria.
La condición frontera modeliza el gradiente de temperatura en [math]x=0[/math], entre el ambiente y el medio. Al modificar los parámetros, la solución cambia. Un mayor valor de [math]h[/math] aumenta el gradiente, ya que refleja la capacidad de transferencia de calor entre ambos medios, por lo que se alcanza antes la solución estacionaria. No obstante, un aumento de [math]k[/math] reduce el gradiente, al disminuir la diferencia necesaria para la misma tasa de transferencia de calor, por lo que se tarda más en alcanzar la temperatura constante.
Este modelo es idílico, ya que en la realidad existen diversos factores, como corrientes oceánicas y variabilidad climática, que impiden que se logre una temperatura constante en todo el océano a lo largo del tiempo.