Kurs:Numerik I/Besonderheiten des numerischen Rechnens

Aus testwiki
Zur Navigation springen Zur Suche springen

Einleitung

Diese Seite kann als Wiki2Reveal Folien angezeigt werden. Einzelne Abschnitte werden als Folien betrachtet und Änderungen an den Folien wirken sich sofort auf den Inhalt der Folien aus.

b-adisches Zahlsystem

Alle Berechnungen auf digitalen Rechenanlagen können grundsätzlich nur mit endlicher Genauigkeit durchgeführt werden. Deshalb spielt die verwendete Zahlendarstellung eine wichtige Rolle.

Beispiel - Irrationale Zahlen und deren b-adische Darstellung

Die Zahlen π oder 2 besitzen z.B. als irrationale Zahlen eine unendliche nicht-periodische Dezimalbruchentwicklung.

Beispiel - Rechenoperationen mit endlichen b-adischen Zahlendarstellungen

Wenn die arithmetischen Operationen nicht symbolisch (wie in einem Computeralgebrasystem CAS), sondern numerisch durchgeführt werden, dann liefert z.B. die Verkettung von Wurzelziehen mit Quadrieren einen numerischen Fehler (2)2=2, während die umgekehrte Verkettung 22=2 keine Zwischenergebnisse mit unendlicher Dezimalbruchentwicklung besitzt und damit das korrekte Ergebnis liefert.

Fehlerrechnung

Der Umgang mit Fehler und die Abschätzung von Fehlern in einem Algorithmus ist ein wesentlicher Aspekt in der Numerik, da man für die Nutzung von näherungsweisen Berechnungen in der Praxis z.B. abschätzen muss, ob gewisse Toleranzen bei möglichen Abweichung mit berechneten Fehlerschranken noch innerhalb der Toleranzgrenzen für das Problem liegen, für das das numerische Verfahren verwendet wird.

Dezimales Stellenwertsystem als Spezialfall

Bekanntlich ist die Zahl x:=311.57 im Dezimalsystem gleichbedeutend mit

3102+1101+1100+5101+7102+

Man spricht in diesem Fall auch von einem b-adischen Bruch zur Basis b=10. Statt der bekannten Basis b:=10 in unserem Dezimalsystem kann man auch eine andere Basis b mit b2 wählen. Wäre b:=8, so hätte beispielsweise die Zahl mit der Ziffernfolge 311.57 im 8er-System den Wert

382+181+180+581+782

Stellenwert - Ziffernwert - Bündelungseinheit

Der Stellenwert 3102 setzt sich also multiplikativ aus dem Ziffernwert 3 und dem Wert der Bündelungseinheit 102=100.

Stellenwert = Ziffernwert Bündelungseinheit

Die Bündelungseinheiten sind Potenzen bn=10n einer Basis b=10 und die Ziffernwerte sind nicht-negative natürliche Zahlen, die 0 sein können und kleiner als die Basis der b=10 der Bündelungseinheit. Diese obere Grenze für die Ziffern ergibt sich aus dem Bündelungssystem, bei 10 Bündelungseinheiten mit einer Potenz n zu einer Bündelungseinheit der Potenz n+1 zusammengefasst wird.

Verallgemeinerung zu b-adischen Stellenwertsystemen

Die Ziffern zi{0,1,,b1} an der i-ten Stelle im Zahlwort erhält den Stellenwert werden nun bezüglich der Basis b und deren Potenz an der i-ten Stelle ermittelt. So entspricht eines Zahlwortes der Zahl x aus dem Dezimalsystem der reellen Zahl:

x=±(znbn++z0b0ganzzahliger Anteil+z1b1+z2b2+Nachkommanstellen)=±i=nmibi

Wichtige b-adische Stellenwertsystemen

Praktisch wichtig sind dabei die Basen

  • b=2:Dualbasis,mi{0,1},,
  • b=10:Dezimalbasis,mi{0,1,,9},,
  • b=16:Hexadezimalbasis,mi{0,1,,9,A,B,C,D,E,F},
  • b=60:Sexagesimalbasis,mi{0,1,,58,59}(auch 6×10-er Basis genannt, da die Zahlen bis zur 60 im Dezimalsystem dargestellt werden).

