11) lokale Variable, subsop, op, addressof [12.txt] ============================================== Problem: k-te Ableitung fuer symbolisches k > restart; > x$5; > assume(k,posint);about(k);x$k; > diff(exp(x),x$2); > diff(exp(x),x$k); > (D@@5)(exp);(D@@k)(exp); > with(share); > with(FPS): > test1:=FPS(exp(x),x=0); > op(test1); > op(op(1,test1)); k - te Ableitung : > op(1,test1)*k!/x^k; > simplify(%); > subs(k=n,%); > has(test1,k); Das von FPS eingef"uhrte k ist eine lokale Variable, w"ahrend das andere k globale Variable ist. =========================================================================================== An die lokale Variable kommt man mit subs nicht heran, jedoch mit subsop: > op([1,1,1],test1);op([1,2,2],test1);op([2,1],test1); > test2:=subsop([1,1,1]=n!,[1,2,2]=n,[2,1]=n,test1); > op(1,test2)*n!/x^n; Man kann feststellen, dass fuer Maple die beiden "k" verschiedene Groessen sind, indem man deren interne "Adresse" mit "addressof" abfragt: > ?addressof > addressof(op([1,2,2],test1)); > addressof(k); Die "op"-Funktion ist verwendbar zur Berechnung der n-ten Ableitung f"ur symbolisches n, aber das macht ein wenig Muehe, da das lokale k bei verschiedenen Beispielen an sehr unterschiedlichen Stellen, auftreten kann. Beispiel: > FPS(sin(x),x=a); Wir werden das "k" ansteuern, das als Index unter dem Summenzeichen steht. Man kann auch die Befehle "addressof" und "pointto" aus dem sogenannten "hackware-Package" verwenden, um das lokale k neu zu benennen oder ihm Werte zuzuweisen. Siehe Paragraph 13.