MuPad: Formatierte Ausgabe von Berechnungen

25/06/2008 - 16:32 von Werner Schmitz | Report spam
Hallo, ich möchte Bernsteinpolynome automatisiert erstellen und dann
formatiert ausgeben:


for i from 0 to n do
B.i := binomial(n,i)* t^i * (1-t)^(n-i);
print ("Das Bernsteinpolynom ".B.i." lautet:");
print (B.i."(t) = ".eval(B.i(t)));
end_for;


Die Ausgabe lautet dann:

"Das Bernsteinpolynom B0 lautet:"
`B0(t) = -(t - 1)^3`
"Das Bernsteinpolynom B1 lautet:"
`B1(t) = 3*t*(t - 1)^2`
"Das Bernsteinpolynom B2 lautet:"
`B2(t) = -3*t^2*(t - 1)`
"Das Bernsteinpolynom B3 lautet:"
`B3(t) = t^3`


Wie bewirke ich nun, dass die Polynome formatiert, also mit Hochzahlen
statt z.B. "^3" ausgegeben werden?
Und gibt es für die Textausgabe eine andere Lösung als den print-Befehl
mit den Anführungsstriche?

Danke für Eure Hilfe

Werner
 

Lesen sie die antworten

#1 Stefan Wehmeier
25/06/2008 - 18:50 | Warnen spam
Am Wed, 25 Jun 2008 16:32:11 +0200 schrieb Werner Schmitz:

Hallo, ich möchte Bernsteinpolynome automatisiert erstellen und dann
formatiert ausgeben:


for i from 0 to n do
B.i := binomial(n,i)* t^i * (1-t)^(n-i);


print ("Das Bernsteinpolynom".B.i." lautet:");
print (B.i."(t) = ".eval(B.i(t)));
end_for;


Die Ausgabe lautet dann:

"Das Bernsteinpolynom B0 lautet:"
`B0(t) = -(t - 1)^3`
"Das Bernsteinpolynom B1 lautet:"
`B1(t) = 3*t*(t - 1)^2`
"Das Bernsteinpolynom B2 lautet:"
`B2(t) = -3*t^2*(t - 1)`
"Das Bernsteinpolynom B3 lautet:"
`B3(t) = t^3`


Wie bewirke ich nun, dass die Polynome formatiert, also mit Hochzahlen
statt z.B. "^3" ausgegeben werden?
Und gibt es für die Textausgabe eine andere Lösung als den print-Befehl
mit den Anführungsstriche?




Hallo,

Vorbemerkung: gerade das Verhalten von print hàngt stark vom
Betriebssystem und der verwendeten Version ab (ist Typeset verfügbar?).
Natürlich sollte das Typesetting nicht abgeschaltet bzw. in Versionen
ohne Typesetting wenigstens PRETTYPRINT auf TRUE stehen.

Abgesehen davon einige Hinweise:

- Man kann jedes Objekt ausgeben, nicht nur Strings. Also könnte
print (B.i(t) = eval(B.i(t)));

schon helfen.

- Wenn man Strings ausgibt, dann am besten mit der Option Unquoted

- Strings haben keine mathematische Bedeutung. Man kann also bei der
Ausgabe von Strings nicht erwarten, dass irgendein Formelsatz angeworfen
wird. Ggf. muss man den String mit text2expr wieder in einen Ausdruck
verwandeln. Mit anderen Worten, print(Unquoted, "2^5") ergibt 2^5, aber
print(text2expr("2^5")) ergibt eine hochgestellte 5.

- Alternativ zu print gibt es bei sehr speziellen Anforderungen an den
Formelsatz vor allem die Möglichkeit, generate::TeX zu verwenden und die
Ausgabe in eine TeX-Datei zu schreiben. Grundsàtzlich könnte man so eine
Datei komplett mit fprint-Befehlen unter MuPAD erzeugen, also
dateihandle:= fopen(Text, "beispiel.tex", Write);
fprint(Unquoted, dateihandle, "\\documentclass{article}")
usw.


Grüße,
Stefan

Ähnliche fragen