Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по курсу.docx
Скачиваний:
107
Добавлен:
24.02.2016
Размер:
2.8 Mб
Скачать

24.1. Задачи для обыкновенных дифференциальных уравне­ний

Обыкновенными дифференциальными уравнениями можно описать по­ведение системы взаимодействующих частиц во внешних полях, процессы в электрических цепях, закономерности химической кинетики и многие другие явления. Поэтому решение обыкновенных дифференциальных уравнений за­нимает одно из важнейших мест среди прикладных задач физики, электрони­ки, химии и техники. Конкретная прикладная задача может приводить к диф­ференциальному уравнению любого порядка или к системе таких уравнений. Известно, что произвольную систему дифференциальных уравнений любого порядка можно привести к некоторой эквивалентной системе уравнений пер­вого порядка. Среди таких систем выделим класс систем, разрешенных отно­сительно производной неизвестных функций did! (x) r , ч

1 = fl(x, Um)

dx

(24.1)

dUm(x)

fm(x, U1, ... , Um)

dx

Обычно требуется найти решение системы u(x) = {u1(x), um(x)} для

значений x из заданного интервала a < x < b .

Известно, что система (24.1) имеет бесконечное множество решений, семейство которых в общем случае зависит от m произвольных параметров с = {с1, cm} и может быть записано в виде u = u(x, c). Для определения

значений этих параметров, т.е. для выделения одного нужного решения, надо наложить дополнительно m условий на функции u = {u1, um}. В зависимо­сти от способа постановки дополнительных условий можно выделить два ос­новных типа задач, наиболее часто встречающихся на практике.

краевая (граничная) задача, когда часть условий задается на границе a (при x=a), остальные условия - на границе b (при x=b). Обычно это значения искомых функций на границах;

задача Коши (задача с начальными условиями), когда все условия за­даны в начале отрезка в виде

u1(a) = u0; um(a) = (24.2)

При изложении методов решения задачи Коши воспользуемся компакт­ной записью задачи (24.1), (24.2) в векторной форме.

= f (x, u); u (a) = u0. (24.3)

dx

Требуется найти u (x) для a <x <b.

24.2. Основные положения метода сеток для решения задачи Коши

Чаще всего задача (24.3) решается методом сеток.

Суть метода сеток состоит в следующем:

1) в области интегрирования выбирается упорядоченная система точек a = x0 < x1 < x2 <... < xn < xn+1 = b, называемая сеткой. Точки xt называют уз- лами, а hk = xk - xk-1 - шагом сетки. Если hk = h = (b - a)/n, сетка называется равномерной. Для неравномерной сетки обозначим h = maxhk;

k

2) для упрощения, в дальнейшем будим считать сетку равномерной. Решение u (x) ищется в виде таблицы значений в узлах выбранной сетки

uk = u (xk)(x), для чего дифференциальное уравнение заменяется системой ал­гебраических уравнений, связывающих между собой значения искомой функции в соседних узлах. Такая система называется конечно-разностной схемой.

Имеется несколько распространенных способов получения конечно-разностных схем. Приведем здесь один из самых универсальных - интегро-интерполяционный метод.

Согласно этому способу для получения конечно-разностной схемы проинтегрируем уравнение (24.3) на каждом интервале [xk, xk+l] для k=1,...,n

и разделим на длину этого интервала:

ч+

J

du 1 й —dx = — dx

k+1

h

й

1 xk+1

= h J f (x, й(x)) dx

(24.4)

Интеграл в правой части (24.4) аппроксимируем одной из квадратур­ных формул, после чего получаем систему уравнений относительно прибли­женных неизвестных значений искомой функции, которые в отличие от точ­ных обозначим y « й .

У ^ = -ZFJ, FJ = f(xj,У]), xk < xj < xk+1. (24.5)

h

Здесь xj - точки внутри интервала, используемые для получения квадра­турной формулы.

Структура конечно-разностной схемы для задачи Коши (24.5) такова,

k+1 k

