- 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 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Image Analyst
2022 年 5 月 16 日
編集済み: Image Analyst
2022 年 5 月 16 日
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 件のコメント
Image Analyst
2022 年 5 月 16 日
その他の回答 (1 件)
Torsten
2022 年 5 月 16 日
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 件のコメント
参考
カテゴリ
Help Center および 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!