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!