while loop to count partail sum of series

2 ビュー (過去 30 日間)
Arkadius882
Arkadius882 2022 年 5 月 16 日
コメント済み: Torsten 2022 年 5 月 16 日
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)

採用された回答

Image Analyst
Image Analyst 2022 年 5 月 16 日
編集済み: Image Analyst 2022 年 5 月 16 日
Two problems.
  1. You forgot to increment your loop counter, the (badly-named) i.
  2. You forgot to index x so you're just overwriting it every time.
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 件のコメント
Torsten
Torsten 2022 年 5 月 16 日
編集済み: Torsten 2022 年 5 月 16 日
x(1) = 1 / (1 * 2);
instead of
x(1) = 1 / (1 + 2);
And
x = zeros(1, N);
must be done before setting
x(1) = 1 / (1 * 2);
Image Analyst
Image Analyst 2022 年 5 月 16 日
Thanks @Torsten for catching those problems. 🙂 I've corrected them in my initial answer.

サインインしてコメントする。

その他の回答 (1 件)

Torsten
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 件のコメント
Arkadius882
Arkadius882 2022 年 5 月 16 日
The problem is that it needs to be with while loop because that is an academic task :/
Torsten
Torsten 2022 年 5 月 16 日
Then use Image Analyst's solution.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by