Direkt zum Inhalt

Lexikon der Mathematik: Maschinenintervallarithmetik

Regeln für das Rechnen mit Maschinenintervallen.

Sei R ⊆ ℝ die Teilmenge der auf einem Rechner darstellbaren Maschinenzahlen. Dann ist ein Maschinenintervall durch \({\bf{\text{a}}}=[\mathop{a}\limits_{\_},\overline{a}]=\{a\in {\mathbb{R}}|\mathop{a}\limits_{\_}\le a\le \overline{a},\mathop{a}\limits_{\_}\in R,\overline{a}\in R\}\) definiert. Ein Maschinenintervall ist also keine (endliche) Teilmenge von Maschinenzahlen, sondern ein reelles, kontinuierliches Intervall, dessen Grenzen Maschinenzahlen sind. \({\mathbb{I}}R=\{[\mathop{a}\limits_{\_},\overline{a}]|\mathop{a}\limits_{\_}\le \overline{a},\mathop{a}\limits_{\_}\in R,\overline{a}\in R\}\) bezeichnet die Menge der Maschinenintervalle über ℝ bzgl. der Teilmenge R. Beim Übergang von Intervallen über ℝ zu Maschinenintervallen sind die Grenzen nach außen zu runden, sodaß das resultierende Intervall das ursprüngliche enthält. Dieser Übergang wird durch die Funktion \(\lozenge :{\mathbb{I}}{\mathbb{R}}\to {\mathbb{I}}R\) beschrieben mit \begin{eqnarray}{\bf{\text{a}}}\subseteq \diamond {\bf{\text{a}}}=[\nabla \mathop{a}\limits_{\_},{\rm{\Delta }}\overline{a}],\forall {\bf{\text{a}}}\in {\mathbb{I}}{\mathbb{R}}.\end{eqnarray}

Ist \(\mathop{a}\limits_{\_}\lt \min R\) oder \(\overline{a}\gt \max R\), so ist ◊ nicht definiert. Dabei bezeichnen ∇ bzw. ∆ eine nach unten bzw. oben gerichtete Rundung von ℝ in die Maschinenzahlen R: \begin{eqnarray}\nabla a\le a,\forall a\in {\mathbb{R}},a\ge \min R,\\ \nabla a\ge a,\forall a\in {\mathbb{R}},a\le \max R.\end{eqnarray}

Idealerweise sind ∇ und ∆ die z. B. in der IEEE-Arithmetik geforderten monotonen, bestmöglichen Rundungen: \begin{eqnarray}\nabla (a)=\max \{x\in R|x\le a\},\\ {\rm{\Delta }}(a)=\min \{x\in R|x\ge a\}.\end{eqnarray}

Es gelten die folgenden Verknüpfungsregeln (Intervallarithmetik): \begin{eqnarray}\begin{array}{ll}[\mathop{a}\limits_{\_},\overline{a}]+[\mathop{b}\limits_{\_},\overline{b}]=[\nabla (\mathop{a}\limits_{\_}+\mathop{b}\limits_{\_}),{\rm{\Delta }}(\overline{a}+\overline{b})]\\ [\mathop{a}\limits_{\_},\overline{a}]-[\mathop{b}\limits_{\_},\overline{b}]=[\nabla (\mathop{a}\limits_{\_}-\overline{b}),{\rm{\Delta }}(\overline{a}-\overline{b})]\\ [\mathop{a}\limits_{\_},\overline{a}]\cdot [\mathop{b}\limits_{\_},\overline{b}]=\\ [\min (\nabla (\mathop{a}\limits_{\_}\cdot \mathop{b}\limits_{\_}),\nabla (\mathop{a}\limits_{\_}\cdot \overline{b}),\nabla (\overline{a}\cdot \mathop{b}\limits_{\_}),\nabla (\overline{a}\cdot \overline{b})),\\ \max ({\rm{\Delta }}(\mathop{a}\limits_{\_}\cdot \mathop{b}\limits_{\_}),{\rm{\Delta }}(\mathop{a}\limits_{\_}\cdot \overline{b}),{\rm{\Delta }}(\overline{a}\cdot \mathop{b}\limits_{\_}),{\rm{\Delta }}(\overline{a}\cdot \overline{b}))]\\ [\mathop{a}\limits_{\_},\overline{a}]/[\mathop{b}\limits_{\_},\overline{b}]=\\ \quad [\min (\nabla (\mathop{a}\limits_{\_}/\mathop{b}\limits_{\_}),\nabla (\mathop{a}\limits_{\_}/\overline{b}),\nabla (\overline{a}/\mathop{b}\limits_{\_}),\nabla (\overline{a}/\overline{b})),\\ \,\,\,\max ({\rm{\Delta }}(\mathop{a}\limits_{\_}/\mathop{b}\limits_{\_}),{\rm{\Delta }}(\mathop{a}\limits_{\_}/\overline{b}),{\rm{\Delta }}(\overline{a}/\mathop{b}\limits_{\_}),{\rm{\Delta }}(\overline{a}/\overline{b}))]\\ \quad \quad \quad \quad \quad \quad \text{falls}0\notin [\mathop{b}\limits_{\_},\overline{b}]\end{array}\end{eqnarray}