Historische Anmerkung

  • Die Babylonier beispielsweise verwendeten die Basis b=60 (Sexagesimalsystem).
  • Die Römer verwendeten kein reines Bündelungs bzgl. einer Basis b, sondern eine alternierende Zwei-Fünfer-Bündelung angelehnt ist, bei der fünf Einer "I" zu einem Fünfer "V", 2 Fünfer "V" zu einem Zehner "X", 5 Zehner "X" zu einem Fünfziger "L", 2 Fünfziger "L" zu einem Hunderter "C", ...

Die Notationsform der Römer besitzt ferner subtrahierende Notationen wie z.B. "IX"=4 und einen Zeichenverwendung für Bündelungseinheiten negative Eigenschaften, die diese Zahlennotation für arithmetische Operationen und damit auch für die Numerik ungeeignet machen.

Beispiele

Die folgenden Bespiele zeigen:

  • Umrechungen von dem b-adischen Stellenwertsystem in das dezimale Stellenwertsystem
  • Umrechungen von dem das dezimale Stellenwertsystem in b-adischen Stellenwertsystem
  • Addition in b-adischen Stellenwertsystemen
  • Multiplikation in b-adischen Stellenwertensystem

Beispiel 1 - Umrechung in das Dezimalsystem

Mit b=2, dem sog. dyadischen Bruch 11100.10(b) entspricht im Dezimalsystem die Zahl

124+123+122+021+020+121=16+8+4+12=28.5

Beispiel 2 - Umrechung in das Dezimalsystem

b=16. Im 16-er-System fehlen uns im Vergleich zu dem Dezimalsystem 6 zusätzliche Ziffern für die Zahlen A=10, B=11, C=12, D=13, E=14, F=15. Der b-adische Bruch C17.E(b) zur Basis b=16 bedeutet im Dezimalsystem die Zahl

12162+1161+7160+14161=3095.875.

Bemerkung - Umrechnungsverfahren

Will man umgekehrt eine Dezimalzahl bezüglich einer anderen Basis b=10 dargestellt werden soll, so verwendet man eine fortgesetzte Division mit Rest (siehe Euklidischer Algorithmus), die dann aber nicht notwendigerweise terminiert, sondern auch Vielfache von Bündelungseinheiten mit negativen Potenzen betrachtet werden (also z.B. 21=12) weiter forgesetzt wird, um damit auch die Ziffernwerte der Nachkommastellen zu ermitteln.

Beispiel 3 - Umrechnung in ein b-adische Stellenwertsystem

Gegeben sei die Zahl x:=60.125 im Dezimalsystem. Diese sei nun mittels einer anderen Basis dargestellt (hier b=2).

  • b=2: (Als Vielfache der Potenzen von 2 stehen nur die Ziffern 0 und 1 zur Verfügung, und für die erste Stelle nur die 1.)
  • Man ermittelt zuerst die höchste Potenz 2n von 2, mit der Eigenschaft 2n60.125. Wegen 25=32 und 26=64 findet man die Potenz n=5.
  • Damit erhält man die erste Ziffer im Dualsystem mit 25=32=100000(2)
  • Die Division mit Rest wird nun mit 24=16=10000(2) auf den Rest 60.12525=28.125 fortgesetzt.

Beispiel 3 - b-adische Umrechnungschritte ganze Zahlen

  • In dem Rest 60.12525=28.125 steckt das 1-fache von 24=16=10000(2),
  • in dem verbleibenden Rest 28.12524=12.125 steckt nun einmal die Bündelungseinheit 23=8=1000(2),
  • der nächste Rest 4.125 enthält wieder das einmal die Bündelungseinheit 22=4=100(2),
  • die Zahl 0.125 das 0-fache von 21=2=10(2) sowie das 0-fache von 20=1=1(2),

Der ganzzahlige Anteil 60 von 60.125 lässt sich damit durch die Dualzahl 111100(2)=60 darstellen.

