Mathematik für Ingenieure I, WS 2008/2009 Dienstag 4.11 $Id: mengen.tex,v 1.3 2008/11/10 18:20:17 hk Exp hk $ §3 Mengen und Abbildungen 3.2 Operationen mit Mengen Zusammenfassend haben wir damit die folgenden Operationen für Mengen definiert: 3.3 Vereinigung M ∪N {x|x ∈ M ∨ x ∈ N } Durchschnitt M ∩N {x|x ∈ M ∧ x ∈ N } Komplement M \N {x ∈ M |x ∈ / N} Produkt M ×N {(x, y)|x ∈ M, y ∈ N } Abbildungen und Relationen Definition 3.5: Seien n ∈ N eine natürliche Zahl und M1 , . . . , Mn gegebene Mengen. Eine Relation R auf M1 , . . . , Mn ist eine Teilmenge R ⊆ M1 × · · · × Mn . Wir sprechen auch von einer n-stelligen Relation, da R aus n-Tupeln besteht. Beachte das die Angabe der Mengen M1 , . . . , Mn etwas willkürlich ist, wir können jederzeit zu größeren Mengen M10 ⊇ M1 , . . . , Mn0 ⊇ Mn übergehen und R ist dann offenbar auch eine Relation auf M10 , . . . , Mn0 . Insbesondere können wir immer M1 = . . . = Mn = M annehmen, d.h. das alle Mengen M1 , . . . , Mn gleich sind, indem wir etwa zu M = M1 ∪. . .∪Mn übergehen. Weiter könnten wir eine n-stellige Relation damit auch einfach als eine Menge von n-Tupeln definieren, ohne von den Mengen M1 , . . . , Mn überhaupt zu sprechen. Allerdings gibt es oftmals eine aus dem Kontext heraus gegebene Wahl der Mengen M1 , . . . , Mn so, dass es sinnvoll erscheint, diese auch in der Definition einer Relation zu bennenen. Wir wollen nun einige Beispiele von Relationen durchgehen. Dabei beginnen wir mit für die Mathematik typischen Relationen, und diese sind in der Regel zweistellig, d.h. in unserer obigen Definition haben wir n = 2. Die Ordnung der reellen Zahlen ergibt eine Relation R := {(x, y) ∈ R2 |x ≤ y} ⊆ R2 . Tatsächlich pflegt man in der Mathematik den Ordnungsbegriff dem allgemeinen Relationsbegriff unterzuordnen, d.h. man definiert die Ordnung der reellen Zahlen überhaupt 4-1 Mathematik für Ingenieure I, WS 2008/2009 Dienstag 4.11 als die obige Relation R und fasst die Notation x ≤ y einfach als eine Schreibweise für (x, y) ∈ R auf. Dann wird R =≤ die Ordnung der reellen Zahlen. Eine andere nützliche Relation, die Sie wahrscheinlich noch aus der Schule kennen, ist die Kongruenz von Dreiecken. In diesem Fall sind M = M1 = M2 beides die Menge der Dreiecke in der Ebene, und wir haben die sogenannte Kongruenzrelation R = {(∆1 , ∆2 ) ∈ M × M |∆1 und ∆2 sind zwei kongruente Dreiecke}. Diese Relation ist hilfreich, da kongruente Dreiecke ja in vielerlei Hinsicht dieselben geometrischen Eigenschaften haben. Wir wollen nun noch ein Beispiel eines etwas anderen Typs einer Relation betrachten, das zwar in der Mathematik keine Rolle spielt, aber außerhalb dieser von Bedeutung ist. Außerdem ermöglich es uns dieses Beispiel die Verwendung kartesischer Produkte in der in §1 diskutierten mathematischen Modellierung zu demonstrieren. Wir werden kurz an einem Beispiel die Verwendung des Relationenbegriffs in sogenannten relationalen Datenbanken“ beschreiben, natürlich ohne allzu sehr auf technische De” tails einzugehen. Konkret wollen wir hier eine Menge von Studenten als eine Relation betrachten. Wir bereits bemerkt, stellen wir uns immer auf den Standpunkt keine Mengen realer, physikalischer Objekte zu erlauben, und daher können wir nicht direkt eine Menge von Studenten einführen. Anstelle dessen gehen wir zu einer mathematischen Beschreibung über, d.h. wir führen eine Modellierung wie in §1 geschildert, durch. Dies deckt sich mit dem Vorgehen bei der Verwendung realer Datenbanken, die Erfassung der relavanten Daten über die zu beschreibenden Objekte, in unserem Beispiel also die Studenten, ist ein spezieller Fall einer mathematischen Modellierung. Wie wollen wir nun einen Studenten beschreiben? Wie wählen hier die einfachste Methode und beschreiben einen jeden Studenten durch einen Datensatz (Id,Matrikelnummer,Name,Geburtsdatum,Semester,Studiengang). Dabei interpretieren wir die Einträge Matrikelnummer und Semester als natürliche Zahlen, also als Elemente von N. Den Eintrag Studiengang interpretieren wir ebenfalls als eine natürliche Zahl, etwa indem wir alle möglichen Studiengänge einfach durchnumerieren. Der Name des Studenten Name entstammt einer Menge S von Strings, also Zeichenketten, die wir uns hier der Einfachheit halber als vorgegeben denken. Das Geburtsdatum interpretieren wir dagegen als eine natürliche Zahl, etwa indem wir ein jedes Datum durch die Anzahl der Tage seit dem ersten Januar des Jahres 1900 beschreiben, dies sollte ausreichen alle derzeit lebenden Studenten zu erfassen. Der letzt Eintrag Id ist einfach eine natürliche Zahl, die diesen Studenten eindeutig kennzeichnet. Je nach geplanten Verwendungszweck könnten wir hierfür auch die Matrikelnummer verwenden, eine davon unabhängige Nummer erlaubt es uns aber auch beispielsweise nicht mehr immatrikulierte Studenten zu erfassen. Die gesamte Beschreibung eines Studenten, also das volle oben angegebene 6-Tupel ist dann ein Element des kartesischen Produkts N × N × S × N × N × N. 4-2 Mathematik für Ingenieure I, WS 2008/2009 Dienstag 4.11 Technische Details ignorieren wir hierbei, in realen Datenbanken müsste man sich über die erlaubten Wertebereiche der verschiedenen auftretenden Zahlen Gedanken machen, man sollte sich für eine Stringcodierung sowie für eine maximale Namenslänge entscheiden, und so weiter. Eine Menge von Studenten, beziehungsweise genauer von Beschreibungen von Studenten, wird nun eine Teilmenge S ⊆ N × N × S × N × N × N des obigen kartesischen Produkts, also eine sechsstellige Relation. Notiert denken wir uns diese üblicherweise in einer Tabelle, etwa wie folgt 1 2 3 . . . 456123 673961 987543 Burg, Klemens Haf, Herbert Wille, Friedrich 26123 27467 25939 3 2 1 1 2 1 Die Reihenfolge in der die Zeilen dieser Tabelle aufgelistet werden spielt keine Rolle, es handelt sich um eine Menge von Studenten, und nicht um eine irgendwie geordnete Liste. Es darf in der Tabelle keine zwei identischen Zeilen geben. Diese Einschränkung gibt es übrigens auch in den Tafeln einer realen, relationalen Datenbank, die Tafeln repräsentieren eben Mengen und keine Listen. Die mit dieser Tabellensichtweise verbundene Vorstellung ist es sich ein Tupel, also ein Element eines kartesischen Produktes, als einen Datensatz vorzustellen, also als eine Zeile in einer Tabelle, und Relationen werden dann zu Tabellen. Diese Vorstellung können wir auch in anderen Situation verwenden, zum Beispiel können wir uns einen Punkt (1, 2, −1) ∈ R3 im Raum auch als eine Beschreibung {x = 1, y = 2, z = −1} interpretieren. Für die Mathematik ist diese Vorstellung aber in der Regel nicht sehr hilfreich. Unsere mengentheoretischen Operationen, also Vereinigen, Schneiden, das Bilden von Teilmengen und so weiter treten nun tatsächlich bei der Verwendung relationaler Datenbanken auf. Haben wir beispielsweise eine Menge Studenten von Studenten gegeben und interessieren uns für die Teilmenge aller dieser Studenten, die im ersten oder zweiten Semester sind, also in mengentheoretischer Notation {(i, m, n, d, s, f ) ∈ Studenten|s ∈ {1, 2}}, so können wir diese mathematische Notation in der üblichen Abfragesprache (SQL), auch als SELECT * FROM Studenten WHERE semester <= 2 formulieren. Die Formulierung SELECT * FROM Studenten“ ist dabei die Aufforde” rung eine Teilmenge der Relation Studenten zu bilden, und hinter dem Schlüsselwort WHERE“ wird die, die Teilmenge definierende Bedingung angegeben. In unserer obigen ” Beispieltabelle wäre die Antwort 4-3 Mathematik für Ingenieure I, WS 2008/2009 2 3 . . . 673961 987543 Haf, Herbert Wille, Friedrich Dienstag 4.11 27467 25939 2 1 2 1 Suchen wir dagegen beispielsweise alle Studenten im Studiengang Elektrotechnik, so können wir diese durch eine zu obigem Kommando analoge Anfrage SELECT * FROM ” Studenten WHERE fach=1“ erhalten, wobei angenommen sei, dass der Srudiengang Elektrotechnik die Nummer 1 erhalten hat. In unserem Beispiel sind dies 1 3 . . . 456123 987543 Burg, Klemens Wille, Friedrich 26123 25939 3 1 1 1 Wollen wir nun alle Studenten, die beide Bedingungen erfüllen, also Studenten der Elektrotechnik im ersten oder zweiten Semester, so müssen wir den mengentheoretischen Durchschnitt der beiden eben erhaltenen Mengen bilden. Wir hatten bereits die Beziehung {x ∈ M |A(x)} ∩ {x ∈ M |B(x)} = {x ∈ M |A(x) ∩ B(x)} zwischen Durchschnitt und dem logischen Junktor und“ festgehalten, und unter Ver” wendung dieser Beziehung erhalten wir die Abfrage SELECT * FROM Studenten WHERE semester <= 2 AND fach = 1 mit Ergebnistabelle 3 . . . 987543 Wille, Friedrich 25939 1 1 Wir werden dieses Beispiel später noch etwas fortsetzen. Wir kommen nun zu den Operationen wie Hintereinanderausführung und Inversion von Relationen. Diese sind hauptsächlich für zweistellige Relationen von Interesse, und zu ihrem Verständnis ist eine weitere Veranschaulichung speziell zweistelliger Relationen hilfreich. Wir können uns eine Relation R ⊆ M × N als eine Menge von Pfeilen von Elementen von M zu Elementen von N vorstellen, indem wir jedes Element (x, y) ∈ R ⊆ M × N als einen Pfeil von x nach y interpretieren. Haben wir zum Beispiel M = N = {1, 2, 3, 4}, so veranschaulicht 4-4 Mathematik für Ingenieure I, WS 2008/2009 Dienstag 4.11 die Relation R = {(1, 1), (2, 1), (2, 2), (3, 4), (4, 4)} wobei wir uns die vier Elemente von M beziehungsweise N von oben nach unten durchnumeriert denken. Definition 3.6: Sei R ⊆ M × N eine Relation. Dann heißt die Menge R−1 := {(y, x)|(x, y) ∈ R} ⊆ N × M die zu R inverse Relation. In unserem Pfeilbild entspricht das Bilden der Inversen einer Relation einfach dem Umdrehen aller Pfeile, in unserem obigen Beispiel ist etwa R−1 = {(1, 1), (1, 2), (2, 2), (4, 3), (4, 4)}, und im Pfeilbild ist dies Die andere Operation auf Relationen ist das Bilden der Hintereinanderausführung: Definition 3.7: Seien A, B, C drei Mengen und R ⊆ A × B, S ⊆ B × C Relationen. Die Hintereinanderausführung von R und S ist dann die Relation S ◦ R := {(a, c) ∈ A × C|Es gibt ein b ∈ B mit (a, b) ∈ R und (b, c) ∈ S} ⊆ A × C. 4-5 Mathematik für Ingenieure I, WS 2008/2009 Dienstag 4.11 Alternativ spricht man auch vom Produkt oder der Komposition von R und S. Diese Definition wird im Pfeilbild klarer. Wir betrachten die folgende Situation: R A S C B Dabei ist A = B = {1, 2, 3, 4}, C = {1, 2, 3}, R ist wieder die schon oben als Beispiel verwendete Relation und S ist die Relation S = {(2, 1), (3, 1), (3, 2), (4, 3)}. Die Elemente von S ◦ R sind jetzt alle Paare (a, c) ∈ A × C = {1, 2, 3, 4} × {1, 2, 3}, so dass es zunächst einen Pfeil von a zu einem Punkt b ∈ B = {1, 2, 3, 4} gibt, und es weiter auch einen Pfeil von b nach c gibt. Wir setzen also auf alle möglichen Weisen Pfeile aus S an Pfeile aus R und gucken uns dann nur noch die Start- und Endpunkte dieser kombinierten Pfeile an. In unserem Beispiel sind dies R A S B C und die Hintereinanderausführung von R und S wird zu S ◦ R = {(2, 1), (3, 3), (4, 3)}. Die Bedeutung der Hintereinanderausführung für unsere Zwecke wird erst im Zusammenhang mit Abbildungen klar werden. Die verschiedenen Operationen auf Relationen 4-6 Mathematik für Ingenieure I, WS 2008/2009 Dienstag 4.11 haben allerdings auch einige durchaus praktische Anwendungen, beispielsweise im Zusammenhang mit den bereits oben als Beispiel verwendeten relationalen Datenbanken. Wir wollen unser obiges Beispiel der Studenten Tabelle weiter ausbauen, wir brauchen ja mehrere Relationen um Beispiele von Hintereinanderausführungen zu diskutieren. Wir denken uns eine weitere Tafel Vorlesungen zur Beschreibung von Vorlesungen gegeben. Für die Zwecke unseres Beispiels wollen wir eine Vorlesung durch ein 4-Tupel (Id,Name,Zeit,Raum) beschreiben. Wir könnten beispielsweise die folgende Tabelle vorliegen haben 1 2 . . . Elektrotechnik I Mathematik I Di. 16.15--17.45 Do. 14.15--15.45 CAP3, Raum 1 Audimax H Natürlich sollte nun auch erfasst werden, welche Studenten welche Vorlesung besuchen. Dies können wir beispielsweise durch Einrichten einer weiteren, diesmal zweistelligen, Relation Teilnehmer erreichen, die einfach Paare (Vorlesung.Id,Student.Id) enthält. Besuchen beispielsweise die Studenten Burgm Klemens und Wille, Friedrich die Vorlesung Elektrotechnik I und Burg, Klemens sowie Haf, Herbert die Vorlesung Mathematik I, so wird unsere Teilnehmer Relation zu 1 1 2 2 1 3 1 2 Nehmen wir nun an, wir möchten einen vollständigen Stundenplan aller Studenten aufstellen, d.h. für jeden der vorhandenen Studenten auflisten zu welcher Zeit sie oder er sich in welchem Raum befindet, oder zumindest befinden sollte. Wir wollen also eine Tabelle von Tripeln (Student.Name,Vorlesung.Raum,Vorlesung.Zeit) konstruieren, wobei ein solcher Eintrag bedeutet, dass sich der Student mit dem Namen Student.name zur Zeit Vorlesung.Zeit im Raum Vorlesung.Raum befindet. Solch ein Tripel wird in unsere Liste aufgenommen, wenn die Tafel Teilnehmer einen Eintrag (Vorlesung.Id,Student.Id) enthält, denn diese Tafel listet ja gerade die Teilnehmer der verschiedenen Vorlesungen auf. Was hat das mit der Hintereinanderausführung von 4-7 Mathematik für Ingenieure I, WS 2008/2009 Dienstag 4.11 Relationen zu tun? Zu diesem Zweck denken wir uns die Relation Studenten als eine Teilmenge des kartesischen Produkts N × M indem wir die hinteren fünf Einträge in einem einzigen 5-Tupel zusammenfassen, also M = N × S × N × N × N. Ebenso denken wir uns Vorlesung als eine Teilmenge des kartesischen Produkts N × N , wobei N für die hinteren drei Komponenten einer Vorlesung steht. Sind s ein Student und v eine Vorlesung, geschrieben als s =(s.Id,s.M) und v =(v.Id,v.N), wobei s.M und v.N für die hinteren fünf beziehungsweise drei Komponenten von s beziehungsweise v stehen, so müssen wir (s, v) genau dann in usere Liste aufnehmen, wenn es einen Eintrag t = (n, m) in Teilnehmer gibt so, daß s.Id= m und v.Id= n ist. Wir brauchen also einen zusammengesetzten Pfeil, wie im folgenden Bild angedeutet −1 Vorlesung N Teilnehmer IN Studenten IN M Wir müssen also die Relation Student ◦ Teilnehmer ◦ Vorlesung−1 bilden. Für unser konkretes Beispiel müssen anschließend noch die zur Anzeige vorgesehenen Spalten unserer Tabellen ausgewählt werden. Ein SQL Kommando um all dies zu erreichen wäre etwa SELECT FROM WHERE Student.Name, Raum, Zeit Student,Vorlesungen,Teilnehmer Teilnehmer.vorlesung id = Vorlesung.Id AND Teilnehmer.student id = Student.Id Als Ausgabe für unsere Beispieldaten ergibt sich Burg, Klemens Wille, Friedrich Burg, Klemens Haf, Herbert . . . CAP3, Raum 1 CAP3, Raum 1 Audimax H Audimax H Di. Di. Do. Do. 16.15-17.45 16.15-17.45 14.15-15.45 14.15-15.45 Dabei wollen wir die Beispiele für Relationen beenden und uns nun dem Abbildungsbegriff zuwenden. Dabei ist das Wort Abbildung“ einfach ein Synonym für das et” was vertrautere Wort Funktion“. Die Ihnen wahrscheinlich aus der Schule bekannte ” 4-8 Mathematik für Ingenieure I, WS 2008/2009 Dienstag 4.11 Definition einer Funktion f erklärt diese als eine Abbildungsvorschrift, die jedem Element x des Definitionsbereichs der Funktion ein Element f (x) des Wertebereichs der Funktion zuordnet. Allerdings ist die Funktion dann doch nicht wirklich gleich der Abbildungsvorschrift sondern der durch sie gegebenen Wirkung, zwei völlig verschiedene aussehende Abbildungsvorschriften können ja exakt dieselben Werte liefern, und sollten damit natürlich auch dieselbe Funktion sein. Beispielsweise werden Sie als eine Übung einsehen, dass die beiden für n ∈ N erklärten Abbildungsvorschriften f (n) = 12 + 22 + . . . + n2 und n(n + 1)(2n + 1) 6 genau dieselbe Funktion beschreiben. Die Abbildungsvorschrift selbst zur Funktion zu ernennen scheint also ein etwas unpassender Ansatz zu sein. Ein weiteres Argument das gegen diese Idee spricht, ist, dass wir dann den Begriff einer Abbildungsvorschrift als einen weiteren Grundbegriff akzeptieren müssten. Das kann man natürlich tun, aber wie sich herausstellt ist dies überhaupt nicht nötig. Die seit inzwischen fast 100 Jahren in der Mathematik verwendete Definition einer Funktion, oder Abbildung, erwähnt das Konzept einer Abbildungsvorschrift nicht einmal mehr, sondern interpretiert Funktionen als eine spezielle Sorte zweistelliger Relationen. g(n) = Definition 3.8: Seien M, N zwei Mengen. Eine Abbildung f von M nach N , geschrieben als f : M → N , ist eine zweistellige Relation f ⊆ M × N , die die folgende Bedingung erfüllt: Für jedes x ∈ M gibt es genau ein Element y ∈ N mit (x, y) ∈ f . Wir schreiben dann auch f (x) für dieses eindeutige Element y ∈ N . Mit der Schreibweise f (x) für x ∈ M ist dann f = {(x, f (x))|x ∈ M } ⊆ M × N. Natürlich spielt die Idee einer Abbildungsvorschrift weiter eine Rolle, aber nicht mehr in der Definition einer Abbildung, sondern bei der Beschreibung konkret gegebener Funktionen. Bezeichnet F (x) eine Abbildungsvorschrift mit freier Variablen x, also beispielsweise eine Formel in der x als freie Variable vorkommt, so bezeichnen wir mit f : M → N ; x 7→ F (x) die Funktion f := {(x, F (x))|x ∈ M }, d.h. diejenige Funktion, deren Werte f (x) sich gemäß der gegebenen Formel als f (x) = F (x) berechnen. Beispielsweise steht f : R → R; x 7→ x2 für die Funktion f = {(x, x2 )|x ∈ R} ⊆ R2 . In unserer Pfeilinterpretation einer zweistelligen Relation, bedeutet die eine Abbildung definierende Eigenschaft gerade, dass von jedem Punkt der linken Seite genau ein Pfeil zur rechten Seite startet. 4-9