<?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=Daniel+Tormos</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=Daniel+Tormos"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/Daniel_Tormos"/>
		<updated>2026-04-23T18:03:00Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104335</id>
		<title>Series de Fourier DFN</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104335"/>
				<updated>2026-02-19T03:01:07Z</updated>
		
		<summary type="html">&lt;p&gt;Daniel Tormos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=[[Archivo:Poster DFN.pdf|miniaturadeimagen|Póster]]=&lt;br /&gt;
{{ TrabajoED | Series de Fourier. Grupo DFN | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP25/26|2025-26]] | Daniel Tormos&lt;br /&gt;
&lt;br /&gt;
Fernando Madrid&lt;br /&gt;
&lt;br /&gt;
Nicolás Sánchez  }}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Funciones =&lt;br /&gt;
&lt;br /&gt;
Esta primera función calcula los coeficientes de Fourier de manera aleatoria en base a una función f.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs] = rand_coefs(f,N)&lt;br /&gt;
    % Crea un vector de N elementos con coeficientes a_i aleatorios entre&lt;br /&gt;
    % f(i) y -f(i).&lt;br /&gt;
    coefs = zeros(N,1);&lt;br /&gt;
    for i = 1:N&lt;br /&gt;
        coefs(i) = rand*2*f(i)-f(i);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta función genera la Serie de Fourier a partir de sus coeficientes.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [F] = generar_F(a,b)&lt;br /&gt;
    % Genera una función F a partir de sus coeficientes de Fourier.&lt;br /&gt;
    &lt;br /&gt;
    % a son los N+1 coeficientes para los elementos pares de la base&lt;br /&gt;
    % trigonométrica en [-pi,pi], y b son los N coeficientes de los &lt;br /&gt;
    % elementos impares.&lt;br /&gt;
&lt;br /&gt;
    N = length(b);&lt;br /&gt;
    n = (1:N)';  % Vector columna&lt;br /&gt;
    a = a(:);    % Asegurar que a es columna&lt;br /&gt;
    b = b(:);    % Asegurar que b es columna&lt;br /&gt;
    &lt;br /&gt;
    F = @(x) (a(1)/sqrt(2*pi)) + sum((a(n+1)/sqrt(pi)).*cos(n*x) + (b(n)/sqrt(pi)).*sin(n*x), 1);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con esto creamos una lista de series de Fourier.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs, funciones] = familia_funciones(f,N,Num)&lt;br /&gt;
    % f,N son las entradas para rand_coefs&lt;br /&gt;
    % Num es el número de funciones de la familia&lt;br /&gt;
&lt;br /&gt;
    % Devuelve:&lt;br /&gt;
&lt;br /&gt;
    % Una lista de parejas de vectores de coeficientes a y b. Para&lt;br /&gt;
    % obtener los coeficientes impares de la funcion 3 (por ejemplo),&lt;br /&gt;
    % llamas coefs(3).b&lt;br /&gt;
&lt;br /&gt;
    % Una lista de funciones. Para obtener la función 3, llamas&lt;br /&gt;
    % funciones{3}&lt;br /&gt;
&lt;br /&gt;
    coefs(Num) = struct('a',[],'b',[]);&lt;br /&gt;
    funciones = cell(1,Num);&lt;br /&gt;
    for i = 1:Num&lt;br /&gt;
        coefs(i).a = rand_coefs(f,N+1);&lt;br /&gt;
        coefs(i).b = rand_coefs(f,N);&lt;br /&gt;
        funciones{i} = generar_F(coefs(i).a,coefs(i).b); &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
En esta primera hacemos los cálculos de media, varianza y covarianza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^2); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 500;&lt;br /&gt;
Num = 1e5;&lt;br /&gt;
[coefs,funciones] = familia_funciones(f2,N,Num); % Elegir la f_i que se quiera&lt;br /&gt;
x1 = 1; x2 = 0.2; % Distintos puntos&lt;br /&gt;
Sum_1 = 0;&lt;br /&gt;
Sum_2 = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    Sum_1 = Sum_1 + funciones{i}(x1);&lt;br /&gt;
    Sum_2 = Sum_2 + funciones{i}(x2);&lt;br /&gt;
end&lt;br /&gt;
mean1 = (1/Num)*Sum_1&lt;br /&gt;
mean2 = (1/Num)*Sum_2&lt;br /&gt;
media_metodo_A = mean1;&lt;br /&gt;
&lt;br /&gt;
S1 = 0;&lt;br /&gt;
S2 = 0;&lt;br /&gt;
C = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    S1 = S1 + (funciones{i}(x1)-mean1)^2;&lt;br /&gt;
    S2 = S2 + (funciones{i}(x2)-mean2)^2;&lt;br /&gt;
    C = C + (funciones{i}(x1)-mean1)*(funciones{i}(x2)-mean2);&lt;br /&gt;
