· 

Das Summenzeichen (und wie man es implementiert)

1. Einführung

Nicht selten tauchen in der Mathematik Summen der Form \(1 + 2 + 3 + 4 + 5 + ... + 100\) oder \(1 + 2 + 4 + 8 + 16 + ... + 256\) auf. Insbesondere dann, wenn man mit diesen Summen lange Beweise führen oder rechnen muss und die einzelnen Summanden visuell erhalten bleiben sollen, bedarf es einer Notation, die kürzer als das Auflisten aller Summanden ist. Zu diesem Zweck wurde das Summenzeichen entwickelt. Das Symbol dafür haben sich die Mathematiker von den Griechen geliehen. Es handelt sich dabei um den Großbuchstaben \(\Sigma\) (gesprochen „Sigma“). Allerdings reicht ein einziges Symbol nicht aus, um alle Informationen aus der Summe \(1 + 2 + 3 + 4 + 5 + ... + 100\) darzustellen. Man benötigt mindestens noch eine Auskunft über den Startwert („Wo beginnt die Summe?“), den Endwert („Wo endet die Summe?“) und die Zusammensetzung der Summe („Wie werden die einzelnen Summanden gebildet?“).

2. Woraus setzt sich das Summenzeichen zusammen?

Um den Startwert, den Endwert und die Zusammensetzung der Summanden angeben zu können, benötigst du eine Laufvariable (z. B. \(i\)). Diese wird unter das Summenzeichen geschrieben. Direkt dahinter folgt der Startwert und über die Summe wird der dazugehörige Endwert notiert. Start- und Endwert sind stets ganze Zahlen und der Endwert muss größer als oder gleich dem Endwert sein. Andernfalls liegt die sog. „leere Summe“ vor, die den Wert \(0\) besitzt. Den „Bauplan“ für die einzelnen Summanden schreibst du direkt hinter das Summenzeichen. Allgemein betrachtet ist das eine Funktion in Abhängigkeit von der Laufvariable \(i\). Der aktuelle Wert der Laufvariable wird jeweils in die Funktion \(f(i)\) eingesetzt und danach um \(1\) erhöht. Das wird solange fortgesetzt, bis die Laufvariable beim Endwert angekommen ist.
Ausgesprochen wird das: „Die Summe über \(f\) von \(i\) für \(i\) von \(i=i_0\) bis \(i=n\)“. Du kannst jedoch auch verkürzt sagen: „Die Summe über \(f\) von \(i\) für \(i\) von \(i=i_0\) bis \(n\)“.
Für die Summe \(1+2+3+4+5+...+100\) kannst du als Laufvariable \(i\) mit dem Startwert \(1\) und dem Endwert \(100\) festlegen. Die Summanden werden durch die Funktion \(f(i)=i\) gebildet, da sich für den ersten Summanden \(f(1)=1\), für den zweiten \(f(2)=2\), für den dritten \(f(3)=3\) usw. ergibt.

3. Wert eines Summenzeichens berechnen

Gegeben sei nun die Summe über \(k^2\) von \(k=0\) bis \(k=3\): $$\sum\limits_{k=0}^{3}{k^2}$$ Wie du siehst, heißt die Laufvariable diesmal \(k\) und die Summe startet nicht bei \(1\), sondern bei \(0\). Der Endwert liegt bei \(3\). Die Funktion zum Bau der einzelnen Summanden lautet \(f(k)=k^2\). Jetzt werden nacheinander die einzelnen Werte für die Laufvariable in \(k^2\) eingesetzt und die Ergebnisse addiert. Mit jedem neu hinzugekommenen Summanden wird der Wert der Laufvariable um \(1\) erhöht.
  • Zuerst wird der Startwert \(0\) eingesetzt, d. h. du erhältst als ersten Summanden \(0^2\), also \(0\).
  • Der Wert der Laufvariable wird um \(1\) erhöht. Jetzt wird \(k=1\) in die \(k^2\) eingesetzt und du erhältst als zweiten Summanden \(1^2=1\).
  • Der Wert der Laufvariable wird wieder um \(1\) erhöht. Diesmal setzt du also \(k=2\) in \(k^2\) ein und erhältst als dritten Summanden \(2^2=4\).
  • Nun wird der Wert der Laufvariablen letztmalig erhöht und erreicht den Endwert \(3\). Diesen setzt du in \(k^2\) ein und erhältst als letzten Summanden \(3^2=9\).
  • Den Wert des Summenzeichens berechnest du demnach durch $$\sum\limits_{k=0}^{3}{k^2}=0+1+4+9=14$$

