:: wikimiki.org ::
| Gleitkommazahlen |
Gleitkommazahlen
Eine Gleitkommazahl (auch Gleitpunktzahl, fälschlich Fließkommazahl; engl. floating point number) ist eine exakte oder approximative Darstellung einer rationalen Zahl in einem bestimmten Format. Die Menge der Gleitkommazahlen ist eine endliche Teilmenge der rationalen Zahlen, meist erweitert um einige Spezialelemente (+Unendlich, –Unendlich, NaN (=„Not A Number“), –0, usw. siehe unten). Zusammen mit den auf ihnen definierten Operationen bilden die Gleitkommazahlen eine endliche Arithmetik, die vor allem im Hinblick auf numerische Berechnungen mit Computern entwickelt wurde. Dort dienen die Gleitkommazahlen meist als rationale Näherungen für reelle Zahlen.
Idee
Bei Gleitkommazahlen ist nicht die absolute Anzahl von Stellen konstant, sondern die Anzahl wesentlicher oder signifikanter Stellen. Gleitkommaarithmetik wird auch als „linksbündige“, Festkommaarithmetik dagegen als „rechtsbündige“ Arithmetik bezeichnet wegen des unterschiedlichen Umgangs mit großen Resultaten bzw. Zwischenresultaten von Berechnungen.
Die Gleitkommadarstellung wurde von Konrad Zuse für seine Computer Z1 und Z3 erfunden. Im Gegensatz zur Festkommadarstellung wird bei der Gleitkommadarstellung die Zahl geteilt in eine Mantisse und einen Exponenten zu einer bestimmten, festen Basis, wodurch bei gleichem Speicherplatzbedarf ein größerer Wertebereich als bei Festkommadarstellung abgedeckt werden kann.
Das heißt, dass man eine Zahl a ≠ 0 durch zwei Zahlen m und e solcherart darstellen kann, dass a = m · be gilt. Zur Darstellung von Gleitkommazahlen wählt man eine beliebige natürliche Zahl b>1 als Basis (auch: Radix) und eine Präzision p, die angibt, wieviele Ziffern gespeichert werden sollen.
Die Zahl m wird Mantisse genannt und ist eine Zahl mit p Stellen der Form ±z,zzz...zzz . Hierbei steht z stellvertretend für eine Ziffer zwischen 0 und b – 1. Eine Mantisse m heißt normalisiert, wenn ihre erste Ziffer ungleich Null ist. Die Normalisierung wird meist so definiert, dass entweder (d.h. ) oder (d.h. ) ist, d.h. dass die erste wesentliche, d.h. von 0 verschiedene Ziffer unmittelbar links bzw. unmittelbar rechts vom Komma stehen muss. Dies wird durch Anpassung des (ganzzahligen) Exponenten e erreicht. Bei Darstellungen von Gleitkommazahlen, die ein Vorzeichenbit verwenden, wird außerdem verlangt, dass die Mantisse positiv ist. e ist eine ganze Zahl und wird Exponent genannt. (Siehe auch: Logarithmus)
Beispiel:
Eine Gleitkommazahl mit vier dezimalen Stellen (b = 10, p = 4) kann dazu verwendet werden, 4,321 oder 0,00004321 darzustellen. Es wird allerdings in Kauf genommen, dass bei einer derartigen Darstellung Zahlen gerundet werden. So wird etwa aus 432,123 der Wert 432,1, und aus 43.212,3 der Wert 43.210.
Darstellung
Bild:IEEE-754-single1.png Bitdarstellung des IEEE 754 „Single“ Datentyps
Binäre Gleitkommazahlen werden analog zur wissenschaftlichen Schreibweise von Dezimalzahlen dargestellt. In der wissenschaftlichen Schreibweise wird die Zahl 0,00001234 als 1,234·10-5 geschrieben, oder die Zahl 123.400 als 1,234·105. Dabei ist die wissenschaftliche Schreibweise normalisiert: in der Mantisse wird die erste wesentliche Ziffer links vom Dezimal-Komma geschrieben, alle anderen Ziffern rechts davon.
Für die Darstellung als Gleitkommazahl wird eine Zahl in drei Teile aufgespalten. Ein Vorzeichenbit zeigt dabei negative Werte der Mantisse an. Für die Mantisse wird eine gewisse Anzahl von Bits festgelegt, sie wird im Binärsystem gespeichert. Ebenso wird der Exponent als gewisse Anzahl von Bits gespeichert.
Das gebräuchliche IEEE-Format für Gleitkommazahlen verwendet eine normalisierte Darstellung der Mantisse. Dadurch ist die Position des Kommas implizit bekannt. Ebenso ist die Basis b = 2 implizit durch die binäre Codierung aller Zahlen bekannt.
Hidden Bit
Bei der Darstellung normalisierter Mantissen im Binärsystem kann ein Bit eingespart werden. Da die erste Stelle einer normalisierten Zahl immer ungleich 0 ist, ist diese Stelle im Binärsystem immer gleich 1. Das heißt, dass diese erste Eins nicht explizit gespeichert werden muss, da dies implizit bekannt ist. Das erwähnte IEEE-Format für Gleitkommazahlen macht von dieser Einsparungsmöglichkeit Gebrauch.
Allerdings bedeutet die Verwendung eines derartigen Hidden Bit, dass die Null nicht mehr direkt als Gleitkommazahl gespeichert werden kann. Für die Darstellung der Null wird deshalb eine bestimmte Bitfolge reserviert.
Darstellung negativer Exponenten
Exponenten können ebenso wie die Mantisse negativ sein. Meist werden negative Exponenten jedoch nicht im Zweierkomplement dargestellt, sondern in der so genannten Biased-Darstellung. Dabei wird zum eigentlichen Exponenten eine festgelegte Zahl, der Bias (engl. für Ausrichtung oder Vorspannung), addiert.
Bei einem Bias von 127 wird aus einem Exponenten e = –1 etwa 126, aus e = –127 wird 0 und aus e = 7 wird 134. Die negativen Werte werden also durch Addition des Bias in den positiven Bereich verschoben.
Der Vorteil der Biased-Darstellung besteht darin, dass auf diese Weise ein Größer/Kleiner-Vergleich zwischen zwei Gleitkommazahlen erleichert wird. Es genügt, die Ziffernfolgen em, also jeweils Exponent e gefolgt von Mantisse m, lexikografisch miteinander zu vergleichen.
Eine Gleitkomma-Subtraktion mit anschließendem Vergleich auf Null wäre weitaus aufwändiger. Der Nachteil der Biased-Darstellung gegenüber der Zweierkomplement-Darstellung besteht darin, dass nach einer Addition zweier Biased-Exponenten der Bias subtrahiert werden muss, um das richtige Ergebnis zu erhalten.
Gleitkommazahlen in der Digitaltechnik
Die oben erwähnten Beispiele sind im Dezimalsystem angegeben, das heißt mit einer Basis b = 10. Computer verwenden stattdessen das Binärsystem mit einer Basis b = 2. Gleitkommazahlen werden in Computern normalerweise als Folgen von 32 Bit („einfache Genauigkeit“) oder 64 Bit („doppelte Genauigkeit“) dargestellt.
Manche Prozessoren erlauben auch längere Gleitkommazahlen, so kennen die von der Intel x86 Serie abgeleiteten Prozessoren (u.a. Intel Pentium und AMD Athlon) eine Gleitkommazahldarstellung mit 80 Bit für Zwischenergebnisse. Manche Systeme erlauben auch Gleitkommazahlen mit 128 Bit. Einige ältere Systeme verwendeten auch noch andere Längen wie z.B. 40 Bit.
Die IEEE hat die Darstellung von Gleitkommazahlen in ihrem Standard IEEE 754 reglementiert; beinahe alle modernen Prozessoren folgen diesem Standard. Ausnahmen sind einige IBM-Großrechnersysteme, die VAX-Architektur und einige Supercomputer, etwa von Cray sowie die Java Virtual Machine mit den Java-Typen float und double sowie den zugehörigen Wrapper-Klassen Float und Double. (vgl. hierzu z.B. die Darstellung von William Kahan unter [http://www.cs.berkeley.edu/~wkahan/JAVAhurt.pdf http://www.cs.berkeley.edu/~wkahan/JAVAhurt.pdf].)
Die tatsächliche Darstellung im Computer besteht also aus einem Vorzeichen-Bit, einigen Mantissen-Bits und einigen Exponenten-Bits. Wobei die Mantisse meist normiert ist und Zahlen im Intervall [1; 2[ darstellt. (Da in diesem Intervall das erste Bit mit der Wertigkeit Eins stets gesetzt ist, wird es meist implizit angenommen und nicht gespeichert.) Der Exponent wird meist im Biased-Format, oder auch im Zweierkomplement dargestellt. Des weiteren werden zur Darstellung besonderer Werte (Null, Unendlich, Keine Zahl) meist einige Exponentenwerte, z.B. der größtmögliche und der kleinstmögliche Exponent, reserviert.
Eine Zahl f wird demzufolge als f = s · m · 2e dargestellt, wobei s Element von ist.
Durch die unterschiedliche binäre Darstellung der Zahlen kann es in beiden Systemen zu Artefakten kommen, das heißt, Zahlen die unmittelbar „rund“ erscheinen, z. B. als 12.45 ausgegeben werden, haben in Wirklichkeit bei der Berechnung nur einen bitmäßig dargestellten Wert von 12.44999999900468785. Dies kann in nachfolgenden Berechnungen zu unvorhergesehenen Ab- oder Aufrundungsfehlern führen.
Die oben erwähnten Artefakte sind im Binärsystem unvermeidlich, da viele Zahlen, die im Dezimalsystem exakt dargestellt werden können, im Binärsystem periodische Zahlen mit unendlich vielen Nachkommastellen sind. Sie könnten nur durch die Verwendung von BCD-kodierten Festkommazahlen vermieden werden. Binäre Gleitkommazahlen werden jedoch nach wie vor aus verschiedenen Gründen eingesetzt.
Gleitkommazahlen in der Mathematik
In der Mathematik ist eine Gleitkommazahl ein Tupel , wobei die Basis, den Bereich des Exponenten und
die Länge der Mantisse darstellt.
Damit ist eine reelle Zahl x ≠ 0 darstellbar durch ein a und ein e, so dass: und mit .
Hiermit ist eine mathematische Betrachtung des Rundungsfehlers möglich. Die obige Darstellung realisiert eine Projektion und damit ist der Rundungsfehler definiert als .
Bei double-Werten entspricht gerade (ungefähr ).
Berechnung einer IEEE single Gleitkommazahl (32-Bit-Gleitkommazahl)
Hier werden die genauen Rechenschritte vorgestellt, um eine Dezimalzahl in eine binäre Gleitkommazahl vom Typ Single nach IEEE 754 umzuwandeln.
Dazu müssen nacheinander die drei Werte (Vorzeichen (1bit), Mantisse und Exponent ) berechnet werden, aus denen sich die Zahl zusammensetzt:
Vorzeichen
Je nachdem, ob die Zahl positiv oder negativ ist, ist das Vorzeichen +1 oder -1. Ein positives Vorzeichen wird mit einem Vorzeichenbit 0 gespeichert, negative Zahlen werden durch eine 1 im Vorzeichenbit gekennzeichnet.
Alle weiteren Berechnungen erfolgen mit dem Betrag der Zahl.
Exponent
Als nächstes wird der Exponent gespeichert. Beim IEEE single-Datentyp sind dafür 8 Bit vorgesehen.
Der Exponent muss so gewählt werden, dass die Mantisse einen Wert zwischen 1 und 2 erhält:
Wenn hierbei ein Wert für den Exponenten heraus kommt, der kleiner –126 oder größer 127 ist, kann die Zahl mit diesem Datentyp nicht gespeichert werden. Statt dessen wird die Zahl als 0 (Null) oder als „unendlich“ abgespeichert.
Der Wert für den Exponenten wird jedoch nicht direkt gespeichert, sondern um einen Bias-Wert erhöht, um negative Werte zu vermeiden. Bei IEEE single ist der Bias-Wert 127. Somit werden die Exponentenwerte –126...+127 als so genannte „Charakteristik“ zwischen 1...254 gespeichert. Die Werte 0 und 255 als Charakteristik sind reserviert für die speziellen Zahlenwerte „Null“, „Unendlich“ und „NaN“.
Mantisse
Die Mantisse wird nun in den verbleibenden 23 Bit abgespeichert:
Zahlenbeispiel mit der Zahl 11,25
Zahl = +11,25
Vorzeichen = positiv -> 0binär
--> 3 + 127 = 130 -> 10000010binär
-> 01101000000000000000000binär
Damit ergibt sich folgende single Variable:
0 10000010 01101000000000000000000
Umkehrung
Will man aus einer Gleitkommazahl im Maschinenwort eine Dezimalzahl errechnen so kann man dies mit folgender Formel recht schnell erledigen:
Der Exponent E errechnet sich wie folgt:
Wobei B hier für die Basis (Digitalrechner: B=2), VZ für das Vorzeichen, C für die Charakteristik, E für den Exponenten, e für den Exponenten reservierte Bitstellen und M für die Mantisse steht.
Siehe auch
- Minifloats
- einfache Genauigkeit
- doppelte Genauigkeit
- vierfache Genauigkeit
- Integer (Datentyp)
Kategorie:Numerische Mathematik
ja:浮動小数点数
ko:부동소수점
Rationale ZahlEine rationale Zahl ist eine Zahl, die als Verhältnis (lateinisch Ratio) zweier ganzer Zahlen ausgedrückt werden kann (für gewöhnlich schreibt man , lies a geteilt durch b), wobei der Nenner (hier ) ungleich Null ist. Jede Zahl, die sich als Bruch zweier ganzer Zahlen darstellen lässt, ist also eine rationale Zahl.
Definition
Eine reelle Zahl x heißt dann rational, wenn man sie als Quotient (oder Bruch) zweier ganzer Zahlen mit darstellen kann. Andernfalls heißt x irrational.
Insbesondere ist jede ganze Zahl rational (wähle z.B. ).
Bemerkenswerterweise besitzt jede rationale Zahl eine periodische Dezimalbruchentwicklung.
Zur Erklärung der rationalen Zahlen
Jede rationale Zahl lässt sich im Dezimalsystem darstellen, wobei bestimmte Zahlen eine periodische Dezimalbruch-Entwicklung haben. Im Gegensatz dazu haben alle irrationalen Zahlen (wie , oder die Kreiszahl ) eine unendliche, nichtperiodische Ziffernfolge.
Die Menge aller rationalen Zahlen wird mit bezeichnet und bildet einen Körper (die Bezeichnung ist auch noch gebräuchlich).
siehe auch: reelle Zahlen, natürliche Zahlen, irrationale Zahlen
Darstellungsformen
Die rationalen Zahlen haben neben der Darstellung als gemeiner Bruch eine andere Darstellung, nämlich die Dezimalbruchentwicklung; z. B. ist
In den eckigen Klammern sind die entsprechenden Entwicklungen im Dualsystem angegeben.
Die Dezimal-, Binär- und anderen b-adischen Entwicklungen rationaler Zahlen sind stets periodisch oder endlich (d.h. periodisch mit Periode 0). Mehrstellige Perioden sind hier jeweils durch Leerzeichen abgetrennt.
Die Bruchform einer rationalen Zahl kann man oft in so genannte Partialbrüche zerlegen, deren Nenner ganze Potenzen von Primzahlen sind; z. B.
:.
Es gibt auch Zerlegungen als so genannte ägyptische Brüche (Stammbrüche), z. B.
:,
die alten Ägypter kannten nur solche Summen und haben mit diesen gerechnet.
Das Zahlentripel ist ein Beispiel eines pythagoräischen Bruchs (siehe auch pythagoräisches Tripel), denn
:.
Konstruktion von aus
Mathematisch gesehen, definiert man Brüche als geordnete Paare ganzer Zahlen , wobei wieder ungleich Null ist - oft wird auch einfach als (nichtnegative) natürliche Zahl definiert. Dann definiert man Addition und Multiplikation mit diesen Paaren mit Hilfe folgender Regeln:
::
::
Einhergehend mit unserer Erwartung, dass sein soll, führen wir eine Äquivalenzrelation auf diesen Paaren mit der folgenden Regel ein:
:: genau dann wenn, .
Mit den obigen Rechenregeln bildet die Menge der Äquivalenzklassen modulo ~ einen Körper , dessen Elemente rationale Zahlen genannt werden. Die Äquivalenzklasse von schreibt man als .
Eigenschaften
Man kann zeigen, dass der kleinste Körper ist, der die natürlichen Zahlen enthält. ist der Quotientenkörper der ganzen Zahlen .
Rationale Zahlen liegen dicht auf der Zahlengerade, das heißt: Jede reelle Zahl, i.e. jeder Punkt auf der Zahlengerade, kann beliebig genau durch rationale Zahlen angenähert werden.
Zwischen zwei rationalen Zahlen a und b liegt stets eine weitere rationale Zahl c (und somit beliebig viele).
Man nehme einfach das arithmetische Mittel dieser beiden Zahlen:
:
Was zunächst überraschend klingt, ist die Tatsache, dass die Menge der rationalen Zahlen gleichmächtig zu der Menge der natürlichen Zahlen ist. Das heißt: es gibt eine bijektive Abbildung zwischen und , die jeder rationalen Zahl q eine natürliche Zahl n zuweist und umgekehrt.
Verwandte Themen
- Cantor-Diagonalisierung
- Bewertungstheorie: -Bewertung, -ganze Zahl
- Ordinalzahlen
- Zahlensystem
Weblinks
- http://www.wakkanet.fi/%7Epahio/ohjelmi.html PC-Programm »Bruch«, berechnet gewöhnliche, partielle, ägyptische, pythagoräische und dyadische Brüche, Dezimal- und Binärentwicklungen; löst exakt Gleichungen zweiten Grades mit rationalen Koeffizienten; konkrete rationale cauchysche Folgen (auch auf deutsch und französisch)
Kategorie:Zahlen
ja:有理数
ko:유리수
simple:Rational number
th:จำนวนตรรกยะ
Rationale ZahlEine rationale Zahl ist eine Zahl, die als Verhältnis (lateinisch Ratio) zweier ganzer Zahlen ausgedrückt werden kann (für gewöhnlich schreibt man , lies a geteilt durch b), wobei der Nenner (hier ) ungleich Null ist. Jede Zahl, die sich als Bruch zweier ganzer Zahlen darstellen lässt, ist also eine rationale Zahl.
Definition
Eine reelle Zahl x heißt dann rational, wenn man sie als Quotient (oder Bruch) zweier ganzer Zahlen mit darstellen kann. Andernfalls heißt x irrational.
Insbesondere ist jede ganze Zahl rational (wähle z.B. ).
Bemerkenswerterweise besitzt jede rationale Zahl eine periodische Dezimalbruchentwicklung.
Zur Erklärung der rationalen Zahlen
Jede rationale Zahl lässt sich im Dezimalsystem darstellen, wobei bestimmte Zahlen eine periodische Dezimalbruch-Entwicklung haben. Im Gegensatz dazu haben alle irrationalen Zahlen (wie , oder die Kreiszahl ) eine unendliche, nichtperiodische Ziffernfolge.
Die Menge aller rationalen Zahlen wird mit bezeichnet und bildet einen Körper (die Bezeichnung ist auch noch gebräuchlich).
siehe auch: reelle Zahlen, natürliche Zahlen, irrationale Zahlen
Darstellungsformen
Die rationalen Zahlen haben neben der Darstellung als gemeiner Bruch eine andere Darstellung, nämlich die Dezimalbruchentwicklung; z. B. ist
In den eckigen Klammern sind die entsprechenden Entwicklungen im Dualsystem angegeben.
Die Dezimal-, Binär- und anderen b-adischen Entwicklungen rationaler Zahlen sind stets periodisch oder endlich (d.h. periodisch mit Periode 0). Mehrstellige Perioden sind hier jeweils durch Leerzeichen abgetrennt.
Die Bruchform einer rationalen Zahl kann man oft in so genannte Partialbrüche zerlegen, deren Nenner ganze Potenzen von Primzahlen sind; z. B.
:.
Es gibt auch Zerlegungen als so genannte ägyptische Brüche (Stammbrüche), z. B.
:,
die alten Ägypter kannten nur solche Summen und haben mit diesen gerechnet.
Das Zahlentripel ist ein Beispiel eines pythagoräischen Bruchs (siehe auch pythagoräisches Tripel), denn
:.
Konstruktion von aus
Mathematisch gesehen, definiert man Brüche als geordnete Paare ganzer Zahlen , wobei wieder ungleich Null ist - oft wird auch einfach als (nichtnegative) natürliche Zahl definiert. Dann definiert man Addition und Multiplikation mit diesen Paaren mit Hilfe folgender Regeln:
::
::
Einhergehend mit unserer Erwartung, dass sein soll, führen wir eine Äquivalenzrelation auf diesen Paaren mit der folgenden Regel ein:
:: genau dann wenn, .
Mit den obigen Rechenregeln bildet die Menge der Äquivalenzklassen modulo ~ einen Körper , dessen Elemente rationale Zahlen genannt werden. Die Äquivalenzklasse von schreibt man als .
Eigenschaften
Man kann zeigen, dass der kleinste Körper ist, der die natürlichen Zahlen enthält. ist der Quotientenkörper der ganzen Zahlen .
Rationale Zahlen liegen dicht auf der Zahlengerade, das heißt: Jede reelle Zahl, i.e. jeder Punkt auf der Zahlengerade, kann beliebig genau durch rationale Zahlen angenähert werden.
Zwischen zwei rationalen Zahlen a und b liegt stets eine weitere rationale Zahl c (und somit beliebig viele).
Man nehme einfach das arithmetische Mittel dieser beiden Zahlen:
:
Was zunächst überraschend klingt, ist die Tatsache, dass die Menge der rationalen Zahlen gleichmächtig zu der Menge der natürlichen Zahlen ist. Das heißt: es gibt eine bijektive Abbildung zwischen und , die jeder rationalen Zahl q eine natürliche Zahl n zuweist und umgekehrt.
Verwandte Themen
- Cantor-Diagonalisierung
- Bewertungstheorie: -Bewertung, -ganze Zahl
- Ordinalzahlen
- Zahlensystem
Weblinks
- http://www.wakkanet.fi/%7Epahio/ohjelmi.html PC-Programm »Bruch«, berechnet gewöhnliche, partielle, ägyptische, pythagoräische und dyadische Brüche, Dezimal- und Binärentwicklungen; löst exakt Gleichungen zweiten Grades mit rationalen Koeffizienten; konkrete rationale cauchysche Folgen (auch auf deutsch und französisch)
Kategorie:Zahlen
ja:有理数
ko:유리수
simple:Rational number
th:จำนวนตรรกยะ
Numerische MathematikDie numerische Mathematik, kurz Numerik genannt, beschäftigt sich als Teilgebiet der Mathematik mit der Konstruktion und Analyse von Algorithmen für kontinuierliche mathematische Probleme.
Überblick
Interesse an solchen Algorithmen besteht meist aus einem der beiden folgenden Gründe:
#Es gibt zu dem Problem keine explizite Lösungsdarstellung (so zum Beispiel bei den Navier-Stokes-Gleichungen oder dem Dreikörperproblem) oder
#die Lösungsdarstellung existiert, ist jedoch nicht geeignet, um die Lösung schnell auszurechnen beziehungsweise sie liegt in einer Form vor, in der Rechenfehler sich stark bemerkbar machen (zum Beispiel bei vielen Potenzreihen).
Unterschieden werden zwei Typen von Verfahren. Einmal direkte, die nach endlicher Zeit bei unendlicher Rechnergenauigkeit die exakte Lösung eines Problems liefern und auf der anderen Seite Näherungsverfahren, welche — wie der Name sagt — nur Approximationen liefern. Ein Beispiel für ersteres ist das Gaußsche Eliminationsverfahren, welches die Lösung eines linearen Gleichungssystems liefert. Näherungsverfahren sind unter anderem Quadraturformeln, die den Wert eines Integrals näherungsweise berechnen oder auch das Newton-Verfahren, das iterativ bessere Approximationen an eine Nullstelle einer Funktion liefert.
Unterschiedliche Verfahren werden nach Laufzeit, Stabilität und Robustheit verglichen.
Geschichte
Der Wunsch, mathematische Gleichungen zahlenmäßig (auch näherungsweise) lösen zu können, besteht seit der Antike. Die alten Griechen kannten bereits Probleme, die sie nur näherungsweise lösen konnten, wie die Berechnung von Flächen (Integration) oder der Kreiszahl π. In diesem Sinne kann Archimedes, der für beide Probleme Algorithmen lieferte, als der erste bedeutende Numeriker bezeichnet werden. Im Zeitalter der Computer-Technik gewinnt das numerische Verfahren dagegen dramatisch an Bedeutung.
Die Namen klassischer Verfahren zeigen deutlich, dass der algorithmische und approximative Zugang zu mathematischen Problemen immer wichtig war, um rein theoretische Aussagen fruchtbar nutzen zu können. Konzepte wie Konvergenzgeschwindigkeit oder Stabilität waren auch beim Rechnen per Hand sehr wichtig, so lässt beispielsweise hohe Konvergenzgeschwindigkeit darauf hoffen, schnell fertig zu werden. Und schon Gauß bemerkte, dass sich seine Rechenfehler beim Gaußschen Eliminationsverfahren manchmal desaströs auf die Lösung auswirkten und sie so komplett unbrauchbar machten. Er zog deswegen das Gauß-Seidel-Verfahren vor, wo man Fehler durch das Ausführen eines weiteren Iterationsschrittes leicht ausgleichen konnte.
Um das monotone Durchführen von Algorithmen zu erleichtern, wurden im 19. Jahrhundert mechanische Rechenmaschinen entwickelt und schließlich in den 1930ern der erste Computer von Konrad Zuse. Der Zweite Weltkrieg beschleunigte die Entwicklung dramatisch und insbesondere John von Neumann trieb im Rahmen des Manhattan Projects sowohl mathematisch als auch technisch die Numerik voran. Die Zeit des kalten Krieges war vor allem von militärischen Anwendungen wie Wiedereintrittsproblemen geprägt, doch die Explosion der Rechnerleistung seit den 1980ern hat zivile Anwendungen in den Vordergrund treten lassen. Ferner hat sich der Bedarf nach schnellen Algorithmen mit dem Geschwindigkeitszuwachs entsprechend verstärkt. Für viele Probleme hat die Forschung dies leisten können und so hat sich die Geschwindigkeit der Algorithmen in den letzten 20 Jahren um etwa dieselbe Größenordnung verbessert wie die CPU-Leistungen. Heutzutage sind numerische Verfahren in jedem technischen oder wissenschaftlichen Bereich präsent und Alltagswerkzeug.
Fehleranalyse
Ein Aspekt bei der Analyse der Algorithmen in der Numerik ist die Fehleranalyse. Bei einer numerischen Berechnung kommen verschiedene Typen von Fehlern zum Tragen: Beim Rechnen mit Computerzahlen treten unvermeidlich Fehler auf. Diese Fehler lassen sich zwar zum Beispiel durch eine Erhöhung der Stellenzahl verkleinern, aber nicht prinzipiell verhindern, da die Stellenzahl endlich bleiben muss. Das numerische Verfahren ersetzt ferner das kontinuierliche mathematische Problem durch ein diskretes, also endliches Problem. Wie das Problem auf die Diskretisierung, also kleine Störungen in den Anfangsdaten reagiert, wird mit der Kondition gemessen. Hat ein Problem eine große Kondition, so hängt die Lösung des Problems empfindlich von den Anfangsdaten ab, was eine numerische Lösung erschwert. Man spricht von einem schlecht gestellten Problem.
Dabei tritt bereits der so genannte Diskretisierungsfehler auf, der im Rahmen der Konsistenzanalyse abgeschätzt und bewertet wird. Wie sich sich solche Fehler beim Weiterrechnen vergrößern, wird mit Hilfe der Stabilitätsanalyse bewertet.
Konsistenz und Stabilität des Algorithmus führen im Regelfall zu Konvergenz.
Teilgebiete
Teilgebiete der Numerik sind unter anderem:
- Optimierung
- Approximation
- Numerische Lösung nichtlinearer Gleichungen
- Numerik von Differentialgleichungen
- Numerik von Integralgleichungen
- Numerische Lineare Algebra
Eine kommentierte Zusammenstellung von ausgewählten numerischen Verfahren ist hier: Liste numerischer Verfahren.
Literatur
- Martin Hermann: Numerische Mathematik. Oldenbourg Verlag, München und Wien 2001 ISBN 3-486-25558-4
- Gerhard Opfer: Numerische Mathematik für Anfänger. Eine Einführung für Mathematiker, Ingenieure und Informatiker. 4. Aufl. Vieweg Verlag, Braunschweig 2002 ISBN 3-528-37265-6
- Robert Plato: Numerische Mathematik kompakt. Grundlagenwissen für Studium und Praxis. Vieweg Verlag, Braunschweig 2000 ISBN 3-528-03153-0
- Thomas Huckle, Stefan Schneider: Numerik für Informatiker. Springer Verlag, Berlin 2002 ISBN 3-540-42387-7
ja:数値解析
Computer
]
]
Ein Computer // ist ein Apparat, der Informationen mit Hilfe einer programmierbaren Rechenvorschrift verarbeiten kann. Der englische Begriff computer, abgeleitet vom Verb to compute (rechnen), bezeichnete ursprünglich Menschen, die quälend langwierige Berechnungen vornahmen, zum Beispiel für Astronomen im Mittelalter. Bis in die 1960er Jahre wurde diese Arbeit vornehmlich von Frauen mit Hilfe von Rechenmaschinen erledigt. Später ging der Begriff auf die Maschinen selbst über.
Einst war die Informationsverarbeitung mit Computern auf die Verarbeitung von Zahlen beschränkt. Mit zunehmender Leistungsfähigkeit eröffneten sich neue Einsatzbereiche, Computer sind heute in allen Bereichen des täglichen Lebens vorzufinden: Sie dienen der Verarbeitung und Ausgabe von Informationen in Wirtschaft und Behörden, der Berechnung der Statik von Bauwerken bis hin zur Steuerung von Waschmaschinen und Automobilen. Die leistungsfähigsten Computer werden eingesetzt, um komplexe Vorgänge zu simulieren: Beispiele sind die Klimaforschung, thermodynamische Fragestellungen, medizinische Berechnungen – bis hin zu militärischen Aufgaben, zum Beispiel der Simulation des Einsatzes von nuklearen Waffen. Viele Geräte des Alltags, vom Telefon über den Videorekorder bis hin zur Münzprüfung in Warenautomaten, werden heute von integrierten Kleinstcomputern gesteuert (Embedded Systems).
Grundprinzipien
Grundsätzlich sind zwei Bauweisen zu unterscheiden: Ein Computer ist ein Digitalcomputer, wenn er mit digitalen Geräteeinheiten digitale Daten verarbeitet; er ist ein Analogcomputer, wenn er mit analogen Geräteeinheiten analoge Daten verarbeitet.
Bis auf wenige Ausnahmen werden heute fast ausschließlich Digitalcomputer eingesetzt. Diese folgen gemeinsamen Grundprinzipien, mit denen ihre freie Programmierung ermöglicht wird. Bei einem Digitalcomputer werden dabei zwei grundsätzliche Bausteine unterschieden: Die Hardware, die aus den elektronischen, physisch anfassbaren Teilen des Computers gebildet wird, sowie die Software, die die Programmierung des Computers beschreibt.
Ein Digitalcomputer besteht zunächst nur aus Hardware. Die Hardware stellt erstens einen so genannten Speicher bereit, in dem Daten wie in Schubladen gespeichert und jederzeit zur Verarbeitung oder Ausgabe abgerufen werden können. Zweitens verfügt das Rechenwerk der Hardware über grundlegende Bausteine für eine freie Programmierung, mit denen jede beliebige Verarbeitungslogik für Daten dargestellt werden kann: Diese Bausteine sind im Prinzip die Berechnung, der Vergleich, und der bedingte Sprung. Ein Digitalcomputer kann beispielsweise zwei Zahlen addieren, das Ergebnis mit einer dritten Zahl vergleichen und dann abhängig vom Ergebnis entweder an der einen oder der anderen Stelle des Programms fortfahren. In der Informatik wird dieses Modell theoretisch durch die Turing-Maschine abgebildet; die Turing-Maschine stellt die grundsätzlichen Überlegungen zur Berechenbarkeit dar.
Erst durch Software wird der Digitalcomputer jedoch nützlich. Jede Software ist im Prinzip eine definierte, funktionale Anordnung der oben geschilderten Bausteine Berechnung, Vergleich und Bedingter Sprung, wobei die Bausteine beliebig oft verwendet werden können. Diese Anordnung der Bausteine, die als Programm bezeichnet wird, wird in Form von Daten im Speicher des Computers abgelegt. Von dort kann sie von der Hardware ausgelesen und abgearbeitet werden. Dieses Funktionsprinzip der Digitalcomputer hat sich seit seinen Ursprüngen in der Mitte des 20. Jahrhunderts nicht wesentlich verändert, wenngleich die Details der Technologie erheblich verbessert wurden.
Analogrechner funktionieren jedoch nach einem anderen Prinzip. Bei ihnen ersetzen analoge Bauelemente (Verstärker, Kondensatoren) die Logikprogrammierung. Analogrechner wurden früher häufiger zur Simulation von Regelvorgängen eingesetzt (siehe: Regelungstechnik), sind heute aber fast vollständig von Digitalcomputern verdrängt worden.
Hardwarearchitektur
Das heute allgemein angewandte Prinzip, das nach seiner Beschreibung durch John von Neumann von 1946 als "Von-Neumann-Architektur" bezeichnet wird, definiert für einen Computer vier Hauptkomponenten:
- die Recheneinheit (Arithmetisch-Logische Einheit (ALU)),
- die Steuereinheit,
- den Speicher und
- die Eingabe- und Ausgabeeinheit(en).
In den heutigen Computern sind die ALU und die Steuereinheit meist zu einem Baustein verschmolzen, der so genannten CPU (Central Processing Unit, zentraler Prozessor).
Der Speicher ist eine Anzahl von durchnummerierten "Zellen", jede dieser Zellen kann ein kleines Stück Information aufnehmen. Diese Information wird als Binärzahl, also einer Abfolge von ja/nein-Informationen, in der Speicherzelle abgelegt - besser vorzustellen als eine Folge von Nullen und Einsen. Ein Charakteristikum der "Von Neumann-Architektur" ist, dass diese Binärzahl (beispielsweise 65) entweder ein Teil der Daten sein kann (also zum Beispiel der Buchstabe "A"), oder ein Befehl für die CPU ("Springe ...").
Wesentlich in der Von-Neumann-Architektur ist, dass sich Programm und Daten einen Speicherbereich teilen (dabei belegen die Daten in aller Regel den unteren und die Programme den oberen Speicherbereich).
Dem gegenüber stehen in der sog. Harvard-Architektur Daten und Programmen eigene (physikalisch getrennte) Speicherbereiche zur Verfügung, dadurch können Daten-Schreiboperationen keine Programme überschreiben.
In der Von-Neumann-Architektur ist die Steuereinheit dafür zuständig, zu wissen, was sich an welcher Stelle im Speicher befindet.
Man kann sich das so vorstellen, dass die Steuereinheit einen "Zeiger" auf eine bestimmte Speicherzelle hat, in der der nächste Befehl steht, den sie auszuführen hat.
Sie liest diesen aus dem Speicher aus, erkennt zum Beispiel "65", erkennt dies als "Springe".
Dann geht sie zur nächsten Speicherzelle, weil sie wissen muss, wohin sie springen soll. Sie liest auch diesen Wert aus, und interpretiert die Zahl als Nummer (so genannte Adresse) einer Speicherzelle.
Dann setzt sie den Zeiger auf eben diese Speicherzelle, um dort wiederum ihren nächsten Befehl auszulesen; der Sprung ist vollzogen.
Wenn der Befehl zum Beispiel statt "Springe" lauten würde "Lies Wert", dann würde sie nicht den Programmzeiger verändern, sondern aus der in der Folge angegebenen Adresse einfach den Inhalt auslesen, um ihn dann beispielsweise an die ALU weiterzuleiten.
Die ALU hat die Aufgabe, Werte aus Speicherzellen zu kombinieren.
Sie bekommt die Werte von der Steuereinheit geliefert, verrechnet sie (addiert beispielsweise zwei Zahlen, welche die Steuereinheit aus zwei Speicherzellen ausgelesen hat) und gibt den Wert an die Steuereinheit zurück, die den Wert dann für einen Vergleich verwenden oder wieder in eine dritte Speicherzelle zurückschreiben kann.
Die Ein-/Ausgabeeinheiten schließlich sind dafür zuständig, die initialen Programme in die Speicherzellen einzugeben und dem Benutzer die Ergebnisse der Berechnung anzuzeigen.
Softwarearchitektur
Die Von-Neumann-Architektur ist gewissermaßen die unterste Ebene des Funktionsprinzips eines Computers oberhalb der elektrophysikalischen Vorgänge in den Leiterbahnen.
Die ersten Computer wurden auch tatsächlich so programmiert, dass man die Nummern von Befehlen und von bestimmten Speicherzellen so, wie es das Programm erforderte, nacheinander in die einzelnen Speicherzellen schrieb.
Um diesen Aufwand zu reduzieren, wurden Programmiersprachen entwickelt. Diese generieren die Zahlen innerhalb der Speicherzellen, die der Computer letztlich als Programm abarbeitet, aus höheren Strukturen heraus automatisch.
Sodann wurden bestimmte sich wiederholende Prozeduren in so genannten Bibliotheken zusammengefasst, um nicht jedes Mal das Rad neu erfinden zu müssen, z. B. das Interpretieren einer gedrückten Tastaturtaste als Buchstabe "A" und damit als Zahl "65" (im ASCII-Code).
Die Bibliotheken wurden in übergeordneten Bibliotheken gebündelt, welche Unterfunktionen zu komplexen Operationen verknüpfen (Beispiel: die Anzeige eines Buchstabens "A", bestehend aus 20 einzelnen schwarzen und 50 einzelnen weißen Punkten auf dem Bildschirm, nachdem der Benutzer die Taste "A" gedrückt hat).
In einem modernen Computer arbeiten sehr viele dieser Programmebenen über- bzw. untereinander. Komplexere Aufgaben werden in Unteraufgaben zerlegt, welche von anderen Programmierern bereits bearbeitet wurden, die wiederum auf die Vorarbeit weiterer Programmierer aufbauen, deren Bibliotheken sie verwenden.
Auf der untersten Ebene findet sich dann aber immer der so genannte Maschinencode - jene Abfolge von Zahlen, mit denen der Computer auch tatsächlich rechnen kann...
Geschichte
- Abakus, älteste mechanische Rechenhilfe.
- Rechenbrett des Pythagoras.
- 1. Jh. v. Chr.: Computer von Antikythera, vorzeitliche Berechnungsmaschine (den Rechenschiebern ähnlich, nur weitaus komplexer) mit erst im 18. Jahrhundert wiederentdecktem Differentialgetriebe. Diente zur Bahnberechnung der damals bekannten Planeten.
- 1614 John Napier publiziert seine Logarithmentafel.
- 1623 Erste Vier-Spezies-Maschine durch Wilhelm Schickard.
- 1642 Blaise Pascal baut eine Rechenmaschine.
- 1668 Samuel Morland entwickelt eine Rechenmaschine, die nicht dezimal addiert, sondern auf das englische Geldsystem abgestimmt ist.
- 1673 Rechenmaschine von Gottfried Leibniz.
- 1805 Joseph-Marie Jacquard entwickelt Lochkarten, um Webstühle zu steuern.
- 1820 Charles Xavier Thomas de Colmar baut das "Arithmometer", den ersten Rechner in Massenproduktion.
- Charles Babbage entwickelt die Difference Engine 1822 und die Analytical Engine 1833, kann sie aber aus Geldmangel nicht bauen.
- 1843 Edvard und George Scheutz bauen in Stockholm den ersten mechanischen Computer nach den Ideen von Babbage.
- 1890 US-Volkszählung mit Hilfe des Lochkartensystems von Herman Hollerith durchgeführt; Torres y Quevedo baut eine Schachmaschine, die mit König und Turm einen König matt setzen kann.
- 1935 International Business Machines stellt die IBM 601 vor, eine Lochkartenmaschine, die eine Multiplikation/Sekunde durchführen kann. Es werden ca. 1500 Stück der Maschine verkauft.
- 1937 Konrad Zuse meldet zwei Patente an, die bereits alle Elemente der so genannten Von-Neumann-Architektur beschreiben.
- 1937 Alan Turing publiziert einen Artikel, der die "Turing-Maschine" beschreibt.
- 1938 Konrad Zuse stellt die Zuse Z1 fertig, einen frei programmierbaren mechanischen Rechner, der allerdings aufgrund von Problemen mit der Fertigungspräzision nie voll funktionstüchtig war. Die Z1 verfügte bereits über Fließkommarechnung. Sie wurde im Krieg zerstört und später nach Originalplänen neu gefertigt, die Teile wurden auf modernen Fräs- und Drehbänken hergestellt. Dieser Nachbau der Z1 ist mechanisch voll funktionsfähig und hat eine Rechengeschwindigkeit von 1 Hz (eine Rechenoperation pro Sekunde)
- 1938 Claude Shannon publiziert einen Artikel darüber, wie man symbolische Logik mit Relais implementieren kann.
Während des Zweiten Weltkrieges gibt Alan Turing die entscheidenden Hinweise zur Entschlüsselung der ENIGMA-Codes und baut dafür einen speziellen mechanischen Rechner.
Ebenfalls im Krieg baut Konrad Zuse die erste funktionstüchtige programmgesteuerte, binäre Rechenmaschine, bestehend aus einer großen Zahl von Relais, die Z3.
Zeitgleich werden in den USA ähnliche elektronische Maschinen zur numerischen Berechnung gebaut.
Auch Maschinen auf analoger Basis werden erstellt.
- 1941 Konrad Zuse stellt die Z3 fertig, die heute als der erste funktionstüchtige Computer gilt.
- 1943 IBM-Chef Thomas J. Watson sagt: "Ich glaube, es gibt einen weltweiten Bedarf an vielleicht fünf Computern."
- 1943 Tommy Flowers stellt mit seinem Team in Bletchley Park den ersten "Colossus" fertig.
- 1944 Fertigstellung des ASCC (Automatic Sequence Controlled Computer, "Mark I" durch Howard H. Aiken).
- 1944 Das Team um Reinold Weber stellt eine Entschlüsselungsmaschine für das Verschlüsselungsgerät M-209 der US-Streitkräfte fertig [http://www.heise.de/tp/deutsch/inhalt/co/18371/1.html].
Zur Architektur der Rechenmaschinen Z1 und Z3: http://www.zib.de/zuse/Inhalt/Kommentare/Html/0687/0687.html.
- 1946 ENIAC (Electronic Numerical Integrator and Computer) wird unter der Leitung von John Eckert und John Mauchly entwickelt.
- 1947 IBM baut den SSEC.
- 1947 Erfindung des Transistors.
- 1949 Maurice Wilkes stellt mit seinem Team in Cambridge den "EDSAC" (Electronic Delay Storage Automatic Computer) vor; basierend auf Neumanns EDVAC ist es der erste Rechner, der vollständig speicherprogrammierbar ist.
- 1949 Steve Kolberg stellt die Z4 fertig, deren Bau schon 1942 begonnen wurde und 1944 in wesentlichen Teilen abgeschlossen war, die aber kriegsbedingt nicht fertiggestellt werden konnte.
- 1950 Die Z4 geht an der ETH Zürich in Betrieb.
- 1951 UNIVAC I, kommerzieller Röhrenrechner der RAND Corporation.
- 1955 TRADIC, erster Computer, der komplett mit Transistoren statt Röhren bestückt ist. Gebaut von den Bell Labs für die US Air Force.
- 1955 OPREMA Erster Computer der DDR.
- 1956 Erstes Magnetplattensystem von IBM (RAMAC).
- 1960 IBM 1401, transistorisierter Rechner mit Lochkartensystem.
- 1960 DECs (Digital Equipment Corporation) erster Minicomputer, die PDP-1 (Programmierbarer Datenprozessor) erscheint.
- 1962 Telefunken_AG liefert die ersten TR 4 aus.
- 1964 DEC baut den Minicomputer PDP-8 für unter 20000 Dollar.
- 1964 IBM definiert die erste Computerarchitektur S/360, Rechner verschiedener Leistungsklassen können denselben Code ausführen.
- 1964 bei Texas Instruments wird der erste "Integrierte Schaltkreis", IC, entwickelt.
- 1966 D4a 33bit Auftischrechner der TU Dresden.
- 1968 HewlettPackard bewirbt den HP-9100A als "personal computer" in der Science-Ausgabe vom 4.Oct.1968.
- 1970 Intel baut mit dem 4004 den ersten in Serie gefertigten Mikroprozessor (2250 Transistoren).
- 1971 Telefunken liefert TR_440 Deutsches Rechenzentrum Darmstadt und Universitäten Bochum und München.
- 1972 der Illiac IV, ein Supercomputer mit Array-Prozessoren geht in Betrieb.
- 1973 Xerox Alto - Der erste Computer mit Maus, GUI und eingebauter Ethernet-Karte.
- 1973 beginnt die französische Firma R2E mit der Auslieferung des Micral.
- 1974 Motorola baut den 6800 Prozessor; Intel baut den 8080 Prozessor.
- 1975 MITS beginnt mit der Auslieferung des Altair 8800.
- 1976 die Firma Apple Computer bringt den Apple I auf den Markt; Zilog entwickelt den Z80 Prozessor.
- 1977 Ken Olson, Präsident und Gründer von DEC sagt: "Es gibt keinen Grund, warum jemand einen Computer zu Hause haben wollte."
- 1977 der Apple II, der Commodore PET und der Tandy TRS 80 kommen auf den Markt.
- 1978 DEC bringt die VAX-11/780, eine Maschine speziell für virtuelle Speicheradressierung, auf den Markt.
- 1979 Atari bringt seine Rechnermodelle 400 und 800 in die Läden. Revolutionär ist, dass mehrere Custom-Chips den Hauptprozessor entlasten.
- 1980er: Blütezeit der Heimcomputer, zunächst mit 8-Bit-Mikroprozessoren und einem Arbeitsspeicher bis 64 kB (Commodore VC20, C64, Sinclair ZX80/81, Sinclair ZX Spectrum, Schneider CPC 464/664), später auch leistungsfähigere Modelle mit 16-Bit- oder 16/32-Bit-Mikroprozessoren (z. B. Amiga, Atari ST).
- 1981 IBM stellt den IBM-PC (Personal-Computer) vor und bestimmt damit entscheidend die weitere Entwicklung.
- 1982 Intel bringt den 80286-Prozessor auf den Markt.
- 1982 Sun Microsystems entwickelt die Sun-1 Workstation.
- 1984 der Apple Macintosh kommt auf den Markt und setzt neue Maßstäbe für Benutzerfreundlichkeit.
- 1985, Januar Atari stellt den ST-Computer auf der CES in Las Vegas vor.
- 1985, Juli Commodore produziert den Amiga-Heimcomputer.
- 1986 Intel bringt den 80386-Prozessor auf den Markt; Motorola präsentiert den 68030-Prozessor.
- 1988 NeXT, Steve Jobs, Mitgründer von Apple, stellt den gleichnamigen Computer vor.
- 1989 Intel bringt den 80486 auf den Markt.
Internet ...
- 1991 Das AIM-Konsortium (Apple, IBM, Motorola) spezifiziert die PowerPC-Plattform.
- 1992 DEC stellt die ersten Systeme mit dem 64-Bit-Alpha-Prozessor vor.
- 1993 Intel bringt den Pentium-Prozessor auf den Markt.
- 1994 Leonard Adleman stellt mit dem TT-100 den ersten Prototypen für einen DNA-Computer vor.
- 1995 Intel bringt den Pentium-Pro-Prozessor auf den Markt.
- 1995 Be Incorporated stellt die BeBox vor.
- 1999 Intel baut den Supercomputer ASCI Red mit 9.472 Prozessoren.
- 1999 AMD stellt den Nachfolger der K6-Prozessorfamilie vor, den Athlon.
Beginn des 21. Jahrhunderts: Weitere Steigerung der Leistungsfähigkeit, fortschreitende Verkleinerung und Integration von Telekommunikation und Bildbearbeitung.
Allgemeine, weltweite Verbreitung und Akzeptanz. Wechsel von klassischen Informationsdienstleistungen (Datendienste, Vermittlung, Handel, Medien) in das digitale Weltmedium Internet.
- 2001 IBM baut den Supercomputer ASCI White
- 2002 der NEC Earth Simulator geht in Betrieb
- 2003 Apple liefert den PowerMac G5 aus, erster Computer mit 64-Bit-Prozessoren für die breite Bevölkerung. AMD stellt mit dem Opteron und dem Athlon 64 seine ersten 64-Bit-Prozessoren vor.
- 2005 Renommierte Analysten erwarten, dass dieses Jahr weltweit 200 Mio neue PCs, Laptops und Server verkauft werden.
- 2005 AMD und Intel produzieren erste Dual-Core Prozessoren
Stichwörter zur Geschichte der Rechentechnik
Abakus, ARPANET, Hahn, Hamann, Logarithmentafel, OHDNER, OUGHTRED, PARTRIDGE, Pascal, Rechenschieber, Rechenstab, ROTH, Sprossenradmaschine, Zweispeziesrechner
Zukunft
Zukünftige Entwicklungen bestehen aus der möglichen Nutzung biologischer Systeme (Biocomputer), optischer Signalverarbeitung und neuen physikalischen Modellen (Quantencomputer).
Weitere Verknüpfungen zwischen biologischer und technischer Informationsverarbeitung.
Auf der anderen Seite nimmt man langsam Abstand von nicht realisierten Trends der letzten 20 Jahre, Expertensysteme und Künstliche Intelligenzen, die ein Bewusstsein entwickeln, sich selbst verbessern oder gar rekonstruieren, zu erforschen.
Weitere Entwicklungen und Trends, von denen viele noch den Charakter von Schlagwörtern bzw. Hypes haben:
Autonomic Computing
Grid Computing
Pervasive Computing
Ubiquitäres Computing
Wearable Computing.
Siehe auch
- eine Übersicht über die Artikel zum Thema "Computer" finden Sie im Portal Informatik.
Literatur
- Konrad Zuse: Der Computer – Mein Lebenswerk, Springer: Berlin, 1993, ISBN 3-540-56292-3
- Ron White: So funktionieren Computer. Ein visueller Streifzug durch den Computer & alles, was dazu gehört, Markt+Technik: München, 2004, ISBN 3-8272-6714-5
Weblinks
- [http://www.homecomputermuseum.de Homecomputermuseum.de]
- [http://www.computergeschichte.de Computergeschichte.de]
- [http://www.classic-computing.de Verein zum Erhalt klassischer Computer e.V.]
- [http://www.atari-computermuseum.de Das Atari Computermuseum]
- [http://netzwerk.wisis.de/projekte/9.htm Deutsche EDV-Geschichte 1940er-1960er - SUSAS Netzwerk für Wissensweitergabe]
- [http://www.hnf.de Angeblich größtes Computermuseum der Welt in Paderborn]
- http://www.hchistory.de/index.php3
- [http://www.dm.fh-hannover.de/~petkli/foliant/_1st.html Ein Foliant zur Geschichte der Datenübertragung]
- [http://www.top500.org/ Liste der 500 leistungssstärksten Computer]
Kategorie:Technikgeschichte
ja:コンピュータ
ko:컴퓨터
ms:Komputer
nb:Datamaskin
simple:Computer
th:คอมพิวเตอร์
Reelle Zahl
]
Die Menge der Reellen Zahlen ist eine Obermenge der rationalen Zahlen. Die Differenzmenge aus reellen und rationalen Zahlen, d.h. die Menge der Zahlen, die reelle Zahlen, aber nicht rationale Zahlen sind, heißt Menge der irrationalen Zahlen.
Anschaulich ausgedrückt entspricht die Menge der reellen Zahlen der Menge aller Punkte der Zahlengeraden. Man sagt: Die reellen Zahlen sind diesen Punkten eineindeutig (bijektiv) zugeordnet.
Reelle Zahlen werden als Maß für kontinuierliche Größen wie der Länge gebraucht; z.B. hat die Diagonale eines Quadrats der Seitenlänge 1 die Länge .
Für die Menge der reellen Zahlen wird das Symbol (auch ) verwendet. Der Name „reelle Zahlen“ wurde gewählt, weil sie im Gegensatz zu den imaginären Zahlen eine reale (=„reele“) Entsprechung haben.
Die reellen Zahlen und Funktionen von nach sind der Untersuchungsgegenstand der reellen Analysis.
Einteilung der reellen Zahlen
Die Menge der reellen Zahlen besteht aus den rationalen Zahlen (ganze Zahlen wie −1, 0, 1, 2 und Bruchzahlen wie 3/4, −2/3 usw.) und den irrationalen Zahlen. Typische irrationale Zahlen sind beispielsweise:
- die Kreiszahl π (pi),
- die Wurzeln aus ganzen Zahlen, die nicht ganzzahlige Werte haben wie z.B. √2, aber nicht √4 = 2.
Kennzeichen irrationaler Zahlen ist, daß sie als Dezimalzahlen dargestellt keine endliche Anzahl von Stellen nach dem Komma haben und die Ziffern nach dem Komma auch keine Periode bilden.
Eine die rationalen Zahlen umfassende Teilmenge der reellen Zahlen ist die Menge der reell-algebraischen Zahlen, d.h. der reellen Lösungen von Polynomgleichungen mit ganzzahligen Koeffizienten; diese Menge umfasst sämtliche Wurzelausdrücke. Ihr Komplement ist die Menge der transzendenten Zahlen; sie enthält beispielsweise e und π.
Mächtigkeiten
Der Begriff der Mächtigkeit erlaubt einen Größenvergleich unendlicher Mengen. Während die Mengen der natürlichen, ganzen oder rationalen Zahlen abzählbar sind, also im wesentlichen gleich groß, ist die Menge der reellen Zahlen überabzählbar, wie Cantor bewies; zum Beweis siehe Cantors zweites Diagonalargument. Kurz gesagt bedeutet die Überabzählbarkeit, dass jede Liste reeller Zahlen unvollständig ist.
Die Menge der algebraischen Zahlen ist abzählbar, die Menge der irrationalen und die Menge der transzendenten Zahlen sind jeweils gleichmächtig zur Menge aller reellen Zahlen.
Die Vermutung, dass jede überabzählbare Menge mindestens so mächtig wie die Menge der reellen Zahlen ist, wird Kontinuumshypothese genannt. Sie ist unabhängig von den üblicherweise verwendeten Axiomensystemen wie ZFC, d.h. es ist nicht möglich, sie zu beweisen oder zu widerlegen.
Konstruktion von R aus Q
Die Menge der reellen Zahlen wird mathematisch als Vervollständigung der rationalen Zahlen definiert. Das heißt, reelle Zahlen sind Äquivalenzklassen von rationalen Cauchy-Folgen. Dabei sind zwei Cauchy-Folgen äquivalent, wenn ihre (punktweise) Differenz eine Nullfolge bildet. Wie man leicht nachprüft, ist diese Relation tatsächlich reflexiv, transitiv und symmetrisch, also zur Bildung von Äquivalenzklassen geeignet.
Die durch die rationalen Zahlen induzierte Addition und Multiplikation ist wohldefiniert, das heißt unabhängig von der Auswahl des Repräsentanten. Mit diesen wohldefinierten Operationen bilden die reellen Zahlen einen Körper. Ebenfalls durch die rationalen Zahlen wird eine totale Ordnung induziert. Insgesamt sind die reellen Zahlen damit ein geordneter Körper.
Eine weitere Konstruktionsmöglichkeit ist die Darstellung der reellen Zahlen als Dedekindsche Schnitte rationaler Zahlen. Dabei nutzt man aus, dass jede nach oben beschränkte Teilmenge der reellen Zahlen eine kleinste obere Schranke hat und "vervollständigt" die rationalen Zahlen in Bezug auf diese Eigenschaft.
Bei der Lösung von kubischen Gleichungen stellte man fest, dass mitunter eine Quadratwurzel aus negativen Zahlen gezogen werden muss, die in weiterer Folge wieder zu reellen Lösungen führt (Casus irreducibilis). Anfangs wurde das lediglich als eine Art Rechentrick verstanden, in weiterer Folge führte das aber zur Einführung der komplexen Zahlen.
Axiomatische Einführung der reellen Zahlen
Die Konstruktion der reellen Zahlen aus den rationalen Zahlen ist etwas mühselig. Eine weitere Möglichkeit, die reellen Zahlen zu erfassen, ist sie axiomatisch einzuführen. Im Wesentlichen benötigt man dazu drei Gruppen von Axiomen - die Körperaxiome, die Axiome der Ordnungsstruktur sowie ein Axiom, das die Vollständigkeit garantiert.
# Die reellen Zahlen sind ein Körper
# Die reellen Zahlen sind total geordnet (s.a. geordneter Körper), d.h. für alle reellen Zahlen gilt:
## es gilt genau eine der Beziehungen (Trichotomie)
## aus und folgt (Transitivität)
## aus folgt (Verträglichkeit mit der Addition)
## aus und folgt (Verträglichkeit mit der Multiplikation)
# Die reellen Zahlen sind ordnungsvollständig, d.h. jede nichtleere, nach oben beschränkte Teilmenge von besitzt ein Supremum
Alternativ kann der Körper der reellen Zahlen auch charaktisiert werden als vollständiger, archimedisch geordneter Körper, d.h. als ein Körper der folgende Axiome erfüllt:
- die Körperaxiome und Ordnungsaxiome
- das Archimedische Axiom:
- :Sind und positive reelle Zahlen, dann gibt es ein , so dass ist.
- das Vollständigkeitsaxiom:
- :Die reellen Zahlen sind bzgl. der vom Absolutbetrag induzierten Metrik ein vollständiger Raum, d.h. jede Cauchy-Folge konvergiert
Anstelle des Vollständigkeitsaxioms kann man auch das Intervallschachtelungsaxiom setzen:
- das Intervallschachtelungsaxiom:
- :Der Durchschnitt jeder monoton fallenden Folge abgeschlossener beschränkter Intervalle ist nichtleer.
Durch jedes dieser Axiomensysteme ist der Körper der reellen Zahlen (bis auf Isomorphie) eindeutig bestimmt.
Verwandte Themen
- Eine näherungsweise Darstellung reeller Zahlen im Computer erfolgt durch Gleitkommazahlen.
- Die Darstellung von Zahlen erfolgt in einem Zahlensystem
Kategorie:Zahlen
ja:実数
ko:실수
th:จำนวนจริง
StellenwertsystemEin Stellenwertsystem (auch Positionssystem genannt) ist ein Zahlensystem, das mit wenigen Symbolen (meist Ziffern oder Zahlzeichen genannt) beliebig große Zahlen vergleichsweise kompakt darstellt. Man spricht in diesem Zusammenhang auch von der b-adischen Darstellung von Zahlen (nicht zu verwechseln mit p-adischen Zahlen), wobei die Variable b für die Anzahl der Symbole steht. Der Wert von b wird in diesem Zusammenhang auch oft als Basis oder Grundzahl bezeichnet.
Ein Beispiel für ein Zahlensystem, das kein Stellenwertsystem ist, ist das der römischen Ziffern. Es handelt sich dabei um ein Additionssystem.
Im folgenden soll die Art der Darstellung von Zahlen im Stellenwertsystem erklärt werden. Dabei ist streng zu unterscheiden, ob es sich um Ziffern (also Symbole) oder um Zahlen handelt. Um Verwechslungen zu vermeiden, sind im folgenden Ziffern im Unterschied zu Zahlen immer fett gedruckt. Die Zuordnung von Ziffern zu ihrem Zahlenwert ist eine Abbildung, die wir hier mit f bezeichnen. Im Hexadezimalsystem ist z. B. f(7) = 7 und f(D) = 13.
Ziffern
Die b-adische Darstellung einer Zahl verwendet genau b Ziffern (wobei b hier für eine beliebige natürliche Zahl größer als 1 steht). Jeder dieser b Ziffern wird injektiv eine der Zahlen von 0 bis b-1 zugeordnet. Injektiv bedeutet hierbei, dass jeder Ziffer eindeutig eine Zahl aus 0 bis b-1 zugeordnet wird.
Beispiele:
- Im Dualsystem (dyadischen System nach Leibniz) mit b=2 verwendet man die Ziffern 0 und 1 und ordnet ihnen die Zahlen 0 und 1 zu.
- Im Dezimalsystem (dekadischen System nach Leibniz) ist b=10 und man verwendet gewöhnlich die 10 Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8 und 9 und ordnet diesen (in dieser Reihenfolge) die Zahlen 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 zu.
Für b<10 verwendet man gewöhnlich die ersten b Ziffern wie im Dezimalsystem. Für b>10 verwendet man gewöhnlich ebenfalls die Ziffern des Dezimalsystems und als neue zusätzliche Ziffern die ersten Buchstaben des Alphabets.
Beispiel:
- Im Hexadezimalsystem mit b=16 werden zusätzlich die Ziffern A, B, C, D, E und F gebraucht und diesen (wieder in dieser Reihenfolge) die Zahlen 10, 11, 12, 13, 14 und 15 zugeordnet.
Darstellung natürlicher Zahlen
Natürliche Zahlen werden in der b-adischen Darstellung durch eine beliebige (endliche) Folge
von Ziffern dargestellt. Jedes ai steht hier also für eine Ziffer. Üblicherweise notiert man die Folge aber nicht wie eben gezeigt von links nach rechts und durch Komma getrennt, sondern von rechts nach links und ohne Komma, also:
Der Folge wird nun die Zahl
zugeordnet.
Man kann zeigen, dass zu jeder natürlichen Zahl x eine Folge von Ziffern existiert, deren zugeordneter Wert x ist. Im allgemeinen gibt es sogar mehrere Folgen, man braucht dazu nur beliebig oft die Ziffer 0 mit f(0)=0 an die Folge anhängen (d. h. in der üblichen Schreibweise voranstellen). Verbietet man Folgen, die mit der Ziffer 0 enden (in der üblichen Schreibweise also solche mit führender 0), so lässt sich zeigen, dass diese Zuordnung sogar eineindeutig ist, d. h. zu jeder natürlichen Zahl x existiert genau eine Folge, deren zugeordneter Wert x ist. Ausgenommen von diesem Verbot ist natürlich die Folge 0, also die Folge, die aus nur einer Ziffer besteht, deren Wert 0 ist. Man benötigt diese Folge, um auch die Zahl 0 darstellen zu können.
Als Beispiel betrachten wir die Ziffernfolge 4B3 im Hexadezimalsystem (b=16). a0 ist hier 3, a1 ist hier B und a2 ist 4. Ferner ist f(3)=3, f(B)=11 und f(4)=4. Also repräsentiert die Folge 4B3 die Zahl
Entsprechend repräsentiert die Folge 1010011 im Binärsystem (b = 2) die Zahl
.
Im Dezimalsystem (b=10) steht 3072 für:
.
Darstellung ganzer Zahlen
Ganze Zahlen stellt man wie natürliche Zahlen durch endliche Ziffernfolgen dar, mit dem Unterschied, dass man negativen Zahlen das Minuszeichen als Symbol voranstellt.
Darstellung rationaler Zahlen
Auch Rationale Zahlen lassen sich b-adisch darstellen. Wie im Dezimalsystem trennt man hierbei mit Komma ab und multipliziert die Werte der Ziffern hinter dem Komma mit b-i, wobei i die Position hinter dem Komma angibt.
Zum Beispiel wird die rationale Zahl 1+3/8 = 1,375 im 2-adischen (dyadischen) Stellenwertsystem durch die Ziffernfolge 1,011 dargestellt. In der Tat ist
.
Es kann dabei vorkommen, dass zur Darstellung eine unendliche, aber periodische Folge von Nachkommastellen benötigt wird. Gewöhnlich wird diese Periode dann durch eine über die periodischen Ziffern gezogene Linie gekennzeichnet und so eine endliche Darstellung möglich.
Während die Zahl 1/5 = 0,2 im Dezimalsystem die endliche Ziffernfolge 0,2 hat, ist ihre Binärdarstellung periodisch:
,
Dagegen bezeichnet die Ziffernfolge 0,1 im 3-adischen (triadischen) System die rationale Zahl 1·3-1=1/3, die im Dezimalsystem einer unendlichen periodischen Ziffernfolge entspricht.
Allgemein gilt, dass ein gekürzter Bruch genau dann eine nicht periodische -adische Darstellung hat, wenn alle Primfaktoren seines Nenners auch Primfaktoren von sind. (Für eine nicht periodische Dezimaldarstellung muss der gekürzte Nenner also das Produkt von Zweien und Fünfen sein.)
Wichtig ist es an dieser Stelle, zu erkennen, dass die Zifferndarstellung mancher rationaler Zahlen nicht mehr eindeutig ist. So bezeichnen die Ziffernfolgen 1, 1,0 und 0,999... im Dezimalsystem dieselbe rationale (sogar natürliche) Zahl 1. Während man die ersten beiden Darstellungen sofort als gleichwertig erkennt, benötigt man eine geometrische Reihe, um
nachzuweisen. (Der „alltagstaugliche“ Beweis
1 = 9/9 = 9·(1/9) = 9·(0,111...) = 0,999...
macht von dieser unendlichen Reihe Gebrauch.) Dieses Phänomen tritt bei jeder Basis b auf, denn falls n die Ziffer mit dem Wert b-1 bezeichnet, dann hat die Ziffernfolge
den Wert 1.
Darstellung reeller Zahlen
Die Darstellung reeller Zahlen erfolgt prinzipiell genauso wie die von rationalen Zahlen durch b-adische Entwicklung (die sollte noch an geeigneter Stelle erklärt werden).
Bei rationalen Zahlen liefert diese eine abbrechende oder eine periodische Ziffernfolge, mit der eine endliche b-adische Darstellung dieser Zahl möglich ist.
Die b-adische Entwicklung einer irrationalen Zahl (wie π oder ) liefert dagegen stets eine unendliche nichtperiodische Ziffernfolge.
Irrationale Zahlen können nicht durch eine endliche Ziffernfolge dargestellt werden. Man kann sich zwar mit endlichen (oder periodischen) Dezimalbrüchen beliebig annähern, jedoch ist eine endliche b-adische Darstellung niemals exakt.
Die endliche Darstellung ist, wie hier für π und √2 geschehen, nur symbolisch durch zusätzliche Zeichen für einige sonst nicht darstellbare irrationale Zahlen möglich.
Wenn man aber unter der „Darstellung“ einer reellen Zahl die bei der b-adischen Entwicklung entstehende Ziffernfolge versteht, dann ist jede reelle Zahl als (z.T. unendlicher) b-adischer Bruch darstellbar, auch wenn nicht jeder solche Bruch tatsächlich aufschreibbar ist.
Trotzdem kann man selbst mit beliebig endlich vielen zusätzlichen Zeichen nicht jede reelle Zahl angeben, denn man kann zeigen, dass mit keinem endlichen Zeichenvorrat die endliche Darstellung aller reellen Zahlen möglich ist. Dies liegt daran, dass die Menge der reellen Zahlen überabzählbar, die Menge aller endlichen Darstellungen mit endlichen Zeichenvorrat aber nur abzählbar ist.
Umrechnung zwischen verschiedenen Stellenwertsystemen
Allgemein lassen sich Zahlen in einem Stellenwertsystem der Ordnung n in Zahlen eines Stellenwertsystems der Ordnung m umrechnen, indem man aus der Ordnung n ins Dezimalsystem und anschliessend ins Zielsystem umrechnet.
Zur Umrechnung aus einem n-adischen System ins Dezimalsystem bildet man Definitionsgemäß die Summe des Produkts der einzelnen Ziffern mit ihrer Wertigkeit, im Falle der Umrechnung der Oktalzahl 235 ins Dezimalsystem also z. B.:
Um zu einem Algorithmus zur Umrechnung aus dem Dezimalsystem in ein m-adisches System zu kommen, lassen sich nun folgende Überlegungen anstellen:
Der o.g. Ausdruck lässt sich auch darstellen als
in dem man nun der Anschaulichkeit halber x = (2 - 8) + 3 substituiert. Man erhält
was offensichtlich die Umkehrung von
darstellt. Durch rekursive Anwendung dieser Umformung ergibt sich nun folgender Algorithmus:
Zur Umrechnung aus dem Dezimalsystem in ein m-adisches System führt man sukzessive „Divisionen mit Rest“ durch m aus. Die jeweiligen Reste entsprechen den Ziffern der Zahl in der Reihenfolge aufsteigender Wertigkeit, im Falle der Umrechnung der Dezimalzahl 157 ins Oktalsystem also z. B.:
Die Dezimalzahl 157 entspricht also im Oktalsystem der Zahl 235.
Für die Umrechnung von rationalen Zahlen behandelt man den ganzen Teil wie oben und den gebrochenen Teil wie folgt: Statt der Division durch m macht man hier eine Multiplikation mit m. Der Übertrag ist jetzt gerade die folgende Ziffer. Sei zum Beispiel 0.8625 4-adisch darzustellen:
Die erste Stelle nach dem Komma ist also eine 3. Dann fährt man mit 0.45 fort:
und so weiter. In der 4-adischen Darstellung ist diese Zahl damit periodisch.
Die Dezimalzahl 0.8625 entspricht im 4-er System der Zahl 0.3130303030...
Spezialfälle
Ist die Basis m eine (ganzzahlige) i-te Potenz der Basis n lässt sich der Umrechnungsvorgang deutlich vereinfachen. Hier lassen sich Gruppen aus jeweils i Ziffern in eine Ziffer umrechnen. Umgekehrt lassen sich zur Umrechnung aus der Basis m einzelne Ziffern zu Zifferngruppen der Größe i umrechnen. Da sich die Größe der Zifferngruppen in diesen Fällen üblicherweise in einem überschaubaren Bereich bewegt, lassen sich solche Umrechnungen leicht mithilfe von Tabellen durchführen:
Am Beispiel der Konversion vom Dualsystem ins Oktalsystem (i=3) ergäbe sich also folgende Umrechnung der Zahl 010011101:
010 011 101
`'´ `'´ `'´
2 3 5
Verallgemeinerung
Die Basis b muss nicht notwendigerweise eine natürliche Zahl sein. Es wurde nachgewiesen, dass sämtliche komplexen Zahlen mit Betrag größer 1 als Basis eines Stellenwertsystems verwendet werden können. Ebenso sind Zahlensysteme mit gemischten Basen möglich. Beispiele hierfür findet man in Knuth, The Art of Computer Programming.
Für solche verallgemeinerten Stellenwertsysteme gelten einige der hier gemachten Aussagen über die endliche Darstellbarkeit rationaler und reeller Zahlen nicht. Verwendet man z. B. den Goldenen Schnitt τ = (1+√5)/2 als Basis, dann stellt eine endliche Ziffernfolge stets eine ganze Zahl oder eine irrationale Zahl der Form r+s√5 mit rationalen r, s dar (dagegen hat nicht jede solche Zahl eine endliche Darstellung). Siehe dazu den englischen Artikel :en:Golden mean base.
Siehe auch
- Dualsystem, Ternärsystem, Oktalsystem, Dezimalsystem, Duodezimalsystem, Hexadezimalsystem, Vigesimalsystem, Sexagesimalsystem
Weblinks
- [http://www.technikbase.de/index.php?&id=1_20_1_9&popup=zdec POPUP-MiniTool für alle gängigen Zahlensysteme]
- [http://jpeg.homeip.net:8088/table.html Kleines und großes 1x1 in Stellenwertsystemen]
Kategorie:Zahlensystem
Zuse Z1
Die Z1 war ein mechanischer Computer von Konrad Zuse aus dem Jahre 1937. Er beinhaltete schon die meisten Architekturelemente des spätereren Modells Z3, war jedoch wegen mechanischer Probleme unzuverlässig.
Ein veränderter Nachbau dieses Computers steht im Deutschen Technikmuseum in Berlin.
Aufbau
Der Aufbau der Z1 ähnelt sehr dem der Z3. Die Z1 verfügte über einen Speicher für 64 Gleitkommazahlen, je 22 Bit. Das Rechenwerk beherrschte die Operationen Addition, Subtraktion, Multiplikation, Division, Dezimal-Dual- sowie Dual-Dezimal-Umwandlung.
Konrad Zuse entwickelte eine abstrakte Beschreibung des Rechenwerks, die sowohl auf Maschinen mit mechanischen Schaltgliedern als auch auf relaisbasierte Rechner anwendbar ist. Aus diesem Grund sind sich die Z1 und die Z3 sehr ähnlich.
Der Speicher der Z1 funktionierte so zuverlässig, dass er auch in der Z2 und der Z4 Verwendung fand. Allerdings funktionierte das mechanische Rechenwerk nicht sehr zuverlässig, da sämtliche Teile mit Laubsägen per Hand gefertigt wurden.
Die Z1 wurde 1938 fertig gestellt. Zuse arbeitete mit Bekannten und Freunden an der Z1 im elterlichen Wohnzimmer, wofür die Eltern verbannt werden mussten. Dennoch wurde Zuse in dieser Zeit finanziell von vielen Seiten unterstützt. So ließ sich der Vater, ein pensionierter Postbeamter, eigenes wieder reaktivieren, die Schwester steuerte ihr Gehalt bei, und auch Freunde liehen Zuse Geld, da seine Umwelt überzeugt vom Sinn des Unternehmens war.
Weblinks
- [http://irb.cs.tu-berlin.de/~zuse/Konrad_Zuse/de/Rechner_Z1.html Der Rechner Z1]
Kategorie:Rechenmaschine
Kategorie:Wissenschaftsgeschichte (Informatik)
Zuse Z3Die Z3 – 1941 von Konrad Zuse gebaut – war die erste frei programmierbare, auf dem binären Zahlensystem basierende Rechenmaschine der Welt und gilt heute als erster funktionsfähiger Rechner. 1944 wurde die Z3 durch einen Bombenangriff zerstört.
Geschichte
Der Entwicklung der Z3 ging zunächst die Entwicklung der vollmechanischen Z1 und dem Übergangsmodell Z2 voraus. 1941 wurde die Z3 schließlich einer Gruppe von Wissenschaftlern vorgestellt. Während das Original im Krieg bei einem Bombenangriff zerstört wurde, befindet sich ein funktionsfähiger Nachbau im Deutschen Museum in München, der 1962 von der Zuse KG zu Ausstellungszwecken angefertigt wurde.
Die Z3 wird i. A. als Rechner und nicht als Computer bezeichnet, da dieser Begriff erst später entstand, und die Programme nicht im Hauptspeicher abgelegt sind.
Bedeutung
- Erster voll funktionsfähiger programmierbarer Rechner
- Erstmals Verwendung des Dualsystems
- Zum größten Teil nicht-mechanisch
- Enthält sehr viele Merkmale moderner Rechner:
- Gleitkommazahlenberechnung
- Ein- und Ausgabegeräte
- Möglichkeit der Benutzerinteraktion während des Rechenvorgangs
- Mikroprogramme
- Pipelining von Instruktionsfolgen
- Numerische Sonderwerte
- Parallele Ausführung von Operationen soweit wie möglich
Auch die Z1 verfügte über fast alle der oben angeführten Merkmale, erlangte allerdings nicht so viel Aufsehen, da ihr Rechenwerk aufgrund des mechanischen Aufbaus nicht sehr zuverlässig arbeitete. Allgemein ähneln der Aufbau von Z1 und Z3 einander sehr, was insbesondere für das Rechenwerk gilt.
Aufbau
Die Z3 besteht aus
- einer Relais-Gleitkommaarithmetikeinheit für Addition, Subtraktion, Multiplikation, Division, Quadratwurzel, Dezimal-Dual- und Dual-Dezimal-Umwandlung. Das Rechenwerk verfügt über zwei Register R1 und R2.
- einem Relais-Speicher aus 64 Worten, je 22 bit (1 Bit Vorzeichen, 7 Bit Exponent, 14 Bit Mantisse)
- einem Lochstreifenleser für Filmstreifen, um Programme einzulesen (keine Daten!)
- eine Tastatur mit Lampenfeld für Ein- und Ausgabe von Zahlen und der manuellen Steuerung von Berechnungen
Betrieb
Die Z3 ist eine getaktete Maschine. Die Taktung wird von einem Elektromotor übernommen, der eine sogenannte Taktwalze antreibt. Diese ist eine Trommel, welche sich ca. 5.3 mal pro Sekunde dreht, und während einer Drehung die Steuerung der einzelnen Relaisgruppen übernimmt.
Die Z3 verfügt über folgende Maschinenbefehle:
- Pr z - Speicherzelle z in Register R1/R2 laden - 1 Zyklus
- Ps z - R1 in Speicherzelle z schreiben - 0 - 1 Zyklus
- Ls1 - Addition R1 := R1 + R2 - 3 Zyklen
- Ls2 - Subtraktion R1 := R1 - R2 - 4 - 5 Zyklen
- Lm - Multiplikation R1 := R1 - R2 - 16 Zyklen
- Li - Division R1 := R1 / R2 - 18 Zyklen
- Lw - Quadratwurzel R1 := SQRT(R1) - 20 Zyklen
- Lu - Dezimalzahl einlesen in R1 / R2 - 9 - 41 Zyklen
- Ld - R1 als Binärzahl ausgeben - 9 - 41 Zyklen
Die Eingabe numerischer Daten muss über die Tastatur erfolgen, d. h. Zahlen können nicht auf dem Lochstreifen kodiert werden. Über die Tastatur können alle Operationen außer den Speicherzugriffen (Pr und Pz) direkt ausgeführt werden. Der Lochstreifen kann nur Befehle enthalten. Jeder Befehl auf dem Lochstreifen wird mit 8 Bit kodiert.
Die Z3 kennt keine Sprungbefehle, ist jedoch turingmächtig, wie Raúl Rojas 1998 zeigte.
Rechenwerk
Jede Rechenoperation der Z3 basiert auf der Addition zweier natürlicher Zahlen. Diese Basisoperation der Addition wird durch XOR(XOR(x,y), CARRY(x,y)) berechnet, wobei CARRY(x,y) die Übertragsfunktion ist, z. B. CARRY(0011011,1010110)0111100.
- Eine Addition zweier Gleitkommazahlen ist realisiert durch Berechnung der Differenz der Exponenten, anschließend entsprechendem Angleichen der Mantisse einer Zahl und schließlich Addition der Mantissen.
- Eine Subtraktion enstpricht einer Addition, bei der das Komplement der zweiten Mantisse verwendet wird (Komplement = NOT(x)+1)
- Eine Multiplikation entspricht einer Addition der Exponenten und anschließender Multiplikation der Mantissen. Die Multiplikation der Mantissen wird dabei durch eine iterative Addition realisiert: 1011 - 0101 = 1011 + 10110 - 010 = 1011 + 101100 - 01 = 110111 + 1011000 - 0 = 1011000
- Eine Division entspricht einer Multiplikation, jedoch werden die Exponenten subtrahiert und eine iterative Subtraktion für die Division der Mantissen verwendet.
- Der Algorithmus zum Ziehen einer Wurzel ist durch eine iterative Division realisiert (siehe Patentschrift).
Allgemein besteht das Rechenwerk aus zwei Teilen, einem Werk für die Rechnung mit Exponenten und ein Werk für die Rechnung mit Mantissen. Für Befehle, bei denen iterative Methoden zum Einsatz kommen (Lm, Li, Lw, Lu, Ld), wird ein Sequenzer benutzt, um einzelne Teile des Rechenwerks anzusteuern. Dies entspricht grob modernen Mikroprogrammen.
Literatur
Rojas, Raul: Konrad Zuse's Legacy: The Architecture of the Z1 and Z3, IEEE Annals of the History of Computing, 19:2, (1997), 5-16.
Weblinks
- [http://www.zib.de/zuse Das Konrad Zuse Internetarchiv] Großartige Informationsquelle mit fast allen von Zuse veröffentlichten Papieren, Patentschrift, Java-Applets und Fotografien
- [http://www.konrad-zuse.de Zuse-Informationsseite von Horst Zuse] Sehr gute Einführungen und detaillierte Besprechungen der Z-Serie.
- [http://www.dim-digitale-medien.de/demo/zuse/index2.html Rechnen am Urcomputer] Multimedia-Show (Shockwave)
Kategorie:Rechenmaschine
Kategorie:Rechnerarchitektur
Kategorie:Wissenschaftsgeschichte (Informatik)
ja:Zuse Z3
FestkommazahlEine Festkommazahl ist eine Zahl, die aus einer festen Anzahl von Ziffern besteht. Die Position des Dezimalkommas ist dabei fix vorgegeben. Die Menge aller Festkommazahlen einer vorgegebenen Länge ist deshalb sehr gering. Der Grundgedanke hinter Festkommazahlen ist, dass man übliche Zahlen (beispielsweise aus den reellen Zahlen), zumindest näherungsweise in einem begrenzten Speicher darzustellen versucht (beispielsweise einer elektronischen Rechenanlage beziehungsweise Computer), um damit rechnen zu können. Üblicherweise sind per Definition die ersten Stellen Vorkommastellen und die restlichen Nachkommastellen.
Ein wichtiger Aspekt sind auch Performanceerwägungen: auf Systemen ohne FPU-Einheit ist das Rechnen mit Festkommazahlen um Faktoren schneller als eine emulierte Fliesskommadarstellung unter Zuhilfenahme von z.B. IEEE-Bibliotheken. Oftmals ist auch bei Vorhandensein einer FPU-Recheneinheit die Festkommadarstellung noch schneller - ein gutes Beispiel ist ein JPEG-Dekoder auf IDCT-Basis unter Zuhilfenahme von Multimedia-Einheiten moderner CPUs (wie AltiVec oder SSE).
Beispiele
Alle binären Festkommazahlen der Länge mit Vorkommastellen:
- 00
- 01
- 10
- 11
Da die Anzahl der Vorkommastellen ja bereits per Definition fest liegt, ist es unnötig, das sonst übliche Komma zu schreiben beziehungsweise zu speichern. Man beachte, dass jedes der aufgelisteten binären Muster für jeweils drei unterschiedliche Zahlen steht, je nachdem für welche Stelle das Komma impliziert wird.
Probleme
Bei der Darstellung einer reellen Zahl kann es einige Probleme geben. Im folgenden habe die Festkommazahl (angelehnt an die Darstellung in einem Rechner) eine Länge von und Vor- und Nachkommastellen. Der Ziffernvorrat sei - also eine binäre Festkommazahl der Länge eines Bytes mit gleich vielen Vor- und Nachkommastellen. Der tiefgestellte Index bezeichnet die Darstellung der Zahl: für eine reelle Zahl in üblicher Dezimaldarstellung und für eine derartige Festkommazahl.
-
-
-
-
-
-
-
-
-
Wie man sieht, können also mit 8 Bits und 4 Vor- und Nachkommastellen nur Festkommazahlen zwischen und dargestellt werden. Dieser geringe Darstellungsbereich ist auch der entscheidende Nachteil gegenüber Gleitkommazahlen.
Weiterhin entstehen wie auch bei Gleitkommazahlen Rundungsfehler bei der Umwandlung der dezimalen, reellen Zahlen in eine binäre Festkommadarstellung. kann im Gegensatz zu exakt dargestellt werden. kann allerdings bei noch so vielen Nachkommastellen nicht als Summe von Zweierpotenzen dargestellt werden.
Anwendungsbeispiel
Die Rechenaufgabe bzw. der arithmetische Ausdruck x := 100 : 0,5 lässt sich auch als x := (100 - 100)/(0,5 - 100) schreiben, was dann x := 10000 / 50 entspricht und einer Verschiebung des Kommas um zwei Stellen nach links gleichkommt. Das Ergebnis "x:=200" kann wiederum durch 100 dividiert werden, um das eigentliche Ergebnis "2" zu erhalten. Wendet man diesen Trick konsequent an, können praktisch alle für einfache Algorithmen notwendigen Fliesskommaberechnungen mit Ganzzahlen (Integern) durchgeführt werden. Der Wertebereich (nach oben) bzw. die Nachkommastellen und deren Rundungsgenauigkeit (nach unten) hängen hierbei von der gewählten Zehnerpotenz ab (10,100,1000).
Kategorie:Numerische Mathematik
StellenwertsystemEin Stellenwertsystem (auch Positionssystem genannt) ist ein Zahlensystem, das mit wenigen Symbolen (meist Ziffern oder Zahlzeichen genannt) beliebig große Zahlen vergleichsweise kompakt darstellt. Man spricht in diesem Zusammenhang auch von der b-adischen Darstellung von Zahlen (nicht zu verwechseln mit p-adischen Zahlen), wobei die Variable b für die Anzahl der Symbole steht. Der Wert von b wird in diesem Zusammenhang auch oft als Basis oder Grundzahl bezeichnet.
Ein Beispiel für ein Zahlensystem, das kein Stellenwertsystem ist, ist das der römischen Ziffern. Es handelt sich dabei um ein Additionssystem.
Im folgenden soll die Art der Darstellung von Zahlen im Stellenwertsystem erklärt werden. Dabei ist streng zu unterscheiden, ob es sich um Ziffern (also Symbole) oder um Zahlen handelt. Um Verwechslungen zu vermeiden, sind im folgenden Ziffern im Unterschied zu Zahlen immer fett gedruckt. Die Zuordnung von Ziffern zu ihrem Zahlenwert ist eine Abbildung, die wir hier mit f bezeichnen. Im Hexadezimalsystem ist z. B. f(7) = 7 und f(D) = 13.
Ziffern
Die b-adische Darstellung einer Zahl verwendet genau b Ziffern (wobei b hier für eine beliebige natürliche Zahl größer als 1 steht). Jeder dieser b Ziffern wird injektiv eine der Zahlen von 0 bis b-1 zugeordnet. Injektiv bedeutet hierbei, dass jeder Ziffer eindeutig eine Zahl aus 0 bis b-1 zugeordnet wird.
Beispiele:
- Im Dualsystem (dyadischen System nach Leibniz) mit b=2 verwendet man die Ziffern 0 und 1 und ordnet ihnen die Zahlen 0 und 1 zu.
- Im Dezimalsystem (dekadischen System nach Leibniz) ist b=10 und man verwendet gewöhnlich die 10 Ziffern 0, 1, 2, 3, 4, 5, 6, 7, 8 und 9 und ordnet diesen (in dieser Reihenfolge) die Zahlen 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 zu.
Für b<10 verwendet man gewöhnlich die ersten b Ziffern wie im Dezimalsystem. Für b>10 verwendet man gewöhnlich ebenfalls die Ziffern des Dezimalsystems und als neue zusätzliche Ziffern die ersten Buchstaben des Alphabets.
Beispiel:
- Im Hexadezimalsystem mit b=16 werden zusätzlich die Ziffern A, B, C, D, E und F gebraucht und diesen (wieder in dieser Reihenfolge) die Zahlen 10, 11, 12, 13, 14 und 15 zugeordnet.
Darstellung natürlicher Zahlen
Natürliche Zahlen werden in der b-adischen Darstellung durch eine beliebige (endliche) Folge
von Ziffern dargestellt. Jedes ai steht hier also für eine Ziffer. Üblicherweise notiert man die Folge aber nicht wie eben gezeigt von links nach rechts und durch Komma getrennt, sondern von rechts nach links und ohne Komma, also:
Der Folge wird nun die Zahl
zugeordnet.
Man kann zeigen, dass zu jeder natürlichen Zahl x eine Folge von Ziffern existiert, deren zugeordneter Wert x ist. Im allgemeinen gibt es sogar mehrere Folgen, man braucht dazu nur beliebig oft die Ziffer 0 mit f(0)=0 an die Folge anhängen (d. h. in der üblichen Schreibweise voranstellen). Verbietet man Folgen, die mit der Ziffer 0 enden (in der üblichen Schreibweise also solche mit führender 0), so lässt sich zeigen, dass diese Zuordnung sogar eineindeutig ist, d. h. zu jeder natürlichen Zahl x existiert genau eine Folge, deren zugeordneter Wert x ist. Ausgenommen von diesem Verbot ist natürlich die Folge 0, also die Folge, die aus nur einer Ziffer besteht, deren Wert 0 ist. Man benötigt diese Folge, um auch die Zahl 0 darstellen zu können.
Als Beispiel betrachten wir die Ziffernfolge 4B3 im Hexadezimalsystem (b=16). a0 ist hier 3, a1 ist hier B und a2 ist 4. Ferner ist f(3)=3, f(B)=11 und f(4)=4. Also repräsentiert die Folge 4B3 die Zahl
Entsprechend repräsentiert die Folge 1010011 im Binärsystem (b = 2) die Zahl
.
Im Dezimalsystem (b=10) steht 3072 für:
.
Darstellung ganzer Zahlen
Ganze Zahlen stellt man wie natürliche Zahlen durch endliche Ziffernfolgen dar, mit dem Unterschied, dass man negativen Zahlen das Minuszeichen als Symbol voranstellt.
Darstellung rationaler Zahlen
Auch Rationale Zahlen lassen sich b-adisch darstellen. Wie im Dezimalsystem trennt man hierbei mit Komma ab und multipliziert die Werte der Ziffern hinter dem Komma mit b-i, wobei i die Position hinter dem Komma angibt.
Zum Beispiel wird die rationale Zahl 1+3/8 = 1,375 im 2-adischen (dyadischen) Stellenwertsystem durch die Ziffernfolge 1,011 dargestellt. In der Tat ist
.
Es kann dabei vorkommen, dass zur Darstellung eine unendliche, aber periodische Folge von Nachkommastellen benötigt wird. Gewöhnlich wird diese Periode dann durch eine über die periodischen Ziffern gezogene Linie gekennzeichnet und so eine endliche Darstellung möglich.
Während die Zahl 1/5 = 0,2 im Dezimalsystem die endliche Ziffernfolge 0,2 hat, ist ihre Binärdarstellung periodisch:
,
Dagegen bezeichnet die Ziffernfolge 0,1 im 3-adischen (triadischen) System die rationale Zahl 1·3-1=1/3, die im Dezimalsystem einer unendlichen periodischen Ziffernfolge entspricht.
Allgemein gilt, dass ein gekürzter Bruch genau dann eine nicht periodische -adische Darstellung hat, wenn alle Primfaktoren seines Nenners auch Primfaktoren von sind. (Für eine nicht periodische Dezimaldarstellung muss der gekürzte Nenner also das Produkt von Zweien und Fünfen sein.)
Wichtig ist es an dieser Stelle, zu erkennen, dass die Zifferndarstellung mancher rationaler Zahlen nicht mehr eindeutig ist. So bezeichnen die Ziffernfolgen 1, 1,0 und 0,999... im Dezimalsystem dieselbe rationale (sogar natürliche) Zahl 1. Während man die ersten beiden Darstellungen sofort als gleichwertig erkennt, benötigt man eine geometrische Reihe, um
nachzuweisen. (Der „alltagstaugliche“ Beweis
1 = 9/9 = 9·(1/9) = 9·(0,111...) = 0,999...
macht von dieser unendlichen Reihe Gebrauch.) Dieses Phänomen tritt bei jeder Basis b auf, denn falls n die Ziffer mit dem Wert b-1 bezeichnet, dann hat die Ziffernfolge
den Wert 1.
Darstellung reeller Zahlen
Die Darstellung reeller Zahlen erfolgt prinzipiell genauso wie die von rationalen Zahlen durch b-adische Entwicklung (die sollte noch an geeigneter Stelle erklärt werden).
Bei rationalen Zahlen liefert diese eine abbrechende oder eine periodische Ziffernfolge, mit der eine endliche b-adische Darstellung dieser Zahl möglich ist.
Die b-adische Entwicklung einer irrationalen Zahl (wie π oder ) liefert dagegen stets eine unendliche nichtperiodische Ziffernfolge.
Irrationale Zahlen können nicht durch eine endliche Ziffernfolge dargestellt werden. Man kann sich zwar mit endlichen (oder periodischen) Dezimalbrüchen beliebig annähern, jedoch ist eine endliche b-adische Darstellung niemals exakt.
Die endliche Darstellung ist, wie hier für π und √2 geschehen, nur symbolisch durch zusätzliche Zeichen für einige sonst nicht darstellbare irrationale Zahlen möglich.
Wenn man aber unter der „Darstellung“ einer reellen Zahl die bei der b-adischen Entwicklung entstehende Z | | |