- You forgot to increment your loop counter, the (badly-named) i.
- You forgot to index x so you're just overwriting it every time.
while loop to count partail sum of series
2 views (last 30 days)
Show older comments
Hello,
I'm having problems making while loop to count partial sum (110 iterations) of this series: 1/i*(i+1). There is antoher condition that counting precision must be 1e-4. So the loops breaks when all iterations are done or the precision is achieved. Unfotunetely I'm new to MATLAB and haven't ever done series using while only using for.
Here's what I managed to do, as you can see I haven't done antyhing regarding precision since I don't how to do it and the loop is infinite becasue I don't know to make a proper condiiton to break.
i=1; N=110; x=0;
while 1
x1=1/(i*(i+1));
x=x+x1
if i>=N
break
end
end
disp(x)
0 Comments
Accepted Answer
Image Analyst
on 16 May 2022
Edited: Image Analyst
on 16 May 2022
Two problems.
The fix:
N = 110; % Max iterations.
x = zeros(1, N);
x(1) = 1 / (1 * 2);
loopCounter = 2;
while loopCounter <= N
thisTerm = 1 / (loopCounter * (loopCounter+1));
x(loopCounter) = x(loopCounter - 1) + thisTerm;
loopCounter = loopCounter + 1;
end
plot(x, 'b-', 'LineWidth', 2);
grid on;
xlabel('Iteration Number')
ylabel('x, partial sum')
2 Comments
Image Analyst
on 16 May 2022
More Answers (1)
Torsten
on 16 May 2022
sum_{i=1}^{i=N} 1/(i*(i+1)) = 1 - 1/(N+1)
No need for such a difficult while construction with precision estimate.
2 Comments
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!