Plotting Fourier Series Expansion

31 visualizaciones (últimos 30 días)
Hanif
Hanif el 9 de Mzo. de 2023
Comentada: Hanif el 9 de Mzo. de 2023
I was given a problem of the Fourier series expansion of with a periodicity interval . I found that the Fourier series expansion of such function with given periodicity interval is . However, I am new to MATLAB and my knowledge is limited to simple plotting. Suppose that my answer is correct, how to subplot and its Fourier series expansion using loop that generates the n-order of the expansion? I searched in this community and actually find a really good plotting, but I don't understand how it works. Thanks in advance!
  2 comentarios
Hanif
Hanif el 9 de Mzo. de 2023
Here, I am attaching the complete works on how do I find the Fourier series expansion just in case it would help anyone who want to help me to make the subplot (see in problem 1).
Hanif
Hanif el 9 de Mzo. de 2023
I also want to share my attempt on this:
x = linspace(-10,10,100);
y = 1-(4*cos(x))/pi - (4*cos(3*x))/(9*pi) - (4*cos(5*x))/(25*pi);
plot(x,y,'r-');
Of course, it is very simple because I am new to MATLAB.

Iniciar sesión para comentar.

Respuesta aceptada

Paul
Paul el 9 de Mzo. de 2023
Hi Hanif,
Maybe this will help.
First, the problem statement says that one period spans -1 < x <= 1 (I don't think it matter if using < or <=)
x = linspace(-1,1,100);
Instead of using your problem, let's do something simpler, like 1 - 2*sum(n=1:5,n*x)
fsum = 0*x; % initialize
for n = 1:5
fsum = fsum + n*x;
end
plot(x,1-2*fsum)
I think you can adapt that to your problem. Of course we can't compute an infinite sum, so you'll have to pick an upper bound for the sum over n.
  3 comentarios
Paul
Paul el 9 de Mzo. de 2023
Editada: Paul el 9 de Mzo. de 2023
Use plot inside the loop, with hold set to on. Also, the initial value for fsum was incorrect. And still need to define x over the correct interval
% x = linspace(-10,10,100); should be from -1 to 1
% fsum = 4*cos((pi*x)/(pi^2)); % initialize, should be 4*cos(pi*x)/pi^2;
% for n = 2:10
% fsum = fsum + 4*cos((2*n-1)*pi*x)/(pi^2*(2*n-1)^2);
% end
% y = 1-fsum;
% plot(x,y,'r-')
x = linspace(-1,1,100); % changed this line
fsum = 0*x; % initialize
figure;
hold on;
for n = 1:10 % start loop at 1
fsum = fsum + 4*cos((2*n-1)*pi*x)/(pi^2*(2*n-1)^2);
plot(x,1-fsum)
end
The sum seems like it's biased up by 0.5. Also, as your code showed, the reconstruction is not periodic with period = 2. Recheck derivation?
Hanif
Hanif el 9 de Mzo. de 2023
I see. I actually tried to put the plot function into the loop, but it did not work because I forgot to put the hold-on command. As you also mentioned, I haven't check my derivation again, but I will do! Thank you for your helps, Paul.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Numerical Integration and Differentiation en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by