CUBE.CODES: Reihen

Aus MINT.lentner.net
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

28.1.22: Unendliche Reihen basteln und testen

for(n=1; n<=10; ++n) UI.log("1/"+n);

... ist eine witzige Folge von Zahlen (eigentlich "Texten"), die immer kleiner werden.

[08:57:53] Program starting ...
[08:57:53] Program running ...
1/1
1/2
1/3
1/4
1/5
1/6
1/7
1/8
1/9
1/10
[08:57:53] Program finished successfully

Wir können die Ausdrücke nicht nur als Text ausgeben, sondern auch ausrechnen lassen. Dann bekommen wir halt die Ergebnisse dezimal:

for(n=1; n<=10; ++n) UI.log(1/n);

Ausgabe:

[08:59:54] Program starting ...
[08:59:55] Program running ...
1
0.5
0.3333333333333333
0.25
0.2
0.16666666666666666
0.14285714285714285
0.125
0.1111111111111111
0.1
[08:59:55] Program finished successfully

Wenn man die nun zusammenzählen würde, ...

Würde das Ergebnis immer mehr anwachsen (weil es ja immer mehr Zahlen werden, die dazugezählt werden) oder würde es über eine gewisse Schranke nie drübergehen (weil ja immer verschwindend kleinere Zahlen dazugezählt werden)? Probieren wir's aus!

summe=0;
for(n=1; n<=1000; ++n) 
  {
  	summe=summe+1/n; 
  	UI.log(summe);
  }

... ergibt die Ausgabe:

[08:52:31] Program starting ...
[08:52:31] Program running ...
1
1.5
1.8333333333333333
2.083333333333333
2.283333333333333
2.4499999999999997
2.5928571428571425
2.7178571428571425
2.8289682539682537
2.9289682539682538
...
...
(das geht jetzt 1000 Zeilen weiter ;-))
...
...
7.483469859549342
7.484470860550343
7.485470860550343
[08:52:32] Program finished successfully

Man kann die Obergrenze für n jetzt immer größer machen. Es spielt ja keine Rolle. Der PC rechnet ja, nicht wir! :-) Wir beobachten, dass die Zahlen immer langsamer anwachsen (wie vermutet), aber irgendwann klickt es über 8, viel viel später mal über 9, ... Eine eindeutige Tendenz auf Dauer ist aber nicht erkennbar. Irgendwann schmiert auch der Rechner aus Überlastung ab. Dann kann man das Programm nur noch extern abbrechen. Hm!

IT-technisch interessant:

Könnt Ihr aus dem, was wir gelernt haben (CUBE.CODES: Besondere (Rechen-)Ausdrücke), wieder einen Einzeiler machen?

summe=0; for(n=1; n<=1000; ++n) UI.log(summe+=1/n);

Elegant, aber schon a bisserl crazy!

Ist die Summe nun unendlich oder beschränkt?

Hier gibt's noch mehr interessanten Stoff

Nochmehrreihen.png