Ich versuche ein Seilobjekt zu simulieren. Die Formulierung, die ich verstehe, ist eine Anordnung von Partikeln, die durch Federn verbunden sind. Diese Federn haben sehr große k-Werte, so dass sich die Leine verformt, sich aber nur sehr wenig dehnt. Ich bin zu dem Schluss gekommen, dass eine Lösung in Abhängigkeit von der Zeit nicht in geschlossener Form möglich ist, da ein Seil eine Verallgemeinerung eines Pendels ist (das nicht in geschlossener Form vorliegt).
Dann sollten wir uns auf ungefähre Lösungen einigen. Ich brauche einen Algorithmus, der gut skaliert. Beispiele, die ich gesehen habe, verwenden entweder explizite oder implizite Euler-Integration, um die Partikel zu bewegen. Dies skaliert nicht.
Betrachten Sie dazu ein Seil mit n Knoten. Üben Sie eine große Kraft auf ein Ende aus. Da sich das Seil nicht sehr stark dehnen sollte, muss die Beschleunigung am anderen Ende sofort erfolgen.
Bei der Euler'schen Integration sind jedoch n Schritte erforderlich , um eine Kraft an das andere Ende zu bringen. Ich stelle einen exponentiellen Abfall fest: Wenn der erste Knoten einen bestimmten Betrag beschleunigt, beschleunigen die benachbarten Knoten weniger (wenn sie mit derselben Geschwindigkeit beschleunigen, ist der Algorithmus nicht stabil). Folglich sind die benachbarten Knoten dieses beschleunigen Knoten noch langsamer!
Für n entfernte Knoten ist die Beschleunigung daher nahezu vernachlässigbar. Dies führt zu einem Seil, das sich erheblich dehnt. Wenn Sie die Auflösung der Simulation nur verdoppeln möchten, müssen Sie plötzlich zehn- oder hundertfach kleinere Zeitschritte ausführen, um ein ähnliches Verhalten zu erzielen.
Ich suche nach einer einfachen Methode, die dieses Problem löst - dh Simulationen mit höherer Auflösung konvergieren zur Lösung nur mit zusätzlicher Polynomzeitberechnung. Eine vollständige Bibliothek von Matrix- und linearen Algebratechniken ist verfügbar. Meine Kenntnisse der klassischen Mechanik sind sehr gut und ich kenne einige numerische Analysen.