Skip to content

Mathematik für Physiker 2

  • Dozent: Geschke
  • Semester: Sommer 2012

Übungszettel

#Meine AbgabeKorrigierte Version
1math241-01-abgegeben.pdfmath241-01-korrigiert.pdf
2math241-02-abgegeben.pdfmath241-02-korrigiert.pdf
3math241-03-abgegeben.pdfmath241-03-korrigiert.pdf
4math241-04-abgegeben.pdfmath241-04-korrigiert.pdf
5math241-05-abgegeben.pdfmath241-05-korrigiert.pdf
6math241-06-abgegeben.pdfmath241-06-korrigiert.pdf
7math241-07-abgegeben.pdfmath241-07-korrigiert.pdf
8math241-08-abgegeben.pdfmath241-08-korrigiert.pdf
9math241-09-abgegeben.pdfmath241-09-korrigiert.pdf
10math241-10-abgegeben.pdfmath241-10-korrigiert.pdf
11math241-11-abgegeben.pdfmath241-11-korrigiert.pdf
12math241-12-abgegeben.pdfmath241-12-korrigiert.pdf

Cantormenge

Das Programm für die Cantormenge aus Übungsblatt 9, Aufgabe 1, ist hier:

python
import pprint

def main():
    printer = pprint.PrettyPrinter(indent=4)

    # Maximalwert für die Iterationen: $n_\mathrm{max}:=19$
    nmax = 19

    # Die gegebene Anfangsmenge $M_0=\left\lbrace[0,1]\right\rbrace$. Das
    # ganze wird hier als Tupel in einer Liste dargestellt. Die Menge $M$
    # (hier als Liste implementiert) enthält dann die Intervalle $I$ (hier als
    # Tupel implementiert).
    M = [(0.0, 1.0)]

    # Gehe nun die $n=1,...,n_\mathrm{max}$ durch.
    for n in range(1, nmax + 1):
        # Wende die Iterationsvorschrift für $M_n$ mit $M_{n-1}$ an.
        M = schritt(M, n)

        # Gebe $n$ und $|M_n|$ aus.
        print "n: {n:2d}, Inhalt {inhalt:.10f}".format(n=n, inhalt=inhalt(M))

        # Gebe für $n\leq4$ die $I\in{}M_n$ aus.
        if n <= 4:
            printer.pprint(M)

# Wende die Formel $T_n(I)$ für jedes $I\in{}M$ an.
# $M:=\bigcup_{I\in{}M}T_n(I)$
def schritt(M, n):
    return [item for sublist in (T(n, I) for I in M) for item in sublist]

# Berechne ein $\epsilon$ aus dem $n$ und schneide dieses aus $I$ heraus.
def T(n, I):
    a = I[0]
    b = I[1]

    # $\epsilon := 2^{2-n-1}$
    epsilon = 2.0**(-2.0*n -1)

    # $\left[a,\frac{a+b}2-\frac{\epsilon}{2}\right]\cup\left[\frac{a+b}2+\frac{\epsilon}{2},b\right]$
    return [(a, (a+b)/2-epsilon/2), ((a+b)/2+epsilon/2, b)]

# Berechne den Inhalt von $I$, indem der Durchmesser der einzelnen Teile
# addiert wird.
def inhalt(M):
    # Sei $I$ gegeben durch $[a,b]$. Dann ist die Summe:
    # $\sum_{I\in{}M}|I|=\sum_{I\in{}M}\left(b-a\right)$
    return sum([I[1]-I[0] for I in M])

if __name__ == '__main__':
    main()