How to create a Fourier series using for loops
11 views (last 30 days)
Show older comments
I am supposed to plot this function on matlab along with another function. I have tried using for loops to create this, I am new to matlab and I don't know what I am doing wrong. Could someone point me in the right direction please? the range for x is from -2 to 2 and NUM is 14
f_init = repelem(0.5,401)
f_approx = (2/((k^2)*(pi^k)))*((-1^k)-1)*cos(k*((pi*x)/2))+(2/(pi*k))*(-1^(k+1))*sin(k*(pi*x/2));
t= length(x)
for k=1:14
for x=-2:0.01:2
F(x) = f_init(t)+ f_approx(k);
end
end
plot(F);
0 Comments
Accepted Answer
Torsten
on 2 Oct 2022
Edited: Torsten
on 2 Oct 2022
k = 1:14;
x = (-2:0.01:2).';
f = 0.5 + sum(2./(k.^2*pi^2).*((-1).^k-1).*cos(pi*k.*x/2) + 2./(k*pi).*(-1).^(k+1).*sin(pi*k.*x/2),2);
plot(x,f)
f is a (401x14) matrix with row i made up of the k terms of the Fourier series, evaluated at x(i).
3 Comments
Torsten
on 2 Oct 2022
.^, ./ and .* are elementwise operations for vectors and matrices being potentiated, divided or multiplied.
This is in contrast to matrix operations.
Look what comes out if you try
a = [1 2 3];
b = [4 5 6];
a.^b
a./b
a.*b
or
(a.').^b
(a.')./b
(a.').*b
For further information, see
More Answers (0)
See Also
Categories
Find more on Fourier Analysis and Filtering 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!