Finding the sum to n of 1/2^n

6 Ansichten (letzte 30 Tage)
Thomas
Thomas am 12 Okt. 2022
Bearbeitet: Davide Masiello am 12 Okt. 2022
I'm trying to right a code which will output the sum of the series 1/2^n.
Ive used a for loop to iterate n from 1 to 20 for this example
My code keeps outputting 1/2^20 as the answer, instead of 1/2 + 1/2^2 + 1/2^3 ... +1/2^20
Here is my code
n = 0;
for n = 1:20
b = 1./(2.^n);
end
Sn = sum(b);
disp(Sn)
What am i doing wrong?

Antworten (2)

Davide Masiello
Davide Masiello am 12 Okt. 2022
You haven't indexed the loop variable
for n = 1:20
b(n) = 1./(2.^n);
end
Sn = sum(b);
disp(Sn)
1.0000
You can also do it without loop
n = 1:20;
b = sum(1./(2.^n))
b = 1.0000
  1 Kommentar
Davide Masiello
Davide Masiello am 12 Okt. 2022
Bearbeitet: Davide Masiello am 12 Okt. 2022
Of course, if you need the series to start from n=0, just replace n = 1:20 with n = 0:20. That also means you can't use n as loop iteration index, so you change to
n = 0:20;
for i = 1:length(n)
b(i) = 1./(2.^n(i));
end
Sn = sum(b);
disp(Sn)
2.0000

Melden Sie sich an, um zu kommentieren.


Torsten
Torsten am 12 Okt. 2022
Bearbeitet: Torsten am 12 Okt. 2022
format long
n = 1:20;
b = 1./2.^n;
Sn = sum(b)
Sn =
0.999999046325684

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by