Я пытаюсь смоделировать веревочный объект. Я понимаю, что формулировка представляет собой массив частиц, связанных пружинами. Эти пружины имеют очень большие значения k, так что линия деформируется, но растягивается очень мало. Я пришел к выводу, что решить это как функцию времени невозможно в замкнутой форме, потому что веревка является обобщением маятника (который не является замкнутой формой).
Урегулирование для приближенных решений, затем. Мне нужен алгоритм, который хорошо масштабируется. Примеры, которые я видел, используют либо явную, либо неявную интеграцию Эйлера для перемещения частиц. Это не масштабируется.
Чтобы увидеть это, рассмотрим веревку с n узлами. Приложите большую силу к одному концу. Поскольку веревка не должна сильно растягиваться, ускорение на другом конце должно быть немедленным.
Тем не менее, с помощью интеграции Эйлера, чтобы получить какую-либо силу для другого конца требуется n шагов. Я замечаю экспоненциальный спад: если первый узел ускоряется на определенную величину, то соседние узлы ускоряются меньше (если они ускоряются с той же скоростью, то алгоритм не стабилен). Следовательно, узлы, смежные с этим узлом, ускоряются еще медленнее!
Таким образом, для n узлов далеко ускорение практически ничтожно. Это приводит к тому, что веревка значительно растягивается. Если вы хотите только удвоить разрешение симуляции, вам внезапно нужно сделать временные шаги, которые в десятки или сотни раз меньше, чтобы получить аналогичное поведение.
Я ищу простой метод, который решает эту проблему - т.е. моделирование с более высоким разрешением сходится к решению с дополнительными вычислениями только за полиномиальное время. Доступна полная библиотека методов матричной и линейной алгебры. Мои знания классической механики очень хороши, и я знаю некоторый численный анализ.