picture.math
Class Term

java.lang.Object
  |
  +--picture.math.Term
All Implemented Interfaces:
java.io.Serializable

public class Term
extends java.lang.Object
implements java.io.Serializable

Diese Klasse repraesentiert einen Term, also einen mathematischen Formelausdruck. Ein Term ist eine Verknuepfung aus Termen mit den Grundrechenarten oder eine Funktion von einem Term oder eine Klammerung von einem Term. Schließ sind Terme Zusammensetzungen aus Variablen und Konstanten.

Die Klasse erlaubt die Verknüpfung von Termen zu neuen Termen sowie die Berechnung von Funktionswerten für bestimmte Variablenbelegungen als Complex.

See Also:
Serialized Form

Constructor Summary
Term()
          Erzeugt einen neuen Term, der eine Konstante 1 repraesentiert
Term(java.lang.String s)
          Erzeugt ein neues Term-Objekt aus dem angegebenen String.
 
Method Summary
 Term copy()
          Erzeugt einen neuen Term aus diesem Term.
 int dim()
          Gibt die Dimension dieses Audrucks zurueck.
 Term durch(Term t)
           
 Complex einsetzen(java.lang.String[] variablen, Complex[] ersetzungen)
          Liefert die Zahl, die entsteht, wenn man in diesem Term die Variablen wie angegeben belegt.
 Term einsetzen(java.lang.String[] variablen, Term[] ersetzungen)
          Liefert den Term, der entsteht, wenn man jede Variable variable[i] durch ersetzung[i] ersetzt und das Ergebnis vereinfacht.
 boolean equals(Term t)
          true, falls this und t gleich sind im Sinne gleicher Struktur.
 boolean haengtAbVon(java.lang.String s)
          Prüft, ob dieser Term von einer Variable namens s abhängt.
 boolean haengtAbVonF(java.lang.String s)
          Prüft, ob dieser Term von einer Funktion namens s abhängt.
 Term hoch(Term t)
           
 java.util.Vector holeVariablen()
          gibt einen Vector zurueck, der alle in diesem Term enthaltenen Variablen als Strings zurueckgibt.
 boolean istPolynom()
          Gibt an, ob dieser Term ein Polynom ist.
static void main(java.lang.String[] args)
           
 Term mal(Term t)
           
 Term minus(Term t)
           
static void mymain(java.lang.String[] args)
           
 Term plus(Term t)
           
 void simplify()
          Vereinfacht diesen Term.
 int tiefe()
          Bestimmt ein Mass fuer die Komplexitaet dieses Terms.
 java.lang.String toString()
          Berechnet eine String-Repraesentation dieses Terms, mit dem der Konstruktor etwas anfangen kann.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Term

public Term(java.lang.String s)
     throws java.lang.IllegalArgumentException
Erzeugt ein neues Term-Objekt aus dem angegebenen String. Der String enthalte eine Repraesentation des Ausdrucks in vereinfachter Maple-Syntax. Das heisst: Erkannt werden Summen ("+"), Differenzen ("-"), Produkte ("*"), Divisionen ("/"), Klammerung ("(", ")"), Exponentiation ("^") sowie Funktionen (Bezeicher + "(" + Term + ")"), Variablen (Bezeichner) und Konstanten.
Bezeichner beginnen mit einem Buchstaben, gefolgt von beliebig vielen weiteren Ziffern und Buchstaben.
Zahlen beginnen mit einer Ziffer, gefolgt von weiteren Ziffern, optional gefolgt on einem Komma (".") und mindestens einer weiteren Ziffer.
Die Semantik entspricht der ueblichen.
Parameters:
s - der Ausdruck
Throws:
IllegalArgumentException, - falls s nicht verstanden wird

Term

public Term()
Erzeugt einen neuen Term, der eine Konstante 1 repraesentiert
Method Detail

toString

public java.lang.String toString()
Berechnet eine String-Repraesentation dieses Terms, mit dem der Konstruktor etwas anfangen kann.
Overrides:
toString in class java.lang.Object

equals