что она устанавливает закон рекуррентной последовательности y =<р[ y I

для искомого решения y°, y1, y2, yn. Поэтому, используя начальное усло­вие задачи (24.2) и задавая y0 = й°, затем по рекуррентным формулам после­довательно находят все yk,k=1,...,n.

При замене интеграла приближенной квадратурной формулой вносится погрешность аппроксимации дифференциального уравнения разностным, ко­торая получается как невязка, если в конечно-разностном уравнении (24.5)

подставить вместо y значение точного решения й :

¥ =

h

Воспользовавшись соотношением (24.4) получаем простое выражение для вычисления у/(hi):

¥(h) = \ h

k+1

J f(x, й(x))dx_ZajFJ

(24.6)

которая зависит от шага сетки.

Говорят, что разностная схема (24.5) аппроксимирует исходную диф­ференциальную задачу с порядком p, если при h — 0, ц/(Ъ,) < Chp, C _ const. Из (24.6) следует, что порядок аппроксимации на единицу меньше, чем поря­док погрешности используемой квадратурной формулы на интервале [xk,

Xk+lJ-

Чем больший порядок аппроксимации p , тем выше точность решения: s(h) = 11y - й\ = max yk - и k . (24.7)

k

Основная теорема теории метода сеток утверждает, что если схема устойчива, то при h 0 погрешность решения s(h) стремится к нулю с тем

же порядком, что и погрешность аппроксимации:

£•(h) < C0i//(h) < C0 ■ C ■ hp; здесь С0 - константа устойчивости.

Неустойчивость обычно проявляется в том, что с уменьшением h реше-

k

ние y — со при возрастании k, что легко устанавливается экспериментально с помощью просчета на последовательности сеток с уменьшающимся шагом h, h/2, h/4... Если при этом yk — со, то метод неустойчив. Таким образом, ес­ли имеется аппроксимация и схема устойчива, то, выбрав достаточно малый шаг h, можно получить решение с заданной точностью при этом затраты на вычисления резко уменьшаются с увеличением порядка аппроксимации p, т.е. при большем p можно достичь той же точности, используя более крупный шаг h. Большое разнообразие методов обусловлено возможностью по-разному выбирать узлы и квадратурные формулы для аппроксимации инте­грала в (24.4) при получении схемы (24.5).

24-2-1- Явная схема 1-го порядка (Эйлера) Заменим интеграл в (24.4) по формуле левых прямоугольников

1 [ f (x, й(x)^x « Fhh = Fk . h J v v J h

Получим

f k +1 - f k f

, = f(xk,yk), k = 0,1,2,..., n. (24.8)

h

Задавая y0= й0, с помощью (24.8) легко получить все последующие

значения yk, k=1, 2, ... , n1, так как формула явно разрешается относительно

yk+1. Погрешность аппроксимации \\f(h) и соответственно точность O(h) име­ют первый порядок в силу того, что формула левых прямоугольников на ин­тервале [xx, xk+1 ] имеет погрешность второго порядка, а схема устойчива.

24.2.2. Неявная схема 1-го порядка Используя в (7.5) формулу правых прямоугольников, получим

y^- = f (xk+i, yk(24.9) h

Эта схема неразрешима явно относительно yk+1, поэтому для получения

yk+1 требуется использовать итерационную процедуру решения уравнения (24.9):

yk+1,s = yk + h ■ f(xk+1, yk+1,s-1); s = 1, 2, номер итерации.

За начальное приближение берется значение yk+1,0 = yk c предыдущего шага. Обычно, если h выбрано удачно, достаточно сделать 2-3 итерации для достижения заданной погрешности yk+1,s _ yk +1, s_1 < s. Эффективность неяв­ной схемы заключается в том, что у нее константа устойчивости С0 значи­тельно меньше, чем у явной схемы.

24.2.3. Неявная схема 2-го порядка Используя в (24.5) фор мулу трапеций, получим

yk+1 _ yk = f (x, yk)+f (xk+1, yk+1)

h 2 '

Так как формула трапеций имеет третий порядок точности, то погреш­ность аппроксимации \y(h) - второй. Схема (24.10) не разрешена относительно yk+1 , поэтому требуется итерационная процедура:

yk+1,s=yk+fcfo, yk)+К^.yk+1,s_1), s=1,2,... yk+1,0 = yk.

24.2.4. Схема предиктор-корректор (Рунге-Кутта) 2-го порядка Используя в (7.5) формулу средних, получим

'^—^ = f (xk+1/2, yk+1'2). (24.11)

h

Уравнение разрешено явно относительно yk+1, однако в правой части

присутствует неизвестное значение yk+1'2 в середине отрезка [xk, xkДля решения этого уравнения существует следующий способ. Вначале по явной схеме (24.8) рассчитывают yk+1'2 (предиктор):

yk+1/2 = f + h f (xk, yk).

После этого рассчитывают yk+1 по (24.11) (корректор). В результате

схема оказывается явной и имеет второй порядок. Заметим, что схема получа­ется из схемы (24.10), если в ней выполнять только две итерации (s=1, 2).

24.2.5. Схема Рунге-Кутта 4-го порядка Используя в (24.5) формулу Симпсона, получим

yk+1 - yk1

y h y = - [f (xk, yk) + 4f (xk+i/2, yk+1/2) + f (xk+i, yk(24.12) h 6

Ввиду того, что формула Симпсона имеет пятый порядок, погрешность аппроксимации (схема (24.12)) имеет четвертый порядок.

Можно по-разному реализовать расчет неявного по yk+1 уравнения

(24.12), однако наибольшее распространение получил следующий способ. Делают предиктор вида

yk+1/2,1 = yk + f( f (xk, yk),

yk+1/2,2 = f + \.f(xk+1/2, yk+1/2,1),

yk= yk + hf (xk+1/2, yk+1/2,2), затем корректор по формуле

yk+1 = yk + h[f(xk, yk) + 2f(xk+1/2, yk+1/2,1) + 6

+2f(xk+1/2, yk+1/2,2) + f(xk+1,yk