Die Mathe-Redaktion - 20.11.2019 15:06 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte / Top 15
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
Listenpunkt? im neuen Schwätz
ListenpunktWerde Mathe-Millionär!
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 1000 Gäste und 20 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von mire2 gaussmath
Mathematische Software & Apps » Andere Softwarepakete » Generierung von effizientem Code mit (x)maxima
Druckversion
Druckversion
Antworten
Antworten
Autor
Kein bestimmter Bereich Generierung von effizientem Code mit (x)maxima
k-mte
Junior Letzter Besuch: im letzten Quartal
Dabei seit: 18.02.2014
Mitteilungen: 15
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2019-10-18


Hallo,
in (x)maxima gibt es eine Funktion zur Generierung von effizientem Code, die so funktioniert, dass bei der Berechnung von komplizierten Ausdrucken (in einem "block"?) in einem externen Programm (Fortran?) zunächst im Ausdruck mehrmals wiederkehrende Teilausdrucke berechnet werden und anhand dieser Basis dann der der gesamte Ausdruck.
Ich komme einfach nicht mehr darauf, wie der dieser Befehl heißt und bitte um Hilfe.
k-mte



  Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 726
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2019-10-18


Die Funktion, die in einem komplizierten Ausdruck nach wiederkehrenden Teilausdrücken sucht, ist optimize:
-- Function: optimize (<expr>)
 
   Returns an expression that produces the same value and side effects
   as <expr> but does so more efficiently by avoiding the
   recomputation of common subexpressions.  'optimize' also has the
   side effect of "collapsing" its argument so that all common
   subexpressions are shared.  Do 'example (optimize)' for examples.

Die hat aber nichts mit der Ausgabe im Fortran-Format zu tun.

--zippy



  Profil  Quote  Link auf diesen Beitrag Link
k-mte
Junior Letzter Besuch: im letzten Quartal
Dabei seit: 18.02.2014
Mitteilungen: 15
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2019-10-19


Hallo zippy,

vielen Dank!

Info:

optimize () berechnet z. B. den Ausdruck y = (a + b)^2 + (a + b)^3, indem es erst den Ausdruck a + b berechnet und einer lokalen Variablen zuweist und anschließend die Exponierung und Summenbildung anhand der bereits berechneten lokalen Variablen durchführt. Die Ausgabe erfolgt leider nur in maxima-Code, der zur (numerischen) Berechnung des Ausdrucks mit einem externen Programm zunächst noch in die gewünschte Programmiersprache übersetzt werden muß. (Wobei sich bei der Portierung nach C die Portierung von basis^exponent nach pow (basis, exponent) manschmal als etwas sperrig erweist)



  Profil  Quote  Link auf diesen Beitrag Link
Folgende Antworten hat der Fragesteller vermutlich noch nicht gesehen.
Er/sie war noch nicht wieder auf dem Matheplaneten
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 726
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2019-10-19


2019-10-19 13:17 - k-mte in Beitrag No. 2 schreibt:
Wobei sich bei der Portierung nach C die Portierung von basis^exponent nach pow (basis, exponent) manschmal als etwas sperrig erweist

Das kannst du auch maxima machen lassen:
maxima
(%i1) ((a + b)^2 + (a + b)^3 + 1)^4;
 
                                  3          2     4
(%o1)                    ((b + a)  + (b + a)  + 1)
 
(%i2) subst (pow, "^", %);
 
(%o2)             pow(pow(b + a, 3) + pow(b + a, 2) + 1, 4)



  Profil  Quote  Link auf diesen Beitrag Link
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]