Wolfram Technologie Guide
Wolfram Technologie Guide
Die Firma Wolfram Research ist der Hersteller des weltweit bekannten Systems Mathematica und der angepassten Variante, gridMathematica, webMathematica. Wolfram Research ist jedoch auch Technologie-Lieferant im mathematisch naturwissenschaftlichen, finanzmathematischen Umfeld und dem Ingenieurwesen.
Die Leistungsfähigkeit als Technologie-Führer stellt Ihnen Wolfram Research im Technology Guide dar. Bevor Sie in den Technologie-Bereich bei Wolfram einspringen, zeigen wir Ihnen einige der Kernpunkte in Deutsch.
Weitere Wolfram Technologie Links
Mehr als 87.000 Funktion
Mathworld - Eric Weissenstein´s Welt der Mathematik
Live Integrale rechnen
Grafik als Kunst
Wolfram A New Kind of Science
Wolfram Klingeltöne
Tiefe des algorithmischen Wissens
Mathematica beinhaltet tausende von Funktionen aus vielen Bereichen: numerische Berechnung, symbolische Berechnung, Grafik und allgemeine Programmierung. Allein die Ansammlung von in Mathematica integrierten Algorithmen umfasst nahezu die komplette Bandbreite aller öffentlichen Algorithmen, zuzüglich etlicher proprietärer Algorithmen, die aus über 16 Jahren Entwicklung der Wissenschaftler bei Wolfram Research entstanden sind. Um ein Gefühl über die Weite des mathematischen Know-hows von Wolfram Research zu bekommen, verweisen wir hier auf die über 37.000 Funktionen enthaltende Webressource, die von Wolfram Research entwickelt und gepflegt wird.
Diese reine Anzahl von eingebauten Algorithmen alleine würde Mathematica als führendes Technical Computing System auszeichnen. Die Menge an Funktionen ist jedoch nur ein kleiner Teil dessen, was Mathematicas Wissensbasis so leistungsfähig macht. Ein weiteres einzigartiges Feature von Mathematica ist, dass Daten und Programme das Gleiche sind, nämlich symbolische Ausdrücke. Das bedeutet, alle Mathematica-Funktionen liefern und akzeptieren die Eingaben und Ausgaben für andere relevante Mathematica-Funktionen. Diese Fähigkeit erlaubt Mathematica selbstständig, verschiedene Algorithmen und Verfahren zu kombinieren, um optimierte Ergebnisse zu liefern. Zum Beispiel startet der Befehl NDSolve, Mathematicas Funktion zum Lösen numerischer Differentialgleichungen, im Hintergrund die Analyse der Differentialgleichungen zuerst symbolisch, transformiert diese in eine optimierte Version für numerische Berechnungen und wählt den Algorithmus, der das beste Ergebnis erwarten lässt. Mathematica kompiliert die Gleichungen dann um maximale Effizienz bei der numerischen Lösung zu erzielen. Während der Evaluierung analysiert Mathematica konstant den Lösungsprozess und wechselt selbst den Solver, falls es notwendig wird. Dieser Vorgang der "Automatischen Algorithmen-Auswahl" ist ein weiteres Alleinstellungsmerkmal von Mathematica. Selbstverständlich können Sie den gewünschten Algorithmus auch selbst vorwählen.
Automatische Algorithmenauswahl
Der Vorgang der "Automatischen Algorithmen-Auswahl" ist ein weiteres Alleinstellungsmerkmal von Mathematica. Mit der automatischen Algorithmen-Auswahl wählen Sie die Rechenaufgabe, die Sie durchführen möchten, und Mathematica sucht die besten Algorithmen für die Durchführung aus. Beispielsweise möchten Sie eine Differenzialgleichung numerisch lösen. Beim Einsatz von Mathematica müssen Sie lediglich die Funktion NDSolve verwenden, die selbständig "entscheidet", welcher der vielen Algorithmen anzuwenden ist, damit Sie schnell eine genaue Antwort erhalten. Selbstverständlich können Sie den gewünschten Algorithmus auch selbst vorwählen, wenn Sie sich sicher sind, dass Sie den optimalsten Algorithmus kennen - testen Sie doch einfach beides. Mit einem anderen Mathematiksystem MÜSSTEN Sie vorher wissen, welcher Algorithmus geeignet ist UND dann noch den spezifischen Funktionsnamen (z.B.: ode113, ode23e) kennen.
Mathematicas automatische Algorithmen-Auswahl kann sowohl zu Beginn der Berechnung den Algorithmus bestimmen, als auch in der Mitte der Berechnung den Algorithmus ändern. Dies geschieht basierend auf dem Erfolg der aktuellen Methode oder präventiv als eine Optimierung für die nächste Stufe. Diese Fähigkeit bedeutet, dass die automatische Algorithmen-Auswahl normalerweise eine individuelle manuelle Auswahl der Algorithmen übertrifft.
Zusammenfassend ist der Hauptvorteil der automatischen Algorithmen-Auswahl, dass der Anwender befähigt wird, schnell genaue Ergebnisse für Probleme zu erhalten, über die er kein algorithmisches Expertenwissen hat. Dies wird immer wichtiger, da algorithmisches Wissen immer spezieller wird und wie die Breite der verfügbaren Berechnungen in Software-Paketen, ansteigt.
Ein zusätzliches wichtiges Feature von Mathematica, das mit der automatischen Algorithmenauswahl implementiert wurde, ist die Fähigkeit, zu bestimmen, ob eine Eingabe entweder Symbole, genaue Zahlen oder approximierte (möglicherweise beliebig-präzise) Werte enthält. Automatisch wird der jeweils passende Algorithmus ausgewählt, um ein Ergebnis zu erzeugen, das dem Eingabetyp entspricht. Werden beispielsweise symbolische Gleichungen an den Befehl Solve gegeben, wird Mathematica versuchen ein symbolisches Ergebnis zu erzeugen; wird eine maschinengenau Eingabe gemacht, wird Solve numerische Algorithmen anwenden und ein maschinengenaues numerisches Ergebnis erzeugen, welches der Genauigkeit der Ausgangswerte entspricht.
Der Anwender benötigt für diese "Solve" Fällen keine unterschiedlichen Funktionsaufrufe.
Mathematica bereitete in großem Maße mit seinem in 1988 erschienen Release den Weg der Implementierung der automatischen Algorithmen-Auswahl. Seither sind die Bandbreite der Algorithmen, die Verfeinerung der Auswahl und die Anzahl der Funktionen stark angestiegen. Noch heute bietet kein anderes Technical Computing System diesen Ansatz.
Automatischer Genauigkeitstest
Mathematicas integrierte Algorithmen erlauben das Rechnen mit beliebig großen und beliebig kleinen Zahlen. Der Anwender ist lediglich durch den Arbeitsspeicher des Rechners begrenzt und nicht durch die Genauigkeit der verwendeten Rechenmaschine. Bei jeder Berechnung steht es dem Anwender frei, die Genauigkeit vorzugeben, mit der das Ergebnis berechnet werden soll.
Jetzt wäre dies alleine schon ein erhebliches Unterscheidungsmerkmal zu anderer Berechnungssoftware. Damit ist es den Wissenschaftlern um Stephen Wolfram bei Weitem nicht genug. Die Mathematica Algorithmen führen einen automatischen Genauigkeitstest durch, um zu erkennen bis zu welcher Stelle das Ergebnis genau ist und teilt dieses dem Anwender mit. Wie bei der "Automatischen Algorithmen-Auswahl" muss sich der Anwender nicht darum kümmern, denn Mathematica prüft das Ergebnis auf die Genauigkeit.
Bei einigen Softwaresystemen kann eingestellt werden, auf wie viele Stellen exakt das Ergebnis angezeigt werden soll. Wie selbstverständlich geben diese Systeme dann auch exakt so viel Stellen an, nur leider sagen diese Systeme eben nicht, bis zu welcher Stelle Sie dem Ergebnis trauen können. Das ist selbst bei kleineren Berechnungen sehr unschön und kann totaler Unsinn sein. Schauen Sie sich unser kleines Beispiel zur Fehlerfortpflanzung von kleinen Rundungsdifferenzen in Microsoft® Excel an, und vergleichen Sie es mit dem Mathematica Beispiel.
MMA_EXL_Genauigkeitstest.nb | ||
MMA_EXL_Genauigkeitstest.html |
Gerade bei Berechnungen, bei denen man Neuland betritt, ist dieses von enormer Bedeutung. Stellen Sie sich vor, Sie geben eine Genauigkeit von 25 Nachkommastellen vor und erhalten diese dann auch. Leider fand zwischendurch eine Berechnung statt, die lediglich auf 10 Stellen genau war. Damit ist die notwendige Genauigkeit nicht vorhanden, obwohl Ihnen das System eine auf 25 Stellen "ungenaue" Antwort gibt. Nicht so bei Mathematica. Mathematica führt den automatischen Genauigkeitstest durch und gibt dem Anwender, an bis zu welcher Stelle das Ergebnis EXAKT ist.
Sehen Sie hierzu das Mathematica Beispiel.
MMA_AutomatGenau.nb | ||
MMA_AutomatGenau.html |
gigaNumerics™
gigaNumerics™
In gigaNumerics™ werden die einzigartigen Mathematica-Technologien zusammengefasst, die numerische Berechnungen mit hoher Geschwindigkeit ausführen.
Im Gegensatz zu fest zugeordneten numerischen Systemen, ist Mathematica für seine Überprüfung der Allgemeingültigkeit und Genauigkeit bekannt. Jedoch entstehen dadurch bei den numerischen Berechnungen Geschwindigkeitsnachteile, da einige Operationen ablaufen müssen, sobald eine Berechnung ausgeführt wird. Mathematica überprüft daher zunächst die Eingabe, um zu entscheiden, ob diese symbolisch mit Maschinen- oder mit erweiterter Genauigkeitsarithmetik behandelt werden soll. Die Genauigkeit wird während der Berechnung überprüft und kann, falls notwendig, erhöht werden. Über- und Unterläufe werden erkannt und korrekt behandelt.
Die Herausforderung, die Wolfram Research mit gigaNumerics zu bewältigen hatte, war die ungewöhnlich robuste Rechengeschwindigkeit unter Beibehaltung von Mathematicas Allgemeingültigkeit und Genauigkeit. Mit Hilfe der Kombination verschiedener Technologien – zusammengefasst als gigaNumerics-Technologien – wurde diese Aufgabe bewältigt:
Vorkompilierung
Die Kompilierung kann numerische Berechnungen für bestimmte Eingabetypen beschleunigen. Mathematica optimiert bei vielen numerischen Berechnungen seine Leistung und Effizienz nach vorheriger Abschätzung automatisch durch die Kompilierung vor der Berechnung.
Gepackte Arrays
Die Berechnungen auf maschinengenauen Matrizen und Arrays werden analysiert, um zu entscheiden, ob das Packen in ein spezielles Format die Leistung der Berechnung verbessert. Der Prozess der Analyse und Anwendung geschieht transparent, die Ausgabe der Ergebnisse wird immer gleich dargestellt, unabhängig von der Methode, die Mathematica dabei auswählt.
Download | |
---|---|
PackedArrays | NB |
*.NB Dateien können Sie mit dem kostenlos verfügbaren Mathematica Player von Wolfram Research öffnen. |
Automatische Algorithmenanpassung und -auswahl
Viele Mathematica-Funktionen wählen automatisch zwischen einer Vielfalt von Algorithmen aus und passen ihren Stichprobenanteil während der ganzen Berechnung immer wieder an, um Geschwindigkeit und Genauigkeit zu optimieren.
Vergleich mit den verschiedenen Methoden ...
Default |
Newton |
QuasiNewton |
FD |
0. |
4.96962*10^^-18 |
3.00912*10^^-21 |
2.0029*10^^-11 |
Steps?15 |
Steps?22 |
Steps?42 |
Steps?41 |
Residual?21 |
Function?29 |
Function?51 |
Function?216 |
Jacobian?16 |
Gradient?29 |
Gradient?51 |
Gradient?54 |
|
Hessian?23 |
|
|
Download | |
---|---|
AutoAlgo | NB |
*.NB Dateien können Sie mit dem kostenlos verfügbaren Mathematica Player von Wolfram Research öffnen. |
Prozessor-Optimierung
Es stehen für jeden Prozessor optimierte Bibliotheken zur Verfügung, einschließlich der aktuellen 64-bit Plattformen.
Symbolische Vorverarbeitung
In einigen Fällen ist die vollständige Rechenzeit am geringsten, wenn Sie ein Problem algebraisch vereinfachen, bevor Sie das Ergebnis numerisch auswerten. Mathematica setzt diese Technik automatisch ein, wo sie angemessen ist.
Vektorisierung
Bestimmte Mathematica-Operationen können auf einem gesamten Vektor, einer gesamten Matrix oder einem gesamten Array arbeiten, statt auf einem einzelnen Element. Das Arbeiten auf allen Daten zur gleichen Zeit reduziert die Anzahl der Abfragen auf höchster Ebene an Mathematica, und ersetzt sie durch optimierte interne Routinen.
Mathematica 5.2 übertrifft traditionelle fest zugeordnete numerische Systeme hinsichtlich reiner Rechengeschwindigkeit. Dies wurde dank der Fortschritte in den gigaNumerics-Technologien möglich – sie kompensieren die Geschwindigkeitsdefizite, die durch die Allgemeingültigkeit und Genauigkeit, die Mathematica liefert, entstehen, um ein Vielfaches.
Download | |
---|---|
Vektorisierung | NB |
*.NB Dateien können Sie mit dem kostenlos verfügbaren Mathematica Player von Wolfram Research öffnen. |