5. Prozeduren verwenden

Die Prozeduren der Worksheets sind in einzelnen Paketen zusammengefasst, die im Initialisierungsteil jeweils aus der Bibliothek "MAPLE.LIB" geladen werden. Letztere liegt im Verzeichnis "/LIB/" im Binärcode vor. Änderungen an den Routinen können daher auf verschiedene Arten erfolgen. Auf drei Vorgehensweisen soll im folgenden eingegangen werden:

1. Lokale Änderung auf dem Worksheet unter Einschluss der Initialisierung

Gehen Sie dazu bitte wie folgt vor:

- Öffnen Sie das Start-Worksheet (Dies ist notwendig, damit die Suchpfade richtig gesetzt werden) und das Original-Worksheet.
- Öffnen Sie zusätzlich ein neues Worksheet
- Kopieren Sie dort den Initialisierungsteil des Originals hinein!
- Öffnen Sie die Hilfe-Datei der zu ändernden Prozedur.
- Kopieren Sie den Quelltext der Prozedur aus der Hilfe in das Worksheet. Achten Sie darauf, dass der Quelltext unter der Initialisierung eingefügt wird.
- Kopieren Sie auch einen Beispielaufruf direkt aus dem aktuellen Worksheet mit.
- Die Prozedur ist jetzt lauffähig. Testen Sie das.
- Nun können Sie Änderungen an der Prozedur vornehmen. Ein Anwendungsbeispiel finden Sie weiter unten beim Thema Drucken .

2. Änderung des Quelltextes mit anschließender Compilation

Hinweis: Dieses Verfahren ändert die Prozeduren dauerhaft in der Bibliothek und sollte nur von erfahrenen Benutzern angewandt werden. Es wird davon ausgegangen, dass die Quelltexte auf einer Festplatte installiert sind. Änderungen können sonst nicht abgespeichert werden.

Die Quelltexte der Bibliothek finden sich im Verzeichnis "/SRC/< Thema >/" und besitzen die Endung ".MPL". Es handelt sich um reine Textdateien, die mit einem Ascii-Editor wie z.B. Notepad bearbeitet werden können. Die Compilation erfolgt über das Worksheet "MAKE_LIB.MWS" im Verzeichnis "/SRC".

Gehen Sie wie folgt vor:

- Öffnen Sie den Quelltext des zu ändernden Paketes mit einem Ascii-Texteditor wie z.B. Notepad
- Führen Sie die Änderungen durch und speichern Sie die Datei.
- Öffnen Sie die Datei "make_lib.mws" durch Doppelklick aus dem Explorer (Dateimanager) raus. Dies ist notwendig, damit die Pfade richtig initialisiert werden.
- Suchen Sie die Zeile mit dem entsprechenden read-Befehl und lösen Sie diese aus. (Die Compilation findet jetzt statt.)
- Jetzt können Sie die Worksheets wie gewohnt aufrufen. Die Änderung ist jetzt wirksam.

3. Quelltexte in eigenen Worksheets verwenden

Wenn Sie einzelne Prozeduren benutzen wollen, um damit eigene Worksheets herzustellen und dauerhaft zu verwenden, können Sie die Quelltexte aus der Hilfe zur jeweiligen Prozedur direkt übernehmen. Sie gehen dazu wie unter 1. vor, können aber auf den Initialisierungsteil verzichten, weil Sie ja nicht das ganze Paket verfügbar haben wollen.

Drucken der Bilder einer Animation

Grundsätzlich kann man jede von Maple erzeugte Grafik durch Markieren und Kopieren z.B. in ein Word-Dokument als Bitmap einfügen. Allerdings kopiert Maple bei einer Animation immer nur das erste Bild der Bilderfolge und nicht etwa das aktuelle . Gleiches gilt für den Ausdruck des gesamten Worksheets. Oftmals ist aber der Ausdruck eines bestimmten Bildes der Animation erwünscht. Um dieses Problem zu lösen, müssen Sie den Quelltext der Pozedur ändern oder «viel eleganter» mit Hilfe einer kleine Prozedur oder einem «Trick»das gewünschte Bild extrahieren.

Alle Bilder einer Animation, erstellt mit ANIMATE, drucken

Beispiel: Scharkurve

`>` restart; with(plots,animate,display):
g:= (k,x) -> x^3-k*x+3; # Funktionsdefinition; k ist der Parameter
k1 := -3: k2:=6: n:=20: # Parametervaration von k1..k2 (Bilderanzahl n)
x1 := -4: x2:=4: # Zeichenbereich x1..x2
y1 := -8: y2:=10: # y-Zeichenbereich y1..y2

`>` animate(g(k,x),x=x1..x2,k=k1..k2,view=[x1..x2,y1..y2],frames=n);

Der ANIMATE -Befehl erzeugt einer Bilderserie, die man auch als Überblick erhalten kann. Man muss lediglich den ANIMATE-Befehl nochmals in einen DISPLAY -Befehle einschließen. Das Ergebnis sehen Sie unten. Lassen Sie sich vom Maßstab nicht täuschen.

`>` display(animate(g(k,x),x=x1..x2,k=k1..k2,view=[x1..x2,y1..y2],frames=n));

Zur Steigerung der Übersicht kann man die Beschriftung der Achsen mit Werten unterdrücken.

`>` display(animate(g(k,x),x=x1..x2,k=k1..k2,view=[x1..x2,y1..y2],frames=n),title=``,xtickmarks=0,ytickmarks=0);

`>`

Ein bestimmtes Bild einer Animation, erstellt mit ANIMATE, drucken

Dieser Tipp stammt von Herrn Fisches, Schriesheim
Kopieren Sie die kleine Prozedur namens auswahl an den Anfang ihres Worksheets:

`>` auswahl:= proc(nummer,animation)
PLOT(op(op(nummer,op(1,animation))));
end:

Wenn Sie jetzt z.B. aus der in der vorangehenden Sektion gezeigten Animation zum Drucken oder Kopieren auswählen wollen, können Sie dieses nun folgendermaßen erreichen.

`>` anima:=animate(g(k,x),x=x1..x2,k=k1..k2,view=[x1..x2,y1..y2],frames=n):

`>` auswahl(18,anima);

`>`

Alle Bilder einer Animation, erstellt über eine Plotliste, drucken

Dieser Tipp stammt von Herrn Laule, Mannheim

- Kopieren Sie die zugehörige Prozedur aus dem Quelltext in ein neues Worksheet. Im Falle des Worksheets "Grafisches Differenzieren" z.B. die Animation Sekanten

`>` restart:with(plots,display):

`>` Sekanten:=proc(f,xl,xr,yu,yo,xs,s)
local ms, sek, sw, para, plotliste, x1, titel, x0, x;
with(plots,display,pointplot,textplot);
ms:=(f(x1)-f(x0))/(x1-x0);
sek:=ms*(x-x0)+f(x0);
sw:=(xr-xl)/s;
titel:=cat("Sekanten durch den Punkt P( ",xs," | f(",xs,") )");
para:=view=[xl..xr,yu..yo],labels=["x","y"];
plotliste:=[];
for x1 from xl to xr by sw do
if x1<>xs then
plotliste:=[op(plotliste),\
display([plot(f(x),x=xl..xr,color=red,para),\
pointplot({[xs,f(xs)]},color=black,symbol=diamond),\
pointplot({[x1,f(x1)]},color=red,symbol=diamond),\
textplot([1.1*xs,1.1*f(xs),`P`],align={ABOVE,RIGHT}),\
plot(subs(x0=xs,sek),x=xl..xr,color=blue,para)])]
fi;
od;
display(plotliste,insequence=true,title=titel);
end:

- In der vorletzten Zeile wurde jetzt lediglich die Anzeige des Titels verhindert und die Ausgabe von Strichen auf den Achsen unterdrückt zur besseren Lesbarkeit innerhalb der Bilderserie

`>` f:=x->x^2-2;

`>` Sekanten(f,-2,2,-3,3,1,20);

- Der nachfolgende Befehl (vergleiche bei ANIMATE ) erzeugt jetzt die Bildergalerie.

`>` display(subs(DEFAULT=NULL,Sekanten(f,-2,2,-3,3,1,20)),\
title=``,tickmarks=[0,0]);

`>`

Ein bestimmtes Bild einer Animation, erstellt über eine Plotliste, drucken

Dieser Tipp stammt von Herrn Fisches, Schriesheim
Kopieren Sie die kleine Prozedur namens auswahl an den Anfang ihres Worksheets:

`>` auswahl:= proc(nummer,animation)
PLOT(op(op(nummer,op(1,animation))));
end:

Wenn Sie jetzt z.B. aus dem Worksheet "Grafisches Differenzieren" das sechste Bild der Animation Sekanten zum Drucken oder Kopieren auswählen wollen, können Sie dieses nun folgendermaßen erreichen. Falls Sie die Prozedur nicht schon mittels "with(grafdiff);" geladen haben, kopieren Sie bitte die Prozedur Sekanten aus der entsprechenden Hilfe in Ihr Worksheet.

`>` Sekanten:=proc(f,xl,xr,yu,yo,xs,s)
local ms, sek, sw, para, plotliste, x1, titel, x0, x;
with(plots,display,pointplot,textplot);
ms:=(f(x1)-f(x0))/(x1-x0);
sek:=ms*(x-x0)+f(x0);
sw:=(xr-xl)/s;
titel:=cat("Sekanten durch den Punkt P( ",xs," | f(",xs,") )");
para:=view=[xl..xr,yu..yo],labels=["x","y"];
plotliste:=[];
for x1 from xl to xr by sw do
if x1<>xs then
plotliste:=[op(plotliste),\
display([plot(f(x),x=xl..xr,color=red,para),\
pointplot({[xs,f(xs)]},color=black,symbol=diamond),\
pointplot({[x1,f(x1)]},color=red,symbol=diamond),\
textplot([1.1*xs,1.1*f(xs),`P`],align={ABOVE,RIGHT}),\
plot(subs(x0=xs,sek),x=xl..xr,color=blue,para)])]
fi;
od;
display(plotliste,insequence=true,title=titel);
end:

`>` f:=x->x^2-2;
Sekanten(f,-2,2,-3,3,1,20);

Beachten Sie, dass das erste Bild die Nummer 0 hat!

`>` auswahl(5,%);

`>`