Beispiel 3 - b-adische Umrechnungschritte Nachkommastellen

Es fehlt also noch die Darstellung der Nachkommanstellen 0.125 im Dualsystem. Daher werden nun Bündelungseinheit bn mit negativem Exponenten betrachtet.

  • die Zahl 0.125 das 0-fache von 21=0.5
  • sowie das 0-fache von 22=0.25 und schließlich
  • das 1-fache von 23=0.125


Beispiel 3 - b-adische Umrechnung Ergebnis

Damit ergibt sich aus der b-adischen Darstellung 60=111100(2) und der Berechnung der Nachkommastellen im Dualsystem 0.125=0.001(2) die gesamte b-adische Darstellung von 60.125 durch:

60.125=111100(2)+0.001(2)=111100.001(2)

Beispiel 4 - Umrechnung in ein b-adische Stellenwertsystem

b=8: (Als Vielfache der Potenzen von 8 stehen jetzt die Ziffern 0,1,,7 zur Verfügung bzw. für die erste Stelle die Ziffern 1,2,,7.) Es ergibt sich mit einer analogen Rechnung die 8-adische Zahldarstellung von 60.125 über:

60.125=781+480+181=74.1(b)

Also entspricht 60.125 im Dezimalsystem der Zahl 74.1(b) zur Basis b=8.

Notation - b-adischer Zahlen

Um Zahlen in einem b-adischen Stellenwertsystem von der Darstellung im Dezimalsystem zu unterscheiden, wird die Basis b als Index an die Zifferndarstellung in dem jeweiligen System hinzugefügt.

Beispiel 5 - Umrechnung in ein b-adische Stellenwertsystem

b=16: Man erhält

60.125=3161+12160+2161.

Es ergibt sich zur Basis b=16 die Zahl 3C.2(b).

Existenzsatz b-adische Zahldarstellung

Sei b und b2. Dann lässt sich jede reelle Zahl in einen b-adischen Stellenwertsystem zur Basis b darstellen.

Beweisidee

Die Beweisidee nutzt das oben beschriebene Kontruktionsverfahren für die Ziffern in induktiver Form. Dabei ist zu bemerken, dass endliche Dezimalbruchentwicklung periodische unendliche Nachkommastellen in der Matisse der b-adischen Zahldarstellung besitzen kann und umgekehrt.

Aufgaben

Die folgenden Aufgaben gliedern sich in zwei Bereiche:

  • Umrechnung von einem b-adischen Stellenwertsystem in ein anderes b-adisches Stellenwertsystem,
  • arithmetische Operationen in Stellenwertsystemen und die Betrachtung von Rechenregeln im Dezimalsystem und deren Analogie in Analogie b-adischen Stellenwertsystem

Tabellenkalkulation

Erstellen Sie in Tabellenkalkulation mit LibreOffice-Calc und dem Befehl =REST(...;...) (z.B. =REST(566;7) liefert den Rest bei Division durch 7 von 566 zurück). Versuchen Sie bei der Umrechnung die mathematischen Operationen stellenweise berücksichtigen. Beim Wechsel des Stellenwertsystems und das Basis der Bündelungseinheit soll dabei die Zahl im b-adischen Zahlensystem automatisch umgerechnet werden.

Hilfen zur Umsetzung:

Umrechnungsaufgaben

  • Rechnen Sie die Zahl 123 in das 7-adische System um.
  • Rechnen Sie die Zahl 123(7) aus dem 7-adischen Stellenwertsystem in das Dezimalsystem um.
  • Stellen Sie die Bruch 17 einmal im Dezimalenstellenwertsystem und einmal im 7-adischen Stellenwertsystem dar. Was fällt Ihnen bei der Umwandlung des Bruches auf und welche Begründung können Sie dafür angeben (bzgl. periodischer b-adischer Zahldarstellung).