4. Summen mit dem Summenzeichen verkürzen

Stelle dir vor du hast die Summe $$2+4+6+8+10+12+14+16+18+20+22+24+26+28+30$$ gegeben. Um sie überhaupt aufzuschreiben, benötigst du recht viel Zeit. Es bietet sich demnach an, diese Summe mit dem Summenzeichen verkürzt zu notieren. Hierzu betrachtest du zuerst, wie sich die einzelnen Summanden zusammensetzen. Schnell fällt auf, dass es sich hierbei um gerade Zahlen handelt. Die Funktion zur Bildung der Summanden lautet also \(f(k)=2\cdot k\). Die Laufvariable heißt hier wieder \(k\), doch du kannst auch einen beliebigen anderen Namen dafür verwenden. Der erste Summand ist \(2\). Diesen Wert erhältst du durch Einsetzen von \(k=1\) in \(f(k)\), d. h. der Startwert der Laufvariable ist \(k=1\). Der letzte Summand ist die \(30\). Diesen Wert erhältst du durch Einsetzen von \(k=15\) in \(f(k)\), denn \(2\cdot 15=30\). Somit lässt sich diese lange Summe durch die Summe über \(2\cdot k\) von \(k=1\) bis \(k=15\) verkürzt notieren: $$\sum\limits_{k=1}^{15}{2\cdot k}$$

5. Implementierung des Summenzeichens

Das Summenzeichen lässt sich sehr leicht durch eine For-Schleife implementieren. Betrachte hierzu die Summe über \(2\cdot k\) von \(k=0\) bis \(k=5\): $$\sum\limits_{k=0}^{5}{2\cdot k}$$ Vor der eigentlichen Schleife definierst du eine Variable, die später das Ergebnis enthalten soll, z. B. "summe". Diese erhält initial den Wert \(0\). Nun folgt das Keyword "for" und die Laufvariable. Da in der Summe, die du implementieren möchtest, die Laufvariable \(k\) lautet, wird dieser Name auch in der For-Schleife verwendet. Der Laufvariable weist du (wie beim Summenzeichen) den Startwert \(0\) zu. Danach folgt die Festlegung des Endwerts. Da die Summe bis \(5\) läuft, läuft die For-Schleife solange wie \(k\leq 5\) ist. Dahinter signalisierst du durch den Inkrement-Operator \(++\), dass der Wert der Laufvariable in jedem Durchlauf der For-Schleife um \(1\) erhöht wird. Innerhalb der For-Schleife wird auf den aktuellen Wert der Variable "summe" der Summand addiert, der sich aus dem Einsetzen von \(k\) in \(f(k)=2\cdot k\) ergibt. Du schreibst also:
int summe = 0;

for(int k = 0; k <= 5; k++) {
   summe += 2*k;
}
Wenn die Summe bei \(2\) statt \(0\) beginnen würde, würdest du den Startwert in der For-Schleife einfach auf \(2\) setzen:
int summe = 0;

for(int k = 2; k <= 5; k++) {
   summe += 2*k;
}
Wäre der Endwert der Summe \(10\), so müsstest du den Endwert der For-Schleife auf \(10\) anpassen:
int summe = 0;

for(int k = 2; k <= 10; k++) {
   summe += 2*k;
}
Oder du schreibt \(k\lt 11\). Da die Laufvariable nur ganzzahlige Werte annehmen kann und \(k=10\) die erste Ganzzahl unter \(11\) ist, würde die Summe dann bis (inklusive) \(10\) gehen:
int summe = 0;

for(int k = 2; k < 11; k++) {
   summe += 2*k;
}
Wenn die Summanden durch \(k^2\) berechnet werden sollen, müsstest du den Funktionsterm hinter dem \(+=\) Operator entsprechend anpassen:
int summe = 0;

for(int k = 2; k < 11; k++) {
   summe += k*k;
}

Kommentar schreiben

Kommentare: 0