|
- \documentclass[uebung]{../../../lecture}
-
- \begin{document}
-
- \title{Einführung in die Numerik: Übungsblatt 1}
- \author{Leon Burgard, Christian Merten}
-
- \punkte
-
- \begin{aufgabe}
- \begin{enumerate}[a)]
- \item Zur Basis 10 dargestellt:
- \[
- (0.5731 \times 10^{5})_{8} = (5\cdot 8^{-1} + 7 \cdot 8^{-2} + 3 \cdot 8^{-3} + 1 \cdot 8^{-4})
- \cdot 8^{5} = 24264 = 0.24264 \times 10^{5}
- .\]
- \item Die Zahl $x_1 = (0.3)_{10} \in \R$
- in der normierten Fließkommadarstellung
- $\mathbb{F}(2,11,2)$ ergibt
- \[
- (0.10011001100 \times 2^{1})_{2}
- .\]
- Zurück in $\mathbb{F}(10,r,1)$ ergibt
- \[
- (0.2998046875 \times 10^{0})_{10}
- .\] Das heißt für $r = 1$, $r = 2$ und $r = 3$ ergibt natürliche Rundung
- jeweils $(0.3)_{10}$. Größere $r$ ergeben andere Ergebnisse.
- \item Die größte positive Zahl in $\mathbb{F}(4, 6, 2)$ ergibt sich im Dezimalsystem dargestellt
- als:
- \[
- 3 \cdot (4^{-1} + 4^{-2} + 4^{-3} + 4^{-4} + 4^{-5} + 4^{-6}) \cdot 4^{3\cdot 4^{0} + 3\cdot4^{1}}
- = 0.1073 \cdot 10^{10}
- .\] Die kleinste negative Zahl in $\mathbb{F}(3, 7, 1)$ ergibt sich im Dezimalsystem dargestellt
- als:
- \[
- - 2 \cdot (3^{-1} + 3^{-2} + \ldots + 3^{-7}) \cdot 3^{2 \cdot 3^{0}} \approx -0.8996 \cdot 10^{1}
- .\] Damit folgt für den maximalen Abstand zweier Zahlen aus $\mathbb{F}(4,6,2)$ und
- $\mathbb{F}(3,7,1)$:
- \[
- \max_{x_2, x_3} | x_2 - x_3 | \approx
- 0.1073 \cdot 10^{10} + 0.8996 \cdot 10^{1} \approx 0.1073 \cdot 10^{10}
- .\]
- \item Die Aussage ist falsch. Gegenbeispiel: $\mathbb{F}(2, 2, 1)$. Die Menge der darstellbaren
- Zahlen ist hier, analog zur Vorlesung:
- \[
- \mathbb{F}(2,2,1) = \left\{- \frac{3}{2}, -1, -\frac{3}{4}, -\frac{1}{2}, -\frac{3}{8},
- -\frac{1}{4}, 0, \frac{1}{4}, \frac{3}{8}, \frac{1}{2}, \frac{3}{4}, 1, \frac{3}{2}\right\}
- .\] Hier ist sofort zu sehen, dass beispielsweise für $x_4 = 1$ gilt:
- \[
- \left| 1 - \frac{3}{4}\right| = \frac{1}{4} \neq \frac{1}{2} = \left| \frac{3}{2} - 1 \right|
- .\]
- \end{enumerate}
- \end{aufgabe}
-
- \begin{aufgabe}
- Die ersten zehn Folgenglieder in Dezimaldarstellung (nicht normiert):
- \begin{table}[h!]
- \centering
- \label{tab:label}
- \begin{tabular}{ccc}
- $n$ & Aufrunden & gerades Runden \\
- $0$ & $2.46$ & $2.46$ \\
- $1$ & $2.47$ & $2.46$ \\
- $2$ & $2.48$ & $2.46$ \\
- $3$ & $2.49$ & $2.46$ \\
- $4$ & $2.50$ & $2.46$ \\
- $5$ & $2.51$ & $2.46$ \\
- $6$ & $2.52$ & $2.46$ \\
- $7$ & $2.53$ & $2.46$ \\
- $8$ & $2.54$ & $2.46$ \\
- $9$ & $2.55$ & $2.46$ \\
- $10$ & $2.56$ & $2.46$ \\
- \end{tabular}
- \end{table}
-
- Beim Aufrunden ist deutlich zu sehen, dass, da nach jedem Rechenschritt die 4. Stelle
- auf $5$ steht, jedes mal aufgerundet wird. Da zwei Rundungen pro Folgenglied stattfinden,
- führt das zu einer Erhöhung um $2 \cdot 0.005 = 0.01$ pro Folgenglied.
-
- Beim geraden Runden wird zwar nach der ersten Operation aufgerundet, nach der zweiten jedoch nicht.
- Deshalb bleibt das Ergebnis exakt.
- \end{aufgabe}
-
- \begin{aufgabe}
- Programm zum Test der Nulladdition:
- \begin{lstlisting}[language=C++, title=nulladdition.cpp, captionpos=b]
- #include<iostream>
- #include<iomanip>
-
- using namespace std;
-
- int main() {
- // set output width and precision
- cout << setprecision(17);
- cout << setw(10);
-
- // float
- cout << "Enter a float > ";
- float x;
- cin >> x;
- x = x + 1;
- cout << x << endl;
-
- // double
- cout << "Enter a double > ";
- double y;
- cin >> y;
- y = y + 1;
- cout << y << endl;
- }\end{lstlisting}
- \begin{enumerate}[a)]
- \item Bei Verwendung von \lstinline{float} muss $x$ als $5\cdot 10^{-8}$ gewählt werden, bei
- Verwendung von \lstinline{double} muss $x$ als $10^{-16}$ gewählt werden, damit
- exakt $1$ zurückgegeben wird.
- \item Das ist bei weitem nicht die kleinste positive Zahl, die \lstinline{float} bzw.
- \lstinline{double} darstellen können, da im Exponenten noch weit mehr Stellen zur Verfügung
- stehen, um sehr viel kleinere positive Zahlen darstellen zu können.
-
- Allerdings kann dies hier nicht genutzt werden, da durch die Addition mit $1$ gerundet werden
- muss.
- \end{enumerate}
- \end{aufgabe}
-
- \end{document}
|