I need to plot the same graphic of the image, but without any loop.

1 view (last 30 days)
Equation for f(x)
With loop i get this:
clear
clc
x = -5*pi:pi/100:5*pi;
k = 0;
y = zeros(size(x));
for k = 0:100
k = k + 1;
y = y + 2*( ( (-(-1).^k) / k ) .* sin(x*k) );
end
plot(x, y)
ylabel('f(X)')
xlabel('X')
grid
I tried to do this without loop but i getting errors.
clear
clc
x = -5*pi:pi/100:5*pi;
k = 0:1:100;
y = zeros(size(x));
% How to variable k ?
y = y + 2.*( ( (-(-1).^k) / k ) .* sin(x*k) );
sum(x)
sum(y)
plot(x,y)

Accepted Answer

Walter Roberson
Walter Roberson on 18 Apr 2021
x = -5*pi:pi/100:5*pi;
k = (1:1:100).'; %not 0!
y = sum(2.*( ( (-(-1).^k)./ k ) .* sin(x.*k) ));
plot(x,y)
  2 Comments
Walter Roberson
Walter Roberson on 18 Apr 2021
The above code works in R2016b and later.
Octave is not a programming language that I know.
xvals = -5*pi:pi/100:5*pi;
kvals = (1:1:100).'; %not 0!
[x, k] = meshgrid(xvals, kvals);
y = sum(2.*( ( (-(-1).^k)./ k ) .* sin(x.*k) ));
plot(x,y)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!