Diferencia entre revisiones de «Series de Fourier NAA»

De MateWiki
Saltar a: navegación, buscar
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])