How to sum only the positive elements in a series?
이전 댓글 표시
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.
채택된 답변
추가 답변 (3개)
Walter Roberson
2014년 2월 27일
0 개 추천
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)
2014년 2월 27일
This piece of pseudocode might get you started:
while CurrentSum < maxixumSum
n = n + 1
CurrentValue = (-1^n)/n
if CurrentValue > 0
% … etcetera
Sultan
2014년 2월 27일
0 개 추천
댓글 수: 1
Sagar Damle
2014년 2월 27일
Can you put your correct code here to help others?
카테고리
도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!