Arithmetische Operationen

  • Addieren Sie die Zahlen 345(7)+654(7) im 7-adischen Stellenwertsystem ohne Umrechnung in das Dezimalsystem. Übertragen Sie dabei die Rechenregeln im Dezimalsystem auf das 7-adischen Stellenwertsystem,
  • Multiplizieren Sie die Zahlen 12(7)4(7) im 7-adischen Stellenwertsystem ohne Umrechnung in das Dezimalsystem. Übertragen Sie dabei die Rechenregeln im Dezimalsystem auf das 7-adischen Stellenwertsystem,
  • Multiplizieren Sie die Zahlen 0.012(7)4(7) im 7-adischen Stellenwertsystem ohne Umrechnung in das Dezimalsystem. Welche Analogien können Sie dabei zu Rechenregeln im Dezimalsystem identifizieren,
  • Berechnen Sie die Division 11(7):4(7), 12(7):4(7) und 345(7):4(7) (Notieren Sie dazu die Vielfachen von 4(7) im 4-adischen System).

Rechnen auf einem Computer

Wir gehen nun von einer Zahlendarstellung von x mittels der Basis b mit b2 und den Ziffern zi{0,1,,b1} aus, d. h. von einer Darstellung

x=±i=nzibi

mit zn0.

Bündelungseinheit größer 10

Für eine Bündelungseinheit/Basis b>10 kann die Ziffer zi in der dezimalen Darstellung also auch eine Ziffer mit mehr als einer Stelle sein. Im Hexadezimalsystem (16er-System) verwendet man in der Regel Buchstaben für die Ziffern 10,...,15. Also

A=10,B=11,C=12,D=13,E=14,F=15

Näherungsweisedarstellung als endliche p-adische Entwicklung

Durch Abschneiden dieses unendlichen Ausdrucks ergibt sich eine endliche Zahlendarstellung

x=±(znbn+mn1bn1++z0b0+z1b1+z2b2+)=±i=nzibi

Gleitkomma-Darstellung

Digitale Rechenanlagen, kurz Computer oder Rechner, arbeiten meist mit einer normalisierten (endlichen) Gleitkomma-Darstellung reeller Zahlen

x:=±i=nzibi,

wobei

  • der ganzzahlige Anteil durch G(x):=±i=0nzibi und
  • die Nachkommastellen, die sog. Mantisse M(x):=±i=1zibi, entspricht.

Notation b-adische Darstellung

Die folgende Zahldarstellung znz0.z1zm(b) mit m+n+1 Ziffern und zn=0 kann man als Zahlwort in einen ganzzahligen Teil und eine Nachkommateil (Mantisse) zerlegen.

Notation ganzzahliger Teil

In Analogie zum Dezimalsystem kann man im b-adischen Stellen den ganzahligen Teil des Zahlwortes an den Ziffern vor dem Dezimalpunkt ablesen. Formal liefert das:

G(x)=znz0(b)

In der obigen Matisse einer Zahl x sieht man eine endliche b-adische Zahldarstellung mit m Nachkommastellen.

Notation Mantisse

In Analogie zum Dezimalsystem kann man auch im b-adischen Stellen das Zahlwort für die Nachkommanstellen als Zeichenfolge zusammensetzen

M(x)=0.z1zm(b)

In der obigen Matisse einer Zahl x sieht man eine endliche b-adische Zahldarstellung mit m Nachkommastellen.

Notation Vorzeichen

Da man mit der Ziffernfolge im Zahlwort zunächst einmal nur nicht negative Zahlen definieren kann, fehlt für die Zahldarstellung in noch das Vorzeichen, das die Zeichen "+" oder "" annehmen kann. Zahldarstellung im p-adischen System haben daher in Ziffernnotation eine nachstehende Zeichenfolge. ±znz0.z1zm(b)

Normalisierte Gleitkommadarstellung - ganzzahliger Anteil

Bei einer normalisierten Gleitkommadarstellung verwendet man nur eine Matissen und eine Exponenten für die Bündelungseinheit des Stellenwertsystems, mit dem die Ziffernfolge in der Mantisse durch Multiplikation mit Potenzen von b auch den ganzzahligen Anteil einer reellen Zahl darstellen kann.

±znz0.z1zm(b)=0.znz0z1zm(b)bn+1