end&lt;br /&gt;
VAR1 = (1/(Num-1))*S1&lt;br /&gt;
VAR2 = (1/(Num-1))*S2&lt;br /&gt;
COV = (1/(Num-1))*C&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^(2)); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 100;&lt;br /&gt;
a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
x = linspace(-pi,pi,600);&lt;br /&gt;
P = linspace(-pi,pi,300);&lt;br /&gt;
&lt;br /&gt;
V=zeros(1000,3);&lt;br /&gt;
&lt;br /&gt;
for i=1:1000&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,1)=V(i,1)+abs(F1(P(k))-F1(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,2)=V(i,2)+abs(F2(P(k))-F2(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,3)=V(i,3)+abs(F3(P(k))-F3(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
    a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
    a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
    a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
    F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
tablaResultados = table(mean(V)', min(V)', max(V)', std(V)', ...&lt;br /&gt;
    'VariableNames', {'Media', 'Minimo', 'Maximo', 'Desviacion Tipica' }, ...&lt;br /&gt;
    'RowNames', {'Funcion 1', 'Funcion 2', 'Funcion 3'});&lt;br /&gt;
&lt;br /&gt;
 plot(x,F1(x));&lt;br /&gt;
 hold on&lt;br /&gt;
 plot(x,F2(x));&lt;br /&gt;
 plot(x,F3(x));&lt;br /&gt;
 legend &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP25/26]]&lt;/div&gt;</summary>
		<author><name>Daniel Tormos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104334</id>
		<title>Series de Fourier DFN</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104334"/>
				<updated>2026-02-19T03:00:40Z</updated>
		
		<summary type="html">&lt;p&gt;Daniel Tormos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Archivo:Poster DFN.pdf|miniaturadeimagen|Póster]]&lt;br /&gt;
{{ TrabajoED | Series de Fourier. Grupo DFN | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP25/26|2025-26]] | Daniel Tormos&lt;br /&gt;
&lt;br /&gt;
Fernando Madrid&lt;br /&gt;
&lt;br /&gt;
Nicolás Sánchez  }}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Funciones =&lt;br /&gt;
&lt;br /&gt;
Esta primera función calcula los coeficientes de Fourier de manera aleatoria en base a una función f.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs] = rand_coefs(f,N)&lt;br /&gt;
    % Crea un vector de N elementos con coeficientes a_i aleatorios entre&lt;br /&gt;
    % f(i) y -f(i).&lt;br /&gt;
    coefs = zeros(N,1);&lt;br /&gt;
    for i = 1:N&lt;br /&gt;
        coefs(i) = rand*2*f(i)-f(i);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta función genera la Serie de Fourier a partir de sus coeficientes.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [F] = generar_F(a,b)&lt;br /&gt;
    % Genera una función F a partir de sus coeficientes de Fourier.&lt;br /&gt;
    &lt;br /&gt;
    % a son los N+1 coeficientes para los elementos pares de la base&lt;br /&gt;
    % trigonométrica en [-pi,pi], y b son los N coeficientes de los &lt;br /&gt;
    % elementos impares.&lt;br /&gt;
&lt;br /&gt;
    N = length(b);&lt;br /&gt;
    n = (1:N)';  % Vector columna&lt;br /&gt;
    a = a(:);    % Asegurar que a es columna&lt;br /&gt;
    b = b(:);    % Asegurar que b es columna&lt;br /&gt;
    &lt;br /&gt;
    F = @(x) (a(1)/sqrt(2*pi)) + sum((a(n+1)/sqrt(pi)).*cos(n*x) + (b(n)/sqrt(pi)).*sin(n*x), 1);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con esto creamos una lista de series de Fourier.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs, funciones] = familia_funciones(f,N,Num)&lt;br /&gt;
    % f,N son las entradas para rand_coefs&lt;br /&gt;
    % Num es el número de funciones de la familia&lt;br /&gt;
&lt;br /&gt;
    % Devuelve:&lt;br /&gt;
&lt;br /&gt;
    % Una lista de parejas de vectores de coeficientes a y b. Para&lt;br /&gt;
    % obtener los coeficientes impares de la funcion 3 (por ejemplo),&lt;br /&gt;
    % llamas coefs(3).b&lt;br /&gt;
&lt;br /&gt;
    % Una lista de funciones. Para obtener la función 3, llamas&lt;br /&gt;
    % funciones{3}&lt;br /&gt;
&lt;br /&gt;
    coefs(Num) = struct('a',[],'b',[]);&lt;br /&gt;
    funciones = cell(1,Num);&lt;br /&gt;
    for i = 1:Num&lt;br /&gt;
        coefs(i).a = rand_coefs(f,N+1);&lt;br /&gt;
        coefs(i).b = rand_coefs(f,N);&lt;br /&gt;
        funciones{i} = generar_F(coefs(i).a,coefs(i).b); &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
