Einführung in Maxima (Maxima Manual)

Next: Programmfehler, Previous: Top, Up: Top [Contents][Index]

## 1 Einführung in Maxima

Von einer Kommandozeile wird Maxima mit dem Kommando `maxima` gestartet. Maxima zeigt die aktuelle Version an und gibt einen Prompt für die Eingabe aus. Ein Maxima-Kommando wird mit einem Semikolon `;` abgeschlossen. Eine Maxima-Sitzung wird mit dem Kommando `quit();` beendet. Es folgt ein Beispiel für eine Sitzung.

    [wfs@chromium]$ maxima
    Maxima 5.9.1 http://maxima.sourceforge.net
    Using Lisp CMU Common Lisp 19a
    Distributed under the GNU Public License. See the file COPYING.
    Dedicated to the memory of William Schelter.
    This is a development version of Maxima. The function bug_report()
    provides bug reporting information.
    (%i1) factor(10!);
                                8  4  2
    (%o1)                      2  3  5  7
    (%i2) expand ((x + y)^6);
           6        5       2  4       3  3       4  2      5      6
    (%o2) y  + 6 x y  + 15 x  y  + 20 x  y  + 15 x  y  + 6 x  y + x
    (%i3) factor (x^6 - 1);
                                  2            2
    (%o3)       (x - 1) (x + 1) (x  - x + 1) (x  + x + 1)
    (%i4) quit();
    [wfs@chromium]$

Maxima kann Hilfetexte anzeigen. Das Kommando `describe(text)` zeigt alle Inhalte an, die die Zeichenkette `text` enthalten. Das Fragezeichen `?` (exakte Suche) und zwei Fragezeichen `??` (ungenaue Suche) sind abkürzende Schreibweisen für die Funktion `describe`.

    (%i1) ?? integrat

     0: Functions and Variables for Integration
     1: Introduction to Integration
     2: integrate (Functions and Variables for Integration)
     3: integrate_use_rootsof (Functions and Variables for Integration)
     4: integration_constant (Functions and Variables for Integration)
     5: integration_constant_counter (Functions and Variables for
        Integration)
    Enter space-separated numbers, `all' or `none': 4

     -- System variable: integration_constant
         Default value: `%c'

         When a constant of integration is introduced by indefinite
         integration of an equation, the name of the constant is
         constructed by concatenating `integration_constant' and
         `integration_constant_counter'.

         `integration_constant' may be assigned any symbol.

         Examples:

              (%i1) integrate (x^2 = 1, x);
                                         3
                                        x
              (%o1)                     -- = x + %c1
                                        3
              (%i2) integration_constant : 'k;
              (%o2)                           k
              (%i3) integrate (x^2 = 1, x);
                                          3
                                         x
              (%o3)                      -- = x + k2
                                         3

    (%o1)                                true

Das Ergebnis einer Rechnung wird mit dem Operator `:` einer Variablen zugewiesen. Weiterhin speichert Maxima die Eingaben unter den Marken `(%i)` und die Ergebnisse unter den Marken `(%o)` ab. Die Marken erhalten eine fortlaufende Nummerierung. Mit diesen Marken kann auf frühere Eingaben und Ergebnisse zurückgegriffen werden. Auf das letzte Ergebnis kann mit `%` zurückgegriffen werden.

    (%i1) u: expand ((x + y)^6);
               6        5       2  4       3  3       4  2      5      6
    (%o1)     y  + 6 x y  + 15 x  y  + 20 x  y  + 15 x  y  + 6 x  y + x
    (%i2) diff(u,x);
                    5         4       2  3       3  2       4        5
    (%o2)        6 y  + 30 x y  + 60 x  y  + 60 x  y  + 30 x  y + 6 x
    (%i3) factor(%o2);
                                               5
    (%o3)                             6 (y + x)
    (%i4) %/6;
                                              5
    (%o4)                              (y + x)

Maxima kennt numerische Konstanten wie die Kreiszahl `%pi` oder die imaginäre Einheit `%i` und kann mit komplexen Zahlen rechnen. Mit der Funktion `rectform` wird eine komplexe Zahl in die Standardform gebracht, mit der Funktion `polarform` wird eine komplexe Zahl in der Polarform dargestellt.

    (%i1) cos(%pi);
    (%o1)                          - 1
    (%i2) exp(%i*%pi);
    (%o2)                          - 1
    (%i3) rectform((1+%i)/(1-%i));
    (%o3)                          %i
    (%i4) polarform((1+%i)/(1-%i));
                                  %i %pi
                                  ------
                                    2
    (%o4)                       %e

Maxima kann mit der Funktion `diff` differenzieren und mit der Funktion `integrate` integrieren.

    (%i1) u: expand ((x + y)^6);
           6        5       2  4       3  3       4  2      5      6
    (%o1) y  + 6 x y  + 15 x  y  + 20 x  y  + 15 x  y  + 6 x  y + x
    (%i2) diff (%, x);
             5         4       2  3       3  2       4        5
    (%o2) 6 y  + 30 x y  + 60 x  y  + 60 x  y  + 30 x  y + 6 x
    (%i3) integrate (1/(1 + x^3), x);
                                      2 x - 1
                    2            atan(-------)
               log(x  - x + 1)        sqrt(3)    log(x + 1)
    (%o3)    - --------------- + ------------- + ----------
                      6             sqrt(3)          3

Mit den Funktionen `linsolve` und `solve` kann Maxima lineare Gleichungssysteme und kubische Gleichungen lösen.

    (%i1) linsolve ([3*x + 4*y = 7, 2*x + a*y = 13], [x, y]);
                            7 a - 52        25
    (%o1)              [x = --------, y = -------]
                            3 a - 8       3 a - 8
    (%i2) solve (x^3 - 3*x^2 + 5*x = 15, x);
    (%o2)       [x = - sqrt(5) %i, x = sqrt(5) %i, x = 3]

Die Funktion `solve` kann auch nichtlineare Gleichungssysteme lösen. Wird eine Eingabe mit `$` anstatt `;` abgeschlossen, wird keine Ausgabe erzeugt.

    (%i1) eq_1: x^2 + 3*x*y + y^2 = 0$
    (%i2) eq_2: 3*x + y = 1$
    (%i3) solve ([eq_1, eq_2]);
                  3 sqrt(5) + 7      sqrt(5) + 3
    (%o3) [[y = - -------------, x = -----------],
                        2                 2

                                   3 sqrt(5) - 7        sqrt(5) - 3
                              [y = -------------, x = - -----------]]
                                         2                   2

Mit den Funktionen `plot2d` und `plot3d` kann Maxima Funktionsgraphen mit einer oder mehreren Funktionen zeichnen.

    (%i1) plot2d(sin(x)/x, [x, -20, 20])$

    (%i2) plot2d([atan(x), erf(x), tanh(x)], [x, -5, 5], [y, -1.5, 2])$

    (%i3) plot3d(sin(sqrt(x^2 + y^2))/sqrt(x^2 + y^2),
             [x, -12, 12], [y, -12, 12])$

Next: Programmfehler, Previous: Top, Up: Top [Contents][Index]