How writing code sum 1+2+3+4+...+n
古いコメントを表示
Hi. How I can writing code in MATLAB sum 1+2+3+4+..+n
and I can change ( n ) to any numbers and MATLAB can sum for me.
Thank you
回答 (2 件)
Jos (10584)
2019 年 5 月 17 日
or know your math classics ...
n = 120345428372
s = n*(n+1)/2
% sum(1:n) will fail!
6 件のコメント
James Tursa
2019 年 5 月 17 日
編集済み: James Tursa
2019 年 5 月 17 日
Well, n*(n+1)/2 fails also ...
>> n = 120345428372;
>> fprintf("%20f\n",n*(n+1)/2)
7241511065080263868416.000000
>> vpa(n)*vpa(n+1)/2
ans =
7241511065080263999378.0
Jos (10584)
2019 年 5 月 18 日
So true, James :-D
Walter Roberson
2023 年 12 月 11 日
編集済み: Walter Roberson
2023 年 12 月 11 日
n = 120345428372;
sym(n) * (sym(n)+1) / 2
syms m
symsum(m, 1, n)
Alexander
2023 年 12 月 11 日
Maybe a stupid question, but what is the right answer? 7241511065080263999378 or 7241511065080263868416?
v = sym('7241511065080263999378')
fprintf('%.999g\n', double(v))
So 7241511065080263868416 is the closest double precision representation of 7241511065080263999378
eps(double(v))
which is large enough adjacent representable double precision numbers in that range are 1048576 apart.
Alexander
2023 年 12 月 12 日
Understood. Thank you
n = 4;
A = sum(1:n)
カテゴリ
ヘルプ センター および File Exchange で Mathematics についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!