En esta primera hacemos los cálculos de media, varianza y covarianza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^2); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 500;&lt;br /&gt;
Num = 1e5;&lt;br /&gt;
[coefs,funciones] = familia_funciones(f2,N,Num); % Elegir la f_i que se quiera&lt;br /&gt;
x1 = 1; x2 = 0.2; % Distintos puntos&lt;br /&gt;
Sum_1 = 0;&lt;br /&gt;
Sum_2 = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    Sum_1 = Sum_1 + funciones{i}(x1);&lt;br /&gt;
    Sum_2 = Sum_2 + funciones{i}(x2);&lt;br /&gt;
end&lt;br /&gt;
mean1 = (1/Num)*Sum_1&lt;br /&gt;
mean2 = (1/Num)*Sum_2&lt;br /&gt;
media_metodo_A = mean1;&lt;br /&gt;
&lt;br /&gt;
S1 = 0;&lt;br /&gt;
S2 = 0;&lt;br /&gt;
C = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    S1 = S1 + (funciones{i}(x1)-mean1)^2;&lt;br /&gt;
    S2 = S2 + (funciones{i}(x2)-mean2)^2;&lt;br /&gt;
    C = C + (funciones{i}(x1)-mean1)*(funciones{i}(x2)-mean2);&lt;br /&gt;
end&lt;br /&gt;
VAR1 = (1/(Num-1))*S1&lt;br /&gt;
VAR2 = (1/(Num-1))*S2&lt;br /&gt;
COV = (1/(Num-1))*C&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^(2)); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 100;&lt;br /&gt;
a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
x = linspace(-pi,pi,600);&lt;br /&gt;
P = linspace(-pi,pi,300);&lt;br /&gt;
&lt;br /&gt;
V=zeros(1000,3);&lt;br /&gt;
&lt;br /&gt;
for i=1:1000&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,1)=V(i,1)+abs(F1(P(k))-F1(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,2)=V(i,2)+abs(F2(P(k))-F2(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,3)=V(i,3)+abs(F3(P(k))-F3(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
    a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
    a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
    a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
    F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
tablaResultados = table(mean(V)', min(V)', max(V)', std(V)', ...&lt;br /&gt;
    'VariableNames', {'Media', 'Minimo', 'Maximo', 'Desviacion Tipica' }, ...&lt;br /&gt;
    'RowNames', {'Funcion 1', 'Funcion 2', 'Funcion 3'});&lt;br /&gt;
&lt;br /&gt;
 plot(x,F1(x));&lt;br /&gt;
 hold on&lt;br /&gt;
 plot(x,F2(x));&lt;br /&gt;
 plot(x,F3(x));&lt;br /&gt;
 legend &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP25/26]]&lt;/div&gt;</summary>
		<author><name>Daniel Tormos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:P%C3%B3ster_DFN_im%C3%A1gen.png&amp;diff=104333</id>
		<title>Archivo:Póster DFN imágen.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:P%C3%B3ster_DFN_im%C3%A1gen.png&amp;diff=104333"/>
				<updated>2026-02-19T02:59:15Z</updated>
		
		<summary type="html">&lt;p&gt;Daniel Tormos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Daniel Tormos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Poster_DFN.pdf&amp;diff=104332</id>
		<title>Archivo:Poster DFN.pdf</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Poster_DFN.pdf&amp;diff=104332"/>
				<updated>2026-02-19T02:51:10Z</updated>
		
		<summary type="html">&lt;p&gt;Daniel Tormos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Daniel Tormos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104331</id>
		<title>Series de Fourier DFN</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104331"/>
				<updated>2026-02-19T02:48:39Z</updated>
		
		<summary type="html">&lt;p&gt;Daniel Tormos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Archivo:Poster DFN.pdf|miniaturadeimagen|Póster]]&lt;br /&gt;
{{ TrabajoED | Series de Fourier. Grupo DFN | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP25/26|2025-26]] | Daniel Tormos&lt;br /&gt;
&lt;br /&gt;
Fernando Madrid&lt;br /&gt;
&lt;br /&gt;
Nicolás Sánchez  }}&lt;br /&gt;
[[Archivo:Poster DFN.png|miniaturadeimagen|Póster Imágen]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Funciones =&lt;br /&gt;
&lt;br /&gt;
Esta primera función calcula los coeficientes de Fourier de manera aleatoria en base a una función f.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs] = rand_coefs(f,N)&lt;br /&gt;
    % Crea un vector de N elementos con coeficientes a_i aleatorios entre&lt;br /&gt;
    % f(i) y -f(i).&lt;br /&gt;
    coefs = zeros(N,1);&lt;br /&gt;
    for i = 1:N&lt;br /&gt;
        coefs(i) = rand*2*f(i)-f(i);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta función genera la Serie de Fourier a partir de sus coeficientes.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [F] = generar_F(a,b)&lt;br /&gt;
    % Genera una función F a partir de sus coeficientes de Fourier.&lt;br /&gt;
    &lt;br /&gt;
    % a son los N+1 coeficientes para los elementos pares de la base&lt;br /&gt;
    % trigonométrica en [-pi,pi], y b son los N coeficientes de los &lt;br /&gt;
    % elementos impares.&lt;br /&gt;
