
% После столкновения сделаем маленький сдвиг
r=r+v*eps;
t=t-t0-eps;
end; % while
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Подобная функция для произвольного числа шаров, написанная для ускорения сче-
та на языке C, преобразована к виду, допускающему подключение ее к систе-
ме Matlab. Она вызывается из программы написанной на языке MATLAB как
обычная функция. Ниже приведены необходимые для ее использования сведения.
Функция
[xf,yf,vxf,vyf]= Balls(n,x,y,vx,vy,dt,R,Lx,Ly,m)
по известным значениям координат центров n шаров r
i
=[x(i),y(i)]) икомпо-
нент их скоростей v
i
=[vx(i),vy(i)]), (i =1, 2, ..., n) определяет значения
этих же величин через заданный интервал времени dt и присваивает переменным
rf
i
=[xf(i),yf(i)] vf
i
=[vxf(i),vyf(i)]). Шары движутся по прямоуголь-
ному столу размером Lx × Ly , радиусы шаров одинаковы и равны R, значения
масс заданы в массиве m и могут быть различными.
26
Начало координат расположено в левом «нижнем» углу стола, оси координат
параллельны его сторонам (см. рис. 8).
Предусмотрено число шаров n ≤ nmax =25. Переменные R, Lx, Ly, m
можно не задавать. Тогда будут приняты значения R =20,Lx= Ly = 256,а
массы выбраны одинаковыми.
Начальные значения координат центров шаров должны быть выбраны в пря-
моугольнике R ≤ x(i) ≤ Lx − R, R ≤ y(i) ≤ Ly − R и притом так, чтобы
расстояние между любыми центрами было не меньше, чем 2R.
27
Вычисления в процедуре Balls производятся по точным формулам.
Программа, которая демонстрирует движение дисков на экране, приведена в
файле GAS.m.
26
Во избежание недоразумений отметим, что в процедуре Balls не предусмотрена возмож-
ность одновременного столкновения более чем двух шаров, поскольку такое столкновение
представляется совершенно невероятным. Если даже будут заданы условия, заведомо при-
водящие к тройному соударению, то в процедуре Balls такое соударение будет трактоваться
как последовательность парных.
27
В противном случае, т.е. при выборе нефизических начальных условий, возможны
неправильные результаты или сбой счета.
57