How do I plot this Fourier series funcion?

10 views (last 30 days)
Hasan Al Tarify
Hasan Al Tarify on 8 Oct 2021
Commented: Star Strider on 8 Oct 2021
Hello everyone,
I have tried to plot the function below from (0,pi) for a0 and the first six terms of the series on matlab. I did not know how to include the sin and cos function together so I tried to plot the cos term first, However, it seems like it does not work with the followig code becaue of (cos, sin) error. I would appriciate your help.
a0 = pi/4
an = 1/pi(cos(n*pi)-1)
bn = (-1*cos(n*pi))/n
f(t) = a0 + sum(an*cos(n*t))+ sum(bn*sin(n*t))
t = 0:0.1:2*pi;
n = 6;
ycos = cos(t,n);
plot(x,ycos),grid
xlabel('t'),ylabel('cos function')
% Define functions
function f = fcos(t,n)
f = zeros(1,numel(t));
f = pi/4;
for i = 1:n
an = -1/pi(cos(i*pi)-1) ;
f = f + an*cos(i*t);
end

Answers (1)

Star Strider
Star Strider on 8 Oct 2021
I am not exactly certain what you want to do, however the loop is likely not necessary, sinc it is prefgerable to use MATLAB’s vectorisation capabilities —
t = 0:0.1:2*pi;
n = 1E-8+(0:6).'; % Adding 1E-8 Prevents NaN Values In The Output, Transposed To Column Vector
a0 = pi/4;
an = 1./(pi*(cos(n*pi)-1))
an = 7×1
1.0e+14 * -7.1677 -0.0000 -7.1677 -0.0000 -7.1677 -0.0000 -7.1677
bn = (-1*cos(n*pi))./n
bn = 7×1
1.0e+08 * -1.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000
f = @(t) a0 + sum(an.*cos(n.*t))+ sum(bn.*sin(n.*t));
figure
plot(t, f(t))
grid
Make appropriate changes to get different results.
.
  6 Comments
Star Strider
Star Strider on 8 Oct 2021
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by