Frühere | Chronologischer Index | Spätere | ||
Vorherige | Thematischer Index | Nächste |
Hallo Winfried,diese Aufgabe ist fuer Funktionen von 0 < n < \infty Veraenderlichen nicht sehr kompliziert.
Man kann dazu die Funktion bilgicTaylor (:-)) verwenden: Remove[bilgicTaylor]; bilgicTaylor[f_, varL_List?VectorQ, zeroL_List?VectorQ, degree_Integer?NonNegative] := Module[{X, tPD}, (* total preDifferential *) X /: X[o_List]^n_Integer := Product[X[o], {i0, n}]; X /: X[o_List] X[p_List] := Multinomial[Sequence @@ (o + p)] X[o + p]; tPD = Plus @@ (zeroL×Thread[X[Sort[ Permutations[Join[{1}, Table[0, {Length[zeroL] - 1}]]], Flatten[Position[#, 1] &]]]]); (* result *) f[Sequence @@ zeroL] + Sum[Expand[tPD^d]/d!, {d, 1, degree}] //. X[oo_List] \[RuleDelayed] Derivative[Sequence @@ \
oo][f][Sequence @@ varL] ] /; Length[varL] == Length[zeroL]Die Mathekladden des ersten Semesters sagen, dass (x und x0 als Vektoren zu verstehen, das totale Differential d ebenso)
f[x + x0] = exp(x0 d) f = f[x0] + df /1! + d^2f/2! + ... + d^mf/m! + R, wobei R das Restglied ist.Damit man nicht zu Anfang mühsam mit Sequences in Derivative rechnen muss, bildet man zuerst einen nahrhaften untaetigen Operator X mit einem Listenargument, sammelt dann alle Ausdruecke fuer das totale preDifferential tPD, bildet die gewuenschten Summanden des Exponentials und ersetzt X bei der Ausgabe durch den richtigen Ausdruck. Beispiele sind in dem beiliegenden Notebook. Sie muessten darueberhinaus dafuer sorgen, dass Ihre Funktion f an der Stelle zeroL abgeleitet wird.
Mit den besten Gruessen Udo.
taylorBilgic.nb
Description: Mathematica Notebook document
Frühere | Chronologischer Index | Spätere | ||
Vorherige | Thematischer Index | Nächste |
DMUG-Archiv, http://www.mathematica.ch/archiv.html