Diferencia entre revisiones de «Series de Fourier NAA»
De MateWiki
| Línea 4: | Línea 4: | ||
Ainhoa Martín García}} | Ainhoa Martín García}} | ||
| + | |||
[[Archivo:series fourier naa.jpg|opciones|descripción]] | [[Archivo:series fourier naa.jpg|opciones|descripción]] | ||
Revisión del 22:55 18 feb 2026
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Series de Fourier. Grupo NAA |
| Asignatura | EDP |
| Curso | 2025-26 |
| Autores | Natalia Gutiérrez de Uriarte
Alba Peralta Zamora Ainhoa Martín García |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Código para representar aproximación por serie de Fourier.
clear; clc; close all;
% Dominio
x = linspace(-pi, pi, 1000);
% Onda cuadrada original
f = sign(sin(x));
figure
plot(x, f, 'k')
hold on
% Número de términos de Fourier
N = [1 5 10 20 50 100];
colores = {'r', 'b', 'g', 'y', 'm', 'c'};
for i=1:length(N)
% Inicializar aproximación
fourier = zeros(size(x));
% Construcción de la serie
for n = 1:2:(2*N(i)-1)
fourier = fourier + (1/n)*sin(n*x);
end
fourier = (4/pi) * fourier;
% Graficar fourier con N distinto
plot(x, fourier, colores{i})
grid on
end
legend('f(x)', 'N=1', 'N=5', 'N=10', 'N=20', 'N=50', 'N=100')Código para representar error con Fourier.
%error en L2
clear; clc; close all;
% Dominio
x = linspace(-pi, pi, 10000); % Más puntos para mejor precisión
% Onda cuadrada original
f = sign(sin(x));
% Número de términos de Fourier
N = [1 5 10 20 50 100];
error_norma2 = zeros(size(N)); % Guardar errores
for i = 1:length(N)
% Inicializar aproximación
fourier = zeros(size(x));
% Construcción de la serie (solo impares)
for n = 1:2:(2*N(i)-1)
fourier = fourier + (1/n) * sin(n*x);
end
fourier = (4/pi) * fourier;
% Calcular error norma L²
diferencia = f - fourier;
norma2 = sqrt((1/(2*pi)) * trapz(x, diferencia.^2));
% Guardar el error
error_norma2(i) = norma2;
end
% Gráfica del error en norma L²
figure
plot(k, error_norma2, 'bo-', 'LineWidth', 2, 'MarkerSize', 8)
grid on
title('Error en norma L^2 de la aproximación de Fourier')
xlabel('Número de términos (N)')
ylabel('||f - S_N||_2')
xlim([0, max(N)+5])Código para representar las aproximaciones con Cesàro.
clear; clc; close all;
% Dominio
x = linspace(-pi, pi, 2000);
% Onda cuadrada original
f = sign(sin(x));
% Número de términos
N= [1 5 10 20 50 100]; % prueba 20, 50, 100...
colores = {'r', 'b', 'g', 'y', 'm', 'c'};
figure
plot(x, f, 'k')
hold on
for i=1:length(N)
% Inicializar suma de Cesàro
cesaro = zeros(size(x));
% Construcción (solo impares)
for n = 1:2:(2*N(i)-1)
weight = 1 - (n/(2*N(i))); % factor de Cesàro
cesaro = cesaro + weight*(1/n)*sin(n*x);
end
cesaro = (4/pi)*cesaro;
plot(x, cesaro, colores{i})
grid on
end
legend('f(x)', 'N=1', 'N=5', 'N=10', 'N=20', 'N=50', 'N=100')Código para error con Cesàro.
clear; clc; close all;
% Dominio
x = linspace(-pi, pi, 10000); % Más puntos para mejor precisión
% Onda cuadrada original
f = sign(sin(x));
% Valores de N
N = [1 5 10 20 50 100];
error_norma2 = zeros(size(N)); % Guardar errores
for i = 1:length(N)
% Inicializar suma de Cesàro
cesaro = zeros(size(x));
% Construcción (solo impares)
for n = 1:2:(2*N(i)-1)
weight = 1 - (n/(2*N(i)));
cesaro = cesaro + weight*(1/n)*sin(n*x);
end
cesaro = (4/pi)*cesaro;
% Calcular error norma L²
diferencia = f - cesaro;
norma2 = sqrt((1/(2*pi)) * trapz(x, diferencia.^2));
% Guardar el error
error_norma2(i) = norma2;
end
% Gráfica del error en norma L²
figure
plot(k, error_norma2, 'bo-', 'LineWidth', 2, 'MarkerSize', 8)
grid on
title('Error en norma L^2 - Suma de Cesàro')
xlabel('Número de términos (N)')
ylabel('||f - \sigma_N||_2')
xlim([0, max(N)+5])