Übungsaufgaben

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.

../../_images/k5_abb8.png

Abb. 10.3 Beispielplot mit markierter Nullstelle (Aufgabensammlung PA5.6).#

from numpy import sin, linspace
import matplotlib.pyplot as plt