|
> Mathamtica ist ja eigentlich prima, aber ganz schoen langsam beim rechnen! > > Kann mir jemand Tips geben (oder sagen, wo welche stehen), wie man die > Berechnung der > Programme beschleunigen kann? Mir ist als Anfanger die optimale Anwendung > von > Compile[] noch nicht klar. Oft kann man schon viel an Geschwindigkeit herausholen, wenn man die abzuarbeitende Funktion an der richtigen Stelle anwendet, z.B. Factor nur auf einen Teilausdruck anwenden. Compile wird von vielen Funktionen automatisch eingesetzt, z.B. von Plot, es werden darüber hinaus (in Mma 4) viele Funktionen automatisch kompiliert, ohne daß man das dazusagen muß, etwa werden Funktionen, die auf Listen von Zahlen angewendet werden, vorkompiliert, um von der Geschwindigkeit der packed arrays Gebrauch zu machen. Compile hat meines Wissens aber ausschließlich Auswirkungen auf numerische Berechnungen, und auch da nur für machine precision. Für das Abarbeiten von langen Ersetzungslisten bietet Dispatch eine Optimierungsmöglichkeit, und zwar wird dabei die Liste von Rules gehasht, so wie das auch für die üblichen Definitionen (Set, SetDelayed) automatisch gemacht wird. Es kann in bestimmten Fällen hilfreich sein, das Optimize-Package von mathsource zu benutzen (mathsource.wolfram.com). Die Optimierung besteht dabei darin, mehrfach auftretende Ausdrücke nur einmal berechnen zu müssen. Allerdings ist meine Erfahrung, daß dieses Unterfangen für Mma 4 praktisch nichts bringt, da offensichtlich der Kernel diese Form der Optimierung schon selbst vornimmt. Gruß, Thomas Hahn |