Rheinwerk Computing < openbook >

 
Inhaltsverzeichnis
1 Einleitung
2 Die Programmiersprache Python
Teil I Einstieg in Python
3 Erste Schritte im interaktiven Modus
4 Der Weg zum ersten Programm
5 Kontrollstrukturen
6 Dateien
7 Das Laufzeitmodell
8 Funktionen, Methoden und Attribute
9 Informationsquellen zu Python
Teil II Datentypen
10 Das Nichts – NoneType
11 Operatoren
12 Numerische Datentypen
13 Sequenzielle Datentypen
14 Zuordnungen
15 Mengen
16 Collections
17 Datum und Zeit
18 Aufzählungstypen – Enum
Teil III Fortgeschrittene Programmiertechniken
19 Funktionen
20 Modularisierung
21 Objektorientierung
22 Ausnahmebehandlung
23 Iteratoren
24 Kontextobjekte
25 Manipulation von Funktionen und Methoden
Teil IV Die Standardbibliothek
26 Mathematik
27 Kryptografie
28 Reguläre Ausdrücke
29 Schnittstelle zu Betriebssystem und Laufzeitumgebung
30 Kommandozeilenparameter
31 Dateisystem
32 Parallele Programmierung
33 Datenspeicherung
34 Netzwerkkommunikation
35 Debugging und Qualitätssicherung
36 Dokumentation
Teil V Weiterführende Themen
37 Anbindung an andere Programmiersprachen
38 Distribution von Python-Projekten
39 Grafische Benutzeroberflächen
40 Python als serverseitige Programmiersprache im WWW – ein Einstieg in Django
41 Wissenschaftliches Rechnen
42 Insiderwissen
43 Von Python 2 nach Python 3
A Anhang
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 464 KB

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Python 3 von Johannes Ernesti, Peter Kaiser
Das umfassende Handbuch
Buch: Python 3

Python 3
Pfeil 26 Mathematik
Pfeil 26.1 Mathematische Funktionen – math, cmath
Pfeil 26.1.1 Zahlentheoretische Funktionen
Pfeil 26.1.2 Exponential- und Logarithmusfunktionen
Pfeil 26.1.3 Trigonometrische und hyperbolische Funktionen
Pfeil 26.1.4 Umrechnen von Winkeln
Pfeil 26.1.5 Darstellungsformen komplexer Zahlen
Pfeil 26.2 Zufallszahlengenerator – random
Pfeil 26.2.1 Den Status speichern und laden
Pfeil 26.2.2 Zufällige ganze Zahlen erzeugen
Pfeil 26.2.3 Zufällige Gleitkommazahlen erzeugen
Pfeil 26.2.4 Zufallsgesteuerte Operationen auf Sequenzen
Pfeil 26.2.5 SystemRandom([seed])
Pfeil 26.3 Präzise Dezimalzahlen – decimal
Pfeil 26.3.1 Verwendung des Datentyps
Pfeil 26.3.2 Nichtnumerische Werte
Pfeil 26.3.3 Das Context-Objekt
 
Zum Seitenanfang

26    Mathematik Zur vorigen ÜberschriftZur nächsten Überschrift

Wir beginnen mit den Modulen der Standardbibliothek, mit deren Hilfe sich im weitesten Sinne mathematische Berechnungen durchführen lassen. Tabelle 26.1 listet die Module auf, die in diesem Kapitel besprochen werden.

Modul Beschreibung Abschnitt
math mathematische Funktionen 26.1
cmath mathematische Funktionen für komplexe Zahlen 26.1
random Erzeugen von Zufallszahlen oder zufälligen Auswahlen aus gegebenen Mengen 26.2
decimal präzise Repräsentation von Dezimalzahlen 26.3

Tabelle 26.1    Mathematische Module der Standardbibliothek

 
Zum Seitenanfang

26.1    Mathematische Funktionen – math, cmath Zur vorigen ÜberschriftZur nächsten Überschrift

Das Modul math ist Teil der Standardbibliothek und stellt mathematische Funktionen und Konstanten bereit.

[»]  Hinweis

Das Modul math berücksichtigt den komplexen Zahlenraum – und damit den Datentyp complex – nicht. Das heißt vor allem, dass eine in math enthaltene Funktion niemals einen komplexen Parameter akzeptiert oder ein komplexes Ergebnis zurückgibt.

Sollte ein komplexes Ergebnis ausdrücklich gewünscht sein, kann anstelle von math das Modul cmath verwendet werden, in dem die Funktionen von math enthalten sind, die eine sinnvolle Erweiterung auf den komplexen Zahlen haben.

In den folgenden Abschnitten werden die in math bzw. cmath enthaltenen Funktionen thematisch gruppiert vorgestellt. In den jeweiligen Tabellen wird in der Spalte cmath angegeben, ob eine Funktion auch im Modul cmath enthalten ist.

