MATHEMATISCHES INSTITUT DER UNIVERSITÄT MÜNCHEN Dr. W. Spann, G. Kleen SS 2023

Programmieren I für Studierende der Mathematik

Aufgabe 1

Zur näherungsweisen Berechnung der Sinusfunktion an der Stelle x soll die Summe

s_{n}(x) := ∑_{k=0}^{n}(−1)^{k} \frac{x^{2k+1}}{(2k + 1)!} (n ∈ ℕ_{0}, x ∈ ℝ)

verwendet werden. Brechen Sie die Summierung ab, wenn |\frac{x^{2n+1}}{(2n + 1)!}| ≤ ε · |s_{n}(x)|.

x ist einzulesen (mit Eingabeaufforderung!). Auszugeben sind x im Festpunktformat mit 4 Nachkommastellen und s_{n}(x) im Exponentialformat mit 15 Nachkommastellen. Zum Vergleich soll auch der mit Hilfe der C++-Standardfunktion sin berechnete Wert – ebenfalls im Exponentialformat mit 15 Nachkommastellen – ausgegeben werden.

Rechnen Sie folgende Beispiele (jeweils mit ε = 10^{−15})

(a) x = 1  (b) x = −0.43  (c) x = 3.1415926535  (d) x = 50

Hinweise: Den Absolutbetrag erhalten Sie mit der C++-Standardfunktion abs. Die Zahl 10^{−15} können Sie im Programm als Gleitpunktliteral 1e-15 schreiben.

Freiwilliger Zusatzteil: Numerisch bessere Resultate lassen sich erzielen, wenn vor der Berechnung das Argument x mittels der Beziehungen

sin x = − sin(−x)  (x < 0)
sin x = sin(x − 2kπ)  (k ∈ ℕ)
sin x = − sin(x − π)  (π ≤ x < 2π)
sin x = sin(π − x)  (\frac{π}{2} ≤ x < π)
sin x = \sqrt{1 − sin^{2} (\frac{π}{2} − x)} (\frac{π}{4} < x ≤ \frac{π}{2} )

auf ein Argument t ∈ [0, \frac{π}{4} ] reduziert wird und entsprechend diesen Formeln die Näherung s̃_{n}(x) aus s_{n}(t) bestimmt wird. (Bem.: π = 4 arctan(1), C++-Funktion atan, oder vordefinierte Konstante M PI aus <cmath>.)

Bearbeitungszeitraum: bis Freitag, 12.5.2023, 12^{00}