&lt;br /&gt;
    N = length(b);&lt;br /&gt;
    n = (1:N)';  % Vector columna&lt;br /&gt;
    a = a(:);    % Asegurar que a es columna&lt;br /&gt;
    b = b(:);    % Asegurar que b es columna&lt;br /&gt;
    &lt;br /&gt;
    F = @(x) (a(1)/sqrt(2*pi)) + sum((a(n+1)/sqrt(pi)).*cos(n*x) + (b(n)/sqrt(pi)).*sin(n*x), 1);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con esto creamos una lista de series de Fourier.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs, funciones] = familia_funciones(f,N,Num)&lt;br /&gt;
    % f,N son las entradas para rand_coefs&lt;br /&gt;
    % Num es el número de funciones de la familia&lt;br /&gt;
&lt;br /&gt;
    % Devuelve:&lt;br /&gt;
&lt;br /&gt;
    % Una lista de parejas de vectores de coeficientes a y b. Para&lt;br /&gt;
    % obtener los coeficientes impares de la funcion 3 (por ejemplo),&lt;br /&gt;
    % llamas coefs(3).b&lt;br /&gt;
&lt;br /&gt;
    % Una lista de funciones. Para obtener la función 3, llamas&lt;br /&gt;
    % funciones{3}&lt;br /&gt;
&lt;br /&gt;
    coefs(Num) = struct('a',[],'b',[]);&lt;br /&gt;
    funciones = cell(1,Num);&lt;br /&gt;
    for i = 1:Num&lt;br /&gt;
        coefs(i).a = rand_coefs(f,N+1);&lt;br /&gt;
        coefs(i).b = rand_coefs(f,N);&lt;br /&gt;
        funciones{i} = generar_F(coefs(i).a,coefs(i).b); &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
En esta primera hacemos los cálculos de media, varianza y covarianza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^2); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 500;&lt;br /&gt;
Num = 1e5;&lt;br /&gt;
[coefs,funciones] = familia_funciones(f2,N,Num); % Elegir la f_i que se quiera&lt;br /&gt;
x1 = 1; x2 = 0.2; % Distintos puntos&lt;br /&gt;
Sum_1 = 0;&lt;br /&gt;
Sum_2 = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    Sum_1 = Sum_1 + funciones{i}(x1);&lt;br /&gt;
    Sum_2 = Sum_2 + funciones{i}(x2);&lt;br /&gt;
end&lt;br /&gt;
mean1 = (1/Num)*Sum_1&lt;br /&gt;
mean2 = (1/Num)*Sum_2&lt;br /&gt;
media_metodo_A = mean1;&lt;br /&gt;
&lt;br /&gt;
S1 = 0;&lt;br /&gt;
S2 = 0;&lt;br /&gt;
C = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    S1 = S1 + (funciones{i}(x1)-mean1)^2;&lt;br /&gt;
    S2 = S2 + (funciones{i}(x2)-mean2)^2;&lt;br /&gt;
    C = C + (funciones{i}(x1)-mean1)*(funciones{i}(x2)-mean2);&lt;br /&gt;
end&lt;br /&gt;
VAR1 = (1/(Num-1))*S1&lt;br /&gt;
VAR2 = (1/(Num-1))*S2&lt;br /&gt;
COV = (1/(Num-1))*C&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^(2)); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 100;&lt;br /&gt;
a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
x = linspace(-pi,pi,600);&lt;br /&gt;
P = linspace(-pi,pi,300);&lt;br /&gt;
&lt;br /&gt;
V=zeros(1000,3);&lt;br /&gt;
&lt;br /&gt;
for i=1:1000&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,1)=V(i,1)+abs(F1(P(k))-F1(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,2)=V(i,2)+abs(F2(P(k))-F2(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,3)=V(i,3)+abs(F3(P(k))-F3(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
    a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
    a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
    a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
    F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
tablaResultados = table(mean(V)', min(V)', max(V)', std(V)', ...&lt;br /&gt;
    'VariableNames', {'Media', 'Minimo', 'Maximo', 'Desviacion Tipica' }, ...&lt;br /&gt;
    'RowNames', {'Funcion 1', 'Funcion 2', 'Funcion 3'});&lt;br /&gt;
&lt;br /&gt;
 plot(x,F1(x));&lt;br /&gt;
 hold on&lt;br /&gt;
 plot(x,F2(x));&lt;br /&gt;
 plot(x,F3(x));&lt;br /&gt;
 legend &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP25/26]]&lt;/div&gt;</summary>
		<author><name>Daniel Tormos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104330</id>
		<title>Series de Fourier DFN</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104330"/>
				<updated>2026-02-19T02:45:16Z</updated>
		
		<summary type="html">&lt;p&gt;Daniel Tormos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier. Grupo DFN | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP25/26|2025-26]] | Daniel Tormos&lt;br /&gt;
