How to sum only the positive elements in a series?
Mostrar comentarios más antiguos
I was asked to write a program to calculate only the positive elements of a series until the sum has reached the required value.
A picture for the series:

I have managed to write a code but the code repeats the loop infinite times until I force it to stop.
sum = 0.0;
n = 0;
disp(' n Sum');
while sum < 4
n = n + 1;
sum = sum + f(n);
if sum > 0;
sum = sum + f(n);
disp([n sum]);
else
disp('skip');
end
end
f(n) in the code represent this:
function y = f(x)
y = ((-1)^(x+1))*(1/x);
Im not confident about the 'else' part of the loop.
Any help is appreciated.
Respuesta aceptada
Más respuestas (3)
Walter Roberson
el 27 de Feb. de 2014
0 votos
what is f(n) exactly? If f(1) = (-1)^(n+1)*1/n then you are going to get negative values and you are adding those negative values into "sum" before you are testing to find out if the term was negative.
Note: do not use "sum" as the name of a variable or you will run into problems.
Jos (10584)
el 27 de Feb. de 2014
This piece of pseudocode might get you started:
while CurrentSum < maxixumSum
n = n + 1
CurrentValue = (-1^n)/n
if CurrentValue > 0
% … etcetera
Sultan
el 27 de Feb. de 2014
0 votos
1 comentario
Sagar Damle
el 27 de Feb. de 2014
Can you put your correct code here to help others?
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!