kapitel-02maple.mw

Mathematik

von T. Arens, F. Hettlich, Ch. Karpfinger, U. Kockelkorn, K. Lichtenegger,  H. Stachel

(zu Kapitel 2: Logik, Mengen, Abbildungen)

> restart;

>

Mengen und Listen

Zunaechst ist jede Eingabe in Maple ein Ausdruck, der entsprechend interpretiert wird. Wir koennen solche Ausdruecke zusammenfassen zu Mengen durch

> {y,x,w,x,v,w};

{y, x, w, v}

Beachten Sie, dass doppelte Eintraege entfernt werden und die Reihenfolge der Elemente beliebig ist, da es sich  um eine Aufzaehlung der Elemente einer Menge handelt. Im  Gegensatz dazu gibt es auch die Moeglichkeit, die Eintraege in geordneter Reihenfolge als eine Liste anzugeben. Dafuer sind  die eckigen Klammer reserviert:

> [y,x,w,x,v,w];

[y, x, w, x, v, w]

Wollen wir uns die Menge der ersten zehn Quadratzahlen verschaffen, so koennen wir die Eingabe vereinfachen, indem wir die Konstruktion j^2 ausnutzen mit dem Befehl seq

> M := {seq(j^2,j=1..10)};

M := {1, 4, 9, 16, 25, 36, 49, 64, 81, 100}

Auf das dritte in der Menge angegebene Element laesst sich zugreifen durch

> M[3];

9

Und wollen wir aus den letzten fuenf angegebenen Zahlen eine neue Menge kreieren so ist dies durch

> M[6..10];

{36, 49, 64, 81, 100}

gegeben.

Um zu pruefen, ob eine Zahl Element der Menge M ist, koennen wir den Befehl member nutzen:

> member(20, M); member(64,M);

false

true

Beliebige Moeglichkeiten der Kombinationen, etwa Mengen von Mengen oder Listen von Mengen, stehen entsprechend  zur Verfuegung. Auf Listen werden wir noch im Kapitel ueber Folgen genauer eingehen. Betrachten wir hier nur noch einige Befehle die uns im Umgang mit Mengen zur Verfuegung stehen.

Wir koennen wie gewohnt die Vereingung, union , und den Durchschnitt, intersect , von Mengen bilden. Betrachten wir zum Beispiel  

> L := {seq(8*i,i=1..12)};

L := {8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96}

so erhalten wir die durch 8 teilbaren Quadratzahlen bis 100 durch

> K := M intersect L;

K := {16, 64}

In machen Faellen ist es nuetzlich, wenn man weiss, ob eine Menge Teilmenge einer anderen ist. Dies prueft der Befehl subset

> K subset M; M subset L;

true

false

>

Datentypen

Im jeweiligen Zusammenhang ist es haeufig notwendig Ausdruecken bestimmte Datentypen zuzuordnen. Die Datentypen set und list haben wir schon kennengelernt. Maple kennt eine ganze Reihe von Datentypen. Eine Liste findet sich unter type Jenach Datentyp sind bestimmte Operationen erlaubt, wie etwa intersect oder union. Ein Befehl

> 1 intersect 2;

Error, invalid input: intersect expects its 1st argument, to be of type set, but received 1

macht keinen Sinn, im Gegensatz zu

> {a,b} intersect {b,c,d};

{b}

Welcher Datentyp einem Ausdruck zugeordnet wird, laesst sich mit dem Befehl type erfragen.

> type({a,b},set);
type(298,integer);

type(1/2,integer);

type(1/2,fraction);

true

true

false

true

Die ueblichen Zahlenmengen integer (ganze Zahlen), fraction (Brueche), floating-point (Fliesskommazahl) sind selbstverstaendlich als Datentypen vorgesehen. Die Operationen mit Zahlen sind entsprechend zu diesen Datentypen erlaubt. Dabei sind Operationen stets an bestimmte Klassen von Datentypen gebunden. So ist der groesste gemeinsame Teile, igcd , nur bei ganzen Zahlen definiert und wir erhalten

> igcd(6,36,81); igcd(6,39.5,4);

3

Error, invalid input: igcd received 39.5, which is not valid for its 2nd argument

Einen weiteren Datentyp haben wir nebenei auch schon kennengelernt. Es ist der Typ boolean mit den Werten true und false  . Dieser Datentyp wird uns vor allem beim Programmieren von Schleifen oder Bedingungen begegnen. Logische Operationen wie and oder or sind zu diesem Datentyp entsprechend gegeben:

> 17<34 and 15>=6;

true

Mit dem Befehl evalb, laesst sich eine logische Auswertung erzwingen.

> evalb(a<a);

false

>

Aufgaben

(Um Aufgaben zu bearbeiten oeffnen Sie bitte ein neues Worksheet und probieren Sie dort ihre Befehle aus. Einen Loesungsvorschlag erhalten Sie, wenn sie die Loesung oeffnen. Dies sollten Sie aber erst nach eigenen Versuchen nutzen.)

1. Bestimmen Sie die Differenzmengen `minus`(A, B) und `minus`(B, A) und die symmetrische Differenz `minus`(A, B) and `minus`(B, A) der beiden Mengen A={1,2,3,5,8,13,21,34}       

und den ungeraden positiven Zahlen B={1,3,...,35}.

>

Loesung

2. In Aufgabe 2.15 ist die Aequivalenz zwischen den logischen Aussagen (A or B ) und not (not A and not B) zu zeigen. Stellen Sie mit Hilfe von Maple die zugehoerige Wahrheitstafel zusammen, die die Aequivalenz belegt.

>

Loesung