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

Answers (2)

or know your math classics ...
n = 120345428372
s = n*(n+1)/2
% sum(1:n) will fail!

6 Comments

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
So true, James :-D
n = 120345428372;
sym(n) * (sym(n)+1) / 2
ans = 
7241511065080263999378
syms m
symsum(m, 1, n)
ans = 
7241511065080263999378
Maybe a stupid question, but what is the right answer? 7241511065080263999378 or 7241511065080263868416?
v = sym('7241511065080263999378')
v = 
7241511065080263999378
fprintf('%.999g\n', double(v))
7241511065080263868416
So 7241511065080263868416 is the closest double precision representation of 7241511065080263999378
eps(double(v))
ans = 1048576
which is large enough adjacent representable double precision numbers in that range are 1048576 apart.
Understood. Thank you

Sign in to comment.

Asked:

on 17 May 2019

Commented:

on 12 Dec 2023

Community Treasure Hunt

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

Start Hunting!