public boolean equals(Term t)
true, falls this und t gleich sind im Sinne gleicher Struktur. Als gleich werden erkannt: permutierte Summen und Produkte, etwa liefert a + b = b + c true, während sin(x)^2 + cos(x)^2 = 1 false liefert.
Parameters:
t - der Term, mit dem this verglichen werd

simplify

public void simplify()
Vereinfacht diesen Term. Dabei handelt es sich um die Standardvereinfachung, die nach Erzeugen eines Terms per Konstruktor und nach Berechnungen ausgeführt wird. Nachdem alle Unterterme rekursiv vereinfacht wurden, wird u.a. folgendes geleistet: (f(x) bezeichne einen bel. Term, a, b, seien Konstanten)
Throws:
ArithmeticException - z.B. bei Division durch null oder beim Versuch, mehr als zwei Vektoren miteinander zu multiplizieren.

dim

public int dim()
Gibt die Dimension dieses Audrucks zurueck. Ist dieser Term eine Konstante, so wird ihm die Dimension eins zugeordent. Handelt es sich um eine Funktion, so wird in der Funktionsliste nachgesehen, welche Dimension der Zielbereich dieser Funktion hat. Falls das unbekannt ist oder dieser Term weder Funktion noch Konstante ist, wird 0 zurückgegeben.
Returns:
Dimension dieses Terms

copy

public Term copy()
Erzeugt einen neuen Term aus diesem Term.
Returns:
eine Kopie dieses Terms.

haengtAbVon

public boolean haengtAbVon(java.lang.String s)
Prüft, ob dieser Term von einer Variable namens s abhängt.
Parameters:
s - Name der Variable, nach der gesucht werden soll
Returns:
true, falls s in diesem Term vorkommt.

haengtAbVonF

public boolean haengtAbVonF(java.lang.String s)
Prüft, ob dieser Term von einer Funktion namens s abhängt.
Parameters:
s - Name der Funktion, nach der gesucht werden soll
Returns:
true, falls s in diesem Term vorkommt.

plus

public Term plus(Term t)
Returns:
this + t

minus

public Term minus(Term t)
Returns:
this - t

mal

public Term mal(Term t)
Returns:
this * t

durch

public Term durch(Term t)
Returns:
this / t

hoch

public Term hoch(Term t)
Returns:
this ^ t

einsetzen

public Complex einsetzen(java.lang.String[] variablen,
                         Complex[] ersetzungen)
Liefert die Zahl, die entsteht, wenn man in diesem Term die Variablen wie angegeben belegt. Die zurückgegebene Zahl ist vom Typ unexakt. Falls der Term nicht zu einer Zahl evaluiert werden kann, weil z.B. noch freie Variablen enthalten sind, gibt diese Methode null zurück.
Parameters:
variablen - Feld der Variablen
ersetzungen - Feld der Belegungen
Returns:
Ergebnis

einsetzen

public Term einsetzen(java.lang.String[] variablen,
                      Term[] ersetzungen)
Liefert den Term, der entsteht, wenn man jede Variable variable[i] durch ersetzung[i] ersetzt und das Ergebnis vereinfacht. Gibt null zurueck, falls die Laengen der Felder nicht uebereinstimmen.
Parameters:
variablen - Feld der Variablen
ersetzungen - Feld der Ersetzungen
Returns:
Ergebnis

istPolynom

public boolean istPolynom()
Gibt an, ob dieser Term ein Polynom ist. Polynome sind: Konstanten, Variablen, Variablen hoch Konstanten, Summen von Polynomen.
Achtung: x^sin(1) wird nicht als Polynom erkannt, wohl aber x^(1/3).
Returns:
ist dieser Term ein Polynom?

tiefe

public int tiefe()
Bestimmt ein Mass fuer die Komplexitaet dieses Terms. Konstanten und Variablen haben das Mass 1. Weiter gelte:
Returns:
Komplexität dieses Terms

holeVariablen

public java.util.Vector holeVariablen()
gibt einen Vector zurueck, der alle in diesem Term enthaltenen Variablen als Strings zurueckgibt.

mymain

public static void mymain(java.lang.String[] args)

main

public static void main(java.lang.String[] args)