Unnamed
Новичок
|
Дано: координаты цели на момент выстрела: x0, y0 ,z0; проекции скорости цели на момент выстрела на оси Ox, Oy, Oz: sx0, sy0, sz0; проекции ускорения цели (не меняется со временем) на оси Ox, Oy, Oz: ax, ay, az; скорость снаряда s (снаряд летит по прямой с постоянной скоростью). Cтреляющий в момент выстрела находится в точке O(0; 0; 0), его скорость не учитывается. Найти: точку (x1, y1, z1), где повстречаются цель и снаряд (зная её, можно отыскать углы, под которыми нужно производить выстрел). Способ решения «в лоб» прост: составляется уравнение 4-ой степени (x0 + sx0·t + ax·t^2/2)^2 + (y0 + sy0·t + ay·t^2/2)^2 + (z0 + sz0·t + az·t^2/2)^2 – (s·t)^2 = 0, которое решается перебором значений t до достижения выражением в левой части значения, достаточно близкого к нулю. Затем рассчитываются координаты цели спустя время t: x1 = x0 + sx0·t + ax·t^2/2, y1 = y0 + sy0·t + ay·t^2/2, z1 = z0 + sz0·t + az·t^2/2. Но было б неплохо найти более рациональное (в идеале – аналитическое (без итераций)) и по возможности точное решение.
|
Всего сообщений: 44 | Присоединился: март 2005 | Отправлено: 5 янв. 2006 17:51 | IP
|
|
Ren
Долгожитель
|
Зачем так жестоко? Ведь можно просто составить три уравнения для трёх координат. И как раз получиться аналитически выраженный ответ.
|
Всего сообщений: 284 | Присоединился: октябрь 2005 | Отправлено: 5 янв. 2006 19:08 | IP
|
|
Unnamed
Новичок
|
Ren wrote: Ведь можно просто составить три уравнения для трёх координат. И как раз получиться аналитически выраженный ответ.
А если конкретно: что за три уравнения такие?
|
Всего сообщений: 44 | Присоединился: март 2005 | Отправлено: 6 янв. 2006 22:44 | IP
|
|
Ren
Долгожитель
|
То же что и сказали Вы, только не для модулей векторов относительного перемещения, а для самих радиус векторов точек, причём в проекциях на оси координат
|
Всего сообщений: 284 | Присоединился: октябрь 2005 | Отправлено: 11 янв. 2006 10:08 | IP
|
|
Unnamed
Новичок
|
Типа вот так что ли? – sx·t = x0 + sx0·t + ax·t^2/2, sy·t = y0 + sy0·t + ay·t^2/2, sz·t = z0 + sz0·t + az·t^2/2. Но здесь 4 неизвестных: sx, sy, sz, t – в задаче-то в итоге требуется найти именно направление выстрела, т.е. вектор (sx/s; sy/s; sz/s).
|
Всего сообщений: 44 | Присоединился: март 2005 | Отправлено: 12 янв. 2006 19:37 | IP
|
|
swarock
Удален
|
М.. а такой вопрос. У нас в задачке имеется именно снаряд (т.е. фактически железная болванка) или управляемая ракета? Если ракета, то при решнии в лоб, боюсь 4мя степенями не обойтись..
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 30 янв. 2006 22:18 | IP
|
|
Unnamed
Новичок
|
Ракета движется с момента выстрела до попадания с постоянной скоростью, не меняя направления.
|
Всего сообщений: 44 | Присоединился: март 2005 | Отправлено: 8 фев. 2006 12:46 | IP
|
|
MrD
Удален
|
Для решения уравнений 4-й степени, используется метод Феррари. Описание можно найти, например, здесь - внешняя ссылка удалена
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 10 фев. 2006 2:36 | IP
|
|
KMA
Долгожитель
|
Здесь ищут не алгоритм решения уравнений 4-ой степени, а более рациональный метод решения, для программирования конкретной задачи, с конкретными известными. Понимаешь, надо найти обходной путь
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 10 фев. 2006 10:53 | IP
|
|
MrD
Удален
|
Метод, предложенный первым, и есть самый рациональный, я сначала посидел с ручкой и бумагой, посмотрел. А дальше есть аналитическое решение, не требующее больших расчетов. Зачем искать еще и обходной путь?
|
Всего сообщений: N/A | Присоединился: N/A | Отправлено: 10 фев. 2006 16:53 | IP
|
|
|