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.

Categories

Find more on Mathematics in Help Center and File Exchange

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!