Features

Erfahre hier, wie NumeRe Dir helfen kann

Integrierte Dokumentation und Stichwortsuche

Die integrierte Dokumention und die Stichwortsuche erklären Funktionen im Detail und helfen Dir schnell weiter, wenn Du Hilfe brauchst. Beispiele für die Verwendung von Kommandos bieten Dir eine Hilfestellung, um Deine Aufgaben schnell umzusetzen.

Wenn Du trotzdem mal nicht weiterkommst, weil Dir der Name der Funktion einfach nicht einfallen will - versuche die "Was möchtest du tun?"-Suchefunktion in der Toolbar.

Numerischer Mathematik-Parser

Mathematische Ausdrücke sind für den Parser kein Problem. Er bietet Dir die nötige Flexibilität, um auch Deine Aufgaben zu erfüllen. Der Parser ist inhärent vektoriell veranlagt, daher kannst Du auch vektorielle Ausdrücke ohne zusätzlichen Code berechnen lassen.

Dazu bietet Dir NumeRe auch einen großen Satz an vordefinierten physikalischen und mathematischen Konstanten.

Unterstützung für unterschiedlichste Datenformate

Deine Daten sind teils in Textdateien, teils in Microsoft Excel®? Für NumeRe kein Problem. Die folgenden Datenformate werden unterstützt:

Datenanalyse-Funktionen

NumeRe unterstützt Dich bei jeder Art von Datenanalyse. Die Klassiker sind Statistikfunktionen wie Mittelwert und Standardabweichung. Aber auch deutlich fortgeschrittenere Analysen wie Histogramme und natürlich jegliche Form von selbst entwickeltem Algorithmus ist möglich. Hier sind Dir keine Grenzen gesetzt.

Nichtlineares Curve-Fitting in 1D und 2D (Nichtlineare Regression)

Du hast Messdaten und willst überprüfen, ob Deine physikalisches Modell passt? Der integrierte Levenberg-Marquardt-Algorithmus kann Funktionen in 1D und 2D über Parameter an Deine Daten anpassen. So lange Dein Modell durch numerische Funktionen ausdrückbar ist, bist Du nicht eingeschränkt in Deinem Modell. Noch besser: Du musst die Parameter nicht mal unbedingt deklarieren - kannst es aber tun, wenn Du willst.

Zusätzlich bietet NumeRe Dir noch die Möglichkeit, zusätzliche Bedingungen an die anzupassenden Parameter zu formulieren, oder das Modell nach Fitminima zu untersuchen (als sogenannte Chi²-Map).

FFT- und FWT-Algorithmen

Fourier-Transformationen gehören inzwischen zu den Standardfunktionalitäten einer jeden guten Datenauswertung. Auch NumeRe bietet Dir diese Funktionen und geht sogar noch einen Schritt weiter, indem es Dir auch Wavelet-Transformationen bereitstellt. Beide Algorithmen können selbstverständlich auch invers angewendet werden.

Graphisches Plotten in bis zu drei Dimensionen

Bei der graphischen Darstellung Deiner Daten und Funktionen sind Dir nahezu keine Grenzen gesetzt. NumeRe bietet über 10 verschiedene Basis-Plotting-Styles in einer, zwei und drei Dimensionen an, die Du noch weiter modifizieren kannst. Aktiviere ein Gitter oder eine umfassende Box, wechsel zu logarithmischer Skalierung, verwende Licht- und Transparenzeffekte. Für 2D- und 3D-Plots stehen verschiedene Farbskalen zur Verfügung, aber Du kannst auch selbst eine Farbskala definieren.

Sollte es dennoch vorkommen, dass Dein gewünschter Plotting-Style nicht direkt verfügbar ist, dann kannst du mithilfe des compose-Modus auch mehrere Styles miteinander kombinieren. Und mach Dir dabei keine Sorgen: NumeRe kümmert sich für Dich darum, das Hinter- und Vordergrund in der richtigen Reihenfolge angeordnet werden...

Matrix-Operationen

Wenn vektorielle Ausdrücke einmal nicht mehr ausreichen oder wenn Du zwei Matrizen miteinander multiplizieren willst, wirst Du im matop-Modus fündig. In diesem Modus stehen Dir zusätzliche Matrix-Funktionen wie invert(), det(), eigenvects(), eigenvals() und diagonalize() zur Verfügung, die neben der Matrixmultiplikation mittels des **-Operators Lineare Algebra schnell und effizient behandeln.

