[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