Abgesehen von einer Fülle von Funktionen definieren die Module math und cmath sechs Konstanten:

Konstante Beschreibung cmath
e die Eulersche Zahl e ja
pi die Kreiszahl Pi (π) ja
inf der Wert »unendlich«, äquivalent zu float("inf") ja
nan der Wert »Not a Number«, äquivalent zu float("nan") ja
infj der komplexe Wert »unendlich«, äquivalent zu float("infj") nur
nanj der komplexe Wert »Not a Number«, äquivalent zu float("nanj") nur

Tabelle 26.2    Konstanten der Module math und cmath

Bevor Sie die folgenden Beispiele im interaktiven Modus verwenden können, müssen Sie math oder cmath einbinden:

>>> import math
>>> import cmath
 
Zum Seitenanfang

26.1.1    Zahlentheoretische Funktionen Zur vorigen ÜberschriftZur nächsten Überschrift

Die Module math bzw. cmath definieren die zahlentheoretischen Funktionen in Tabelle 26.3.

Funktion Beschreibung cmath
ceil(x) Rundet auf die nächsthöhere Ganzzahl auf. nein
copysign(x, y) Überträgt das Vorzeichen von y auf x und gibt das Ergebnis zurück. nein
fabs(x) Gibt den Betrag von x zurück. Das Ergebnis ist immer eine Gleitkommazahl. nein
factorial(x) Berechnet die Fakultät der ganzen Zahl x. nein
floor(x) Rundet auf die nächstniedrigere Ganzzahl ab. nein
fmod(x, y) Berechnet x Modulo y. nein
frexp(x) Extrahiert Mantisse und Exponent von x. nein
fsum(iterable) Berechnet die Summe der in iterable enthaltenen Gleitkommazahlen. nein
gcd(x, y) Gibt den größten gemeinsamen Teiler von x und y zurück. nein
isclose(a, b, {rel_tol, abs_tol}) Gibt genau dann True zurück, wenn a und b hinreichend nah beieinander liegen. Die zulässigen Toleranzen können über rel_tol und abs_tol relativ und/oder absolut festgelegt werden. ja
isfinite(x) Gibt genau dann True zurück, wenn x keinen der Werte inf, -inf oder nan referenziert.* ja
isinf(x) Gibt genau dann True zurück, wenn x positiv oder negativ unendlich ist. ja
isnan(x) Gibt genau dann True zurück, wenn x den Wert nan hat. ja
ldexp(m, e) Bestimmt eine Gleitkommazahl aus Mantisse m und Exponent e. nein
modf(x) Gibt ein Tupel mit dem Nachkomma- und dem Vorkommaanteil der Gleitkommazahl x zurück. nein
trunc(x) Gibt den Vorkommaanteil von x als ganze Zahl zurück. Verhält sich bei positiven Werten von x wie floor und bei negativen Werten von x wie ceil. nein
* Diese Werte stehen für positiv und negativ unendlich bzw. »Not a Number«. Näheres dazu erfahren Sie in Abschnitt 26.3.2, »Nichtnumerische Werte«.

Tabelle 26.3    Zahlentheoretische Funktionen in math und cmath

Im Folgenden finden Sie detaillierte Erklärungen zu einer Auswahl der oben vorgestellten Funktionen.

fmod(x, y)

Die Funktion fmod berechnet x Modulo y. Beachten Sie, dass diese Funktion nicht immer dasselbe Ergebnis berechnet wie x % y. So gibt fmod das Ergebnis mit dem Vorzeichen von x zurück, während x % y das Ergebnis mit dem Vorzeichen von y zurückgibt. Generell gilt, dass fmod bei Modulo-Operationen mit Gleitkommazahlen bevorzugt werden sollte und der Modulo-Operator % bei Operationen mit ganzen Zahlen.

>>> math.fmod(7.5, 3.5)
0.5

frexp(x)

Die Funktion frexp extrahiert Mantisse und Exponent der übergebenen Zahl x. Das Ergebnis ist ein Tupel der Form (m, e), wobei m für die Mantisse und e für den Exponenten steht. Mantisse und Exponent sind dabei im Kontext der Formel x = m ⋅ 2e zu verstehen.

>>> math.frexp(2.5) 
(0.625, 2)

fsum(iterable)

Die Funktion fsum berechnet die Summe der in iterable enthaltenen Gleitkommazahlen.

>>> math.fsum([1.5, 7.34, 2, 4.78])
15.620000000000001

Der Vorteil von fsum gegenüber der Built-in Function sum, die prinzipiell für den gleichen Zweck eingesetzt werden kann, ist, dass fsum versucht, die durch die Summation in der Gleitkommaarithmetik entstehenden Fehler möglichst gering zu halten. Das Ergebnis von fsum ist also genauer als das Ergebnis von sum.

 
Zum Seitenanfang

