zu www.bildungsgueter.de nächster Abschnitt zur Inhaltsübersicht des Kapitels

Inhalt des Tutorials

Behandelte Themen und behandelte Verfahren


Übersicht

Dieses Tutorial behandelt die Programmierverfahren, die für die Bearbeitung mathematischer Aufgaben nützlich sind. Dabei werden Aufgaben aus zwei sehr unterschiedlichen Bereichen der Mathematik unter dem gemeinsamen Aspekt der Entwicklung anpassbarer Programme behandelt:

Unterscheidung zwischen numerischem und algebraischem Rechnen

Numerisches Rechnen

In der Numerischen Mathematik rechnet man mit Gleitkommazahlen. Gleit­komma­zahlen sind eine technische Realisierung einer endlichen Teilmenge der reellen Zahlen. Die Menge der Gleit­komma­zahlen ist so konstruiert, dass eine Rechengenauigkeit erzielt werden kann, die für sehr unterschiedliche praktische Probleme ausreichend ist. Trotzdem sind Rundungs­fehler gelegentlich ein ernstes Problem.

Die heute meist verwendete Implementierung von Gleitkommazahlen ist durch die Norm IEEE 754 beschrieben. Diese Norm sieht mehrere Zahlen­formate unterschiedlicher Genauigkeit vor. Die Zahlen­formate in 32-bit-Darstellung (einfache Genauigkeit) und in 64-bit-Darstellung (doppelte Genauigkeit) werden von allen mordernen Rechnern unterstützt. Eine 128-bit-Darstellung (vierfache Genauigkeit) kann in vielen Linux-Systemen mit den Programmiersprachen C und Fortran verwendet werden.

Für Aufgaben, die die Verwendung komplexer Zahlen verlangen, wird aufbauend auf einer zur Verfügung stehenden Realisierung von Gleit­komma­zahlen eine endliche Teilmenge der komplexen Zahlen konstruiert.

Algebraisches Rechnen

Beim algebraischen Rechnen, das vor allem in der Computeralgebra Anwen­dung findet, verzichtet man auf das Rechnen mit Gleit­komma­zahlen. Stattdessen konstruiert man für die Elemente der verwendeten Zahlen­mengen Darstellungen, die das exakte Rechnen ermöglichen.

Zu den Zahlenbereichen, die beim algebraischen Rechnen verwendet werden, gehören:

Die Menge der ganzen Zahlen. Elementare Datentypen für die Darstellung ganzer Zahlen stellen eine endliche Teilmenge zur Verfügung.
/ p Die Menge der Reste bei Division durch p, wo p meist als Primzahl gewählt wird. Implemen­tie­rungs­technisch wird zwischen vor­zeichen­losen und vor­zeichen­behafteten Resten unterschieden.
Die Menge der rationalen Zahlen. Der Zähler und der Nenner werden als teilerfremde ganze Zahlen gespeichert; in der Regel wird der Nenner nicht-negativ gespeichert, womit das Vorzeichen im Zähler mitgeführt wird.
G = ( i ) Die Menge der Gaußschen Zahlen. G = { α + β · i | α , β }
( i ) Die Menge der komplexen Zahlen mit rationalen Koeffizienten.

Aus diesen Zahlenbereichen kann man durch Hinzunahme (Adjunktion) einer irrationalen Zahl weitere Zahlenbereiche herstellen. So ist etwa



  
  (
    
      
        2
      
    
  )
  =
  {
    
      
      α
      +
      β
      ·
      
        2
      
      
      |
      
      α
      ,
      
      β
      
      
      
    
  }

ein Körper, der durch Hinzunahme der Wurzel aus 2 zu den rationalen Zahlen entsteht.

Diese Zahlenbereiche können überdies für die Konstruktion weiterer algebraischer Struk­turen verwendet werden. Zu denken ist insbesondere an Polynom­ringe und an Matrizen­ringe.

Berührungspunkte zwischen numerischem und algebraischem Rechnen

Besonderes Interesse verdienen Algorithmen, die sowohl für das numerische als auch für das algebraische Rechnen bereitgestellt werden können. Zu diesen Algorithmen gehören neben anderen:

Es sollte angestrebt werden, solche Algorithmen so allgemein zu schreiben, dass sie sowohl für die Ausführung mit Gleitkommazahlen als auch für die Ausführung in anderen Zahlen­bereichen konkretisiert werden können. Diese Anforderung stellt an die verwendete Pro­gram­mier­sprache hohe Anforderungen. In neueren Pro­gram­mier­sprachen wird man häufig das Sprach­mittel Generizität verwenden.

Themenbereich Numerische Mathematik

Die Programmierbeispiele sind im Wesentlichen den folgenden Bereichen der Numerik entnommen:

Bei der Programmierung aller behandelten Verfahren wird vor allem angestrebt, Pro­gramme zu entwickeln, die möglichst allgemeingültig sind und einfach an spezielle Auf­gaben­stel­lungen angepasst werden können.

Die Anpassbarkeit eines allgemeingültig geschriebenen Programms an spezielle Auf­gaben­stel­lungen begründet unter anderem die folgenden Anfor­de­rungen:

Themenbereich Algebra

In diesem Themenbereich wird der Aspekt der Anpassbarkeit einer Rechen­vorschrift an unterschiedliche Zahlenbereiche ausgeweitet auf die wesentlichsten Strukturen der abstrakten Algebra. Es sind dies:

Unter Anpassbarkeit eines allgemeingültig geschriebenen Programms wird hier die Mög­lich­keit verstanden, kompliziertere algebraische Strukturen aus einfacheren Strukturen aufzubauen.


Einordnung des dargestellten Stoffs in den Vorlesungsbetrieb einer Universität

In einem Programmierkurs werden einige der behandelten Rechen­verfahren ohne Herleitung angegeben und mit der im Kurs verwendeten Programmier­sprache implementiert.

In einem Einführungskurs "Numerische Mathematik" werden einige der behandelten Verfahren hergeleitet und ihre Eigenschaften mit ver­schie­den­en Methoden untersucht.

In einem Einführungskurs "Algebra" werden einige der behandelten Aufgaben als Beispiele gezeigt und vielleicht auch mit einem Com­pu­ter­al­ge­bra­system gerechnet.


Bleibt die Frage, wie der Inhalt dieses Tutorials einzuordnen ist:

Das ist nicht leicht zu sagen, weil mögliche Antworten auch von persönlichen Präferenzen abhängen.

Ein Informatiker würde vielleicht sagen:

Viel zu viel Mathematik! Das braucht kein Mensch!

Ein Mathematiker würde wohl entgegnen:

Viel zu viel Informatik! Das braucht kein Mensch!

Jede dieser Meinungen ist vertretbar. Es ist allerdings nicht möglich, beide Meinungen zugleich zu vertreten.


zur Inhaltsübersicht des Kapitels nächster Abschnitt