НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СПЕЦИАЛИЗИРОВАННЫЙ УЧЕБНО-НАУЧНЫЙ ЦЕНТР Кафедра физики
Кандауров И. В., Мезен...
25 downloads
200 Views
546KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СПЕЦИАЛИЗИРОВАННЫЙ УЧЕБНО-НАУЧНЫЙ ЦЕНТР Кафедра физики
Кандауров И. В., Мезенцев Н. А., Мешков О. И., Пиндюрин В. Ф.
МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ ЯВЛЕНИЙ НА ЭВМ Методическое пособие Часть IV Численное интегрирование обыкновенных дифференциальных уравнений
Новосибирск 2000
Пособие является составной частью серии учебно-методических материалов по курсу «Моделирование физических явлений на ЭВМ», преподаваемого учащимся Специализированного учебно-научного центра Новосибирского государственного университета (СУНЦ НГУ). В настоящем пособии рассматриваются численные методы интегрирования обыкновенных дифференциальных уравнений на примерах задач динамики материальной точки, переходных и стационарных процессов в электрических цепях. Предлагается набор задач для самостоятельного решения.
Рецензенты: доцент кафедры физики CУНЦ НГУ Харитонов В.Г. профессор кафедры теор. физики НГУ, к.ф.- м.н. Коткин Г.Л.
Новосибирский государственный университет, 2000 г. Подготовлено при поддержке ФЦП «Интеграция», проект «Современные компьютерные технологии в ранней профессиональной ориентации и подготовке физиков-исследователей» (рег. № 274)
1
СОДЕРЖАНИЕ Введение
3
Решение задач динамики материальной точки
4
Двумерное движение в декартовой системе координат
5
Двумерное движение в полярной системе координат
6
Численное решение дифференциальных уравнений динамики
9
Простой метод Эйлера
9
Погрешности численного решения
12
Модифицированный метод Эйлера
13
Методы второго порядка точности
14
Примеры задач на моделирование движения
17
Пример моделирования одномерного движения
17
Пример моделирования двумерного движения
20
Моделирование переходных процессов в электрических цепях
24
О физической правдоподобности численного моделирования
28
Задачи на решение дифференциальных уравнений
31
Движение тел в атмосфере. Баллистика
31
Колебательные процессы
37
Движение в центральном поле
44
Движение заряженной частицы в электрическом и магнитном полях
50
Процессы в электрических цепях
53 61
Рекомендуемая литература
2
ВВЕДЕНИЕ Обыкновенные дифференциальные уравнения используются для математического описания самого широкого круга явлений. К таким явлениям относятся: движение небесных тел и искусственных космических объектов, движение заряженных частиц в электрических и магнитных полях, переходные процессы в электрических цепях, кинетика химических реакций, динамика биологических популяций, модели развития экономики и так далее. Лишь для сравнительно немногих дифференциальных уравнений решения могут быть найдены аналитически (т. е. могут быть выражены через известные функции). В тех же случаях, когда аналитическое решение не может быть найдено, на помощь приходят приближенные численные методы. Существует достаточно большое количество методов численного решения обыкновенных дифференциальных уравнений, разной степени сложности и с разной степенью точности. В предлагаемом вашему вниманию учебном пособии рассматриваются лишь простейшие из них, на примерах задач динамики материальной точки, задач о переходных процессах и установившихся токах в электрических цепях. Несмотря на свою простоту, рассматриваемые численные методы применимы к весьма широкому кругу задач и позволяют достаточно эффективно получать полезную информацию о свойствах физической системы в тех случаях, когда аналитическое решение задачи затруднено либо невозможно вовсе.
3
РЕШЕНИЕ ЗАДАЧ ДИНАМИКИ МАТЕРИАЛЬНОЙ ТОЧКИ В классической динамике движение тела (материальной точки) массой
m под действием силы F описывается уравнением Ньютона:
m !r! = F (r, r!,t ) , где
r − радиус-вектор, проведенный к материальной точке из начала систе-
мы координат;
r! и !r! есть, соответственно, первая и вторая производные
радиус-вектора по времени (скорость и ускорение материальной точки), а
F (r, r! , t ) – вектор результирующей силы, которая в общем случае является функцией координат, скорости и времени. Данное векторное уравнение может быть переписано в виде системы скалярных уравнений для конкретной системы координат, например, декартовой или полярной. Обычно система координат выбирается, исходя из свойств задачи, таким образом, чтобы количество переменных в уравнениях Ньютона было минимальным. Например, задача о плоском движении математического маятника с постоянной длиной нити подвеса в декартовой системе описывается с помощью двух координат
x и y, а в полярной системе
координат, начало которой совпадает с точкой подвеса, − только одной координатой
ϕ – углом отклонения маятника от вертикали.
Для исследования одномерного движения, при котором координата
x
в процессе движения изменяется в ограниченных пределах, удобно пользоваться понятием фазовой плоскости. По горизонтальной оси фазовой плоскости откладывается координата, а по вертикальной – скорость тела в текущий момент времени t. Состояние тела в каждый момент времени бражается на фазовой плоскости точкой, с текущими координатой
4
t изо-
x и ско-
ростью
v. Использование фазовой плоскости полезно при исследовании пе-
риодического движения и других финитных (ограниченных) движений.
Двумерное движение в декартовой системе координат В плоской декартовой системе координат векторное уравнение Ньютона записывается в виде системы из двух скалярных уравнений:
m !x! = Fx m !y! = F y
.
Здесь Fx , Fy − проекции результирующей силы F, которые в общем случае являются функциями переменных переменных
x, y, vx , vy , t . Относительно
x и y уравнения представляют собой систему двух диффе-
ренциальных уравнений второго порядка. Простым приемом введения еще двух независимых переменных – скоростей натами
vx и vy, связанных с коорди-
x, y уравнениями v x = x! и v y = y! , можно свести систему
двух уравнений второго порядка к системе четырех уравнений первого порядка:
1 ! v Fx = x m v! y = 1 F y m x! = v x y! = v . y Обратите внимание, что в этой системе слева стоят первые производные переменных, а в правой части − функции от этих переменных. 5
Двумерное движение в полярной системе координат Связь координат в полярной и декартовой системах можно записать в следующем виде:
x = r cos ϕ y = r sin ϕ , где
r, ϕ − длина радиус-вектора и угол между ним и горизонтальной осью
(Рис.1). Переменные
r и ϕ могут зависеть от времени.
Для вывода в полярных координатах уравнений движения, подобных уравнениям Ньютона в декартовых координатах, дважды продифференцируем по времени соотношения Y
Fy m
r
0
между полярными и декарто-
Fr
F
выми
Fx
получим:
первого
Fϕ
ϕ
координатами.
После
дифференцирования
x! = r! cos ϕ − r ϕ! sin ϕ y! = r! sin ϕ + r ϕ! cos ϕ .
X
После второго дифференцироРис. 1
вания, соответственно:
!x! = !r!cos ϕ − 2 r!ϕ! sin ϕ − r ϕ !! sin ϕ − rϕ! 2 cos ϕ !! cos ϕ − rϕ! 2 sin ϕ . !y! = !r!sin ϕ + 2 r!ϕ! cos ϕ + r ϕ Проекции
Fx и Fy силы F в декартовой системе координат связаны с
проекциями
Fr и Fϕ этой же силы в полярной системе координат сле-
дующими соотношениями:
6
Fx = Fr cosϕ − Fϕ sinϕ F y = Fr sinϕ + Fϕ cosϕ , или
Fr = Fx cosϕ + F y sinϕ F ϕ = F y cosϕ − Fx sinϕ . Знак проекции вектор
Fr положительный, если проекция силы на радиус-
r совпадает с направлением радиус-вектора. Знак проекции Fϕ по-
ложительный, если проекция силы на перпендикуляр к радиус-вектору направлена по вращению от оси X к оси Y (против часовой стрелки на Рис. 1). Уравнения Ньютона после соответствующих подстановок имеют вид:
!! sin ϕ − r ϕ! 2 cos ϕ) = Fr cos ϕ − Fϕ sin ϕ m ( !r! cos ϕ − 2 r! ϕ! sin ϕ − r ϕ !! cos ϕ − r ϕ! 2 sin ϕ) = Fr sin ϕ + Fϕ cos ϕ m( !r!sin ϕ + 2 r! ϕ! cos ϕ + r ϕ Почленно сложим первое и второе уравнения, предварительно умножив верхнее на
cos ϕ , а нижнее – на sin ϕ ; получим:
m!r! = Fr + mr ϕ! 2 . Теперь из второго уравнения вычтем первое, умножив предварительно на
sin ϕ верхнее уравнение и на cos ϕ – нижнее; получим: !! = Fϕ − 2m r! ϕ! . mrϕ Получившаяся система из двух уравнений
7
m !r! = Fr + m r ϕ! 2 !! = Fϕ − 2 m r! ϕ! m r ϕ представляет собой уравнения Ньютона, записанные в полярной системе координат. Вид этих уравнений значительно более сложный, чем уравнений в декартовой системе, и поэтому использование полярных координат для решения задачи должно быть оправдано. Так, для движения тела в центральном поле компонента силы
Fϕ = 0, и уравнения движения имеют вид:
m!r! = Fr + m r ϕ! 2 !! = −2 r! ϕ! , r ϕ Легко показать, что второе уравнение выражает закон сохранения момента импульса:
!! + 2 r!ϕ! = rϕ
( )
1d 2 !! + 2 r!ϕ! = 0 , то r ϕ! , но, поскольку rϕ r dt
r 2 ϕ! = r v ϕ = const , где
vϕ есть тангенциальная (перпендикулярная радиус-вектору) состав-
ляющая скорости движения. Для математического маятника с постоянной длиной подвеса (т. е.
!r! = 0, r! = 0, r = R0 = const ) уравнения движения также упрощаются в полярной системе координат:
!! = − ϕ
!! = Fϕ = − m g sinϕ , или: m rϕ
g sin ϕ , R0
где угол ϕ отсчитывается от положения равновесия (вертикали).
8
ЧИСЛЕННОЕ РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ДИНАМИКИ
Простой метод Эйлера Методы численного решения дифференциальных уравнений динамики рассмотрим на примере задачи об одномерном движении материальной точки под действием силы. Это движение описывается уравнением Ньютона:
1 F ( x,v,t ) , m
!x! = где сила
F (x, v, t) − некоторая известная функция, которая в общем случае
может зависеть от координаты, скорости и времени. Перепишем данное уравнение второго порядка в виде системы из двух дифференциальных уравнений первого порядка, введя в качестве новой переменной скорость v = x! :
1 ! v == m F ( x,v,t ) x! = v . Предположим также, что нам известны значения координаты и скорости в начальный момент времени
x ,v
t =0
t = 0:
= x0 , v0 ;
и требуется найти координату и скорость частицы в произвольный момент времени. Подобная постановка проблемы типична для задач динамики и называется задачей с начальными условиями.
9
Для того, чтобы эту задачу можно было решать численно с помощью компьютера, необходимо перейти от дифференциальных уравнений (т. е. уравнений, оперирующих бесконечно малыми приращениями координат, скоростей и времени) к уравнениям, в которые входят хотя и малые, но все же конечные разности величин. Исходя из определения производной
f ( t + ∆ t ) − f (t ) df = lim , dt ∆t →0 ∆t можно записать следующие конечно-разностные уравнения для двух близких моментов времени
t и t+∆ t:
1 v ( t + ∆ t ) − v (t ) = F ( x, v, t ) m ∆t x (t + ∆t ) − x (t ) = v ( x, t ) . ∆t При стремлении к нулю интервала ∆ t разностные уравнения переходят в дифференциальные, таким образом, при условии достаточной малости ∆ t , мы можем использовать эти разностные уравнения вместо дифференциальных для приближенного решения нашей задачи. Перейдем в разностных уравнениях от непрерывного изменения времени к пошаговому с шагами равной величины ∆ t (вообще говоря, шаги не обязаны быть равными, здесь мы выбираем их такими лишь с точки зрения простоты). Пронумеруем шаги в возрастающем порядке и введем следующие обозначения:
t i = i ⋅ ∆ t – время, соответствующее шагу с номером i;
xi, vi – координата и скорость на i-том шаге, а Fi ≡ F (v i , xi , t i ) – действующая на этом шаге сила. В результате нашу систему разностных
10
ующая на этом шаге сила. В результате нашу систему разностных уравнений можно переписать в следующем виде:
1 vi +1 − vi = Fi m ∆t x −x i i +1 = vi ∆t или, после очевидного преобразования,
Fi v i +1 = vi + ∆ t m x = x + v ∆t . i i i +1 Подставляя известные начальные значения
x0 и v0 в правые части
уравнений, слева получим координату и скорость в момент
i = 1; затем, еще
раз подставив в правые части уравнений уже новые, только что найденные значения
x1 и v1, найдем скорость и координату в момент времени i = 2,
и так далее. Повторяя цикл вычислений необходимое число раз, мы можем вычислить координату и скорость частицы в любой интересующий нас момент времени. Подобный последовательный вычислительный процесс носит название итерационного, и легко может быть воплощен в компьютерной программе, а рассмотренная выше разностная схема представляет собой простейший способ численного решения обыкновенных дифференциальных уравнений. Стоит заметить, что впервые данный метод был предложен великим математиком 18 столетия Леонардом Эйлером и, соответственно, в его честь носит название «метод Эйлера». Разумеется, в те далекие времена не было никаких компьютеров, и вычислительные итерации производились исключительно вручную, с помощью пера и бумаги!
11
Погрешности численного решения Легко увидеть, что если движение происходит с постоянным ускорением (F = const), то метод Эйлера дает точное решение дифференциального уравнения движения. Если же сила, действующая на тело, изменяется в процессе движения, погрешность вычисления координаты и скорости (возникающая вследствие замены «точного» дифференциального уравнения приближенным, разностным) будет составлять на каждом отдельном шаге величину, 2
пропорциональную ∆ t . Другими словами говорится, что метод Эйлера имеет второй порядок локальной погрешности. С практической же точки зрения больший интерес представляет глобальная погрешность метода, или расхождение численного решения с «точным» после некоторого достаточно большого числа шагов. Приняв во внимание тот факт, что полное число шагов на всем отрезке времени решения задачи есть величина, обратно пропорциональная ∆ t, а локальные ошибки вычисления, возникающие на каждом шаге, могут (в худшем случае) суммироваться, допустимо сделать вывод, что глобальная точность вычислений будет на порядок хуже, чем локальная – пропорциональна всего лишь первой степени ∆ t . Как уже говорилось выше, для того, чтобы численное решение сходилось к «точному» решению дифференциального уравнения, величина ∆ t должна быть выбрана достаточно малой, такой, чтобы приращения координаты и скорости на каждом шаге были много меньше самих соответствующих величин на этом шаге. Чем меньше ∆ t, тем точнее расчеты, однако выбор слишком малого шага ведет к росту количества шагов-итераций и, следовательно, требует больших затрат компьютерного времени. Кроме того, при совсем уж малых ∆ t начинают играть роль ошибки машинного округления чисел, связанные с тем, что компьютер сохраняет лишь ограниченное
12
число значащих цифр в мантиссе. Оптимальную величину шага по времени следует выбирать отдельно в каждом конкретном случае, исходя из вида дифференциальных уравнений и требуемой точности вычислений. На практике критерием выбора шага может служить его малость по сравнению с характерным временем, имеющимся в задаче, – например, периодом колебаний маятника или периодом обращения тела по орбите. Если в задаче присутствует несколько характерных времен, следует, очевидно, ориентироваться на наименьшее из них. Метод Эйлера привлекателен своей простотой и легкостью реализации в компьютерной программе, однако его существенным недостатком является неустойчивость – монотонное накопление ошибок по ходу итерационного процесса и, как следствие, нарастающее отклонение вычисляемой траектории движения от истинной. Неустойчивость метода Эйлера приводит к несохранении энергии в тех задачах, где эта величина должна оставаться постоянной – например, в задаче о свободных колебаниях маятника, или о движении частицы в не зависящем от времени центральном поле. Данное обстоятельство ведет к качественно неправильному, с точки зрения законов физики, поведению численного решения задачи при большом числе итераций. Например, амплитуда колебаний маятника, свободно качающегося в поле тяжести, не будет оставаться неизменной, а будет постепенно увеличиваться, как если бы на маятник действовала раскачивающая сила!
Модифицированный метод Эйлера В случае, когда движение имеет периодический, колебательный характер и сила зависит только от координаты F ≡ F(x), неустойчивости численного решения можно избежать с помощью небольшой модификации метода Эйлера:
13
Fi v i +1 = vi + ∆t m x = x + v ∆t . i i +1 i +1 Отличие этой схемы от обыкновенного методаь Эйлера заключается в том, что для вычисления «новой» координаты денная скорость
xi+1 используется вновь най-
vi+1, а не «старая» скорость vi. Данный видоизмененный
метод имеет прежний (второй) порядок локальной погрешности, однако глобальная ошибка вычисления энергии здесь уже не нарастает монотонно, а меняет знак каждую четверть периода колебаний (или обращения по орбите), оставаясь, таким образом, суммарно нулевой в среднем за период движения. Это обстоятельство позволяет проводить итерационный процесс достаточно долго, не боясь накопления ошибок и отклонения траектории движения от истинной.
Методы второго порядка точности. Во многих задачах, – например, когда сила, действующая на тело, изменяется в широком диапазоне, или когда эта сила явным образом зависит от скорости движения, расчет по методу Эйлера может оказаться неудобным из-за необходимости выбора слишком малого шага ∆ t для сохранения необходимой точности вычислений. В этом случае целесообразно применение более аккуратных численных методов. Попробуем построить разностную схему, имеющую второй порядок глобальной погрешности (напомним, что метод Эйлера является методом первого порядка). Для построения метода второго порядка примем во внимание тот факт, что ранее при вычислении «новой» координаты
xi+1 мы использовали зна-
чение скорости, взятое на краю текущего шага ∆ t – в начале шага в про-
14
стом методе Эйлера ( vi ), или в конце шага в модифицированном ( vi+1) . Представляется интуитивно понятным, что точность расчетов можно повысить, если для вычисления координаты использовать среднее арифметическое от значений скорости на краях шага:
x i +1 = x i +
1 (v i + v i +1 ) ∆t . 2
Здесь для вычисления скорости vi+1 воспользуемся формулой Эйлера:
v i +1 = v i + x i +1
1 Fi ∆t . Подставив это выражение в предыдущее, получим: m
1 ∆t 2 = x i + v i ∆t + Fi . m 2
Как видно, отличие от простого метода Эйлера заключается в третьем члене правой части уравнения. Аналогичным образом, для более аккуратного расчета скорости можно взять среднее значение ускорения на шаге:
v i +1 = v i +
1 ∆t ( Fi + Fi +1 ) . m 2
Если сила не зависит от скорости явным образом, т.е.
F ≡ F ( x, t ) , то
окончательно разностную схему для метода второго порядка глобальной точности относительно ∆ t можно записать в следующем виде:
1 ∆t 2 x x v t Fi = + ∆ + i +1 i i m 2 Fi +1 = F ( xi +1 , ti +1 ) v = v + 1 ( F + F ) ∆t i i i +1 i +1 m 2
15
В случае же, когда скорость явным образом входит в выражение для силы F ≡ F(x, v, t), дело обстоит несколько сложнее. Действительно, чтобы найти
vi+1, мы должны предварительно вычислить силу Fi+1 , но величина
Fi +1 ≡ F ( xi +1 , vi +1 , ti +1 ) сама зависит от vi+1 ! Чтобы разрешить эту ситуацию, можно предварительно «грубо» вычислить
vi+1 методом Эйлера и
применить найденную скорость для вычисления силы
Fi+1. Далее, в свою
очередь, используя это «предварительное» значение
Fi+1, найдем уже
«уточненное» значение ние
vi+1 и, затем, наконец, найдем окончательное значе-
Fi+1, которое и будем использовать в начале следующей итерации: x i +1 v* i +1 * Fi +1 v i +1 Fi +1
= x i + vi ∆t + = vi +
1 ∆t 2 Fi m 2
1 Fi ∆t m
= F ( x i +1 , v i*+1 , t i +1 ) = vi +
1 ∆t ( Fi + Fi*+1 ) m 2
= F ( x i +1 , v i +1 , t i +1 )
.
Подобный метод носит название «прогноз-коррекция» и позволяет сохранить второй порядок глобальной точности вычислений в задачах, где действующая сила зависит от скорости. Легко понять, что рассмотренные нами методы численного решения дифференциальных уравнений движения естественным образом обобщаются на случаи двухмерного и трехмерного движения. Для этого надо лишь записать те уравнения, что мы вывели для одномерного движения, отдельно для каждой из координат и проекций скорости. 16
ПРИМЕРЫ ЗАДАЧ НА МОДЕЛИРОВАНИЕ ДВИЖЕНИЯ
Пример моделирования одномерного движения В качестве примера рассмотрим решение задачи о математическом ма-
m свободно, без движения, висит в поле тяжести
ятнике. Масса
g = 9,8 м/с2 на нерастяжимом невесо0
X
мом подвесе длиной
ϕ
времени
T
R0
рость
R0 . В момент
t = 0 массе сообщают ско-
v0. Требуется нарисовать траек-
торию маятника на фазовой плоскости в
Y
координатах (ϕ,
Fϕ
ϕ! ), где ϕ – угол от-
клонения маятника от вертикали, а
mg
ϕ! –
угловая скорость.
Рис. 2
Для вывода уравнений движения используем уже известные нам уравнения Ньютона в полярной системе координат. Обратите внимание на изменение знака
Fϕ по сравнению с ранее
полученными формулами – это связано с выбранным направлением осей координат (см. Рис. 2):
m !r! = Fr + m r ϕ! 2 !! = − Fϕ − 2 m r! ϕ! m r ϕ
,
Так как подвес нерастяжим, то движения вдоль радиуса не происходит:
!r! = 0, r = R0 = const , и для решения задачи достаточно только второго уравнения. Легко найти, что
Fϕ = mg sin ϕ , таким образом, уравнение
движения можно записать в виде: 17
!! = − Ω 2 sin ϕ ; ϕ где
Ω = g R0 есть циклическая частота колебаний малой амплитуды.
Введем новую переменную
ω = ϕ! Ω и запишем систему уравнений в виде:
! = −Ω sinϕ ω ϕ! = Ω ω . Поскольку в задаче имеется характерное время, шаг численного интегрирования
∆t удобно задавать в единицах этого времени: ∆t = δ·Ω -1, где
δ