Diferencia entre revisiones de «Ecuación del calor DF»

De MateWiki
Saltar a: navegación, buscar
(Página creada con «=Póster= {{ TrabajoED | Series de Fourier. Grupo DFN | EDP|2025-26 | Daniel Tormo...»)
 
 
(No se muestran 11 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
=[[Archivo:Poster DFN.pdf|miniaturadeimagen|Póster]]=
+
{{ TrabajoED | Series de Fourier. Grupo DF | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP25/26|2025-26]] | Daniel Tormos
{{ TrabajoED | Series de Fourier. Grupo DFN | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP25/26|2025-26]] | Daniel Tormos
+
  
 
Fernando Madrid
 
Fernando Madrid
 
   }}
 
   }}
 +
Este trabajo se centra en el estudio de la ecuación del calor para variedades de Riemann. En particular, se introduce el concepto del operador de Laplace-Beltrami y se hace el cálculo de la solución de la ecuación de difusión en <math>S^2</math>.
  
__TOC__
 
  
=Funciones =
+
[[Media:Ecuacion del calor poster.pdf|Poster ecuación del calor.]]
  
Esta primera función calcula los coeficientes de Fourier de manera aleatoria en base a una función f.
 
 
<source lang: "Matlab" line>
 
function [coefs] = rand_coefs(f,N)
 
    % Crea un vector de N elementos con coeficientes a_i aleatorios entre
 
    % f(i) y -f(i).
 
    coefs = zeros(N,1);
 
    for i = 1:N
 
        coefs(i) = rand*2*f(i)-f(i);
 
    end
 
end
 
 
</source>
 
 
Esta función genera la Serie de Fourier a partir de sus coeficientes.
 
<source lang: "Matlab" line>
 
function [F] = generar_F(a,b)
 
    % Genera una función F a partir de sus coeficientes de Fourier.
 
   
 
    % a son los N+1 coeficientes para los elementos pares de la base
 
    % trigonométrica en [-pi,pi], y b son los N coeficientes de los
 
    % elementos impares.
 
 
    N = length(b);
 
    n = (1:N)';  % Vector columna
 
    a = a(:);    % Asegurar que a es columna
 
    b = b(:);    % Asegurar que b es columna
 
   
 
    F = @(x) (a(1)/sqrt(2*pi)) + sum((a(n+1)/sqrt(pi)).*cos(n*x) + (b(n)/sqrt(pi)).*sin(n*x), 1);
 
end
 
 
</source>
 
 
Con esto creamos una lista de series de Fourier.
 
<source lang: "Matlab" line>
 
function [coefs, funciones] = familia_funciones(f,N,Num)
 
    % f,N son las entradas para rand_coefs
 
    % Num es el número de funciones de la familia
 
 
    % Devuelve:
 
 
    % Una lista de parejas de vectores de coeficientes a y b. Para
 
    % obtener los coeficientes impares de la funcion 3 (por ejemplo),
 
    % llamas coefs(3).b
 
 
    % Una lista de funciones. Para obtener la función 3, llamas
 
    % funciones{3}
 
 
    coefs(Num) = struct('a',[],'b',[]);
 
    funciones = cell(1,Num);
 
    for i = 1:Num
 
        coefs(i).a = rand_coefs(f,N+1);
 
        coefs(i).b = rand_coefs(f,N);
 
        funciones{i} = generar_F(coefs(i).a,coefs(i).b);
 
    end
 
end
 
 
</source>
 
 
=Códigos=
 
En esta primera hacemos los cálculos de media, varianza y covarianza.
 
 
<source lang: "Matlab" line>
 
 
f1 = @(x) 1./(x.^2); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);
 
N = 500;
 
Num = 1e5;
 
[coefs,funciones] = familia_funciones(f2,N,Num); % Elegir la f_i que se quiera
 
x1 = 1; x2 = 0.2; % Distintos puntos
 
Sum_1 = 0;
 
Sum_2 = 0;
 
for i =1:Num
 
    Sum_1 = Sum_1 + funciones{i}(x1);
 
    Sum_2 = Sum_2 + funciones{i}(x2);
 
end
 
mean1 = (1/Num)*Sum_1
 
mean2 = (1/Num)*Sum_2
 
media_metodo_A = mean1;
 
 
S1 = 0;
 
S2 = 0;
 
C = 0;
 
for i =1:Num
 
    S1 = S1 + (funciones{i}(x1)-mean1)^2;
 
    S2 = S2 + (funciones{i}(x2)-mean2)^2;
 
    C = C + (funciones{i}(x1)-mean1)*(funciones{i}(x2)-mean2);
 
end
 
VAR1 = (1/(Num-1))*S1
 
VAR2 = (1/(Num-1))*S2
 
COV = (1/(Num-1))*C
 
</source>
 
 
<source lang: "Matlab" line>
 
 
f1 = @(x) 1./(x.^(2)); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);
 
N = 100;
 
a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);
 
a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);
 
a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);
 
F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);
 
x = linspace(-pi,pi,600);
 
P = linspace(-pi,pi,300);
 
 
V=zeros(1000,3);
 
 
for i=1:1000
 
 
    for k=1:length(P)-1
 
        V(i,1)=V(i,1)+abs(F1(P(k))-F1(P(k+1)));
 
    end
 
 
    for k=1:length(P)-1
 
        V(i,2)=V(i,2)+abs(F2(P(k))-F2(P(k+1)));
 
    end
 
 
    for k=1:length(P)-1
 
        V(i,3)=V(i,3)+abs(F3(P(k))-F3(P(k+1)));
 
    end
 
    a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);
 
    a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);
 
    a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);
 
    F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);
 
end
 
 
tablaResultados = table(mean(V)', min(V)', max(V)', std(V)', ...
 
    'VariableNames', {'Media', 'Minimo', 'Maximo', 'Desviacion Tipica' }, ...
 
    'RowNames', {'Funcion 1', 'Funcion 2', 'Funcion 3'});
 
 
plot(x,F1(x));
 
hold on
 
plot(x,F2(x));
 
plot(x,F3(x));
 
legend
 
 
 
</source>
 
  
 
[[Categoría:EDP]]
 
[[Categoría:EDP]]
 
[[Categoría:EDP25/26]]
 
[[Categoría:EDP25/26]]

Revisión actual del 18:46 12 abr 2026

Trabajo realizado por estudiantes
Título Series de Fourier. Grupo DF
Asignatura EDP
Curso 2025-26
Autores Daniel Tormos

Fernando Madrid

Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura

Este trabajo se centra en el estudio de la ecuación del calor para variedades de Riemann. En particular, se introduce el concepto del operador de Laplace-Beltrami y se hace el cálculo de la solución de la ecuación de difusión en [math]S^2[/math].


Poster ecuación del calor.