Info

This question is closed. Reopen it to edit or answer.

Attempting to have a series for sin stop summing when the precision is correct

2 views (last 30 days)
p = 0;
Pn = sinser(p,x);
figure(3)
plot(x,sin(x),'-k')
hold on
plot(x,Pn)
axis([0 100 -2 2])
title('Sine Curve Series')
xlabel('x')
ylabel('y')
legend('Sin(x)','P')
hold off
function [p,x] = sinser(p,x)
ssx = 1000000*p;
sinx = 1000000*sin(x);
floor1 = floor(ssx);
floor2 = floor(sinx);
if floor1 ~= floor2
b = 1;
else
b = 0;
end
k = 0;
while b == 1
p = p + (((-1)^k*(x.^(2*k+1)))/(factorial(2*k+1)));
k = k + 1;
end
end
For some reason, MatLab is stating that Pn = 0. I am not sure why. I am hoping for Pn to equal some sort of summation that follows the sine curve. Ultimately it should be a 1x1001 matrix, but it is giving me a scalar value. Any help is appreciated.

Answers (1)

James Tursa
James Tursa on 17 Oct 2019
Inside the sinser function, you never set p to a vector ... it is always just a scalar. If you want to return all of those intermediate values of p, then you need to redo your logic to save them in a vector (e.g., using p(k) and p(k+1) etc inside the function as appropriate).

This question is closed.

Community Treasure Hunt

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

Start Hunting!