partial sum of a series
10 views (last 30 days)
Show older comments
i have this function and i wrote the following code to calculate the Fourier coefficients
im just stuck with writing a loop which calculate the partial sum of the series till a given number N as well as Plotting the function and the corresponding partial sum (N = 12) on one figure.
can any one help?
3 Comments
Walter Roberson
on 6 May 2022
syms x
Pi = sym(pi);
f = 1/2*(sin(x) + abs(sin(x)))
X = linspace(-Pi, Pi);
F = double(subs(f, x, X));
plot(X, F)
fourier(f, x)
f2 = piecewise(x >= 0 & x <= 3*Pi/2, sin(x), zeros(size(x)))
F2 = double(subs(f2, x, X));
plot(X, F2)
fourier(f2)
sympref('HeavisideAtOrigin', 0);
f3 = (heaviside(x)-heaviside(x-3*Pi/2))*sin(x)
F3 = double(subs(f3, x, X));
plot(X, F3)
simplify(fourier(f3, x), 'steps', 10)
Interesting, it appears that you can get a closed formula -- though you have to work at it a bit.
Answers (1)
Paul
on 6 May 2022
Edited: Paul
on 7 May 2022
Hi SSBGH,
To plot the function, we need a set of x-values to plot over.
As you've done, define the function and the CFS coefficients symbolically
syms x
syms n integer positive % missing from original code!
f = 1/2*(sin(x)+abs(sin(x)));
%%a0
% use sym(pi) when doing symbolic math
Pi = sym(pi);
a0_sym = (1/Pi)*int(f,x,-Pi,Pi); % this equation has been corrected
a_sym(n) = (1/Pi)*int(f*cos(n*x),x,-Pi,Pi)
b_sym(n) = (1/Pi)*int(f*sin(n*x),x,-Pi,Pi)
Now define the values of x to make the plot
xvals = -pi:.01:pi;
Now we loop over the CFS coefficients to sum them all up over all values of x
N = 12;
% intialize with a0
fr = double(a0_sym)/2;
for n = 1:N;
a = double(a_sym(n));
b = double(b_sym(n));
% at this point, fill in the RHS
fr = fr + ...
end
Now plot
plot(xvals,1/2*(sin(xvals) + abs(sin(xvals))),xvals,fr)
0 Comments
See Also
Categories
Find more on Calculus in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!