Я рассчитал формулы с одномерным движением по траектории (свободное падение), включая квадратичное сопротивление, и составил следующие уравнения.
Эти уравнения движения сами по себе бесполезны, поэтому мне нужен либо аналитический метод, либо численный метод, чтобы построить двумерное движение снаряда на графике, y против x. Однако мне известно, что уравнения движения двумерных снарядов следующие:
Значит, вот тут я не знаю подхода к задаче, не очень знаком с численными методами решения уравнений. Есть ли способ сделать это в электронной таблице или в MATLAB, сохраняя высокий уровень точности (если возможно, используя RK4).
Примечание: x-скорость ориентирована справа, а y-скорость направлена прямо вверх.
Пожалуйста, поправьте меня, если я допустил какие-либо ошибки.
В основном у вас есть два ОДУ для решения:
Одной из наиболее стабильных подпрограмм на самом деле является не RK4, а разновидность интеграции чехарды , называемая скоростью verlet . Это превращает (1) и (2) в многоэтапный процесс:
x,y,vx,vy
).
Ваша проблема отличается тем, что , что делает вычисление второго ускорения немного сложным, поскольку зависит от и наоборот. Этот ответ в GameDev (определенно стоит прочитать некоторые числовые аспекты проблемы) предполагает, что вы можете использовать следующий алгоритм
Он не так точен, как метод Рунге-Кутты четвертого порядка (как можно было бы ожидать от метода второго порядка), но намного лучше, чем метод Эйлера или метод наивной скорости Верле без оценки промежуточной скорости, и он по-прежнему сохраняет симплектическое свойство нормального метода. скорость Верле для консервативных сил, не зависящих от скорости.
Поскольку это движение снаряда, вероятно, является естественным выбором для начальных условий, с и как обычно.
Qмеханик
Билл Н
velocity verlet
иverlet velocity
на этом сайте. есть много ответов, которые говорят об этом, и это намного проще реализовать, чем RK4. В Википедии тоже есть информация об этом.