Wir geben hier auch die Varianten der Multiplikation und Division an, die mit weniger GleitkommaOperationen auskommen. \begin{eqnarray}\begin{array}{ll}[\mathop{a}\limits_{\_},\overline{a}]\cdot [\mathop{b}\limits_{\_},\overline{b}]=\\ \left\{\begin{array}{cc}[\nabla (\mathop{a}\limits_{\_}\cdot \mathop{b}\limits_{\_}),{\rm{\Delta }}(\overline{a}\cdot \overline{b})] & \mathop{a}\limits_{\_}\ge 0,\mathop{b}\limits_{\_}\ge 0\\ [\nabla (\mathop{a}\limits_{\_}\cdot \overline{b}),{\rm{\Delta }}(\overline{a}\cdot \mathop{b}\limits_{\_})] & \overline{a}\le 0,\mathop{b}\limits_{\_}\ge 0\\ [\nabla (\mathop{a}\limits_{\_}\cdot \overline{b}),{\rm{\Delta }}(\overline{a}\cdot \overline{b})] & 0\in {\bf{\text{a}}},\mathop{b}\limits_{\_}\ge 0\\ [\nabla (\overline{a}\cdot \mathop{b}\limits_{\_}),{\rm{\Delta }}(\mathop{a}\limits_{\_}\cdot \overline{b})] & \mathop{a}\limits_{\_}\ge 0,\overline{b}\le 0\\ [\nabla (\overline{a}\cdot \overline{b}),{\rm{\Delta }}(\mathop{a}\limits_{\_}\cdot \mathop{b}\limits_{\_})] & \overline{a}\le 0,\overline{b}\le 0\\ [\nabla (\overline{a}\cdot \mathop{b}\limits_{\_}),{\rm{\Delta }}(\mathop{a}\limits_{\_}\cdot \mathop{b}\limits_{\_})] & 0\in {\bf{\text{a}}},\overline{b}\le 0\\ [\nabla (\overline{a}\cdot \mathop{b}\limits_{\_}),{\rm{\Delta }}(\overline{a}\cdot \overline{b})] & \overline{a}\ge 0,0\in {\bf{\text{b}}}\\ [\nabla (\mathop{a}\limits_{\_}\cdot \overline{b}),{\rm{\Delta }}(\mathop{a}\limits_{\_}\cdot \mathop{b}\limits_{\_})] & \overline{a}\le 0,0\in {\bf{\text{b}}}\\ [\min \{\nabla (\mathop{a}\limits_{\_}\cdot \overline{b}),{\rm{\Delta }}(\overline{a}\cdot \mathop{b}\limits_{\_})\}, & 0\in {\bf{\text{a}}},0\in {\bf{\text{b}}}\\ \max \{{\rm{\Delta }}(\mathop{a}\limits_{\_}\cdot \mathop{b}\limits_{\_}),{\rm{\Delta }}(\overline{a}\cdot \overline{b})\}] & \end{array}\right.\end{array}\end{eqnarray}\begin{eqnarray}\begin{array}{ll}[\mathop{a}\limits_{\_},\overline{a}]/[\mathop{b}\limits_{\_},\overline{b}]=\\ \left\{\begin{array}{cc}[\nabla (\mathop{a}\limits_{\_}/\overline{b}),{\rm{\Delta }}(\overline{a}/\mathop{b}\limits_{\_})] & \mathop{a}\limits_{\_}\ge 0,\mathop{b}\limits_{\_}\gt 0\\ [\nabla (\mathop{a}\limits_{\_}/\mathop{b}\limits_{\_}),{\rm{\Delta }}(\overline{a}/\overline{b})] & \overline{a}\ge 0,\mathop{b}\limits_{\_}\gt 0\\ [\nabla (\mathop{a}\limits_{\_}/\mathop{b}\limits_{\_}),{\rm{\Delta }}(\overline{a}/\mathop{b}\limits_{\_})] & 0\in {\bf{\text{a}}},\mathop{b}\limits_{\_}\gt 0\\ [\nabla (\overline{a}/\overline{b}),{\rm{\Delta }}(\mathop{a}\limits_{\_}/\mathop{b}\limits_{\_})] & \mathop{a}\limits_{\_}\ge 0,\overline{b}\lt 0\\ [\nabla (\overline{a}/\mathop{b}\limits_{\_}),{\rm{\Delta }}(\mathop{a}\limits_{\_}/\overline{b})] & \overline{a}\le 0,\overline{b}\lt 0\\ [\nabla (\overline{a}/\overline{b}),{\rm{\Delta }}(\mathop{a}\limits_{\_}/\overline{b})] & 0\in {\bf{\text{a}}},\overline{b}\lt 0\end{array}\right.\end{array}\end{eqnarray}

Da die einzelnen Maschinenintervall-Operationen Obermengen der reellen Intervalle berechnen, gilt für die Maschinenintervall-Auswertung f einer reellen Funktion f die ebenfalls als Einschließungseigenschaft der Intervallrechnung bekannte Aussage \begin{eqnarray}f({\bf{\text{x}}})=\{f(x)|x\in {\bf{\text{x}}}\}\subseteq {\bf{\text{f}}}({\bf{\text{x}}})\subseteq {{\bf{\text{f}}}}_{\diamond }({\bf{\text{x}}}).\end{eqnarray}

Lesermeinung

Wenn Sie inhaltliche Anmerkungen zu diesem Artikel haben, können Sie die Redaktion per E-Mail informieren. Wir lesen Ihre Zuschrift, bitten jedoch um Verständnis, dass wir nicht jede beantworten können.

  • Die Autoren
- Prof. Dr. Guido Walz

Partnerinhalte