&lt;br /&gt;
Fernando Madrid&lt;br /&gt;
&lt;br /&gt;
Nicolás Sánchez  }}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Poster_DFN.png||900px]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Poster_DFN.pdf]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Funciones =&lt;br /&gt;
&lt;br /&gt;
Esta primera función calcula los coeficientes de Fourier de manera aleatoria en base a una función f.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs] = rand_coefs(f,N)&lt;br /&gt;
    % Crea un vector de N elementos con coeficientes a_i aleatorios entre&lt;br /&gt;
    % f(i) y -f(i).&lt;br /&gt;
    coefs = zeros(N,1);&lt;br /&gt;
    for i = 1:N&lt;br /&gt;
        coefs(i) = rand*2*f(i)-f(i);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta función genera la Serie de Fourier a partir de sus coeficientes.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [F] = generar_F(a,b)&lt;br /&gt;
    % Genera una función F a partir de sus coeficientes de Fourier.&lt;br /&gt;
    &lt;br /&gt;
    % a son los N+1 coeficientes para los elementos pares de la base&lt;br /&gt;
    % trigonométrica en [-pi,pi], y b son los N coeficientes de los &lt;br /&gt;
    % elementos impares.&lt;br /&gt;
&lt;br /&gt;
    N = length(b);&lt;br /&gt;
    n = (1:N)';  % Vector columna&lt;br /&gt;
    a = a(:);    % Asegurar que a es columna&lt;br /&gt;
    b = b(:);    % Asegurar que b es columna&lt;br /&gt;
    &lt;br /&gt;
    F = @(x) (a(1)/sqrt(2*pi)) + sum((a(n+1)/sqrt(pi)).*cos(n*x) + (b(n)/sqrt(pi)).*sin(n*x), 1);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con esto creamos una lista de series de Fourier.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs, funciones] = familia_funciones(f,N,Num)&lt;br /&gt;
    % f,N son las entradas para rand_coefs&lt;br /&gt;
    % Num es el número de funciones de la familia&lt;br /&gt;
&lt;br /&gt;
    % Devuelve:&lt;br /&gt;
&lt;br /&gt;
    % Una lista de parejas de vectores de coeficientes a y b. Para&lt;br /&gt;
    % obtener los coeficientes impares de la funcion 3 (por ejemplo),&lt;br /&gt;
    % llamas coefs(3).b&lt;br /&gt;
&lt;br /&gt;
    % Una lista de funciones. Para obtener la función 3, llamas&lt;br /&gt;
    % funciones{3}&lt;br /&gt;
&lt;br /&gt;
    coefs(Num) = struct('a',[],'b',[]);&lt;br /&gt;
    funciones = cell(1,Num);&lt;br /&gt;
    for i = 1:Num&lt;br /&gt;
        coefs(i).a = rand_coefs(f,N+1);&lt;br /&gt;
        coefs(i).b = rand_coefs(f,N);&lt;br /&gt;
        funciones{i} = generar_F(coefs(i).a,coefs(i).b); &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
En esta primera hacemos los cálculos de media, varianza y covarianza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^2); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 500;&lt;br /&gt;
Num = 1e5;&lt;br /&gt;
[coefs,funciones] = familia_funciones(f2,N,Num); % Elegir la f_i que se quiera&lt;br /&gt;
x1 = 1; x2 = 0.2; % Distintos puntos&lt;br /&gt;
Sum_1 = 0;&lt;br /&gt;
Sum_2 = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    Sum_1 = Sum_1 + funciones{i}(x1);&lt;br /&gt;
    Sum_2 = Sum_2 + funciones{i}(x2);&lt;br /&gt;
end&lt;br /&gt;
mean1 = (1/Num)*Sum_1&lt;br /&gt;
mean2 = (1/Num)*Sum_2&lt;br /&gt;
media_metodo_A = mean1;&lt;br /&gt;
&lt;br /&gt;
S1 = 0;&lt;br /&gt;
S2 = 0;&lt;br /&gt;
C = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    S1 = S1 + (funciones{i}(x1)-mean1)^2;&lt;br /&gt;
    S2 = S2 + (funciones{i}(x2)-mean2)^2;&lt;br /&gt;
    C = C + (funciones{i}(x1)-mean1)*(funciones{i}(x2)-mean2);&lt;br /&gt;
