+6 Daumen
201 Aufrufe



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;}


Dieser Artikel hat 50 Bonuspunkte erhalten. Schreib auch du einen Artikel.
geschlossen: Mathe-Artikel
von

Mathematische Themen, die in Code gegossen werden, können ruhig auf der Mathelounge gepostet werden, oder? Insbesondere meine Reihe, die sich mit Python beschäftigen wird, ist sehr mathematisch aufgebaut ... ich würde die ungern auf der Stacklounge posten.

Wenn es mathelastig ist, dann würde ich auch sagen: Mathelounge.

Warum eigentlich Python?

Weil Python einfach zu erlernen ist und in immer mehr Bereichen genutzt wird. Es gibt kaum einen Bereich im Data-Science-Umfeld, bei dem man einen Bogen um Python macht.

Nun stellen sich mir aber direkt die folgenden Folgefragen:

Warum wird Python in immer mehr Bereichen genutzt?

Warum gibt es im Data-Science-Umfeld kaum einen Bereich, in dem man um Python einen Bogen macht?

@André: Staune etwas, dass du Python in der Mathelounge haben möchtest. Du wolltest mal boolesche Algebra, Logik, formale Sprachen ... in der Stacklounge haben.

Frage wäre: Wo sucht man deine Artikel zuerst? Schaffst du es, in der Rubrik "ähnliche Fragen" Dinge zu finden, die einigermassen zu deinen Artikeln passen?

Gibt es von der (meiner Meinung nach und insbesondere im Vergleich zu anderen Sprachen vermeintlichen) Einfachheit des Erlernens der Sprache Python abgesehen weitere Gründe, Python anderen Programmiersprachen vorzuziehen?

Dass Python einfach ist, halte ich für einen großen Mythos. Python ist vor allem langsam.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...