Normalisierte Gleitkommadarstellung - Mantisse

Bei einer normalisierten Gleitkommadarstellung verwendet man nur eine Matissen und eine Exponenten, mit dem die Ziffernfolge in der Mantisse durch Multiplikation mit Potenzen von b dann als erste Nachkommastelle zk eine von 0 verschiedene Ziffer besitzt und die folgende reelle Zahl darstellen kann.

±0.00zkzm(b)=0.zkz0z1zm(b)bn+1

Notation A(b,r,s)

Für die Notation einer normalisierten Gleitkommadarstellung mbn benötigt man 3 Festlegungen (b,r,s):

  • b als Basis/Bündelungseinheit der Zahlen im b-adischen Zahlsystem,
  • r die zur Verfügung stehende Ziffernzahl für die Mantisse der Zahl und
  • s die Anzahl der Ziffern für den Exponenten n im b-adischen Zahlsystem der normalisierten Darstellung.

Exakte und näherungsweise Darstellung von Zahlen

Wenn man z.B. eine periodische Zahldarstellung oder eine irrationale Zahl näherungsweise durch eine endliche b-adischen Zahldarstellung repräsentiert, entsteht ein Fehler. Einige Zahlen können aber ohne Fehler dargestellt werden. 𝒜(b,r,s) bezeichnet dann die Menge der exakt darstellbaren Zahlen im b-adischen Zahlsystem, das mit r Nachkommastellen und s sind die Stellen für den Exponenten der Bündelungseinheit. Eine Fehlerschranke kann in diesem Fall durch eine Potenz von b angegeben werden.

Bemerkung zur exakten und näherungsweisen Darstellung von Zahlen

Ob eine Zahl eine endliche oder unendliche Darstellung im b-adischen Zahlsystem hängt von der Bündelungseinheit ab.

  • 17 hat im Dezimalsystem eine periodische Dezimalbruchentwicklung,
  • 17 hat im 7er-System mit 0.1(7) eine endliche p-adische Zahldarstellung,

Beispiele Normalisierte Gleitkommadarstellung

Bei der normalisierten Gleitkommadarstellung wird ein Zahl x=mbn dargestellt, wobei |m|<1 maximal s Nachkommastellen besitzt.


Beispiel 1 - Dezimalsystem

Sei b:=10: Die Zahl 30.421 lautet (bei Nichtberücksichtigung der Größen r und s) in normalisierter Gleitkomma-Darstellung 0.30421102. Letztere Darstellung schreibt man z.B. für r:=6 und s:=2 auch in der Form 0.304210E+02 oder 0.30421010+02.


Beispiel 2 - Dezimalsystem

Die Zahl 0.00030421 lautet in der normalisierten Gleitkomma-Darstellung für r:=6 und s:=3 z. B. 0.304210E03 oder 0.3042101003.

Exakt darstellbare Zahlen in normalisierter Darstellung

Eine normalisierte Gleitkomma-Darstellung mit der Basis b, beispielsweise b:=10 oder b:=2, bestimmt die Menge 𝒜:=𝒜(b;r;s) reeller Zahlen, die auf dem Rechner mit s Nachkommatellen exakt dargestellt werden können, die sog. Maschinenzahlen. r gibt dabei dei Stellen für den Exponenten von b. Eine solche Zahlendarstellung ermöglicht also nur die Repräsentation einer endlichen Teilmenge der reellen Zahlen.

Kleinste exakt darstellbare Zahl =

Die kleinste darstellbare positive Zahl amin durch

M:=0.1,E:=(b1)(b1)(b1)smal

Kleinste exakt darstellbare Zahl =

Die größte positive Zahl amax ist durch

M:=0.(b1)(b1)(b1)rmal,E:=+(b1)(b1)(b1)smal

gegeben. Die Mantisse M von amin entspricht offenbar der Dezimalzahl b1 und die von amax der Dezimalzahl

(b1)i=1rbi=(b1)[1br11b11]=b(br+11)br+1b+1=1br.