end&lt;br /&gt;
VAR1 = (1/(Num-1))*S1&lt;br /&gt;
VAR2 = (1/(Num-1))*S2&lt;br /&gt;
COV = (1/(Num-1))*C&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^(2)); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 100;&lt;br /&gt;
a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
x = linspace(-pi,pi,600);&lt;br /&gt;
P = linspace(-pi,pi,300);&lt;br /&gt;
&lt;br /&gt;
V=zeros(1000,3);&lt;br /&gt;
&lt;br /&gt;
for i=1:1000&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,1)=V(i,1)+abs(F1(P(k))-F1(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,2)=V(i,2)+abs(F2(P(k))-F2(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,3)=V(i,3)+abs(F3(P(k))-F3(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
    a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
    a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
    a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
    F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
tablaResultados = table(mean(V)', min(V)', max(V)', std(V)', ...&lt;br /&gt;
    'VariableNames', {'Media', 'Minimo', 'Maximo', 'Desviacion Tipica' }, ...&lt;br /&gt;
    'RowNames', {'Funcion 1', 'Funcion 2', 'Funcion 3'});&lt;br /&gt;
&lt;br /&gt;
 plot(x,F1(x));&lt;br /&gt;
 hold on&lt;br /&gt;
 plot(x,F2(x));&lt;br /&gt;
 plot(x,F3(x));&lt;br /&gt;
 legend &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP25/26]]&lt;/div&gt;</summary>
		<author><name>Daniel Tormos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104329</id>
		<title>Series de Fourier DFN</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104329"/>
				<updated>2026-02-19T02:44:03Z</updated>
		
		<summary type="html">&lt;p&gt;Daniel Tormos: /* Aplicaciones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier. Grupo DFN | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP25/26|2025-26]] | Daniel Tormos&lt;br /&gt;
&lt;br /&gt;
Fernando Madrid&lt;br /&gt;
&lt;br /&gt;
Nicolás Sánchez  }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Funciones =&lt;br /&gt;
&lt;br /&gt;
Esta primera función calcula los coeficientes de Fourier de manera aleatoria en base a una función f.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs] = rand_coefs(f,N)&lt;br /&gt;
    % Crea un vector de N elementos con coeficientes a_i aleatorios entre&lt;br /&gt;
    % f(i) y -f(i).&lt;br /&gt;
    coefs = zeros(N,1);&lt;br /&gt;
    for i = 1:N&lt;br /&gt;
        coefs(i) = rand*2*f(i)-f(i);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta función genera la Serie de Fourier a partir de sus coeficientes.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [F] = generar_F(a,b)&lt;br /&gt;
    % Genera una función F a partir de sus coeficientes de Fourier.&lt;br /&gt;
    &lt;br /&gt;
    % a son los N+1 coeficientes para los elementos pares de la base&lt;br /&gt;
    % trigonométrica en [-pi,pi], y b son los N coeficientes de los &lt;br /&gt;
    % elementos impares.&lt;br /&gt;
&lt;br /&gt;
    N = length(b);&lt;br /&gt;
    n = (1:N)';  % Vector columna&lt;br /&gt;
    a = a(:);    % Asegurar que a es columna&lt;br /&gt;
    b = b(:);    % Asegurar que b es columna&lt;br /&gt;
    &lt;br /&gt;
    F = @(x) (a(1)/sqrt(2*pi)) + sum((a(n+1)/sqrt(pi)).*cos(n*x) + (b(n)/sqrt(pi)).*sin(n*x), 1);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con esto creamos una lista de series de Fourier.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs, funciones] = familia_funciones(f,N,Num)&lt;br /&gt;
    % f,N son las entradas para rand_coefs&lt;br /&gt;
    % Num es el número de funciones de la familia&lt;br /&gt;
&lt;br /&gt;
    % Devuelve:&lt;br /&gt;
&lt;br /&gt;
    % Una lista de parejas de vectores de coeficientes a y b. Para&lt;br /&gt;
    % obtener los coeficientes impares de la funcion 3 (por ejemplo),&lt;br /&gt;
    % llamas coefs(3).b&lt;br /&gt;
&lt;br /&gt;
    % Una lista de funciones. Para obtener la función 3, llamas&lt;br /&gt;
    % funciones{3}&lt;br /&gt;
&lt;br /&gt;
    coefs(Num) = struct('a',[],'b',[]);&lt;br /&gt;
    funciones = cell(1,Num);&lt;br /&gt;
    for i = 1:Num&lt;br /&gt;
        coefs(i).a = rand_coefs(f,N+1);&lt;br /&gt;
        coefs(i).b = rand_coefs(f,N);&lt;br /&gt;
        funciones{i} = generar_F(coefs(i).a,coefs(i).b); &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Códigos=&lt;br /&gt;
En esta primera hacemos los cálculos de media, varianza y covarianza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^2); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 500;&lt;br /&gt;
Num = 1e5;&lt;br /&gt;
[coefs,funciones] = familia_funciones(f2,N,Num); % Elegir la f_i que se quiera&lt;br /&gt;
x1 = 1; x2 = 0.2; % Distintos puntos&lt;br /&gt;
Sum_1 = 0;&lt;br /&gt;
Sum_2 = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    Sum_1 = Sum_1 + funciones{i}(x1);&lt;br /&gt;
    Sum_2 = Sum_2 + funciones{i}(x2);&lt;br /&gt;
end&lt;br /&gt;
mean1 = (1/Num)*Sum_1&lt;br /&gt;
mean2 = (1/Num)*Sum_2&lt;br /&gt;
media_metodo_A = mean1;&lt;br /&gt;
&lt;br /&gt;
S1 = 0;&lt;br /&gt;
S2 = 0;&lt;br /&gt;
C = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    S1 = S1 + (funciones{i}(x1)-mean1)^2;&lt;br /&gt;
    S2 = S2 + (funciones{i}(x2)-mean2)^2;&lt;br /&gt;
    C = C + (funciones{i}(x1)-mean1)*(funciones{i}(x2)-mean2);&lt;br /&gt;
end&lt;br /&gt;
VAR1 = (1/(Num-1))*S1&lt;br /&gt;
VAR2 = (1/(Num-1))*S2&lt;br /&gt;
COV = (1/(Num-1))*C&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^(2)); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 100;&lt;br /&gt;
a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
x = linspace(-pi,pi,600);&lt;br /&gt;
P = linspace(-pi,pi,300);&lt;br /&gt;
&lt;br /&gt;
V=zeros(1000,3);&lt;br /&gt;
&lt;br /&gt;
for i=1:1000&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,1)=V(i,1)+abs(F1(P(k))-F1(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,2)=V(i,2)+abs(F2(P(k))-F2(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,3)=V(i,3)+abs(F3(P(k))-F3(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
    a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
    a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
    a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
    F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
tablaResultados = table(mean(V)', min(V)', max(V)', std(V)', ...&lt;br /&gt;
    'VariableNames', {'Media', 'Minimo', 'Maximo', 'Desviacion Tipica' }, ...&lt;br /&gt;
    'RowNames', {'Funcion 1', 'Funcion 2', 'Funcion 3'});&lt;br /&gt;
&lt;br /&gt;
 plot(x,F1(x));&lt;br /&gt;
 hold on&lt;br /&gt;
 plot(x,F2(x));&lt;br /&gt;
 plot(x,F3(x));&lt;br /&gt;
 legend &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP25/26]]&lt;/div&gt;</summary>
		<author><name>Daniel Tormos</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104328</id>
		<title>Series de Fourier DFN</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Series_de_Fourier_DFN&amp;diff=104328"/>
				<updated>2026-02-19T00:15:27Z</updated>
		
		<summary type="html">&lt;p&gt;Daniel Tormos: /* Funciones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Series de Fourier. Grupo DFN | [[:Categoría:EDP|EDP]]|[[:Categoría:EDP25/26|2025-26]] | Daniel Tormos&lt;br /&gt;
&lt;br /&gt;
Fernando Madrid&lt;br /&gt;
&lt;br /&gt;
Nicolás Sánchez  }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Funciones =&lt;br /&gt;
&lt;br /&gt;
Esta primera función calcula los coeficientes de Fourier de manera aleatoria en base a una función f.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs] = rand_coefs(f,N)&lt;br /&gt;
    % Crea un vector de N elementos con coeficientes a_i aleatorios entre&lt;br /&gt;
    % f(i) y -f(i).&lt;br /&gt;
    coefs = zeros(N,1);&lt;br /&gt;
    for i = 1:N&lt;br /&gt;
        coefs(i) = rand*2*f(i)-f(i);&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esta función genera la Serie de Fourier a partir de sus coeficientes.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [F] = generar_F(a,b)&lt;br /&gt;
    % Genera una función F a partir de sus coeficientes de Fourier.&lt;br /&gt;
    &lt;br /&gt;
    % a son los N+1 coeficientes para los elementos pares de la base&lt;br /&gt;
    % trigonométrica en [-pi,pi], y b son los N coeficientes de los &lt;br /&gt;
    % elementos impares.&lt;br /&gt;
&lt;br /&gt;
    N = length(b);&lt;br /&gt;
    n = (1:N)';  % Vector columna&lt;br /&gt;
    a = a(:);    % Asegurar que a es columna&lt;br /&gt;
    b = b(:);    % Asegurar que b es columna&lt;br /&gt;
    &lt;br /&gt;
    F = @(x) (a(1)/sqrt(2*pi)) + sum((a(n+1)/sqrt(pi)).*cos(n*x) + (b(n)/sqrt(pi)).*sin(n*x), 1);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con esto creamos una lista de series de Fourier.&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
function [coefs, funciones] = familia_funciones(f,N,Num)&lt;br /&gt;
    % f,N son las entradas para rand_coefs&lt;br /&gt;
    % Num es el número de funciones de la familia&lt;br /&gt;
&lt;br /&gt;
    % Devuelve:&lt;br /&gt;
&lt;br /&gt;
    % Una lista de parejas de vectores de coeficientes a y b. Para&lt;br /&gt;
    % obtener los coeficientes impares de la funcion 3 (por ejemplo),&lt;br /&gt;
    % llamas coefs(3).b&lt;br /&gt;
&lt;br /&gt;
    % Una lista de funciones. Para obtener la función 3, llamas&lt;br /&gt;
    % funciones{3}&lt;br /&gt;
&lt;br /&gt;
    coefs(Num) = struct('a',[],'b',[]);&lt;br /&gt;
    funciones = cell(1,Num);&lt;br /&gt;
    for i = 1:Num&lt;br /&gt;
        coefs(i).a = rand_coefs(f,N+1);&lt;br /&gt;
        coefs(i).b = rand_coefs(f,N);&lt;br /&gt;
        funciones{i} = generar_F(coefs(i).a,coefs(i).b); &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aplicaciones=&lt;br /&gt;
En esta primera hacemos los cálculos de media, varianza y covarianza.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^2); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 500;&lt;br /&gt;
Num = 1e5;&lt;br /&gt;
[coefs,funciones] = familia_funciones(f2,N,Num); % Elegir la f_i que se quiera&lt;br /&gt;
x1 = 1; x2 = 0.2; % Distintos puntos&lt;br /&gt;
Sum_1 = 0;&lt;br /&gt;
Sum_2 = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    Sum_1 = Sum_1 + funciones{i}(x1);&lt;br /&gt;
    Sum_2 = Sum_2 + funciones{i}(x2);&lt;br /&gt;
end&lt;br /&gt;
mean1 = (1/Num)*Sum_1&lt;br /&gt;
mean2 = (1/Num)*Sum_2&lt;br /&gt;
media_metodo_A = mean1;&lt;br /&gt;
&lt;br /&gt;
S1 = 0;&lt;br /&gt;
S2 = 0;&lt;br /&gt;
C = 0;&lt;br /&gt;
for i =1:Num&lt;br /&gt;
    S1 = S1 + (funciones{i}(x1)-mean1)^2;&lt;br /&gt;
    S2 = S2 + (funciones{i}(x2)-mean2)^2;&lt;br /&gt;
    C = C + (funciones{i}(x1)-mean1)*(funciones{i}(x2)-mean2);&lt;br /&gt;
end&lt;br /&gt;
VAR1 = (1/(Num-1))*S1&lt;br /&gt;
VAR2 = (1/(Num-1))*S2&lt;br /&gt;
COV = (1/(Num-1))*C&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang: &amp;quot;Matlab&amp;quot; line&amp;gt;&lt;br /&gt;
&lt;br /&gt;
f1 = @(x) 1./(x.^(2)); f2 = @(x) 1./x; f3 = @(x) 1/sqrt(x);&lt;br /&gt;
N = 100;&lt;br /&gt;
a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
x = linspace(-pi,pi,600);&lt;br /&gt;
P = linspace(-pi,pi,300);&lt;br /&gt;
&lt;br /&gt;
V=zeros(1000,3);&lt;br /&gt;
&lt;br /&gt;
for i=1:1000&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,1)=V(i,1)+abs(F1(P(k))-F1(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,2)=V(i,2)+abs(F2(P(k))-F2(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for k=1:length(P)-1&lt;br /&gt;
        V(i,3)=V(i,3)+abs(F3(P(k))-F3(P(k+1)));&lt;br /&gt;
    end&lt;br /&gt;
    a1 = rand_coefs(f1,N+1); b1 = rand_coefs(f1,N);&lt;br /&gt;
    a2 = rand_coefs(f2,N+1); b2 = rand_coefs(f2,N);&lt;br /&gt;
    a3 = rand_coefs(f3,N+1); b3 = rand_coefs(f3,N);&lt;br /&gt;
    F1 = generar_F(a1,b1); F2 = generar_F(a2,b2); F3 = generar_F(a3,b3);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
tablaResultados = table(mean(V)', min(V)', max(V)', std(V)', ...&lt;br /&gt;
    'VariableNames', {'Media', 'Minimo', 'Maximo', 'Desviacion Tipica' }, ...&lt;br /&gt;
    'RowNames', {'Funcion 1', 'Funcion 2', 'Funcion 3'});&lt;br /&gt;
&lt;br /&gt;
 plot(x,F1(x));&lt;br /&gt;
 hold on&lt;br /&gt;
 plot(x,F2(x));&lt;br /&gt;
 plot(x,F3(x));&lt;br /&gt;
 legend &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Categoría:EDP]]&lt;br /&gt;
[[Categoría:EDP25/26]]&lt;/div&gt;</summary>
		<author><name>Daniel Tormos</name></author>	</entry>

	</feed>