Diferencia entre revisiones de «Series de Fourier NAA»
De MateWiki
| Línea 48: | Línea 48: | ||
end | end | ||
legend('f(x)', 'k=1', 'k=5', 'k=10', 'k=20', 'k=50', 'k=100') | legend('f(x)', 'k=1', 'k=5', 'k=10', 'k=20', 'k=50', 'k=100') | ||
| + | </source> | ||
| + | hola | ||
| − | + | <source lang="matlab" line> | |
%error en L2 | %error en L2 | ||
Revisión del 22:28 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 | |
clear; clc; close all;
% Dominio
x = linspace(-pi, pi, 2000);
% Onda cuadrada original
f = sign(sin(x));
% Número de términos
k= [1 5 10 20 50 100]; % prueba 20, 50, 100...
colores = {'r', 'b', 'g', 'y', 'm', 'c'};
figure
subplot(2,1,1)
plot(x, f, 'k')
hold on
for i=1:length(k)
% Inicializar suma de Cesàro
cesaro = zeros(size(x));
% Construcción (solo impares)
for n = 1:2:(2*k(i)-1)
weight = 1 - (n/(2*k(i))); % factor de Cesàro
cesaro = cesaro + weight*(1/n)*sin(n*x);
end
cesaro = (4/pi)*cesaro;
% Error puntual
E = abs(f - cesaro);
subplot(2,1,1)
plot(x, cesaro, colores{i})
grid on
subplot(2,1,2)
plot(x, E, colores{i})
end
legend('f(x)', 'k=1', 'k=5', 'k=10', 'k=20', 'k=50', 'k=100')hola
%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
k = [1 5 10 20 50 100];
error_norma2 = zeros(size(k)); % Guardar errores
for i = 1:length(k)
% Inicializar aproximación
fourier = zeros(size(x));
% Construcción de la serie (solo impares)
for n = 1:2:(2*k(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 (k)')
ylabel('||f - S_k||_2')
xlim([0, max(k)+5])
clear; clc; close all;
% Dominio
x = linspace(-pi, pi, 10000);
% Onda cuadrada original
f = sign(sin(x));
% Valores de k
k = [1 5 10 20 50 100];
error_norma2 = zeros(size(k)); % Guardar errores
for i = 1:length(k)
% Inicializar suma de Cesàro
cesaro = zeros(size(x));
% Construcción (solo impares)
for n = 1:2:(2*k(i)-1)
weight = 1 - (n/(2*k(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 (k)')
ylabel('||f - \sigma_k||_2')
xlim([0, max(k)+5])