Der Exponent E für beide Zahlen ist bis auf das Vorzeichen gegeben durch die Dezimalzahl

(b1)i=0s1bi=(b1)1bs1b=bs1.

Somit haben amin und amax den Dezimalwert

amin=bbs,amax=(1br)bbs1.

Ist D die reelle Zahlenmenge

D:=[amax,amin]{0}[amin,amax],

so können also insbesondere Zahlen xD nicht auf dem Rechner wiedergegeben werden. Im Fall x>amax und x<amax melden alle Rechner normalerweise einen Exponentenüberlauf („overflow“), während sie im Fall x(amin,amin) meist keine Meldung machen und x=0 setzen.

Ferner ist offenbar nicht jede Zahl xD auf dem Rechner, d. h. als xA darstellbar (z. B. trifft dies für die Zahlen π und 2 zu). Somit stellt sich das Problem, eine Zahl xD durch eine Zahl aus A zu approximieren. Man verwendet hierzu einen Rundungsoperator rd:DA, der jeder Zahl xD eine Zahl rd(x)A zuordnet, welche sinnvollerweise der folgenden Beziehung genügt:

(1.2) |xrd(x)|=minaA|xa|.

Im Fall, dass die Aufgabe in (1.2) zwei Lösungen besitzt, rundet man dabei normalerweise (wir legen dies hier auch so fest) z. B. für b:=10 und eine Endziffer 5 nach oben.

Beispiel 1.5

Sei b:=10,r:=4 und s:=2. Dann gilt

rd(3.14159)=0.314210+01,
rd(14.2842)=0.142810+02,
rd(0.142749)=0.142710+00,
rd(0.14275)=0.142810+00.

Allgemein kann man für b:=10 und eine Mantissenlänge r die zu einer beliebigen Zahl xD gehörende Maschinenzahl rd(x)A folgendermaßen finden. Es sei dazu xD zunächst in der Form x=a10q dargestellt, wobei q und

|a|=0.α1α2αrαr+1

mit 0αi9 und α10 seien. Insbesondere ist also |a|0.1. Zu a bildet man nun

