Azzera filtri
Azzera filtri

Finding the sum to n of 1/2^n

7 visualizzazioni (ultimi 30 giorni)
Thomas
Thomas il 12 Ott 2022
Modificato: Davide Masiello il 12 Ott 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?

Risposte (2)

Davide Masiello
Davide Masiello il 12 Ott 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 Commento
Davide Masiello
Davide Masiello il 12 Ott 2022
Modificato: Davide Masiello il 12 Ott 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

Accedi per commentare.


Torsten
Torsten il 12 Ott 2022
Modificato: Torsten il 12 Ott 2022
format long
n = 1:20;
b = 1./2.^n;
Sn = sum(b)
Sn =
0.999999046325684

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by