Skip to content

wxplot2d mit wxMaxima

Update am 26.1.2015: Beispiel-Code an den Anfangszeilen ergänzt, damit die Berechnung fehlerfrei durchläuft.

Nachdem ich hier schon geschrieben hatte, wie man sich die Auswertung von Funktionen etwas einfacher machen kann, habe ich mich heute mit den möglichen Parametern von wxplot2d beschäftigt, um die Darstellung etwas schöner zu machen…

Als Beispiel dient die folgende Befehlsabfolge:

kill(all)$
eta_A : 0.012439903846154*l*F$
F_o :  26.95 $
F_2u : 66.00 $
F_3u : 86.82 $
eta_A_o  : eta_A, F = F_o  $
eta_A_2u : eta_A, F = F_2u $
eta_A_3u : eta_A, F = F_3u $
wxplot2d(
   [eta_A_o, eta_A_2u, eta_A_3u,1],
   [l, 0.1, 4],
   [x,0.1,4],
   [y,0.1,3],
   [legend, "oben", "2 Gurtungen, unten", "3 Gurtungen, unten", "max eta"], 
   [gnuplot_preamble,
    "
         set grid;
         set key top left; 
         set title 'Ausnutzung in Abhängigkeit der Ankerabstände';
         set logscale x;
         set size ratio 1;
    "],
   [style, [lines,1,1], [lines,1,6], [lines,1,5], [lines,2,2]]
), wxplot_size=[500,400]$
"wxplot2d mit wxMaxima" vollständig lesen

Rechenfehler verschiedener Programme

Nach dem Motto: „Trau keiner Software” bin ich eben zufällig über einen Beitrag bei Google+ gestolpert, bei der ein Nutzer die Gleichung

- 1^2 - 1^2

ausrechnen lässt. Der geneigte Kopfrechner weiß natürlich sofort, dass 1^2 einfach nur 1 ist, als Ergebnis also -2 herauskommen müsste…müsste…denn je nachdem welches Programm man zur Berechnung verwendet, kann das Ergebnis frappierend verkehrt sein…

Excel 2003                       -1^2 -1^2 = 0
LibreOffice Calc 2.4.5           -1^2 -1^2 = 0
Gnumeric 1.10.16                 -1^2 -1^2 = 0
Yahoo                            -1^2 -1^2 = 0
Google                           -1^2-1^2 = (-(1^2)) - (1^2) = -2
Matlab 7.10.0.499 (R2010a)       -1^2 -1^2 = -2
QtOctave 3.2.4                   -1^2 -1^2 = -2 
Freemat 4.0                      -1^2 -1^2 = -2
Scilab 5.4.0alpha                -1^2 -1^2 = -2
Sage                             -1^2 -1^2 = -2
Python 2.7.2                     -1**2-1**2 = -2 
Mathematica 8.0                  -1^2 -1^2 = -2
wxMaxima 5.25.1                  -1^2 -1^2 = -2
R 2.11.0                         -1^2 -1^2 = -2
magma (website calculator)       -1^2 -1^2 = -2

Zumindest für Excel 2003 (welches wir hier in der Firma verwenden) und wxMaxima konnte ich das prüfen, Excel rechnet tatsächlich verkehrt. Inwieweit auch neuere Versionen betroffen ist, weiß ich nicht.

Falls es jemand testen kann/will, darf gerne das Ergebnis in die Kommentare werfen smile

Gleichungen in Maxima auswerten lassen

Update am 26.1.2015: Code-Beispiele ergänzt, damit sie korrekt durchlaufen.

Irgendwie habe ich heute lange darüber grübeln müssen, wie ich eine Gleichung mit mehreren Unbekannten lösen bzw. grafisch ausgeben lassen kann.

Zur Verdeutlichung mal ein kleines Beispiel mit der folgenden Formel:

eta_A : 0.012439903846154*l*F$

Nun möchte ich F so belegen, dass nur noch eine Variable vorhanden ist und damit eine grafische Ausgabe in Abhängigkeit der einzelnen Variable erfolgen kann.

Prinzipiell könnte man das alte Prinzip verwenden

F:100$
wxplot2d([eta_A,1],[l,2.5,3.5])$

Allerdings erhält damit F einen festen Wert zugewiesen, den man bei der nächsten Verwendung erst neu belegen oder löschen müsste.

Eleganter geht es, indem man den folgenden Befehl benutzt:

wxplot2d([eta_A,1],[l,2.5,3.5]), F=100$

Dadurch bleibt F für die weiteren folgenden Berechnungen frei, hat also keinen definierten Wert, den man erst wieder neu belegen müsste und in der Eingabe ist es auch hübscher/schneller, da man keine zwei Befehle ausführen lassen muss.

Das gleiche Prinzip kann man auch verwenden, um sich aus einer Gleichung mit mehreren Variablen, einen eindeutigen Ergebniswert zurückliefern zu lassen.

So liefert z. B.

kill(all) $
l_bnet : 0.032596797733516*l*F $
l_bnet,l=2,F=100;

das Ergebnis

6.519359546703296

zurück, ohne dass man l und F erst umständlich belegen und hinterher wieder löschen muss.

Mag für manche Leute zwar trivial sein, kannte ich aber bisher noch nicht.