DMUG-Archiv 2003

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Mathematica erkennt simple Äquivalenzen nicht

Hi All,

hier noch der Fussweg in Mathematica 2.2 - wie es sehr wohl zu einem True kommt.

Zu meiner zynischen Bemerkung - wenn man Ewigkeiten verlohren hat mit langen algebraischen Simulationen und beim 
Durchchecken mal alles mi I mulitpliziert und als Quittung 1 =  -1
 sehen muss, dann ist das wesetlich trauriger - als wenn so ein Mathe-Gymnastik-Programm nicht nach den eigenen 
Vorstellungen alles aufgelöst hat.

Hier fehlt es ein bisschen am Verständnis für symbolische Programmiersprachen.
Diese können nämlich keine Mathematik sondern machen nur eine Mustergymnastik auf einer eindeutigen Repräsenationform 
(FullForm in Mathematica).
Da die mathematischen Strukturen per Definition nicht einfach sind (Mathe ist ja die Wissenschaft der Strukturen), wird 
es wohl so bald kein Matheprogramm geben, das alles so auflöst wie ein Student es gearde braucht. 

Aber zum trost, 
wenn das mahte-Gymnastik-Ding wenigsten selten falsche Ergebnisse ausspuckt (und da ist Mathematica halbwegs stabil),
und eine Möglichkeit anbietet um in endlicher Zeit die symbolischen Gymnastikregeln zu erweitern (in Mathematica mit 
Patterns eigentlich kein Problem),
so ist Mathematica zwar noch kein symbolischer Taschenrechner - das man auf Knopfdruck jede Hausaufgaben gemacht 
bekommt ohne selbst nachzudenken - aber fast immer kommt man in kleineren Schritten zum Ziel.

Hier so eine Fussmarschübung, zum Thema (automatisieren kann der Student es ja jetzt selber):

Clear x;
Clear y;
y1 /: Im[y1] = 0;
y2 /: Im[y2] = 0;
x1 /: Im[x1] = 0;
x2 /: Im[x2] = 0;
(* Komplexe Variablen Definieren über reele Variablen*)
y = y1 + I y2;
x = x1 + I x2;
(* Wie Expandiert man eine Komplexe Form mit höherem Abstraktionsnieveau? *)
Conjugate[x] //ComplexExpand
(* Umformen einer Formel mit Komplexen Variablen *)
(* spezifischen Bedingungen setzen *)
lhs1 = x Conjugate[y] + Conjugate[x] y
lhs2 = lhs1 //ComplexExpand
lhs2 = lhs2 /. {x2 -> 0}
rhs1 = 2 Re[x y] //ComplexExpand;
rhs2 = rhs1 /. {x2 -> 0}
TrueQ[a == a]
lhs2
rhs2
lhs2 == rhs2  //FullForm
TrueQ[lhs2 == rhs2]

Und wer die Genialität von Mathematica immer noch nicht spürht, soll mal schnell die gleiche Rechnung in Fortran, C++, 
VB, Java, oder sonst was nachliefern. Wieviel Wochen waren dann dafür notwendig?

Viel Spass beim Nachdenken mit höhereren Programmiersprachen,

 Chari


______________________________________________________________________________
UNICEF bittet um Spenden fur die Kinder im Irak! Hier online an
UNICEF spenden: https://spenden.web.de/unicef/special/?mc=021101



Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html