partial sum of a series
12 次查看(过去 30 天)
显示 更早的评论
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 个评论
Walter Roberson
2022-5-6
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.
回答(1 个)
Paul
2022-5-6
编辑:Paul
2022-5-7
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!