Gleichungen (equations) werden mit dem Gleichheitszeichen = formuliert. Eine Gleichung kann also wie folgt eingegeben werden:
> x + b = 4 ;
Für die weitere Bearbeitung ist es oft sinnvoll, die Gleichung einer Variablen zuzuweisen. Die Variable enthält dann einen Ausdruck vom Datentyp equation. Im weiteren Verlauf der Bearbeitung kann auf die Gleichung dann mit dem Variablennamen zugegriffen werden.
> gleichung := x + b = 4 ;
![]() |
Beachten Sie den Unterschied zwischen der Zuweisung mit := und dem Gleichheitszeichen =. Durch das Gleichheitszeichen entsteht einer neuer Datentyp, und zwar der Datentyp Gleichung (equation). Es erfolgt dadurch keine Zuweisung! |
Wenn eine Gleichung mit einer Variablen benannt wurde, kann auf die Ausdrücke, die rechts oder links des Gleichheitszeichens stehen, separat zugegriffen werden. Dazu gibt es die Funktionen lhs (left hand side) und rhs (right hand side).
In unserem Fall liefert also
> lhs(gleichung) ;
x+b
und
> rhs(gleichung) ;
4
Gleichungen können mit der Funktion solve analytisch gelöst werden. Dazu sind die Gleichung und die Variable, nach der die Gleichung gelöst werden soll, anzugeben.
> solve( gleichung, x);
-b+4
Wenn statt gleichung eine Funktion oder ein Ausdruck steht, werden automatisch die Nullstellen berechnet. solve rechnet stets analytisch, auch wenn die Gleichung Fließpunktzahlen enthält.
Die Lösungen werden in Form einer Folge ausgegeben, d.h. Vielfachheiten sind erkennbar. Manchmal enthalten die Lösungen (von Maple eingesetzte) Variablen. Einige typische sind:
_Z | ganze Zahlen |
_NN | nichtnegative ganze Zahlen |
_B | binäre Werte (0/1) |
Lösungen, die Maple berechnet hat, können für eine Gegenprobe in die Ursprungsgleichung eingesetzt werden. Dazu dient die Funktion subs.
Vorher muß die Lösung einer Variablen zugewiesen worden sein - wenn Sie wollen, können Sie natürlich auch das ditto benutzen. Also beispielsweise:
> gleichung := x+b = 4 ;
gleichung := x+b = 4
> loesung := solve( gleichung , x );
loesung := -b+4
> subs( x=loesung , gleichung );
4 = 4
Manchmal ist es nötig, Ergebnisse mit einer der Funktionen aus dem Kapitel "Ausdrücke" nachzuarbeiten, bevor sie interpretiert bzw. benutzt werden können.
![]() |
Lösen einiger Gleichungen mit solve und Einsetzen der Lösung in die jeweilige Gleichung |
Gleichungssysteme werden ebenfalls mit der Funktion solve gelöst. Die Gleichungen und die Variablen werden jeweils als Mengen angegeben. Die Lösungen werden ebenfalls als Mengen ausgegeben.
Manchmal enthalten die Lösungen RootOf-Ausdrücke, d.h. Wurzelausdrücke. Sie können im folgenden wie Variablen weiterbenutzt oder auch mit der Funktion allvalues berechnet werden.
allvalues unterscheidet bei der Auswertung von gleichen RootOf-Ausdrücken zwei Möglichkeiten: Im ersten Fall werden diese Wurzelausdrücke unabhängig voneinander (independent) berechnet (dadurch erhöht sich ggf. die Anzahl der Lösungen). Im zweiten Fall werden die Ausdrücke abhängig voneinander (dependent)- d.h. für jede Lösung alle gleich- ausgewertet. Welche dieser Möglichkeiten Maple benutzt, kann mit einer Option ausgewählt werden.
![]() |
Ein Gleichungssystem: Die Schnittpunkte eines Kreises mit einer Geraden |
![]() |
Ein Gleichungssystem |
Für manche Probleme findet Maple mit der Funktion solve keine analytische Lösung.
![]() |
Wenn Maple mit der Funktion solve keine analytische Lösung findet, wird weder eine Lösung noch eine sonstige Meldung ausgegeben. |
Wenn Sie in der Gleichung keine symbolischen Parameter verwenden, können Sie jetzt versuchen, die Gleichung mit der Funktion fsolve numerisch zu lösen. fsolve wird wie solve aufgerufen, kennt aber einige zusätzliche Optionen. So werden mit der Option complex ggf. auch komplexe Lösungen ausgegeben. Beispiel:
> fsolve( eqn, var, complex) ;
Standardmäßig gibt fsolve nur eine Lösung aus. Wird eine andere Lösung gewünscht, muß der Wertebereich beim Aufruf eingeschränkt werden. Beispiel:
> fsolve( eqn, var, bounds) ;
Der Ausdruck bounds wird wie folgt gebildet:
var = untereGrenze .. obereGrenze
wobei untereGrenze und obereGrenze beliebige Werte sein können.
Polynome werden von fsolve gesondert behandelt: Bei Polynomen liefert fsolve alle reellen Lösungen und nicht, wie sonst, nur eine Lösung.
![]() |
Beachten Sie den Unterschied zwischen fsolve( ... ) und evalf( solve ( ... )). Im ersten Fall wird ein numerisches Verfahren angewandt. Der zweite Fall liefert analytische Lösungen, die anschließend in Fließpunktzahlen umgewandelt werden. |
![]() |
Gleichungen, die Maple nur numerisch lösen kann |
Die Lösungen werden stets als Folge ausgegeben. Einzelne Lösungen können als Folgenglied angesprochen und weiterverwendet werden. Für das Verwenden der Lösungen im folgenden gibt es vor allem die Funktionen subs und assign.
subs
Soll eine Lösung nur vorübergehend (für einen Befehl) in die Ursprungsgleichung oder einen anderen Ausdruck eingesetzt werden, eignet sich die Funktion subs. Mit subs wird die Lösung in den angegebenen Ausdruck substituiert. Es erfolgt dadurch keine Zuweisung, so daß die Variable unverändert bleibt. Beispiel:
> subs( var = lösung[1], ausdruck);
assign
Wenn eine Lösung ausgewählt wurde und für den Rest der Sitzung gültig sein soll, kann die Funktion assign angewendet werden. assign macht aus einer Gleichung eine Zuweisung. Der Wert der Variablen wird dadurch -ggf. für den Rest der Sitzung- festgesetzt.
> assign(variable = lösung[1]);
Die Funktion solve hat einige Varianten für spezielle Problemstellungen.
isolve | ganzzahlige Lösungen bzw. Lösungsscharen |
dsolve | Differentialgleichungen (Näheres hierzu im Kapitel "Funktionen"!) |
rsolve | rekursive Funktionen |
Neben diesen und weiteren Varianten von solve gibt es weitere Funktionen für andere Spezialfälle:
solve, identify oder match | Koeffizientenvergleich |
extrema | Extremwertaufgaben unter Berücksichtigung von Nebenbedingungen |
![]() |
Die Kuhwiese |
Maple kann auch Ungleichungen lösen. Zur Definition einer Ungleichung kann eine der folgenden Relationen benutzt werden:
< | kleiner als |
> | größer als |
<= | kleiner oder gleich |
>= | größer oder gleich |
<> | ungleich |
Ungleichungen werden wie Gleichungen mit solve gelöst. Die Gleichungen und die Variablen werden in geschweiften Klammern eingegeben. Als Lösungen werden meist Ungleichungen in geschweiften Klammern ausgegeben.
Dabei sind die Lösungen sind wie folgt zu interpretieren:
{ ungl1 }, { ungl2 } | Die Ungleichungen sind als unabhängige Lösungen aufzufassen, d.h. Lösungen sind ungl1 oder ungl2. |
{ ungl1, ungl2 } | Die Ungleichungen sind Bedingungen, die alle gelten müssen, d.h. ungl1 und ungl2 müssen erfüllt sein. |
![]() |
Lösen von Ungleichungen mit solve |