10.5. Übungsaufgaben#
Exercise 10.4 (Praxisaufgabe (PA4.1): Finden des größten gemeinsamen Teilers)
Implementieren Sie den größten gemeinsamen Teiler \(\mathrm{ggT}(a,b)\) als Funktion mithilfe des euklidischen Algorithmus (Iterieren, bis der Rest 0 ist).
Zusatz: Testen Sie Ihre Funktion an vielen Zufallspaaren und geben Sie eine kleine Tabelle aus.
from random import randint
def ggt(a, b):
# TODO: euklidischer Algorithmus
return a
for i in range(10):
a = randint(1, 100)
b = randint(1, 100)
print(f"{i+1:2d}: a={a:3d}, b={b:3d}, ggt={ggt(a,b):3d}")
Exercise 10.5 (Praxisaufgabe (PA5.6): Nullstelle finden - Bisektionsverfahren)
Sie suchen numerisch eine Nullstelle einer Funktion \(f(x)\) im Intervall \([x_1, x_2]\) (Bisektionsverfahren).
Voraussetzung: \(f(x_1)\cdot f(x_2) < 0\)
Wiederholen Sie, bis
abs(f(x0)) <= 1e-3.Zusatz: Plotten Sie \(f\) und markieren Sie die gefundene Nullstelle.
Hinweis: Das Beispiel aus der Aufgabensammlung verwendet NumPy/Matplotlib; im Buch ist die Zelle standardmäßig nicht zur automatischen Ausführung markiert.
Abb. 10.3 Beispielplot mit markierter Nullstelle (Aufgabensammlung PA5.6).#
from numpy import sin, linspace
import matplotlib.pyplot as plt