Einführung
Die grundlegende Idee von Funktionsgraphen ist es, dass mit derselben Vorschrift zu jedem x-Wert ein bestimmter y-Wert errechnet werden kann und dass sich dieser Zusammenhang in einer speziellen Graphik ausdrücken lässt.
f(x): x -> y = etwas, das mit x errechnet wird.
Mathematiker beschäftigt bei Funktionen z.B. die Frage, ob man eigentlich alles für x einsetzen darf oder aus welchem Bereich von Zahlen die Werte für y genommen werden. Aus Sicht der Informatik kann man die Menge der Werte, aus denen das x gewählt wird, unabhängig vom Inhalt als Liste betrachten, z.B. x = [-1,0,1,2,3,4,5,…]. Und auch die Menge der Werte, die sich aus der Anwendung der Verarbeitungsvorschrift in der Funktion ergeben, kann eine Liste sein. Es gilt insbesondere, dass für jedes xn in der Menge aller x ein bestimmtes yn errechnet werden kann. Kompliziert? Nein.
Beispiel lineare Funktion:
x sei [-1,0,1,2,3,4,5,...]; y sei anfangs []
Für jedes xn aus x tue:
yn = 1.5 * xn # d.h.: führe die Funktion aus
Füge yn zu y hinzu.
Gib y aus.
Code
Ergebnis
x | -1 | 0 | 1 | 2 | 3 | 4 | 5 |
y | -1,5 | 0 | 1,5 | 3 | 4,5 | 6 | 7,5 |
Praktische Vereinfachungen
Es gibt zu dieser Grundform noch zwei ganz praktische Vereinfachungen
- Die Funktion range
range([int von,] int bis_ausschließlich [, float schritt]) -> Array
erzeugt Zahlenmengen. Unbedingt nötig ist nur der zweite Parameter; so erzeugtrange(11)
eine Reihe von ganzen Zahlen von 0 bis 10, also mathematisch [0, 10] oder in Code[0,1,2,3,4,5,6,7,8,9,10]
. Beachtenswert: range hat einen Rückgabewert, nur deswegen kann man schreibenx = range(-1,6)
- Listcomprehension ist eine besondere Fähigkeit von Python. Sie vereinfacht die Schreibweise bei der Verarbeitung von Listen, indem die For-Schleife in die Klammern für eine anfangs leere Liste gezogen wird. Mit x = range(-1,6) lässt sich so schreiben
y = [1.5*xn for xn in x]
Im Ergebnis ist y dann dieselbe Liste von Werten wie oben.
Eine Verallgemeinerung wäre es, wenn man die Verarbeitungsvorschrift in eine selbstdefinierte Funktion auslagert. So würde man für y = 1,5*x schreiben:
def func(x):
y = 1.5*x
return y
Mit x = range(-1,6) und der selbstdefinierten Funktion func ließe sich so schreiben y = [func(xn) for xn in x]
Die beiden Listen x und y lassen sich anschließend wie im vorhergehenden Abschnitt „Punkte“ durch matplotlib zeichnen.
Aufgabe
Wende die beiden Vereinfachungen auf das untenstehende Beispiel an und lass dir das Diagramm anzeigen.
Weitere Funktionen
Mathematische Funktionen sind vielfältig. Mit x2 ergeben sich Parabeln, mit x3 monoton steigende Graphen 3. Grades, mit 1/x ergeben sich Hyperbeln. Im untenstehenden Beispiel wurde die Verarbeitungsvorschrift x -> y in eine selbstdefinierte Funktion ausgelagert.
Aufgabe
Experimentiere mit der Verarbeitungsvorschrift und versuche eine Parabel und eine Hyperbel zu erzeugen.
Weiter: Physikalische Daten >>