a~:={0.α1α2αr,falls 0αr+14,0.α1α2αr+10r,falls αr+15

und setzt dann

rd(x):=sgn(x)a~10q.

Offenbar ist die Zahl rd(x) für jedes xD eine Maschinenzahl, d. h. rd(x)A.

Beispiel 1.6

Für b:=10,r:=4 und s:=2 folgt

rd(0.9999710+98)=0.100010+99,
rd(0.012345109)=0.12351010.

Für den mit der Rundung verbundenen absoluten Fehler hat man

|xrd(x)|510(r+1)10q=1210r10q

und für den relativen Fehler, sofern x0 ist,

|xrd(x)||x|0.510r10q|a|10q0.510r0.1=1210r+1.

Bei einer analogen Definition der Rundungsoperation für die Basis b erhält man

|xrd(x)|12brbq,|xrd(x)||x|12br+1.

Diese Vorgehensweise führt auf die Definition der sogenannten relativen Maschinengenauigkeit

eps:=12br+1.

Mit dieser gilt also

(1.3) rd(x)=x(1+ε),|ε|eps,

wie man mit der Setzung ε:=(xrd(x))/x sieht.

Beispiel 1.7 (IEEE-Standard)

single precisiondouble precisionamin1.1010382.2310308amax3.4010+381.8010+308eps0.601071.111016

Die arithmetischen Grundoperationen +,,*,/ werden auf digitalen Rechnern durch sog. Gleitpunktoperationen ersetzt, welche Maschinenzahlen wieder auf Maschinenzahlen abbilden. Sind a,bA, ist „“ eine der vier Grundoperationen, c:=ab und cD, so definiert man die zugehörige Gleitpunktoperation gl(ab) durch

gl(ab):=rd(ab).

Für sie gilt nach (1.3)

gl(ab)=(ab)(1+ε),|ε|eps.

Für das Ergebnis c:=ab kann natürlich auch cD gelten. In diesem Fall meldet der Rechner normalerweise einen Exponentenüberlauf oder setzt er c:=0.

1.4 Differentielle Fehleranalyse

Der Einfluss von Störungen in den Daten auf die Lösung eines Problems sowie die Fortpflanzung von Eingangs- und Rundungsfehlern bei numerischen Algorithmen kann durch die sogenannte differentielle Fehleranalyse untersucht werden. Zu deren Beschreibung nehmen wir an, dass ein Problem bzw. eine Berechnungsvorschrift mittels einer zweimal stetig differenzierbaren Funktion f:nm durch die Gleichung

f(x)=y

bzw. gleichbedeutend durch die Gleichungen

(1.4) fi(x)=yi,i=1,,m

beschrieben wird. Dabei ist also xn der Daten- und ym der Ergebnis-Vektor. Für

f(x+Δx)=:y+Δy

gilt dann nach dem Satz von Taylor zeilenweise

(1.5) Δyi=fi(x+Δx)fi(x)=j=1nfixj(x)Δxj+𝒪(maxj=1,,n|Δxj|2),i=1,,m,

so dass für hinreichend kleine |Δxj| der Restterm 𝒪(maxj=1,,n|Δxj|2) vernachlässigt werden kann und folglich der dominierende relative Fehler gegeben ist durch

|Δyi||yi|j=1n|fixj(x)xjfi(x)||Δxjxj|=j=1nkij(x)|Δxjxj|,i=1,,m

mit

kij(x):=|fixj(x)||xjfi(x)|

Die Größen kij(x) entscheiden demnach über den Einfluss der relativen Fehler |Δxj|/|xj| in den Daten auf den relativen Fehler |Δyi|/|yi| im Ergebnis. Sie werden deshalb häufig auch Verstärkungsfaktoren genannt. Im Fall, dass die Ausgangsgleichung einen Algorithmus beschreibt, sagt man, dass dieser stabil ist, wenn alle kij(x) „klein“, idealerweise ungefähr gleich 1 sind. Anderenfalls sagt man, er ist instabil.

Im Fall, dass die Ausgangsgleichung ein mathematisches Problem beschreibt, spricht man bei den kij(x) auch von Konditionszahlen (engl. to condition = bedingen, bestimmen). Sind die Konditionszahlen dem Betrag nach groß, hat man also ein schlecht konditioniertes, anderenfalls ein gut konditioniertes Problem. Für manche Zwecke ist aber diese Definition von Konditionszahlen unpraktisch, so dass auch andere Größen als Konditionszahlen bezeichnet werden (vgl. Definition 2.18).

Beispiel 1.11

Die Lösungen λ1 und λ2 einer quadratischen Gleichung

(1.6) x22px+q=0

sind gegeben durch

(1.7) λ1,2:=p±p2q,

wobei wir hier davon ausgehen, dass die Gleichung zwei unterschiedliche reelle Lösungen besitzt, also

p2q>0

ist. Zur Analyse der Fehlerempfindlichkeit der beiden Lösungen von (1.6) in Abhängigkeit von den Eingabedaten p und q betrachten wir diese nun als Funktionen von p und q. Wir untersuchen dazu die beiden Gleichungen

(1.8) λ1(p,q)=p+p2q,λ2(p,q)=pp2q.

(Im Vergleich mit (1.4) ist x:=(p,q),m=2,fi:=λi und entsprechen die rechten Seiten in (1.8) den yi.) Man hat dafür

(1.9) λ1+λ2=2p,λ1λ2=2p2q,λ1λ2=q.

Damit errechnet man

λ1,2p=1±pp2q=p2q±pp2q=±λ1,2λ1λ2,
λ1,2p=12p2q=1λ1λ2.

Hieraus ergeben sich die Verstärkungsfaktoren

k11:=|λ1ppλ1|=|(2λ1λ1λ2)(λ1+λ22λ1)|=|1+(λ1/λ2)||1(λ1/λ2)|,
k12:=|λ1qqλ1|=|(1λ1λ2)(λ1λ2λ1)|=1|1(λ1/λ2)|,
k21:=|λ2ppλ2|=|(2λ2λ1λ2)(λ1+λ22λ2)|=k11,
k22:=|λ2qqλ2|=|(1λ1λ2)(λ1λ2λ2)|=k12.

Die Bestimmung der Lösungen von (1.6) ist somit für λ1λ2 ein schlecht konditioniertes Problem. Zur Veranschaulichung geben wir ein Zahlenbeispiel. Es seien p:=2 und q:=3.999. Dann sind λ1=2.01 und λ2=1.99 die beiden Nullstellen von (1.6). Für die Verstärkungsfaktoren ergibt sich in diesem Fall

k11=k21=|1+(λ1/λ2)||1(λ1/λ2)|200,k22=k12=1|1(λ1/λ2)|99.5.

Somit ist zu erwarten, dass Eingabefehler in den Daten p und q in Bezug auf die Lösungen λ1 und λ2 von (1.6) um den 100- bis 200-fachen Wert verstärkt werden.

Wir wollen nun zwei unterschiedliche Algorithmen zur Berechnung von

λ1:=p+p2q,λ2:=pp2q

betrachten und zwar unter den Bedingungen

(1.10) p2q>0,|q|p2,p<0.

In diesem Fall ist offenbar

λ1|p|+|p|=0,λ2|p||p|=2|p|,

d. h. für nicht zu kleine |p| auch λ1λ2 und somit das Problem der Bestimmung der Lösungen der quadratischen Gleichung (1.6) gut konditioniert. Ein „Lösungsalgorithmus“ könnte nun zunächst darin bestehen, hintereinander die folgenden Größen zu berechnen

u:=p2,v:=uq,w:=v0.

Wegen p<0 sollte man als nächstes den unkritischen Wert

λ2:=pw

berechnen. Zur Berechnung von λ1 betrachten wir nun zwei Varianten (vgl. (1.9)):

Variante A:λ1:=p+w,
Variante B:λ1:=q/λ2.

Da unter den Voraussetzungen (1.10) wp gilt, tritt bei Variante A zwangsläufig Auslöschung auf. Betrachtet man λ1 als Funktion in den Variablen p und w, so erhält man für die Verstärkungsfaktoren

k11(p,w)=|pp+w|=|11+(w/p)|1,
k12(p,w)=|wp+w|=|11+(p/w)|1.

Also ist die Variante A im Fall (1.10) nicht stabil. Bei Variante B erhält man dagegen

k11(q,λ2)=k12(q,λ2)=1.

D. h., der Algorithmus B ist stabil. Für p:=2 und q:=0.01 ergibt sich bei exakter (bzw. 4-stelliger) Rechnung

u:=p2=4(4.000),
v:=uq=3.99(3.990),
w:=v=1.99749(1.997),
λ2:=pw=3.9974(3.997).

Die exakte Lösung für λ1 ist λ1=0.0025. Bei Rechnung mit 4-stelliger Mantisse erhält man im Fall der Variante B λ1=0.0025, während man für die Variante A λ1=0.0030 erhält mit einem relativen Fehler bezüglich der exakten Lösung von

|0.00300.00250.0025|=0.2

Im Fall

p2q>0,|q|p2,p>0

gilt offenbar wp. Somit ist die Berechnung von λ1:=p+w stabil möglich und von λ2:=pw kritisch. Ein stabiler Algorithmus ergibt sich hier durch die Vertauschung der Rollen von λ1 und λ2 oben.

Wir nennen einen Algorithmus zur Lösung eines bestimmten Problems numerisch stabiler als einen zweiten zur Lösung desselben Problems, wenn der Gesamteinfluss aller Rundungsfehler auf die Lösung bei dem ersten Algorithmus kleiner als bei dem zweiten ist.


Siehe auch

Seiteninformation

Diese Lernresource können Sie als Wiki2Reveal-Foliensatz darstellen.

Wiki2Reveal

Dieser Wiki2Reveal Foliensatz wurde für den Lerneinheit Kurs:Numerik I' erstellt der Link für die Wiki2Reveal-Folien wurde mit dem Wiki2Reveal-Linkgenerator erstellt.