движение заряженных частиц в электромагнитном поле
Julia и движение заряженной частицы в электромагнитном поле
Закрепляем навыки решения и визуализации дифференциальных уравнений на примере одного из самых распространенных эволюционных уравнений, вспоминаем о старом-добром Scilab и пытаемся понять, а надо ли оно нам… Под катом картинки (килобайт на семьсот)
и приступим к постановке задачи
Движение заряженных частиц в электромагнитном поле
На заряженую частицу с зарядом движущуюся в ЭМП со скоростью действует сила Лоренца: . Данная формула справедлива при ряде упрощений. Пренебрегая поправками на теорию относительности, считаем массу частицы постоянной, так что уравнение движения имеет вид:
Направим ось Y вдоль электрического поля, ось Z — вдоль магнитного поля и предположим для простоты, что начальная скорость частицы лежит в плоскости XY. В этом случае вся траектория частицы также будет лежать в этой плоскости. Уравнения движения примут вид:
Обезразмерим: . Звёздочками обозначены размерные величины, а — характерный размер рассматриваемой физической системы. Получим безразмерную систему уравнений движения заряженной частицы в магнитном поле:
В качестве начальной конфигурации модели выберем: Тл, В/м, м/с. Для численного решения воспользуемся пакетом DifferentialEquations:
Здесь используется метод Эйлера, для которого задаётся количество шагов. Также сохраняется в матрицу ответов не всё решение системы, а только 1 и 2 индексы, то есть координаты икс и игрек (скорости нам не нужны).
Проверим результат. Введем вместо х новую переменную . Таким образом осуществляется переход в новую систему координат, движущуюся относительно исходной со скоростью u в направлении оси Х:
Если выбрать и обозначить , то система упростится:
Электрическое поле исчезло из последних равенств, и они представляют собой уравнения движения частицы, находящейся под действием однородного магнитного поля. Таким образом, частица в новой системе координат (х, у) должна двигаться по окружности. Так как эта новая система координат сама перемещается относительно исходной со скоростью , то результирующее движение частицы будет складываться из равномерного движения по оси X и вращения по окружности в плоскости XY. Как известно, траектория, возникающая при сложении таких двух движений, в общем случае представляет собой трохоиду. В частности, если начальная скорость равна нулю, реализуется простейший случай движения такого рода — по циклоиде.
Удостоверимся, что скорость дрейфа вышла действительно равной Е/В. Для этого:
Out: 8.333333333333332e-5
С точностью до седьмого порядка!
Для удобства определим функцию, принимающую параметры модели и подпись графика, которая будет также служить названием файла png, создаваемого в папке с проектом (работает в Juno/Atom и Jupyter). В отличии от Gadfly, где графики создавались в слоях, а потом выводились функцией plot(), в Plots, чтобы в одном фрейме наделать разных графиков, первый из них создается функцией plot(), а последующие добавляются использованием plot!(). Названия функций меняющих принимаемые объекты в Джулии принято оканчивать восклицательным знаком.
При нулевой начальной скорости, как и предполагалось, получаем циклоиду:
Получим траекторию частицы при занулении индукции, напряженности и при смене знака заряда. Напомню, что точка значит поочередное выполнение функции со всеми элементами массива
Немного о Scilab
На Хабре уже есть достаточно информации о Сайлабе, например 1, 2, а тут про Octave поэтому ограничимся ссылками на Википедию и на домашнюю страницу.
От себя добавлю, про наличие удобного создания интерфейса с флажками кнопками и выводом графиков и довольно интересного инструмента визуального моделирования Xcos. Последний можно использовать, например, для моделирования сигнала в электротехнике:
И здесь очень удобное руководство:
Собственно, нашу задачу вполне можно решить и в Scilab:
Здесь информация по функции для решения дифуров ode. В принципе напрашивается вопрос
А зачем нам Julia?
… если и так есть такие замечательные штуки как Scilab, Octave и Numpy, Scipy?
Про последние два не скажу — не пробовал. Да и вообще вопрос сложный, так что прикинем навскидку:
Scilab
На харде займет чуть больше 500 Мб, запускается быстро и сходу доступно и дифуросчитание, и графика и всё остальное. Хорош для начинающих: отличное руководство (по большей части локализованное), есть много книг на русском. Про внутренние ошибки уже было сказано тут и здесь, и так как продукт очень нишевый, сообщество вялое, и дополнительные модули весьма скудны.
Julia
По мере добавления пакетов (особенно всякой питонщины а-ля Jupyter и Mathplotlib) разрастается от 376 Мб до вполне-таки шести с лишним гигабайт. Оперативку она тоже не щадит: на старте 132 Мб и после того, как в Юпитере намалевать графиков, до 1 ГБ спокойно дойдёт. Если работать в Juno, то всё почти как в Scilab: можно выполнять код сразу в интерпретаторе, можно печатать во встроенном блокноте и сохранять как файл, есть обозреватель переменных, журнал команд и интерактивная справка. Лично у меня вызывает возмущение отсутствие clear(), т. е. запустил я код, потом начал там поправлять и переименовывать, а старые переменные-то остались (в Юпитере нет обозревателя переменных).
Но всё это не критично. Scilab подходит вполне на первых парах, сделать лабу, курсач или посчитать чего промежуточного — очень даже подручный инструмент. Хоть здесь тоже есть поддержка параллельного вычисления и вызов сишных/фортрановских функций, для чего серьезного его использовать не получается. Большие массивы повергают его в ужас, чтоб задать многомерные, приходится заниматься всяким мракобесием, а вычисления за рамками классических задач вполне могут обронить всё вместе с операционкой.
И вот после всех этих болей и разочарований можно смело переходить на Julia, чтоб огрести ещё и здесь. Будем учиться дальше, благо комьюнити очень отзывчивое, проблемы утрясаются быстро, да и у Джулии есть еще много интересных особенностей, которые превратят процесс обучения в увлекательное путешествие!
Julia и движение заряженной частицы в электромагнитном поле
Закрепляем навыки решения и визуализации дифференциальных уравнений на примере одного из самых распространенных эволюционных уравнений, вспоминаем о старом-добром Scilab и пытаемся понять, а надо ли оно нам… Под катом картинки (килобайт на семьсот)
и приступим к постановке задачи
Движение заряженных частиц в электромагнитном поле
На заряженую частицу с зарядом движущуюся в ЭМП со скоростью действует сила Лоренца: . Данная формула справедлива при ряде упрощений. Пренебрегая поправками на теорию относительности, считаем массу частицы постоянной, так что уравнение движения имеет вид:
Направим ось Y вдоль электрического поля, ось Z — вдоль магнитного поля и предположим для простоты, что начальная скорость частицы лежит в плоскости XY. В этом случае вся траектория частицы также будет лежать в этой плоскости. Уравнения движения примут вид:
Обезразмерим: . Звёздочками обозначены размерные величины, а — характерный размер рассматриваемой физической системы. Получим безразмерную систему уравнений движения заряженной частицы в магнитном поле:
В качестве начальной конфигурации модели выберем: Тл, В/м, м/с. Для численного решения воспользуемся пакетом DifferentialEquations:
Здесь используется метод Эйлера, для которого задаётся количество шагов. Также сохраняется в матрицу ответов не всё решение системы, а только 1 и 2 индексы, то есть координаты икс и игрек (скорости нам не нужны).
Проверим результат. Введем вместо х новую переменную . Таким образом осуществляется переход в новую систему координат, движущуюся относительно исходной со скоростью u в направлении оси Х:
Если выбрать и обозначить , то система упростится:
Электрическое поле исчезло из последних равенств, и они представляют собой уравнения движения частицы, находящейся под действием однородного магнитного поля. Таким образом, частица в новой системе координат (х, у) должна двигаться по окружности. Так как эта новая система координат сама перемещается относительно исходной со скоростью , то результирующее движение частицы будет складываться из равномерного движения по оси X и вращения по окружности в плоскости XY. Как известно, траектория, возникающая при сложении таких двух движений, в общем случае представляет собой трохоиду. В частности, если начальная скорость равна нулю, реализуется простейший случай движения такого рода — по циклоиде.
Удостоверимся, что скорость дрейфа вышла действительно равной Е/В. Для этого:
Out: 8.333333333333332e-5
С точностью до седьмого порядка!
Для удобства определим функцию, принимающую параметры модели и подпись графика, которая будет также служить названием файла png, создаваемого в папке с проектом (работает в Juno/Atom и Jupyter). В отличии от Gadfly, где графики создавались в слоях, а потом выводились функцией plot(), в Plots, чтобы в одном фрейме наделать разных графиков, первый из них создается функцией plot(), а последующие добавляются использованием plot!(). Названия функций меняющих принимаемые объекты в Джулии принято оканчивать восклицательным знаком.
При нулевой начальной скорости, как и предполагалось, получаем циклоиду:
Получим траекторию частицы при занулении индукции, напряженности и при смене знака заряда. Напомню, что точка значит поочередное выполнение функции со всеми элементами массива
Немного о Scilab
На Хабре уже есть достаточно информации о Сайлабе, например 1, 2, а тут про Octave поэтому ограничимся ссылками на Википедию и на домашнюю страницу.
От себя добавлю, про наличие удобного создания интерфейса с флажками кнопками и выводом графиков и довольно интересного инструмента визуального моделирования Xcos. Последний можно использовать, например, для моделирования сигнала в электротехнике:
И здесь очень удобное руководство:
Собственно, нашу задачу вполне можно решить и в Scilab:
Здесь информация по функции для решения дифуров ode. В принципе напрашивается вопрос
А зачем нам Julia?
… если и так есть такие замечательные штуки как Scilab, Octave и Numpy, Scipy?
Про последние два не скажу — не пробовал. Да и вообще вопрос сложный, так что прикинем навскидку:
Scilab
На харде займет чуть больше 500 Мб, запускается быстро и сходу доступно и дифуросчитание, и графика и всё остальное. Хорош для начинающих: отличное руководство (по большей части локализованное), есть много книг на русском. Про внутренние ошибки уже было сказано тут и здесь, и так как продукт очень нишевый, сообщество вялое, и дополнительные модули весьма скудны.
Julia
По мере добавления пакетов (особенно всякой питонщины а-ля Jupyter и Mathplotlib) разрастается от 376 Мб до вполне-таки шести с лишним гигабайт. Оперативку она тоже не щадит: на старте 132 Мб и после того, как в Юпитере намалевать графиков, до 1 ГБ спокойно дойдёт. Если работать в Juno, то всё почти как в Scilab: можно выполнять код сразу в интерпретаторе, можно печатать во встроенном блокноте и сохранять как файл, есть обозреватель переменных, журнал команд и интерактивная справка. Лично у меня вызывает возмущение отсутствие clear(), т. е. запустил я код, потом начал там поправлять и переименовывать, а старые переменные-то остались (в Юпитере нет обозревателя переменных).
Но всё это не критично. Scilab подходит вполне на первых парах, сделать лабу, курсач или посчитать чего промежуточного — очень даже подручный инструмент. Хоть здесь тоже есть поддержка параллельного вычисления и вызов сишных/фортрановских функций, для чего серьезного его использовать не получается. Большие массивы повергают его в ужас, чтоб задать многомерные, приходится заниматься всяким мракобесием, а вычисления за рамками классических задач вполне могут обронить всё вместе с операционкой.
И вот после всех этих болей и разочарований можно смело переходить на Julia, чтоб огрести ещё и здесь. Будем учиться дальше, благо комьюнити очень отзывчивое, проблемы утрясаются быстро, да и у Джулии есть еще много интересных особенностей, которые превратят процесс обучения в увлекательное путешествие!
Движение заряженных частиц в электрических и магнитных полях
Страницы работы
Содержание работы
Движение заряженных частиц в электрических и магнитных полях
Неквантовомеханическое описание движения заряженных частиц в заданных электромагнитных полях осуществляется на языке систем обыкновенных дифференциальных уравнений. Исчерпывающи математический алгоритм решения таких систем существует лишь в случае, когда входящие в них уравнения являются линейными и имеют постоянные коэффициенты. Этому соответствует нерелятивистское движение частиц в пространственно однородных электрических и постоянных во времени магнитных полях.
11.1. Уравнение движения
Следует иметь ввиду, что эффект радиационного трения имеет релятивистскую природу, что часто приводит к противоречиям при попытках его классического толкования. Например, возникает проблема выбора второго тела, взаимодействие с которым приводит к возникновению сил радиационного трения. Другим примером возникающих трудностей является получающийся при подстановке одной только силы радиационного трения в классическое уравнение движения явно абсурдный результат, соответствующий саморазгону заряженной частицы в пустом пространстве. Последний означает, что учет этой силы оправдан только в тех случаях, когда она проявляется на фоне других, более эффективных сил.
В приближении малых скоростей уравнение движения заряда в постоянном магнитном и пространственно однородном электрическом поле при наличии сил вязкого трения с точки зрения математики представляет собой систему обыкновенных линейных дифференциальных уравнений первого порядка относительно декартовых компонент вектора скорости. Поскольку подобные системы уравнений весьма часто встречаются в физике, представляется целесообразным на частных примерах движения частиц в электромагнитных полях познакомиться с общими методами их решения. При решении уравнения движения полезно иметь ввиду теорему существования и единственности решения обыкновенного дифференциального уравнения порядка N, для которого поставлено N начальных условий.
Релятивистское уравнение движения частицы в силовом поле (аналог второго закона Ньютона).
Силы, действующие на заряженную частицу, движущуюся в электромагнитном поле.
Физика. 10 класс
§ 30. Сила Лоренца. Движение заряженных частиц в магнитном поле
Поскольку электрический ток представляет собой упорядоченное движение заряженных частиц, то это означает, что магнитное поле, действуя на проводник с током, действует тем самым на каждую из этих частиц. Таким образом, силу Ампера можно рассматривать как результат сложения сил, действующих на отдельные движущиеся заряженные частицы. Как можно определить силу, действующую со стороны магнитного поля на заряженную частицу, движущуюся в этом поле?
Сила Лоренца. Силу, которой магнитное поле действует на заряженную частицу, движущуюся в этом поле, называют силой Лоренца в честь выдающегося нидерландского физика Хендрика Антона Лоренца ( 1853–1928 ).
Поскольку – модуль средней скорости упорядоченного движения заряженной частицы в стационарном * электрическом поле внутри проводника, то формулу для определения модуля силы Лоренца можно записать в виде:
где α — угол между направлениями индукции магнитного поля и скорости упорядоченного движения заряженной частицы.
Из формулы (30.1) следует, что сила Лоренца максимальна в случае, когда заряженная частица движется перпендикулярно направлению индукции магнитного поля (α = 90°). Когда частица движется вдоль линии индукции поля (α = 0° или α = 180°), сила Лоренца на неё не действует. Сила Лоренца зависит от выбора инерциальной системы отсчёта, так как в разных системах отсчёта скорость движения заряженной частицы может отличаться.
Направление силы Лоренца, действующей на заряженную частицу, как и направление силы Ампера, определяют по правилу левой руки (рис. 168): если левую руку расположить так, чтобы составляющая индукции магнитного поля, перпендикулярная скорости движения частицы, входила в ладонь, а четыре пальца были направлены по движению положительно заряженной частицы (против движения отрицательно заряженной частицы), то отогнутый на 90° в плоскости ладони большой палец укажет направление действующей на частицу силы Лоренца.
Сила Лоренца перпендикулярна как направлению скорости движения частицы, так и направлению индукции магнитного поля.
* Электрическое поле, создаваемое и поддерживаемое источником тока в течение длительного промежутка времени и обеспечивающее постоянный электрический ток в проводнике, называют стационарным электрическим полем. ↑