Jacobimatrix von Federkräften



  • Ich beschäftige mich im Moment mit einer Simulation eines Masse-Feder Netzwerks. Bei impliziter Integration der DGLs werden die Federkräfte linearisiert(mit Taylorentwicklung). Dazu brauch ich die Jacobimatrix des Kraftvektors.

    Die Kräfte auf jedes einzelne Partikel ist gegeben durch
    f_i=_jk(xijl_0ij)x_ijxijf\_i = \sum\_j k(|x_{ij}| -l\_0^{ij}) \frac{x\_{ij}}{|x_{ij}|}
    mit l_0 Ruhelänge und
    xij=x_jx_iR3x_{ij} = x\_j - x\_i \in \mathbb R^3
    Ich berechne jetzt explizit

    \frac{\partial{f\_i}}{\partial{x\_j}} = k \left[ \left(1- \frac{l\_0^{ij}}{|x\_{ij}|}\right) \mathbb E + l_0^{ij} \frac{x_{ij}x_{ij}^T}{|x_{ij}|^3} \right]

    jetzt das große "aber" / die Frage. Was ist mit den Diagonalelementen der Jacobimatrix
    f_ix_i\frac{\partial f\_i}{\partial x\_i}
    Wie werden denn diese berechnet? Bzw. gibts da einen Trick?
    Ich nehme an, dass es mit der Differentation von der Betragsfunktion irgendwie zusammenhängt, aber irgendwie reichen meine mathematischen Fähigkeiten dazu nicht aus!

    Danke im voraus!



  • Nun, die etwas unelegante Holzhammermethode ist immer, die Ableitung komponentenweise (also nach den drei Komponenten von x_i) durchzuführen und zu versuchen, danach wieder einen vernünftigen Ausdruck rauszuwursteln ...



  • Hab in einem Paper eine Lösungsmöglichkeit gefunden:
    Die Diagonaleinträge berechnen zu:
    \frac{\partial{f\_i}}{\partial{x\_i}} = - \sum_{j \not= i} \frac{\partial{f\_i}}{\partial{x\_j}}
    Also gerade das Negative der Zeilensumme. Es scheint zu funktionieren, die Simulation sieht "realistisch" aus. Wenn mir jmd. noch ein Hinweis gäbe, warum dies so ist, wäre ich sehr dankbar!

    @daniel e. : da muss aber auch eine grenzwert bildung x_i -> x_j gemacht werden, und dafür bin ich zu blöd...



  • megaweber schrieb:

    Hab in einem Paper eine Lösungsmöglichkeit gefunden:
    Die Diagonaleinträge berechnen zu:
    \frac{\partial{f\_i}}{\partial{x\_i}} = - \sum_{j \not= i} \frac{\partial{f\_i}}{\partial{x\_j}}
    Also gerade das Negative der Zeilensumme. Es scheint zu funktionieren, die Simulation sieht "realistisch" aus. Wenn mir jmd. noch ein Hinweis gäbe, warum dies so ist, wäre ich sehr dankbar!

    Du musst beachten, dass bei deiner ersten Formel auch über j!=i Summiert wird. Und es gilt
    x_ig(x_jx_i)=x_jg(x_jx_i)\frac { \partial } { \partial x\_i } g( x\_j - x\_i ) = - \frac { \partial }{ \partial x\_j } g( x\_j - x\_i )
    für jeden Ausdruck in der Summe (in deinem ersten Beitrag).

    Kann sein, dass
    jf_ix_j=0\sum_{j} \frac{\partial{f\_i}}{\partial{x\_j}} = 0
    einen tieferen Sinn hat, dazu fällt mir aber im Moment nichts ein.


Anmelden zum Antworten