[python-users] Mathe ist doch gar nicht so schwer!
hunniger
do_not_reply_to_this_address at t-online.de
So Feb 25 20:31:01 CET 2007
Hallo zusammen,
und Python ist richtig toll.
Habe heute mal zum Spass ein Program geschrieben, dass die
Ableitungsregeln ausführt. Es ist 120 Zeilen lang. Nimmt eine Formel an
und gibt deren erste Ableitung aus. Zur Zeit nur für + * - / sin cos.
Die eigentliche Ableitungsfunktion ist nur dass hier:
def derive(x):
if x=="x":
return "1"
if type(x)==types.StringType:
return "0"
if x[0] == "+":
return add(derive(x[1]),derive(x[2]))
elif x[0] == "-":
return [x[0] ,derive(x[1]),derive(x[2])]
elif x[0] in "*/":
a=mult(derive(x[1]),x[2])
b=mult(x[1],derive(x[2]))
if x[0]=="*":
return add(a,b)
else:
return ["-" ,a,b]
elif x[0]=="sin":
return mult(["cos" ,x[1] ] , derive(x[1]))
elif x[0]=="cos":
return mult(mult("-1",["sin" ,x[1]]) , derive(x[1]))
Das ist alles!! Mehr braucht man nicht zu schreiben. Symbolisches
Ableiten ist also kein Hexenwerk, sondern eine simple Rekursion.
Wäre das nix für ein Python Camp für Schüler, so rein zum Lehrer ärgern :-)
Der Rest vom Code liegt im Anhang. Ich verwende den Python Parser, und
baue den Baum dann nach meinen Wünschen um.
Gruss Dirk
Mehr Informationen über die Mailingliste python-users