Hausaufgaben

  1. Multiplikation in GMP (GNU Multiprecision Library) https://gmplib.org/manual/Multiplication-Algorithms
    1. Karatsuba-Rechnung ist dort etwas anders als hier auf der Folie, warum?
    2. GHC verwendet GMP für den Typ Integer.

      Bestimmen Sie experimentell den Anstieg der Rechenzeit bei Verdopplung der Stellenzahl, z.B.

      :set +s
      x = 10^10^8 :: Integer
      odd x -- damit x ausgewertet wird
      odd ((x-1)*(x+1)) -- die eigentliche Messung
        True
        (3.73 secs, 166,159,792 bytes)
      y = x*x -- hat doppelte Stellenzahl
      
      Ist die Anzahl der Bytes plausibel?

      Diskutieren Sie mögliche verkürzte Auswertungen für odd .... Kann GMP/GHC das?

    3. Zusatz: warum ist (oder erscheint) (x+1)^2 schneller als (x+1)*(x+1)?

  2. diskutieren (Zusatz: implementieren) Sie die Darstellung von ganzen Zahlen mit negativer Basis B≤ - 2

    (und nichtnegativen Ziffern ∈{0,...,| B| - 1} wie bisher)

    Bsp: B = - 2,

    -3 = 1⋅B0 +0⋅B1 +1⋅B2 +1⋅B3 = 1 + 0 + 4 - 8

    1. Eindeutigkeit, Konstruktion
    2. Arithmetik (Nachfolger, Addition, Multiplikation)
  3. Bestimmen Sie die Taylor-Reihe für den Arcustangens an der Stelle 0

    wie auf Folie Potenzreihe für Wurzelfunktion

    Bestimmen Sie damit x = arctan(1/2), y = arctan(1/3) auf (z.B.) 20 Stellen.

    Begründen Sie x + y = π/4. Rechnen Sie den Wert für π aus und vergleichen Sie mit einer verläßlichen Quelle.

    Kann man π nach diesem Verfahren, aber mit anderen Parametern, besser bestimmen? (mehr Stellen bei gleichem Aufwand)

  4. Bestimmen Sie die Taylor-Reihe für den (natürlichen) Logarithmus an der Stelle 1

    Bestimmen Sie damit a = log(6/5), b = log(9/8), c = log(10/9) auf (z.B.) 100 Stellen

    und daraus log 2 als eine Linearkombination.

    Geben Sie eine bessere Menge solcher Brüche zur Bestimmung von log 2 an.

    (Definieren Sie solches und besser exakt. Mit anderen Worten, spezifizieren Sie die entsprechende Autotool-Aufgabe.)