Определение траектории движения частицы в одновременно электрическом и магнитном полях
Прежде чем искать непосредственно зависимость координат от времени, опишем начальные условия. В силу выбора системы координат, начальные значения координат частицы являются нулевыми.
Чтобы записать соответствующие уравнения, воспользуемся процедурой генерирования последовательностей seq().
Первым параметром процедуры seq() указано уравнение r(0)[i]=0. В его левой части содержится индексная переменная i, которая последовательно изменяется от 1 до 3 и определяет номер компонента функции-вектора г(). В качестве аргумента этой функции указан 0, поэтому в левой части уравнения соответствующие компоненты берутся в начальный момент. Результат (последовательность из трех уравнений) присваивается в качестве значения переменной IniCon_R.
После этого формируем последовательность из уравнений, определяющих начальные значения проекций скорости частицы, т.е. производных первого порядка от вектора координат.
Последовательность формируется все той же процедурой seq(). Для индексной переменной s указан список принимаемых значений (это – х, у и z).
Оператор D(s)(0) задает, в зависимости от принимаемого переменной s значения, первую производную от соответствующей координаты в начальный момент времени. Правая часть формируемого уравнения имеет вид v| |s. Так с помощью оператора объединения названий (| |) символу V приписывается нужный суффикс.
С помощью следующей команды в переменной IniCon объединяются начальные условия для координат и скоростей.
Уравнение присваивается в качестве значения переменной VecEq. Левая часть уравнения представляет собой произведение массы на вторую производную от радиус-вектора (вектора координат), т.е. ускорения.
В правой части уравнения записан вектор действующей на частицу силы. Этот вектор равен сумме (умноженной на заряд) двух векторов: вектора электрического поля и вектора, являющегося векторным произведением скорости частицы на магнитную индукцию. Это векторное произведение записано с помощью описанной в самом начале процедуры vprod().
Далее записанное уравнение следует решить. Для этого формируем последовательность из трех элементов-уравнений. Каждое такое уравнение описывает динамику частицы вдоль соответствующей координатной оси. Чтобы составить эти уравнения, выбираем из правой и левой частей исходного векторного уравнения элементы списков с одинаковыми индексами и приравниваем их.
Доступ к левой части векторного уравнения осуществляется с помощью команды lhs(VecEq), а к правой – rhs(VecEq). На операнды эти части разбиваются посредством процедуры ор(). Первым операндом как в правой, так и левой части уравнения являются скалярные множители: для левой части – масса т, для правой – заряд е. На эти скаляры будут также множиться и новые уравнения. Вторые операнды правой и левой частей векторного уравнения – списки. Доступ к элементам списков реализуется путем указания индекса этих элементов, например op(lhs(VecEq))[2][3] – третий элемент второго операнда левой части уравнения VecEq.