Hilfe bei Ableitung



  • Ich habe die Funktion:

    E=12i=2Nj=1i1Cθ(Rdij)(dijR)2E = \dfrac{1}{2} \displaystyle\sum_{i=2}^{N}\; \displaystyle\sum_{j=1}^{i-1}\quad C \; \theta(R - d_{ij})(d_{ij} - R)^2

    wobei dij=(x_ix_j)2+(y_iy_j)2+(z_iz_j)2d_{ij} = \sqrt{ (x\_i -x\_j)^2 + (y\_i-y\_j)^2 + (z\_i-z\_j)^2}
    und θ(x)=HeavisideFunktion\theta(x) = Heaviside-Funktion

    Nun brauche ich den Gradienten dieser Funktion , also alle Ableitungen nach
    x_k y_k und z_k.

    In mühsamer Handarbeit habe ich dieses noch unbestätigte Ergebnis erhalten:

    \dfrac{\partial E}{\partial a\_k} = \displaystyle \sum\_{i=1 \atop i \neq k}^{N} \quad C \; \theta(R - d_{ik})(d_{ik} - R) \dfrac{(a\_k - a\_i)}{d_{ik}}

    wobei a_k={x,y,z}_ka\_k = \{x,y,z\}\_k

    Als nächstes benötige ich die Hessematrix und jetzt ... nunja wirds mir zu viel.
    Ich gehe das entweder falsch an oder kA, ich sitze auf jeden Fall schon geraume Zeit darüber und habe grad mal ein Ergebnis für E2ak\dfrac{\partial E}{\partial^2 a_k}.

    Ich habe Maple hier und im Netz gibts ja noch Wolfram Alpha.
    Gibts eine Möglichkeit meine Funktion bequem vom Computer ableiten zu lassen und dabei noch ein leserliches Ergebnis zu erhalten?

    Ansonsten: Wie gehe ich am besten bei der Hessematrix vor? Ich hab mir gedacht, dass ich die Diagonaleinträge erstmal bestimmen müsste und dann noch
    Ea_kb_k\dfrac{\partial E}{\partial a\_k b\_k}
    und Ea_kb_l\dfrac{\partial E}{\partial a\_k b\_l} und damit alle Einträge haben sollte.

    Da ich noch 2 solcher Funktionen vor mir habe, wären Tipps sehr nett. Eine Anleitung wie ich das von nem CAS-System lösen lasse wäre genial.
    Und kann mir jmd sagen, ob mein Gradient überhaupt stimmt?

    Vielen Dank dafür, bis hierher gelesen zu haben... gute Audauer 🙂



  • Hi,
    ich habe es leider nicht im Detail nachgerechnet. Aber was du benötigst ist doch zwei Mal Kettenregel, oder nicht?
    Also wenn wir die partielle Ableitung bilden wollen:
    x_iE=x_i12i=2Nj=1i1CΘ(Rdij)(dijR)2=12i=2NCx_iΘ(Rd_ij)(dijR)2\partial x\_i E = \partial x\_i \frac{1}{2}\sum\limits_{i=2}^{N}\sum\limits_{j=1}^{i-1}C\Theta(R-d_{ij})(d_{ij}-R)^2 = \frac{1}{2}\sum\limits_{i=2}^{N}C\partial x\_i \Theta(R-d\_{ij})(d_{ij}-R)^2

    Jetzt müssen wir zunächst die Produktregel anwenden:
    (d_{ij}-R)^2 \; \underbrace{\partial x\_i \Theta(R-d\_{ij})}_{I} + \Theta(R-d_{ij})\; \underbrace{\partial x\_i (d\_{ij}-R)^2}_{II}
    Und jetzt benötigen wir die Kettenregel und müssen überlegen wie die Heaviside Funktion abzuleiten ist, was habt ihr denn dazu? Dass es einfach die delta-Funktion ist oder eine distributive Ableitung?

    Also irgendetwas in der Art:
    I) dddijΘ(Rdij)x_i(Rd_ij)\frac{d}{d\;d_{ij}}\Theta(R-d_{ij})\;\partial x\_i (R-d\_{ij})
    mit dddijΘ(Rdij)=δ(Rdij)\frac{d}{d\;d_{ij}}\Theta(R-d_{ij}) = \delta(R-d_{ij})
    oder was machst du daraus?

    und

    II) x_i(d_ijR)2=2(dijR)x_id_ij\partial x\_i (d\_{ij}-R)^2 = 2 (d_{ij} - R) \; \partial x\_i d\_{ij}

    Gruß,
    Klaus.



  • Aus der Heaviside Funktion mach ich einfach 0. Das dürfte der Delta-Funktion für alle Parameter außer 0 entsprechen.

    In meinem Problem wird der Fall einfach ignoriert. Zumindest denke ich , dass das zulässig ist.
    DIe Heaviside Funktion soll dafür sorgen, dass Wechselwirkungen nur innerhalb eines bestimmten Cutoff-Radius zustande kommen.
    Dass ich hier in der ABleitung irgendeine Verteilung oder +unendlich drin habe macht keinen Sinn.

    Bin leider immer noch nicht weitergekommen.

    Weiß einer wie man Maple abgewöhnt
    (x_i-x_z)^2 auszumultiplizieren? Selbst wenn ich danach noch factor aufrufe bleibt (wahrscheinlich wegen der Wurzel drüber) immer das ausmultiplizierte stehen, wodurch es mir verdammt schwer fällt, die ausgaben zu interpretieren.



  • Hi,

    shisha schrieb:

    Aus der Heaviside Funktion mach ich einfach 0. Das dürfte der Delta-Funktion für alle Parameter außer 0 entsprechen.

    Dann fällt Teil I meiner obigen Rechnung gerade weg, weil du die Ableitung zu Null machst. Dann bleibt noch der zweite Teil übrig, d.h.
    x_i(d_ijR)2=2(dijR)x_id_ij\partial x\_i (d\_{ij} - R)^2 = 2(d_{ij}-R)\;\partial x\_i \; d\_{ij}
    und
    x_id_ij=x_i(x_ix_j)2+(y_iy_j)2+(z_iz_j)2=x_idij\partial x\_i \; d\_{ij} = \partial x\_i \; \sqrt{(x\_i -x\_j)^2 + (y\_i - y\_j)^2 + (z\_i - z\_j)^2}=\frac{x\_i}{d_{ij}}

    Und für die Hessematrix benötigst du die zweite Ableitung, also?
    x_i2d_ij=x_ix_idij=1dijxi2dij3\partial^2 _{x\_i} \; d\_{ij} = \partial _{x\_i}\frac{x\_i}{d_{ij}}=\frac{1}{d_{ij}} - \frac{x_{i}^2}{d_{ij}^3}

    Wenn ich mich nicht verrechnet habe.

    Das ist konsequentes anwenden von abwechselnd Ketten- und Produktregel.

    Gruß,
    Klaus.



  • Klaus82 schrieb:

    x_id_ij=x_i(x_ix_j)2+(y_iy_j)2+(z_iz_j)2=x_idij\partial x\_i \; d\_{ij} = \partial x\_i \; \sqrt{(x\_i -x\_j)^2 + (y\_i - y\_j)^2 + (z\_i - z\_j)^2}=\frac{x\_i}{d_{ij}}

    Imo eher
    2(x_ix_j)dij12(x\_i-x\_j)\; d_{ij}^{-1}

    Prinzipiell weiß ich wie ich das per Hand rechnen kann. Es ist nur sehr langsam und fehleranfällig bei mir.
    Dazu kommt, dass ich einige Monster von dieser und schlimmerer Art habe und ich bis zum St. Nimmerleinstag rechne, wenn ich das per Hand mache und die Ergebnisse auch noch testen muss.



  • Hi,

    shisha schrieb:

    Klaus82 schrieb:

    x_id_ij=x_i(x_ix_j)2+(y_iy_j)2+(z_iz_j)2=x_idij\partial x\_i \; d\_{ij} = \partial x\_i \; \sqrt{(x\_i -x\_j)^2 + (y\_i - y\_j)^2 + (z\_i - z\_j)^2}=\frac{x\_i}{d_{ij}}

    Imo eher
    2(x_ix_j)dij12(x\_i-x\_j)\; d_{ij}^{-1}

    Nein,
    die Wurzel ist 'hoch-einhalb', d.h. per Kettenregel liefert dir die äußere Ableitung den Faktor einhalb davor, welcher sich dann mit deiner 2 kürzt.
    EDIT:
    Aber du hast recht, dass man die komplette Klammer mitnehmen muss! 🙂

    shisha schrieb:

    Prinzipiell weiß ich wie ich das per Hand rechnen kann. Es ist nur sehr langsam und fehleranfällig bei mir.
    Dazu kommt, dass ich einige Monster von dieser und schlimmerer Art habe und ich bis zum St. Nimmerleinstag rechne, wenn ich das per Hand mache und die Ergebnisse auch noch testen muss.

    In welchem Zusammenhang denn? Welche weiteren 'Monster' hast du denn?

    Zumal ich denke, dass solch große Terme generell fehleranfällig sind, egal wie du sie auswertet. Wenn du einem Computerprogramm mehr vertraust beim Ableiten, dann schützt das nicht vor falscher Eingabe der Formel - nur dass es dir dann vielleicht weniger auffällt, weil du dem Programm blind vertraust.
    Und wie du selbst sagst kämpfst du mit dem Syntax des Ergebnisses.

    Ich denke in der Zeit ist die Ableitung auch mit Papier und Bleistift gemacht. 😉

    Sei doch lieber froh, dass du diese Terme noch analytisch ableiten kannst. 🙂

    Gruß,
    Klaus.



  • Ich kann dir auch kein Tipp geben, wie du die Summe einfach ableiten kannst. Ich bin mir aber nicht sicher ob deine Lösung stimmt. Ich nehme mal an, dass die Ableitung im inneren der Doppelsumme stimmt. Das sollte ja nicht das Problem sein.

    Was du aber beachten solltest ist:
    dija_i=(x_ix_j)d_ij1\dfrac{\partial d_{ij}}{\partial a\_i}= (x\_i-x\_j)d\_{ij}^{-1}
    aber
    dija_j=(x_ix_j)d_ij1\dfrac{\partial d_{ij}}{\partial a\_j}= -(x\_i-x\_j)d\_{ij}^{-1}
    (hoffentlich stimmt das auch...)
    Das wird in deiner Lösung nicht beachtet (das ändert das Vorzeichen von einigen Summanden in deiner Summe).



  • @lustig:

    ich glaube das hatte sich irgendwo wieder aufgehoben.
    Zumindest joffe ich dass das so geht:

    \dfrac{\partial d_{kj}} {\partial a\_k} = d\_{kj}^{-1} \cdot (x\_k-x\_j) \[2ex] \dfrac{\partial d_{ik}} {\partial a\_k} = d\_{ik}^{-1} \cdot (x\_i-x\_k) \cdot (-1) = d_{ik} \cdot (x\_k-x\_i)

Anmelden zum Antworten