26.1.2    Exponential- und Logarithmusfunktionen Zur vorigen ÜberschriftZur nächsten Überschrift

Die Module math bzw. cmath definieren die folgenden Funktionen, die sich auf die Exponential- bzw. Logarithmusfunktion beziehen:

Funktion Beschreibung cmath
exp(x) Berechnet ex. ja
log(x, [base]) Berechnet den Logarithmus von x zur Basis base. Wenn base nicht angegeben wurde, wird der Logarithmus Naturalis (Basis e) berechnet. ja
log10(x) Berechnet den Logarithmus von x zur Basis 10. ja
log2(x) Berechnet den Logarithmus von x zur Basis 2. nein
pow(x, y) Berechnet xy. nein
sqrt(x) Berechnet die Quadratwurzel von x. ja

Tabelle 26.4    Exponential- und Logarithmusfunktionen in math und cmath

 
Zum Seitenanfang

26.1.3    Trigonometrische und hyperbolische Funktionen Zur vorigen ÜberschriftZur nächsten Überschrift

Die Module math bzw. cmath definieren die folgenden trigonometrischen Funktionen:

Funktion Beschreibung cmath
sin(x) Berechnet den Sinus von x. ja
cos(x) Berechnet den Kosinus von x. ja
tan(x) Berechnet den Tangens von x. ja
asin(x) Berechnet den Arkussinus von x. ja
acos(x) Berechnet den Arkuskosinus von x. ja
atan(x) Berechnet den Arkustangens von x. ja
sinh(x) Berechnet den Sinus Hyperbolicus von x. ja
cosh(x) Berechnet den Kosinus Hyperbolicus von x. ja
tanh(x) Berechnet den Tangens Hyperbolicus von x. ja
asinh(x) Berechnet den Areasinus Hyperbolicus von x. ja
acosh(x) Berechnet den Areakosinus Hyperbolicus von x. ja
atanh(x) Berechnet den Areatangens Hyperbolicus von x. ja
atan2(y, x) Berechnet atan(x / y). nein
hypot(x, y) Berechnet die euklidische Norm des Vektors (x,y). nein

Tabelle 26.5    Trigonometrische und hyperbolische Funktionen der Module math und cmath

 
Zum Seitenanfang

26.1.4    Umrechnen von Winkeln Zur vorigen ÜberschriftZur nächsten Überschrift

Zum Umrechnen von Winkeln zwischen Radiant und Grad enthält das Modul math die Funktionen degrees und radians:

>>> math.degrees(math.pi/2)
90.0
>>> math.radians(90)
1.5707963267948966
 
Zum Seitenanfang

26.1.5    Darstellungsformen komplexer Zahlen Zur vorigen ÜberschriftZur nächsten Überschrift

Die in cmath enthaltenen Funktionen phase, polar und rect eignen sich dazu, verschiedene Darstellungsformen komplexer Zahlen ineinander umzurechnen. Dazu wird eine komplexe Zahl a + bj als Punkt (a,b) im zweidimensionalen Raum aufgefasst. Dieser Raum wird die gaußsche Zahlenebene genannt. Die komplexe Zahl lässt sich jetzt entweder in kartesischen Koordinaten über die Werte a und b ausdrücken oder in Polarkoordinaten mithilfe des Winkels φ und des Radius r. Abbildung 26.1 zeigt die beiden Darstellungsformen komplexer Zahlen an einem Beispiel.

Die zwei Darstellungen der komplexen Zahl 3+4j

Abbildung 26.1    Die zwei Darstellungen der komplexen Zahl 3+4j

Die Funktionen phase, polar und rect erlauben es, eine komplexe Zahl in kartesischen Koordinaten oder in Polarkoordinaten darzustellen:

>>> cmath.phase(3+4j)
0.9272952180016122
>>> cmath.polar(3+4j)
(5.0, 0.9272952180016122)
>>> cmath.rect(5.0, 0.9272952180016122)
(3.0000000000000004+3.9999999999999996j)

 


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Python 3 Python 3
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: Einstieg in Python
Einstieg in Python


Zum Rheinwerk-Shop: Python. Der Grundkurs
Python. Der Grundkurs


Zum Rheinwerk-Shop: Algorithmen mit Python
Algorithmen mit Python


Zum Rheinwerk-Shop: Objektorientierte Programmierung
Objektorientierte Programmierung


Zum Rheinwerk-Shop: Raspberry Pi. Das umfassende Handbuch
Raspberry Pi. Das umfassende Handbuch


Zum Rheinwerk-Shop: Roboter-Autos mit dem Raspberry Pi
Roboter-Autos mit dem Raspberry Pi


Zum Rheinwerk-Shop: Neuronale Netze programmieren mit Python
Neuronale Netze programmieren mit Python


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern