Kapitel 6Funktionen

 
    Beachte
Der Befehl f(x):= x^2 definiert keine Funktion! Statt dessen wird die Zeichenfolge "f(x)" als Variablenname aufgefaßt. Ein Ausdruck der Form f(2) ist daher undefiniert.

Definieren von Funktionen

    Für das Definieren von Funktionen gibt es drei Möglichkeiten. In allen Fällen ist die Funktionalbeziehung eindeutig erkennbar, d.h. von welchen Variablen die Funktion abhängt.

    1. Mit dem Pfeil-Operator: (der mathematischen Notation am ähnlichsten)

    Das Pfeilsymbol -> besteht aus dem Minus- und dem Größerzeichen. Ausdruck bezeichnet den Funktionsterm. In der Variablen-Folge und der Ausdruck-Folge müssen mindestens je ein Element stehen.

    2. Mit dem Befehl unapply:

    Die allgemeine Form für unapply lautet:

      Funktionsname := unapply (Ausdruck, Variablen)
    Durch die Eingabe von j:= unapply(x^3*y, x,y) wird beispielsweise eine Funktion in zwei Veränderlichen x,y erzeugt, deren Funktionsterm x³y lautet.

    Die Variablen werden als Folge angegeben. Mit dem unapply-Befehl lassen sich nur skalarwertige Funktionen erzeugen.
     
    Beachte Bei der Definition von Funktionen sollte man keine belegten Variablen verwenden. Sonst wird bei Abfrage der Funktion mit den gewählten Variablen ein Wert statt des Funktionstermes zurückgegeben. Der Wert wird z.B. durch verzögerte Auswertung gelöscht.
    3. Mittels einer Prozedur: dazu in Kapitel 15 mehr.
     
    Beispiel Der Pfeiloperator und der Befehl unapply
    Verknüpfung von Funktionen

    Funktionen werden in der oben angegeben Schreibweise als Operatoren interpretiert. Sie können daher unter Beachtung der Dimensionen des Urbild- und des Bildraumes beliebig verknüpft werden. Mögliche Verknüpfungsoperatoren sind +,-,* und /.

    Funktionen lassen sich auch hintereinanderschalten: Funktion1@Funktion2. Konkret bedeutet das: (f@g)(x) = f(g(x)). Das Ergebnis von g(x) wird als Argument von f benutzt. Die Dimension des Bildraumes von g muß gleich der Dimension des Urbildraumes von f sein.

    Funktion@@n bewirkt die n-fache Hintereinanderschaltung der Funktion.
     
    Beachte Unter Maple lassen sich auch Funktionen f@g hintereinanderschalten, bei denen die Bildraumdimension von g ungleich der Urbildraumdimension von f ist. Das Ergebnis ist grober Unfug (siehe nachfolgendes Beispiel).
     
    Beispiel Anwendung der Verknüpfungsoperatoren
    Stückweise definierte Funktionen

    Stückweise definierte Funktionen lassen sich mit dem piecewise- Befehl handhaben. Da piecewise aber keine Standardfunktion ist, muß es erst mit
    readlib(piecewise) eingelesen werden. Der Befehl hat folgende allgemeine Form:

    piecewise( Bedingung_1, Ausdr_1, ... ,Bedingung_n, Ausdr_n, Default_ausdruck)

    Die Auswertung ist denkbar einfach: Ist Bedingung_1 wahr, so benutze Ausdr_1. Ist Bedingung_2 wahr, so benutze Ausdr_2, auch wenn Bedingung_1 wahr ist und überschreibe ggf. Ausdr_1, usw. Der Default_ausdruck deckt alle Definitionsbereiche ab, die durch die Bedingungen_1 bis Bedingungen_n nicht erfaßt worden sind. Wird kein Default_ausdruck angegeben, so gilt standardmäßig 0 als Default_ausdruck.

    Die Bedingungen können Gleichungen, Ungleichungen und logische Verknüpfungen von solchen sein. Akzeptiert werden als Bedingungen auch polynomiale Ausdrücke wie z.B. 3x³+x²-x < 7 und sogar stückweise Funktionen.

    Mit piecewise-definierte Funktionen können differenziert und integriert werden.
     
    Beispiel Die Funktion piecewise
     
    Aufgabe Sindbad, der Seefahrer
     

Differentiation ...

    ... mit dem Operator D:

    Der D-Operator berechnet Ableitungen von Funktionen:

      D(Funktion)
    Das Ergebnis ist automatisch wieder eine Funktion. Beispielsweise ergibt f1 := D(f) mit der wie oben definierten Funktion f:= x -> 3*x^2 die Funktion f1 := x -> 6*x.

    ... mit dem Kommando diff:

    diff berechnet die Ableitung eines beliebigen Ausdruckes:

      diff(Ausdruck, var)
    var sind die Variablen (als Folge), nach denen der Reihenfolge entsprechend abzuleiten ist.
    Dabei gilt: diff(Ausdruck, x, y) = diff(diff (Ausdruck, x), y).

    Diff ist die träge Variante von diff. Der Ausdruck wird damit nicht differenziert, sondern in Schönschrift mit dem Differentialoperator vor dem Ausdruck dargestellt.
     
    Beachte Zusammenhang zwischen dem D-Operator und diff:
    D(f) = unapply(diff(f(x), x), x)
    Partielle Ableitungen

    Ist f eine Funktion in n Veränderlichen, so wird durch

    Der Folgenoperator $ erleichtert das Berechnen höherer Ableitungen.
    diff(g(x,y),x$2,y$3) bewirkt das gleiche wie diff(g(x,y),x,x,y,y,y)
    D[1$3,2](f) = D[1,1,1,2](f)
     
    Beispiel Differentiation
     

Integration

    Die Funktion int berechnet das eigentliche oder uneigentliche Integral eines Ausdrucks.

    symbolische Integration

    Kann Maple das Integral nicht berechnen, wird die träge Form des Ausdrucks zurückgegeben.

    Die Variablen der Funktion müssen ohne Wert sein, da Maple sonst eine Fehlermeldung produziert.

    Int ist die träge Form von int. Die Ausgabe des trägen Befehls ist das Integral in Schönschrift. Maple gibt das Integral unausgewertet zurück.
     
    Beachte Befinden sich im Integrationsbereich Unstetigkeitsstellen, über die hinweg integriert werden soll, so muß die Option continuous benutzt werden. Eine andere Möglichkeit ist die Aufsplittung des Integrals in zwei Integrale mit der Unstetigkeitsstelle als neuer Grenze.
     
    Aufgabe Kurvendiskusion
    uneigentliche Integrale

    Integrale, deren Grenzen plus- und/oder minus unendlich sind, werden meist problemlos ausgewertet. Sollten dennoch Probleme auftreten oder wird ein Funktionswert im Integrationsbereich unendlich groß, so ist die Option CauchyPrincipalValue als dritter Parameter ratsam. Unter Maple heißt unendlich infinity.

    Beispielsweise kann Maple int(1/x^3, x=-2..infinity) nicht berechnen, da sich im Inneren des Intervalls [-2,1] eine Polstelle befindet. Erst int(1/x^3,x=-2..infinity,'CauchyPrincipalValue') liefert den Wert des Integrals. Der Parameter CauchyPrincipalValue veranlaßt Maple dazu, falls sich ein unendlich großer Funktionswert im Integrationsbereich befindet, den links- und rechtsseitigen Grenzwert zu berechnen.

    numerische Integration

    Wird ein Integral unausgewertet zurückgegeben, ist Maple nicht in der Lage, eine symbolische Lösung zu finden. Einen Ausweg bietet die numerische Integration. Diese muß mit evalf(int(..)) oder evalf(Int(..)) erzwungen werden.

    Der Unterschied besteht darin, daß evalf(int(..)) erst symbolisch integriert und dann das Ergebnis in eine Fließkommazahl umwandelt, und evalf(Int(..)) ein numerisches Integrationsverfahren benutzt. Welche Methode für die numerische Integration verwendet wird, steht in den Hilfeseiten zu evalfint.
     
    Beispiel Numerische Integration mit int
     
    VORSICHT Problemfälle bei der Integration