フィルターのクリア

How to prevent addition from showing up in command window

1 回表示 (過去 30 日間)
Kyle Donk
Kyle Donk 2020 年 1 月 17 日
編集済み: stozaki 2020 年 1 月 18 日
I ran some code and am having trouble with the results of the code come out like this:
995
996
997
998
999
1000
How do I just get 1000 instead of all of the numbers? I have suppressed literally everything in the code.
  3 件のコメント
Rik
Rik 2020 年 1 月 18 日
Without a meaningful sample of your code, we can't give a meaningful solution.
Stephen23
Stephen23 2020 年 1 月 18 日
Kyle Donk's "Answer" moved here:
N=10;
error=1;
while error>10^-4
N=N+1;
total=0;
for n=1:N;
y=1/n^2;
total=total+y;
end
error=((pi^2)/6)-total;
disp(N)
end

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

採用された回答

stozaki
stozaki 2020 年 1 月 18 日
編集済み: stozaki 2020 年 1 月 18 日
If you get only 1000, you can try following script.
N=10;
err=1;
while err>10^-3
N=N+1;
total=0;
for n=1:N
y=1/n^2;
total=total+y;
end
err=((pi^2)/6)-total;
end
disp(N);
Is the intent of the question I understood fit?
 
Regards,
stozaki
  2 件のコメント
Image Analyst
Image Analyst 2020 年 1 月 18 日
Built in function names, like error and sum, should not be used as variable names.
Also not sure why you're printing out the iteration number in
fprintf('>> error value %d is over 10^3\n',N);
instead of the final error.
stozaki
stozaki 2020 年 1 月 18 日
It was just a descriptive print statement. I'm sorry. I also prioritized leaving the questioner's code as much as possible.

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

その他の回答 (1 件)

Image Analyst
Image Analyst 2020 年 1 月 18 日
Try this:
numberOfTerms = 10;
maxIterations = 1000000; % To prevent infinite loops.
loopCounter = 1;
theError = 1;
while theError > 1e-4 && loopCounter < maxIterations
total = 0;
for n = 1 : numberOfTerms
y = 1 / n^2;
total = total+y;
end
theError = ((pi^2)/6) - total;
% Optional: print out the total and error at each iteration.
fprintf('After %d iterations, and using %d terms, the total is %f, and the error is %.9f.\n', ...
loopCounter, numberOfTerms, total, theError);
numberOfTerms = numberOfTerms+1;
loopCounter = loopCounter + 1;
end
% Print out the final results.
fprintf('The final error after the loop exited is %.9f.\n', theError);
You'll see
After 9989 iterations, and using 9998 terms, the total is 1.644834, and the error is 0.000100015.
After 9990 iterations, and using 9999 terms, the total is 1.644834, and the error is 0.000100005.
After 9991 iterations, and using 10000 terms, the total is 1.644834, and the error is 0.000099995.
The final error after the loop exited is 0.000099995.

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by