527 Кб, 991x640
Вопрос про кинематические уравнения типа движения с ускорением. Часто говорят "используй эйлера" (или наоборот эйлер говно, дает ошибку). Тупой вопрос - зачем вообще интегрировать, если уже есть интегральная форма, те решение уравнения d^2x/dt^2 = a. Проинтегрировав два раза получим известную формулу x(t) = x0 + v0_t + 1/2 at^2
Чому нельзя ее использовать. Эйлер же по определению цифровой метод, где аналитического решения нет.
Чому нельзя ее использовать. Эйлер же по определению цифровой метод, где аналитического решения нет.
>>823 (OP)
Кто тебе сказал, что ускорение у тебя постоянно?
Кто тебе сказал, что ускорение у тебя постоянно?
>>824
Ну я не знаю, примеры всегда с постоянным ускорением, типа движение под углом к горизонту, и g не меняется. Но я понял, если ускорение не постоянно нужно интегрировать. Все равно мне не понятно, примеры использования эйлера в учебниках показывают как решать уравнения первого порядка, что имеет вид
y_n+1 = y_n + dt • F(t_n, y_n);
t _n+1 = t_n + dt
То есть для уравнения движения с ускорением имеем дело только с первой производной и эйлером интегрируем s' = at + v0.
Т.е
while {
s = s0 + dt•t•a; (t - текущее время)
t += dt; //наращиваем t
s0 = s; //запоминаем последнюю позицию
}
Но все примеры что я видел, наращивают V прибавляя к нему а, и одновременно наращивают S, прибавляя к нему V. Получается как бы двойной эйлер, то есть как бы решается уравнение вида d^2s/dt^2 = a.
Вот так типа:
v += a•dt; //наращиваем скорость
s += v•dt; //наращиваем позицию
Таким образом текущее время t не участвует, а берется только dt
В чем разница между двумя подходами?
Ну я не знаю, примеры всегда с постоянным ускорением, типа движение под углом к горизонту, и g не меняется. Но я понял, если ускорение не постоянно нужно интегрировать. Все равно мне не понятно, примеры использования эйлера в учебниках показывают как решать уравнения первого порядка, что имеет вид
y_n+1 = y_n + dt • F(t_n, y_n);
t _n+1 = t_n + dt
То есть для уравнения движения с ускорением имеем дело только с первой производной и эйлером интегрируем s' = at + v0.
Т.е
while {
s = s0 + dt•t•a; (t - текущее время)
t += dt; //наращиваем t
s0 = s; //запоминаем последнюю позицию
}
Но все примеры что я видел, наращивают V прибавляя к нему а, и одновременно наращивают S, прибавляя к нему V. Получается как бы двойной эйлер, то есть как бы решается уравнение вида d^2s/dt^2 = a.
Вот так типа:
v += a•dt; //наращиваем скорость
s += v•dt; //наращиваем позицию
Таким образом текущее время t не участвует, а берется только dt
В чем разница между двумя подходами?
>>828
Мне лень утром чето думать. Два слова. Алгоритм Верле.
Мне лень утром чето думать. Два слова. Алгоритм Верле.