Одна из задач, которые я сейчас выполняю - это визуализация рассеяния Резерфорда. Решил вот написать о этом.
В общем о задаче
Если выстрелить альфа-частицой в некотором небольшом расстоянии от ядра атома, то из-за одинаково-положительного заряда обоих альфа-частица изменит траекторию.
Немного подробнееИзначально у нас есть несколько параметров:
- b - "прицельное расстояние" - расстояние от траектории частицы в бесконечности до параллельной ей прямой, проходящей через ядро.
- m,v - масса и скорость частицы(в бесконечности). Эти 2 параметра было решено заменить на 1 - энергию.
- Z - заряд ядра(я думаю не нужно пояснять что это не его заряд, а количество протонов).

Всё происходящее пожно поделить на 3 части:
- Частица летит в бесконечности.
- На частицу начинает действовать сила отталкивания, она начинает лететь по гиперболической траектории.
- Сила отталкивания перестаёт действовать и она летит по своей ассимптоте.
Для пункта 1 всё ясно, тут движение можно задать прямой y = b.
Проблемы начинаются во втором пункте, когда начинаются откланения. В материалах, по которым изучается весь этот процесс, можно найти только формулу для силы, которая действует на альфа-частицу. Конечно можно выразить ускорение через второй закон Ньютона, но, как сказал наш научный руководитель - это затратно по вычислениям и вообще так никто не делает.
В третьем пункте всё более-менее ясно, формула для угла Θ дана, если всё правильновысчитать то можно легко выразить всё что нужно. Подсчёт Θ имеет некоторые проблемы, которые я опишу далее.
ЗадачаНа данном этапе нужно визуализировать движение частицы.
ПроблемыИтак, по пунктам:
- Не ясен алгоритм, сейчас в коде идёт перебор всех углов от пи, до теты, что мне кажется неверным. Для каждого угла находятся координаты точек.
- При вычислении теты и прочего неясна ситуация со степенями. Примером служит тета, при расчёте которой фигурируют числа порядка 10^32, что не очень приемлемо.
Выше приведены основные проблемы, из них вытекают последствия неправильной визуализации.
Мысли о решении проблемПока я дошёл до того, что нужно разбивать всё это дело на 3 функции и рисовать, а не перебирать углы.
Также нужно решить что-то с коэфициентами чтобы получались адекватные результаты.
ЗаключениеПогуглив, было найдено несколько готовых визуализаций, одну из которых можете увидеть
тут.
Продолжаем биться.