partial sum of a series
조회 수: 10 (최근 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!