Automatisierung und Programmierung

Du kannst NumeRe natürlich gerne interaktiv verwenden, jedoch werden komplexere Probleme sehr viele Schritte benötigen, die Du immer wieder eingeben müsstest. Für solche Probleme bietet NumeRe Dir die Möglichkeit, Scripte zu schreiben, in denen Du die einzelnen Schritte zeilenweise hinterlegen kannst. Kontrollflussblöcke wie if...else...endif oder for...endfor geben Deinem Code zusätzliche Flexibilität und Struktur.

Der integrierte Editor unterstützt Dich beim Schreiben von Scripten durch Syntax-, Klammer- und Blockhervorhebungen, um Dir damit die Struktur Deines Codes schnell und klar vor Augen zu führen. Er  kann Deinen Code auch automatisch formatieren, um die Lesbarkeit noch weiter zu erhöhen. Ein statischer Code-Analyzer kann Deinen Code bereits während der Eingabe auf potentielle Fehler und Irrtümer untersuchen und Dir Vorschläge für Coding-Styles geben.

Es wird irgendwann der Fall eintreten, dass Dir ein einfaches Script nicht mehr genügt, um Deine Aufgaben zu erfüllen. Dann bieten Prozeduren die nächstbessere Abstraktionsebene mit lokalen Variablen und rekursiven Aufrufen. Fest integrierte Namespaces machen Abhängigkeiten deutlich und machen rasches Austauschen von Prozeduren oder ganzen Namespaces trivial und für jeden offensichtlich.

Mit dem Code-Extraktions-Feature des Editors kannst Du ganze Blöcke aus Scripten oder Prozeduren schnell und umkompliziert in neue Prozeduren auslagern, so dass auch lange Codesequenzen schnell wieder übersichtlich werden.

Wenn Du Deine einmal geschriebenen Prozeduren mit Deinen Kollegen oder Freunden austauschen willst, kannst Du den Package-Creator verwenden, mit dem Du Abhängigkeiten detektieren und alle Prozeduren in ein gemeinsames Install-Script integrieren kannst, dass die Empfänger schnell und unkompliziert in ihre Distribution integrieren können.

Integrierte Versionverwaltung (Source control - SCM)

Du kennst das sicher: Du bearbeitest einen Code, schließt das Programm und stellst nachher fest, dass Du dabei einen Fehler gemacht hast. Dann willst Du die Änderung rückgängig machen und kannst Dich einfach nicht mehr erinnern, was genau Du geändert hast.

Wenn Du ein Versionskontrollsystem wie Mercurial, Apache SVN oder Git verwendest, kannst Du den Diff-Viewer anwerfen, um deine Änderungen nachvollziehen zu können. Solltest Du das jedoch nicht tun, ist das auch kein Problem.

NumeRe legt standardmäßig einen Versionsverlauf aller Dateien an, die Du im Editor bearbeitest. Die Dateien müssen dazu in einem der fünf Standardpfade von NumeRe liegen. Für alle anderen legt NumeRe eine *.backup-Datei an, in der die letzte Version zu finden ist. Den Versionsverlauf der Dateien findest Du im Kontextmenü. Von hier aus kannst Du ältere Versionen wiederherstellen oder auch direkt ein *.diff erzeugen lassen, indem Du Deine Änderungen nachvollziehen kannst.

Event-basierte Graphische Oberflächen

Die Verwendung von Kommandos und Prozeduren kann Dir nahezu alle Wünsche erfüllen. Aber manchmal willst Du es sicher komfortabler oder intuitiver haben, oder?

Die Event-basierten, graphischen Oberflächen, die du mittels Layout-Scripte (*.nlyt) mit nur wenigen Zeilen erzeugen kannst, vereinfachen den Zugriff auf Deine Lösungen und machen sie um ein Vielfaches zugänglicher für Personen, die weniger mit der Programmierung am Hut haben. Und das Beste: Du kannst Layout-Scripte in Packages integrieren und über GUI-Plugins sogar direkt im Packages-Menü verlinken: so erzeugst du Look'n Feel wie wenn die Lösung direkt von uns stammen würde.

Wenn Du Dich jetzt fragst, ob Du Deine Lösung dafür anpassen musst, können wir Dich beruhigen. Du brauchst lediglich das Layout-Script sowie eine Eventhandler-Prozedur (wobei eine einzige Prozedur ausreichen kann), der dann auf deine Lösungen wie eine normale NumeRe-Prozedur verweist.