How writing code sum 1+2+3+4+...+n
Show older comments
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
Answers (2)
Jos (10584)
on 17 May 2019
or know your math classics ...
n = 120345428372
s = n*(n+1)/2
% sum(1:n) will fail!
6 Comments
James Tursa
on 17 May 2019
Edited: James Tursa
on 17 May 2019
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)
on 18 May 2019
So true, James :-D
Walter Roberson
on 11 Dec 2023
Edited: Walter Roberson
on 11 Dec 2023
n = 120345428372;
sym(n) * (sym(n)+1) / 2
syms m
symsum(m, 1, n)
Alexander
on 11 Dec 2023
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
on 12 Dec 2023
Understood. Thank you
Categories
Find more on Mathematics 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!