Задание 2. Модель центрального, абсолютно упругого удара

Постановка задачи.

Разработать модель центрального, абсолютного упругого удара двух шариков. Из курса физики известно, что при таком ударе двух тел массой M1 и M2, движущихся со скоростями V1 и V2, соответственно, выполняются законы сохранения импульса:

и закон сохранения энергии:

где U1 и U2 – скорости тел после соударения.

Совместное решение этих двух уравнений позволяет определить сначала значение скорости U1:

а затем и U2:

U2 = V1 + U1 – V2.

Используя эти соотношения, построить модель движения шариков в замкнутом объеме. Шарики имеют определенные начальные скорости и при соударении друг с другом меняют их в соответствии с вышеприведенными формулами. Для того, чтобы соударения происходили многократно, движения шариков ограничены боковыми стенками, при ударе о которые, шарики изменяют свою скорость по направлению, сохраняя ее по величине.

Ход работы.

1. Переименуйте Лист2 в «Упругий удар».

2. Заполните ячейки A1:F2, как на Рис.20.4.

3. В ячейке A5 запишите формулу: «=A1», а в ячейке C5 – «=C1».

4. В ячейке G2 введите формулу, вычисляющую разность между начальным и конечным положением шариков: «=F2 – E2»

5. В ячейках B5 и D5 будет показываться местоположение шариков, вычисляемое в программном коде. Сейчас введите сюда значения из ячеек E2 и F2 (Рис.20.5).

6. В ячейке A4 введите пояснение «1 шар», в ячейке C4 – «2 шар» (Рис.20.5).

Теперь необходимо построить диаграмму таким образом, чтобы получить на ней изображение обоих шариков, положение которых будет зависеть:

· от координат X, находящихся в ячейках B5 и D5;

· от координат Y, равных 2;

· от размеров, зависящих от массы (A5 и C5). Для этого:

7. Выделите диапазон ячеек A5:D5.

8. С помощью Мастера диаграмм выберите тип диаграммы – «Пузырьковая».

9. На шаге 2 построения диаграммы укажите источник данных рядов – «в строках» и перейдите на вкладку «Ряд».

10. Для значения ряда «Ряд 1» установите следующие параметры (Рис.20.6):

· Значения X: = Лист2!$B$5

· Значения Y: = {2}

· Размеры: = Лист2!$A$5

11. Нажмите кнопку «Добавить» под окном «Ряд».

12. Для значения ряда «Ряд 2» установите следующие параметры (Рис.20.7):

· Значения X: = Лист2!$D$5

· Значения Y: = {2}

· Размеры: = Лист2!$C$5

13. В следующем окне, на Шаге 3, уберите легенду и ось значений Y.

14. Введите название диаграммы – «Модель абсолютно упругого удара».

15. Расположите диаграмму на имеющемся листе и настройте ее по своему вкусу.

16. Установите для оси X (подведя курсор мыши к линии OX, щелкнув правой клавишей мыши и выбрав в контекстном меню команду «Формат оси») минимальное и максимальное значение шкалы соответственно 0 и 10, отказавшись от режима «Авто» для этих параметров. Примерный результат – на Рис.20.8.

17. Расположите на Листе «Упругий удар» элемент управления – командную кнопку CommandButton1 (Рис.20.9) и измените ее свойства:

· Caption = «Старт»

· Font, BackColor – по своему усмотрению

18. Напишем следующий программный код для щелчка по кнопке (необходимые комментарии приведены после знака апострофа):

Private Sub CommandButton1_Click()

'получим начальные координаты шариков

xx1 = Cells(2, 5) ' из ячейки E2

xx2 = Cells(2, 6) 'из ячейки F2

'начальные скорости обозначим через dx1 и dx2

'Координату шарика через промежуток времени t

'будем вычислять по известной формуле X=Xo+V*t

'Если t=1/10, тогда dx = v/10. Отсюда:

dx1 = Cells(2, 2) / 10

dx2 = Cells(2, 4) / 10

'Передадим начальные в координаты в текущие, используемые для вычисления

x1 = xx1

x2 = xx2

m1 = Cells(2, 1) 'получим массы шариков из ячеек A2

m2 = Cells(2, 3) 'и С2

'Рассчитаем цикл на 100 раз, принимая то,

'что увеличение счетчика на 1 - это увеличение

'времени на 1/10 с, т.е. в течение 10 условных секунд

For i = 1 To 100

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

'приблизился к левой стенке (координата 0), его скорость

'должна поменяться по знаку, а чтобы шарик не "влипал" в стенку,

'запретим приближаться к ней ближе, чем на 0,5

If x1 <= 0.5 Then dx1 = Abs(x1)

'Для второго шарика "опасна" правая стенка с координатой 10,

'и учетом "влипания" получаем 9,5

If x2 >= 9.5 Then dx2 = -1 * Abs(dx2)

'Если первый шарик (левый) приблизился ко второму менее,

'чем на 1 (размеры шариков), то скорости шариков меняются

'в соответствии с формулами

If x1 >= x2 - 1 Then

a = dx1 ' - это скорость V1 перед ударом

dx1 = (dx1 * (m1 - m2) + 2 * dx2 * m2) / (m1 + m2) ' - это U1

dx2 = a + dx1 - dx2 ' - это U2

End If

'находим новое местоположение шариков

x1 = x1 + dx1

x2 = x2 + dx2

'отправим эти значения в таблицу, чтобы изменилась диаграмма

Cells(5, 2) = x1

Cells(5, 4) = x2

'Выполнить описанные команды, произвести перерасчет

'в соответствии с новыми данными, и перестроить диаграмму

DoEvents

'завершим цикл

Next i








Дата добавления: 2015-06-12; просмотров: 1212;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.