2 абсолютно упругих шарика масс M и m (M > m) надеты на стержень и двигаются по нему без трения. Справа стержень прикреплен к абсолютно упругой стенке. Ясно, что шарики будут соударяться друг с другом и со стенкой. Вычислите количество соударений.

Задача сформулирована на языке физики, вместе с тем, она быстро сводится к задаче математической, поэтому я ее здесь и помещаю.

размер 331x220, 3.55 kb

Изначально движется только больший из шариков, а меньший покоится.
Написал lofar, 13.09.2009 в 19.42

GD Star Rating
loading...

91 Responses to Вычислите количество соударений

  1. Rafol:

    Изначально движется только больший из шариков, а меньший покоится.

  2. SpMonkey:

    Что–то мне кажется, что они будут бесконечное кол–во раз соударятся, т.е. большой шарик сначала будет двигаться в одном направлении, потом в обратном, и маленький будет его бесконечное кол–во раз догонять и подталкивать…

  3. Sr:

    не согласен

  4. SpMonkey:

    я же написал, что мне кажется… щас вот подумал, похоже действительно я не прав был :))

  5. 905xela:

    Короче я думаю так. По закону сохранения импульса и энергии большой шарик каждый раз сталкиваясь с малым будет отдавать ему часть скорости, пока скорость не станет 0, потому она будет возрастать в другую сторону, в бесконечности имеем большой шарик, движущийся со скоростью –v0.

  6. 905xela:

    Бля, наврал. Условие другое. Когда скорость большого после соударения будет больше скорости маленького и оба движутся в одну стороу.

  7. Peels:

    Навскидку получилось, что решением будет такое минимальное k>0, для которого

    Ответить

  • Peels:

    Парсер — известная сволочь:

    размер 192x36, 0.88 kb

  • Peels:

    .. > 0, недорисовалось.

  • 905xela:

    Начало будет такое. Скорость большого будет (M–m)V0/M+m, после первого удара.
    Скорость маленького будет 2MV0/(M+m) но с минусом. Когда маленький запинает движущийся большой настолько, что его скорость будут в минусе и больше маленького тогда и успокоились.

  • Peels:

    Начало такое, да. В общем виде скорости при столкновении преобразуются по правилу

    размер 264x48, 1.36 kb

  • Peels:

    После чего скорость маленького шарика меняет знак (столкновение об стенку), следовательно изменение скоростей шаров от их столкновения к столкновению описывается как

    размер 248x48, 1.28 kb

  • 905xela:

    Сижу и туплю беспробудно.

  • 905xela:

    Это хорошо, а теперь формулу от n.

  • Peels:

    откуда парой манипуляций получается формулировка задачи с неизвестной степенью k.
    Но чета это шибко мудрено как–то…

  • 905xela:

    Вот–вот, я уже заипался выводить.

  • Peels:

    Каждый эпизод «столкновение шаров + столкновение малого шара со стенкой» преобразует векторы скоростей, умножая на вот эту вот матрицу что выше. После k столкновений, получим вектор скоростей вида Аk vнач. Легко заметить что начальная скорость роли не играет, поэтому можно взять vнач = (1,0). Процесс заканчивается когда (v1 — v0) > 0.
    Отсюда и получается формулировка вида
    (1, –1) Аk (1,0) > 0

    (При желании там можно поменять базу и тада будут чуть–чуть другие вектора, как у меня выше, там разницы особой нет).

  • 905xela:

    Ты крут как всегда.

  • Peels:

    Спасибо за комплимент. Фигачить матрицы — это мы умеем, теперь осталось только задачку решить 🙂

  • 905xela:

    Кстати у меня уже программка готова, можно будет проверить решение

  • 905xela:

    Логарифмически, нет?

  • Peels:

    С матриц логарифм так просто не берется, к сожалению.

  • 905xela:

    Ну а если попробовать диагонализировать

  • Ts4:

    кажется не кажется — дело десятое. Задачу _решать_ надо.
    А ваш ответ, вполне может быть, имеет место при определенном инетрвале значений величины m/M.

  • Peels:

    Не, бесконечно много подталкивать не сможет. Закон сохранения энергии не позволит.

  • SpMonkey:

    Я тут подумал, и решил что кол–во соударений

  • SpMonkey:

    блять, простите…

    количество соударений будет равно М/2m

  • 905xela:

    Расскажи как решил?

  • Peels:

    Если массы равны, то их будет половина?

  • 905xela:

    А будет 2

  • SpMonkey:

    блять 🙂 но на самом деле дано условие M>m.

    Ты рассмотрел пограничный случай. Удара будет 2. После первого, шар остановится, второй добежит с той же скоростью до стены, потом вернётся и ударит второй раз.

    Я мог где–то ошибиться, решал как–то в башке и мог не правильно вполне.

  • SpMonkey:

    Причём если M

  • SpMonkey:

    Я вообще хитрожопо как–то крутил вертел и в итоге пришёл к выводу, о том, что:
    1. Имульс сообщаемый после соударения маленькому шарику, не зависит от порядкового номера удара.
    2. Импульс сообщаемый каждый ударом pi = 2mV0

    Начальный импульс системы P0 = M*V0
    Т.к. система какбе идеальна, потерь нет, закон сохранения импульса работает.
    Дальше посчитал сколько ударов для полной передачи импульсов.. но как заметил Peels я ошибся.
    Там нужно поправочные коэффициенты ввести.
    Нужно умножить на 4 🙂

    Я могу ошибаться и тупить. Могу поделиться выкладками, но боюсь что засмеют :)) Я давно не решал задачки 🙁

  • SpMonkey:

    Если M <= m удара будет два.

  • SpMonkey:

    Я немножко поспешил, и не правильно посчитал, за 1 удар на самом деле принимал 2, т.е. рассматривал изменение имульса за 1 шаг, а 1 шаг это 2 удара, соответсвенно нужно умножить на 2

    Дальше я не учел, что большой шар после соударений имеет импульс равный начальному, но в противоположную сторону направленный, отсюда вытекает вторая 2–йка.

    Ну и в итоге получается количество ударов 2М/m.

    Это не подгонка результатов, это поиск ошибки моей … но решал как–то слишком по школьному.. 🙂

  • SpMonkey:

    Чёт проверить пытаюсь, фигня получается.. где–то облажался.. 🙁

  • SpMonkey:

    Ой ой ой… я очень дебил.. получил 3–ий ответ :))
    В процессе махинаций просто пропустил решение и начал его дальше раскручивать 🙁

    Вышло: (M–m)/m + 2

  • Rafol:

    Поскольку физика здесь, на мой взгляд, играет второстепенную роль, поясню, что энергия системы сохраняется, а вот импульс — нет. Система не замкнута, есть стенка, при ударе о нее импульс малого шарика меняется с mv на –mv, суммарный импульс системы из двух шариков меняется на 2mv. С другой стороны, при соударении шариков суммарный импульс сохраняется.

    Если M = m, то будет 3 соударения:
    1) Большой шарик бьет по малому и останавливается, малый движется в сторону стенки.
    2) Малый шарик ударяется о стенку и возвращается.
    3) Малый шарик бьет по большому и останавливается, большой улетает налево.

  • SpMonkey:

    Это да, только я не учитываю соударения со стенкой.. а нужно? Я думал нужно посчитать кол–во соударений шариков между собой.

    Но в любом случае все мои ответы опять же не верные, вчерась сел на глистике рисовать, в итоге получил очередной ответ, но что–то кажется что он опять же не правильный 🙁

  • 905xela:

    Давай ответ уже.

  • 905xela:

    Я требую решения, это же мучение какое–то. Все кто хотел/пытался решать уже отметились.

  • SpMonkey:

    У тебя там программка для проверки была, проверь очередную мою потугу 🙂

    2(M–m)M/3m + 2

  • 905xela:

    Как округляешь?

  • 905xela:

    Не канает.

  • Peels:

    У тебя ответ зависит не только от соотношения масс, это неверно.
    Вообще график зависимости k от M таков:

    размер 468x348, 11.78 kb

  • Peels:

    и он почти идеально описывается кривой sqrt(2.5 M)
    (напомню что у меня m = 1, т.е. в твоих терминах формула должна быть примерно sqrt(2.5 M/m))

    Но из каких соображений это получить — непоняатно.

  • Ts4:

    не факт, что решаема.

  • Ts4:

    Не, ну в предельном случае, при M стремящемся к бесконечности.

  • SpMonkey:

    Ну вот видишь, и вопрос с округлением отпал сам собой, какая разница как дурак округляет 🙂

    На самом деле можно же не округлять, я по сути дела пытаюсь найти, количество порций передающихся импульсов в начальном. В результате столкновений импульс результирующий может быть разделён между двумя шарами, отсюда и дробность.

    Но в любом случае не верно 🙁

  • Peels:

    Для любого конечного M/m столкновений будет конечное число. А при бесконечном M/m задача почти не имеет смысла (ибо маленький шарик должен как бы развить бесконечную скорость).

  • 905xela:

    Почему не факт, там ряд будет.

  • Ts4:

    Меня немного смущает, что в вышеприведенных формулах везде первые степени M. Однако, ведь мы используем ЗСЭ а не ЗСИ. Где корни из масс?

  • Peels:

    Мы (т.е. я лично) используем оба закона. По крайней мере матрица преобразования скоростей там выше получена как раз из уравнений

    Mv1 + v2 = Mw1 + w2
    Mv1^2 + v2^2 = Mw1^2 + w2^2

    Мне не очень очевидно почему там обязательно должны вылезти какие–то корни, но вон, как видишь, в формуле sqrt(M) они очень даже вылезают.

  • 905xela:

    Забахал симулятор на яваскрипте. Надо кому?

  • 905xela:

    Классно, там 2 варианта получилось. Шарик прежде чем уйти в далекую даль налево стукает стенку или нет.

  • 905xela:

    Короче фиг решишь в общем виде.

  • Peels:

    Врядли очень кому надо, но показывай раз сделал.

  • Peels:

    Нуну, большой шарик никак не может стукнуть стенку. А в общем виде скорее всего решение должно–таки быть, иначе нафига нам лофар это сюда запостил. Да и по графику вон получается что sqrt(2.5M) — это как будто почти правильно, только неясно как округлять.

  • SpMonkey:

    должна решаться.. не в общем а именно при М > m. Мне сугубо матаппарата не хватает.. но я просто плохо учился в институте 🙁

  • Peels:

    При M < m все кстати довольно просто: будет либо два удара, либо один, и найти границу между этими вариантами довольно просто.

  • Peels:

    Мне так кажется, давать ссылки на рапидшер, особенно в случае маленьких файлов — это, знаете–ли, моветон. Куча халявных хостингов вокруг жежь!

  • SpMonkey:

    По поводу округления… как я уже говорил выше, может вполне быть дробное число ударов, ибо каждый удар это передача импульса, точнее обмен, между шарами. В результате серии соударений, импульс большого шара не будет равен исходному, т.е. оба шарика будут в результате пертрубаций двигаться в сторону от стенки, большой быстрее маленького. ЗСИ будет выполнятся при этом. Дробные значения вылезают именно поэтому.

    Хотя как показывает практика, я тот ещё долбоёб, и если меня поправят буду рад 🙂

  • SpMonkey:

    читайте «дробное количество ударов» именно в кавычках…

  • SpMonkey:

    но не факт, что решение должно быть настолько общим, чтоб охватывать случаи M <= m, т.е. эти случаи имеет смысл рассмотреть как частные.

  • Peels:

    Да не, я с самого начала тоже думаю что подход вида «посчитать сколько импульса или, там, энергии перекачивает маленький шарик большому до того момента как он покинет поле» — это правильно. Причина твоих ошибок до сих пор лишь в том, что ты предполагаешь что каждый удар передает большому шару фиксированное количество энергии/импульса, а это не так.

  • SpMonkey:

    да, это я тоже понял, просто заблуждение было связанно с ошибками в выкладках, как–то это предположение слишком всё упрощало, я не замечал что каждый раз там или сям что–то пропускаю 🙁

  • SpMonkey:

    Но дробность, мне к фиксированному или нефиксированному кол–ву импульса отношение не имеет, я всё же предполагаю что она появлется именно таким образом, как я описал выше. Почему нет?

  • Peels:

    Вощьм я так и не добился от рапидшары доступа, и с горю написал свой яваскрипт.

  • 905xela:

    Щас сравним результаты.

  • 905xela:

    Да я убегал по работе, первое что на ум пришло.

  • 905xela:

    Сходится.

  • Rafol:

    Раз вы все уже смоделировали, посчитайте количество соударений при M/m = 1, 100, 10000. Ничего не замечаете?

  • Peels:

    Да мы уже и график тебе нарисовали там, и формулу подобрали, вот только толку от этого мало…

  • Rafol:

    Можно здесь сделать замену переменных: v0 на *, а v1 на sqrt(M)y. Вот и корни из масс пошли.

    Я шел другим путем, на мой взгляд, более красивым. Закон сохранения энергии — круг, закон сохранения импульса — прямая.

    Если эти намеки не помогут напишу решение.

  • 905xela:

    Вернее 314

  • SpMonkey:

    нет.. для 100 будет 313

  • Ts4:

    ряд по какому параметру? По целой части M?

  • Ts4:

    Если бы ответ можно было записать в виде ряда, мы бы посмотрели на таблицу тейлоровых разложений и поняли, что это ряд для корня при бесконечном М. Это как пример откуда могут вылезти корни.

  • Peels:

    С кругом получается визуально красиво, и правда, но как из этого посчитать точное количество точек мне все равно пока не очень понятно.

  • Peels:

    Хотя если чуток подумать, то углы там одинаковые, то бишь длины дуг одинаковые. Длина каждой дуги тогда 2 sqrt(M) arctan(1/sqrt(M)), а количество точек приблизительно pi/(2 arctan(1/sqrt(M))), что в пределе будет стремиться к sqrt(M)*pi/2, что мы уже и имели счастье наблюдать.

    Конечно детали округления все равно остаются довольно смутными, но я так понимаю что смысл задачи мы тут уловили.

    Клево!

  • Peels:

    .. а количество точек на всем круге (включая столкновения со стенкой) — pi sqrt(M), что проясняет намек про 1, 100, 100000.

  • 905xela:

    Для 100 будет 31, для 10000 будет 314

  • Rafol:

    Да, все так. Нужно только аккуратно провести все выкладки. Приведу полное решение.

    Обозначения:
    M — масса большого шарика,
    m — масса малого шарика,
    V — скорость большого шарика перед соударением с малым шариком,
    V’ — скорость большого шарика после соударения с малым шариком,
    v — скорость малого шарика перед соударением с большим шариком,
    v’ — скорость малого шарика после соударения с большим шариком,
    V0 — исходная скорость большого шарика.
    Все скорости имеют знак — если шарик движется в сторону стенки скорость положительна, если от стенки, то отрицательна.

    Закон сохранения энергии:
    MV2/2 + mv2/2 = MV02/2

    Закон сохранения импульса:
    MV + mv = MV’ + mv’

    Условие окончания соударений:
    V <= v <= 0

    В плоскости (v, V) закон сохранения энергии представляет собой эллипс. Изменим масштаб переменных с тем, чтобы эллипс превратился в единичную окружность. Пусть r = sqrt(m/M), положим
    * = vr/V0,
    y = V/V0.

    Тогда, закон сохранения энергии запишется в виде:
    *2 + y2 = 1,

    закон сохранения импульса в виде:
    y’ = y — r (*’ — *)

    условие окончания соударений в виде:
    y <= */r <= 0.

    Графически изменения состояния системы в плоскости (*, y) представляет собой движение по ломаной внутри круга:

    размер 425*418, 15.77 kb

  • Rafol:

    Точки 1, 2, 3, … 12 представляют собой различные состояния системы, отрезки ломаной — изменения состояний, т. е. соударения. наклонные отрезки отвечают соударениям шариков, горизонтальные — соударениям со стенкой. Таким образом, количество соударений равно количеству звеньев ломаной.

    Из закона сохранения импульса следует, что все наклонные отрезки образуют один и тот же угол с горизонтальными отрезками равный gamma = arctg®.

    Геометрически условие окончания соударений выполняется в точности тогда, когда очередной наклонный отрезок не пересекает окружность (идет по касательной к ней или ниже). Таким образом, геометрически окончание соударений наступает когда ломаная заполнит весь круг.

    Легко показать, что все углы 1–0–2, 2–0–4, 4–0–6, … равны 2gamma. Используя этот факт получаем, что количество звеньев ломаной — оно же количество соударений — будет равно:

    размер 308x81, 3.87 kb

    Скобочки с засечкой сверху означают потолок — минимальное целое не меньшее данного числа

  • Rafol:

    Таким образом, (количество соударений) / sqrt(M/m) стремится к пи, при M/m стремящемся к бесконечности. Так что, в принципе, рассматриваемую механическую систему можно использовать для вычисления числа пи, что, на мой взгляд, красиво.

  • ZzuBxam:

    Более того, Шень где–то показал, что для M = 100^N * m ответ всегда будет равен trunc(10^N * pi).

  • ZzuBxam:

    Небольшая поправка. Окончание соударений наступает тогда, когда точка попадает в некоторый угол величиной gamma (на рисунке границы выделены красным). Следует напрямую из физического условия окончания соударений.

    размер 425x418, 22.40 kb

  • Добавить комментарий