Maple V für Windows aufrufen >with(simplex); # Laden des Simplex-Paketes

>restr1 := 3*x1 + 4*x2 + 5*x3 <=6;
>restr2 := 3*x1 - 4*x2 - 5*x3 <=26; # zwei Ungleichungen

>zi := x1 - 5*x3; # eine Zielfunktion >c := setup( [restr1, restr2] ); # Aufstellen des Anfangsverzeichnisses ># Schlupfvariablen werden automatisch erzeugt. Es wird angenommen, dass die Nichtnegativitätsrestiktionen gelten.

>?setup # Hilfe

>x := pivotvar(zi); # wählt eine (die erstbeste) Pivotvariable aus >ratios(c, x); # bestimme maximal mögliche Zunahme von x_{1} >min("); # Die Anführungszeichen " bezeichnen den voher berechneten Ausdruck. >eqs := pivoteqn(c, x); # pivoteqn bestimmt automatisch die richtige(n) Pivot-Gleichung(en).

>eq1 := eqs[1];
>x1neu := solve(eq1, x);

>subs(x1=x1neu, c) # x_{1} durch den neuen Ausdruck substituieren >subs(x1=x1neu, zi); # … auch in der Zielfunktion >cneu := pivot(c, x1, eq1); # So geht der Pivotschritt automatisch.

>zineu := subs(cneu, zi);
>x := pivotvar(zineu); # und so weiter . . .

>print(pivot); # Was macht die Prozedur pivot eigentlich?

>interface(verboseproc=2);
>print(pivot); # . . . nur Blödsinn.

>print(` simplex/do pivot` ); # Die eigentliche Arbeit geschieht hier.

>setup( [3*x1-2*x2<=4, 4*x1+5*x2=7], UNRESTRICTED, 'transf'); # setup verwendet Gleichungen, um Variablen zu eliminieren.

># Jede unbeschränkte Variable wird als Differenz von zwei vorzeichenbeschränkten Variablen ausgedrückt. >transf; # Die Variable transf enthält diese Transformationen.

>setup( [3*x1-2*x2<=4, 4*x1+5*x2=7, x1>=0], UNRESTRICTED, 'transf'); transf;
>setup( [3*x1-2*x2<=4, 4*x1+5*x2=7, x1>=0, x2>=0], UNRESTRICTED, 'transf'); transf;
>setup( [3*x1-2*x2<=4, 4*x1+5*x2=7], NONNEGATIVE ); # Das ist das gleiche.
>setup( [3*x1-2*x2<=4, 4*x1+5*x2=7]); # Standardmäßig wird NONNEGATIVE angenommen.
>c := standardize( [3*x1-2*x2<=4, 4*x1+5*x2=7]); #  standardize ersetzt jede Gleichung durch zwei Ungleichungen.