Задаємо значення мінімальної енергії, при якій вважаємо, що електрон В«зупинився : = 1.3;
Створюємо стек для зберігання параметрів частинок і задаємо параметри влітає електрона: stack = {{0,0,0, E1}};
Створюємо масив для зберігання параметрів провзоімодействовавшіх електронів і робимо його порожнім: = {{}}; = Delete [result, 1];
Створюємо масиви для зберігання координат стрілок і тексту значень енергії на малюнку.
Перший масив робимо порожнім, а в другій записуємо координати і значення енергії влітає електрона:
ww2 = Table [Arrow [{{0,0}, {1,1}}], {1}]; = Delete [ww2, 1]; = Table [Text [E1, { 0, dy}], {1}];
Початок циклу для обробки всіх частинок (йде поки стек не порожній):
[Length [stack]> 0,
Записуємо в масив результатів перший елемент стека:
= Append [result, stack [[1]]];
Копіюємо поточні значення координат, кута відхилення і енергії в проміжні змінні:
x1 = stack [[1,1]]; y1 = stack [[1,2]]; = stack [[1,3]]; Etemp = stack [[1,4]] ;
Видаляємо перший елемент стека:
= Delete [stack, 1];
Розігруємо довжину вільного пробігу:
= t [Etemp];
Додаємо в масив зберігання стрілок стрілку від поточного положення в наступне (для відображення на малюнку):
ww2 = Append [ww2, Arrow [{{x1, y1}, {x1 + tt * Cos [tet1], y1 + tt * Sin [tet1]}}]];
перечитують координати (В«переносимоВ» частинку на t):
x1 = x1 + tt * Cos [tet1]; = y1 + tt * Sin [tet1];
Обчислюємо енергії вторинних часток (з більшою і меншою енергією):
Esmall = (Etemp-m) * Eps [Etemp] + m;
Ebig = Etemp + m-Esmall;
Якщо значення енергії частинки з меншою енергією більше мінімальної, записуємо її параметри в кінець стека:
[Esmall> Emin,
Розраховуємо кут відхилення частинки з меншою енергією:
tetSmall = ArcCos [cos3 [Etemp, Esmall]] (2 * RandomReal [1] - 1);
Додаємо в масив зберігання координат і значень енергії для відображення тексту на малюнку:
ww3 = Append [ww3, Text [Esmall, {x1, y1-dy}]]; = Append [stack, {x1, y1, tet1-tetSmall, Esmall}]];
Якщо значення енергії частинки з більшою енергією більше мінімальної, записуємо її параметри в початок стека:
[Ebig> Emin,
Розраховуємо кут відхилення част...