- •Глава 2
- •2.1. Введение
- •Относительные и абсолютные ошибки
- •2.3. Ошибки, содержащиеся в исходной информации
- •2.4. Ошибки ограничения
- •2.5. Ошибки округления
- •2.6. Распространение ошибок
- •2 .7. Графы вычислительных процессов
- •Пример 1
- •2.9. Памятка программисту
- •Упражнения
- •Численное решение уравнений
- •5.1. Введение
- •5.2. Метод последовательных приближений
- •5.3.Усовершенствованный метод последовательных приближений
- •5.4. Метод ньютона — рафсона
- •5.5. Случай почти равных корней
- •5.6. Сравнение методов и их ошибок округления
- •5.7. Корни многочленов
- •5.8. Влияние неточности коэффициентов многочлена
- •5.9. Системы уравнений
- •5.10. Комплексные корни
- •5.11. Нахождение исходного приближения
- •Упражнения
- •Глава 8
- •8.1. Введение
- •8.3. Ошибки округления
- •8.5. Влияние погрешностей коэффициентов. Достижимая точность решения
- •8.6. Итерационные методы решения систем линейных уравнений
- •8.7. Сравнение методов
- •8.8. Практический пример 10: проведение кривой методом наименьших квадратов
- •Лекция №1 Численное интегрирование
- •Лекция №2
- •Правило Симпсона.
- •Метод Гаусса
- •Методы прогноза и коррекции
- •Анализ ошибок при использовании метода прогноза и коррекции
Метод Гаусса
В предыдущих методах разбиение производилось на равные отрезки.
Зададимся теперь вопросом : нельзя ли уменьшить ошибку ограничения при
заданном количестве интервалов , если располагать концы интервалов там ,
где это требуется из условий достижения максимальной точности интегриро-
вания.
Сейчас покажем , что при соответствующем выборе местоположения
двух ординат можно получить точный результат для многочлена третьего по-
рядка.
Для упрощения выкладок изменим пределы интегрирования так , чтобы
они стали равными ( +1, 1 ) . Для этого введём новую переменную :
2x ( b + a )
= , так что x = 1 /2 ( b a ) + 1 /2 ( b+ a ) .
b - a
Интеграл ( 1 ) после такой подстановки запишется в виде :
+1
I = () d ( 23 )
-1
где () = 1 /2 ( b a ) [ 1 /2 ( b a ) + 1 /2 ( b a ) ] .
Это означает , что соответствующей заменой переменных можно свести инте-
гралы к виду ( 22 ) . ( Под “всеми” подразумеваются интегралы с конечными пре-
делами интегрирования и с непрерывной подинтегральной функцией ) .
Попытаемся определить , чего можно добиться , заменяя подинтегральную
функцию прямой линией. Т. е. попытаемся найти такую линейную функцию :
y = 0 + 1 , для которой :
+1 +1
(0 + 1 ) d = () d . ( 24 )
-1 -1
Это площадь трапеции ( см. рис. ). Пусть сумма площадей ( между -1 и 0
и от 1 до +1 ) равна площади ( между 0 и 1 ).
Тогда площадь трапеции в точности равна площади под кривой
y
= ()
.
y
y
=
()
-1 0 0 1 1
Задача заключается в нахождении такой прямой линии , для которой
достигается это равенство.
Положим :
Ic = 0(0) + 1(1) , ( 25 )
где необходимо определить 0 , 1 , 0 , 1 , т. к. в формуле имеются
4 параметра , то естественно предположить , что формула даст точный
результат при интегрировании кубической параболы:
() = 0 + 1 22 33 .
Перепишем эту функцию в виде:
() = 0 + 1 0) 1)0 1 1)
Если 0 и 1 должны удовлетворять ( 24 ) , то 0 и 1
определяются из условия:
+1
0) 1)0 1 1) d = 0 .
-1
Т. к. равенство должно быть справедливо для 0 и 1 , то
необходимо потребовать выполнения двух следующих равенств:
+1
0) 1) d = 0 .
-1
+1
0) 1) d = 0 .
-1
Выполнив интегрирование , можно записать два последних равенства
в виде:
2/3 + 2 0 1 = 0 ,
0 1 = 0 , откуда следует , что:
1 = 0 = 1/3 . ( 26 )
Теперь остаётся только найти 0 и 1 в ( 25 ) .
Заметим , что:
+1 +1
() d = (0 + 1)d = 20 ( 27 )
-1 -1
Из ( 25 ) и ( 26 ) следует , что:
I6 = 0 (0 + 10) + 1(0 + 11) =
= 0(0 + 1) = 1/3 (0 1) .
Т. к. значение выражения в правой части последней формулы должно
быть равно значению интеграла в формуле ( 27 ) при всех 0 и 1 , то
для 0 и 1 получаем систему уравнений
0 1 = 2
0 1 = 0 ,
из которой 0 1 = 1 . ( 28 )
Уравнение ( 25 ) окончательно запишется в виде :
I6 = ( 1/3 ) + ( 1/3 )
Это и есть формула численного интегрирования Гаусса для случая 2-х
ординат. Ошибка ограничения равна 0 при интегрировании многочленов
до третьего порядка включительно. Естественно ожидать, что при интег-
рировании многочленов высших степеней и прочих функций ошибка огра-
ничения будет определяться формулой
eT = k ( ) , 1 1 , где
+1
() d = I6 + eT = ( 1/3 ) + ( 1/3 ) + eT ( 29 )
-1
Чтобы найти k , предположим, что : () = 4 .
При этом () = 24, так что : eT =24k ( 30 )
Точное значение интеграла легко вычислить :
+1 +1
() d = 4d = 2/5 ;
-1 -1
С другой стороны из ( 29 ) и ( 30 )
+1
() d = ( 1/3 )4 + ( 1/3 )4 + 24 k ,
-1
поэтому k = 1/135 ,
и окончательная формула для ошибки ограничения запишется в
следующем виде:
eT = ( ) /135, 1 1 .
Можно вывести гауссовы формулы численного интегрирования более
высоких порядков , предусматривая большее количество ординат и вводя
различные весовые коэффициенты i :
+1 n
() d = i (i) . ( 31 )
-1 i=0
В общем случае, при ( n+1) ординате, получается точная формула для
нахождения интеграла от многочлена степени 2n+1.
Таблицы i и i , для n = 2, . . . , 6, . . . 48 приводятся в соответству-
ющих справочниках.
Т. о. метод Гаусса позволяет достичь большей точности, нежели форму-
ла Симпсона при том же количестве ординат, но зато точки, где следует
определять эти ординаты, полностью определены.
Численные примеры и сравнение методов .
Для иллюстрации возможностей 3-х методов численного интегрирования
и сравнения их точности рассмотрим следующий интеграл:
+2 x 2/2
I = e dx .
-2
Точное значение интеграла до пятой цифры равно 2,3925.
Для начала воспользуемся методом Трапеций при h = 1.0 :
IT = 1/2 ( e-2.0 + 2e-0.5 + 2e0.0 + 2e-0.5 + e-2.0 ) =
= 0.5 ( 0.13534 + 20.60653 + 21.0 +
+ 20.60653 + 0.13534 ) =
= 2.3484 ;
= 0.0441 .
Метод Симпсона при h = 1.0 даёт
IT = 1.0/3 ( e-2.0 + 4e-0.5 + 2e0.0 + 4e-0.5 + e-2.0 ) =
= 0.33333 ( 0.13534 + 40.60653 + 21.0 +
+ 40.60653 + 0.13534 ) =
= 2.3743 ;
= 0.01822 .
При использовании метода Гаусса с двумя ординатами приходится вы-
числять следующее выражение:
IG = 0 (0) + 1 (1) ,
2
где () = b-a/2 ( b-a/2 + b+a/2 ) = 2e -(2) / 2
Подставляя численные значения, получаем
2 2
IG = 22e [ -(2*0.57735) / 2 ] + e [ -(2*0.57735) / 2 ] =
= 2.0536 ;
= 0.3389 .
Повторяя эти же вычисления при h=0.5 и при h=0.25 , а также при
трёх, четырёх, пяти и шести точках в методе Гаусса, получаем резуль-
таты, приведенные в таблице:
П
равило
трапеций h IT
1.0 2.3484 0.0441
0.5 2.3813 0.0112
0.25 2.3898 0.0027
П равило Симпсона h Is
1.0 2.3743 0.0182
0.5 2.3923 0.0002
0.25 2.3926 0.0001
П равило Гаусса число точек IG
2
2.0536 0.3389
3
2.4471 -0.0546
4 2.3859 0.0066
5 2.3931 -0.0006
6 2.3925 0.0000
Из рассмотрения данного простого примера можно сделать следующие
выводы, имеющие довольно общий характер.
1. Формула Симпсона при n ординатах даёт примерно ту же степень точности,
что и формула трапеций при 2n ординатах.
2. Метод Гаусса при n ординатах даёт примерно ту же степень точности, что
и формула Симпсона при 2n ординатах.
3. Для достижения той же степени точности при использовании формулы
Симпсона приходится производить примерно вдвое меньше вычислений,
чем по формуле трапеций, которая требует вдвое большего количества
ординат.
4. Для достижения той же степени точности при использовании метода Га-
усса приходится производить примерно вдвое меньше вычислений, чем
по формуле Симпсона благодаря вдвое меньшему количеству ординат.
При “ручных” вычислениях метод Гаусса несколько неудобен тем,
что абсциссы заданы заранее и выражаются, как правило, такими
числами, с которыми очень неудобно работать. Например, гораздо
легче искать по таблицам e-0.5 , нежели e-0.166667 . Однако при исполь-
зовании ЦВМ , эти соображения не играют никакой роли.
Экономия времени при использовании метода Гаусса имеет свою
оборотную сторону: если приходится заново вычислять тот же интег-
рал с большим количеством точек, то нельзя использовать ранее вы-
численные ординаты, так как они находятся в неподходящих местах.
В случае формулы Симпсона ранее вычисленные ординаты можно
использовать снова.
Для интегрирования при экспериментальных данных метод Гаусса
можно использовать только тогда, когда абсциссы заранее правильно
расположены; это случается очень редко. Формулой Симпсона можно
пользоваться при условии, что интервалы разбиения одинаковы. Если
же интервалы разбиения случайны, то для интегрирования можно при-
менить лишь формулу трапеций. Формула Симпсона обеспечивает
достаточную точность при умеренном количестве ординат, проста и
и удобна, так как позволяет легко измельчать разбиение интервала и
заново вычислять интеграл.
ЛЕКЦИЯ № 8 и № 9
Численные методы решения ДУ
множество приёмов для нахождения решений ДУ через элемен-
тарные и специальные функции (например, функции Бесселя). Однако
очень часто в практических задачах такие методы и вообще неприем-
лемы и приводят к таким сложным решениям, что затраты труда пре-
восходят все допустимые пределы.
Например, внешне простое уравнение: y' = x2 + y2 не имеет
элементарного решения. В большом количестве практических задач
коэффициенты функции в ДУ могут содержать существенные нели-
нейности и даже задаваться в виде таблиц экспериментальных дан-
ных (последний случай сразу снимает вопрос о возможности решения
классическими методами). Т.о. мы вынуждены обращаться к числен-
ным методам решения, которые могут пригодиться, когда классичес-
кие методы не помогают.
Мы будем рассматривать методы решения одного обыкновен-
ного ДУ первого порядка с одним начальным условием:
y' = f (x, y) (1)
y (x0) = y0 (1)
Методы, которые здесь рассматриваются, легко обобщаются
для системы уравнений 1-го порядка. А уравнения высших порядков
можно свести к системе уравнений 1-го порядка.
Установим, что имеется в виду под решением уравнения (1) с
с н.у. (2) , и что имеется в виду под его численным решением. Урав-
нение (1) можно рассматривать, как определение кривой через её про-
изводную в координатной плоскости ХУ . В общем случае уравнению
(1) удовлетворяет целое семейство кривых; н.у. (2) позволяет выбрать
из этого семейства одну определённую кривую, проходящую через за-
данную точку.
Например,
уравнение y'
= y y
y=2ex
приводит к
семейству кривых
(рис.1), а н.у. уx=0 = 1 позволя- y=ex
ет
выбрать одну из них.
3 y=1/2ex
2
1
0 x
рис.
1
Решение найдено в виде функции y=f(x) . Чтобы найти численное
значение функции, необходимо просто подставить соответствующие
значения и вычислить у .
Грубо говоря, численное решение ДУ находится следующим обра-
зом. ДУ задаёт наклон кривой в точке как функцию от x и y . В
начальный момент мы знаем только одну точку, через которую прохо-
дит кривая: x0, y0 . Поэтому мы начинаем с этой точки, вычисляем на-
клон кривой при x=x0, y=y0 и продвигаемся на некоторое малое рас-
стояние вдоль получившейся касательной. Если шаг по x обозначить
через h , то мы приходим в точку x=x0 + h и получаем новое значе-
ние
y=y1
.
Продолжая
эту процедуру y
y=ex
дальше, мы
получаем последо-
вательность коротких отрезков
прямой, которые, как мы наде- По методу
емся, являются достаточно хо- Эйлера
рошим приближением к искомой
функции.
X
рис. 2
Этот метод называется методом Эйлера и обладает множеством недостатков.
Например, проблема устойчивости ( близость численного решения от анали-
тического ) .
Совершенно ясно, что нужно каким-то образом учесть кривизну искомого
решения, а не просто искать приближение в виде отрезков прямой, ка в методе
Эйлера.
В основном 2 широких класса методов.
1. Одноступенчатые методы, в которых используется только информация о
самой кривой в одной точке и не производятся итерации. Один из методов -
решение с помощью рядов Тейлора (он неудобен для практического исполь-
зования). Практически удобные методы этого класса - методы Рунге-Кутта.
Эти методы прямые (без итераций), но требуют многократных повторных
вычислений функции. При использовании данных методов трудно оценивать
допускаемую ошибку.
2. Многоступенчатые методы, в которых следующую точку кривой можно
найти, не производя так много повторных вычислений функции, но для дос-
тижения достаточной точности требуются итерации. Большинство методов
этого класса называются методами прогноза и коррекции. (Метод Адамса-
Бошфора). Некоторые трудности, связанные с использованием итерационной
процедуры и с получением нескольких начальных точек уравновешиваются
тем, фактом, что оценку ошибки при использовании этого метода легко полу-
чить в качестве побочного продукта вычислений.
Как и во многих других случаях, эти два класса методов придётся со-
четать разумным образом, учитывая их достоинства и недостатки.
Решение с помощью рядов Тейлора
Мы начинаем с метода, который теоретически пригоден для решения
ДУ, но с вычислительной точки зрения не представляет почти никакого
практического интереса. Его ценность заключается в том, что он даёт нам
некоторый эталон для сравнения различных практически удобных методов.
Напишем разложение функции y(x) в ряд Тейлора в окрестности точ-
ки x=xm. Другими словами, предположим, что процесс решения уже до-
веден до некоторой заданной точки, и нас интересует, что произойдёт при
переходе к следующей точке.
y(x) = ym + y'm (x-xm) + y''m /2 (x-xm)2 + y'''m /6 (x-xm)3 + . . . ( 3 )
где y(i)m - есть j-я производная y(x) в точке x=xm .
Предположим, что мы нашли приближённое решение уравнения для m+1
точек на оси Х , т. е. для x0, x1, . . . , xm (Решение в x0 даётся н. у.). По-
следовательные значения xi расположены на расстоянии h друг от друга,
т. е. xi = x0 + ih . Мы можем найти приближённое решение для точки xm+1 ,
подставив
xm+1 = xm + h в ( 3 )
уm+1 = уm + h y'm + h2/2 y''m + h3/6 y'''m + . . . ( 4 )
Чем больше членов ряда мы возьмём для вычисления, тем точнее
будет приближение. В случае необходимо вычислить различные про-
изводные функции y(x) . Из ( 1 ) имеем:
y'm = f (xm , ym) ( 5 )
Дифференцируя ( 1 ) по x , получаем:
y'' = /x f(x , y ) + f(x , y ) /y f(x , y ) ( 6 )
Так что y''m = fx*fy , ( 7 )
где x и y - частное обозначение производных: fx = f/x .
Предполагается, что все значения функции и её производные вычисляются
при x=xm и y=ym . При этом ( 4 ) имеет вид:
ym+1 = ym + h (f + h/2(fx + ffy ) ) + O (h3) ( 8 )
Где O (h3) означает, что в следующие члены ряда h входит в степени не
ниже третьей. Т. е. если для нахождения приближённого решения уравнения
( 1 ) будет использована ( 8 ) без O (h3) , то ошибка ограничения (погреш-
ность приближения) будет kh3 , где k - некоторая const .
Нахождение решения с помощью ряда Тейлора является одноступен-
чатым методом, т. к. для вычисления ym+1 требуется информация только
об одной предыдущей точке xm , ym .
С практической точки зрения трудность этого метода заключается в
том, что бывает очень трудно ( а порой и невозможно ) найти fx и fy .
Кроме того, если попытаться получить лучшее приближение, т. е. меньшую
погрешность, то необходимо вычислить:
y'''m = fxx + 2ffxy + f2fyy + fxfy + ff2y .
Последующие производные становятся ещё более сложными.
Т. о. с точки зрения практических вычислений этот метод обычно не-
удобен. Однако его можно использовать для сравнения с другими метода-
ми. Некоторые методы согласуются до членов порядка h, некоторые -
до h4 и т. д. Этот критерий можно применить несмотря на то, что практи-
ческие методы вообще не предусматривают вычисления производных от
f(x , y ) .
Методы Рунге - Кутта
Методы Рунге - Кутта обладают следующими отличительными
свойствами:
1) Эти методы одноступенчатые: чтобы найти ym+1 , нужна информа-
ция только о предыдущей точке x'm , y''m .
2) Они согласуются с рядом Тейлора вплоть до членов порядка hp ,
где p - различна для различных методов и называется порядком
метода.
3) Они не требуют вычисления производных от f(x , y ) , а требуют
только вычисления самой функции.
Именно благодаря 3) эти методы более удобны для практичес-
ких вычислений, чем ряд Тейлора. Однако, для вычисления одной после-
дующей точки решения нам придётся вычислить f(x , y ) несколько раз
при различных значениях x и y .
Сущность методов рассмотрим с одного из них - метода Эйлера.
Рассмотрим геометрическое построение. Предположим, нам известна
точка xm , ym на искомой кривой. Тогда мы можем провести прямую
линию с tg наклона : ym = f (xm , ym), которая пройдёт через xm , ym.
Тогда следующей точкой
решения можно
считать
L1
ту,
где L1
пересечёт ор-
y=ym+y'm(x-xm)
динату, проведенную че- e
рез
xm
= xm+1
= xm
+ h .
y=y(x)
Уравнение L1 выгля-
дит так:
y = ym + y'm (x-xm) ,
но y'm = f (xm , ym) , а ym+1
xm+1 = xm + h , так ym
что
ym+1
= ym
+ h
f (xm
, ym)
( 9 )
xm xm+1
Ошибка при x = xm+1 = e. Очевидно, что найденное т. о. решение со-
гласуется с разложением в ряд Тейлора вплоть до членов порядка h, так
что ошибка приближения равна:
eT = kh2 .
Формула ( 9 ) описывает метод Эйлера , один из самых старых
и широко известных методов.
Этот метод имеет довольно большую ошибку приближения ; кро-
ме того он очень часто оказывается неустойчивым - малая ошибка
( происходящая от приближения, округления или исходных данных )
увеличивается с ростом x.
Заметим, что метод Эйлера - частный случай метода Рунге -
Кутта 1-го порядка.
Для вычисления ym+1 , метод Эйлера использует наклон каса-
тельной только в точке xm , ym . Этот метод можно усовершенство-
вать множеством различных способов. Рассмотрим 2 : исправленный
метод Эйлера и модифицированный метод Эйлера .
(xm+h,
ym+hy'm)
L1
В исправленном
методе
Эйлера
мы находим средний
tg угла наклона касательной _ L
для
2-х точек xm
, ym
и xm+1,
L
y'm + hy'm . __
tg угла наклона L и L =
Ф (xm , ym , h) = 1/2[ f(xm ,ym ) (xm+1, ym+1)
+ f(xm+ h , ym + hy'm) ] ( 10 ) h
где
y'm
= f(xm
,ym
)
( 11 )
xm xm+1 x
Уравнение 2 = y = ym + (x-xm) Ф (xm , ym , h) ,
так что ym+1 = ym + h Ф (xm , ym , h) ( 12 )
Соотношения ( 10 ) ( 12 ) описывают исправленный метод Эйлера .
Чтобы выяснить, насколько хорошо этот метод согласуется с раз-
ложением в ряд Тейлора, вспомним, что разложение в ряд функции f(x,y)
можно записать следующим образом:
f(x,y) = f(xm ,ym ) + (x-xm) f/x + (y-ym) f/y + . . . ( 13 )
где частные производные вычисляются при x = xm и y = ym . Подстав-
ляя в ( 13 ) x = xm + h и y = ym + hy'm и используя ( 11 ) для y'm
получаем :
f(xm+ h , ym + hy'm) = f + hfx + hffy + O ( h2) ,
где снова f и её производные вычисляются в точке xm , ym. Подставляя
результат в ( 10 ) и производя необходимые преобразования, получаем:
Ф (xm , ym , h) = f + h/2(fx + ffy ) + O ( h2)
Наконец, подставив последнее соотношение в ( 12 ) приведём к формуле,
которую можно непосредственно сравнить с разложением в ряд Тейлора
ym+1 = ym + hf + h2/2 (fx + ffy) + O ( h3) .
Как видно, исправленный метод Эйлера согласуется с разложением в ряд
Тейлора вплоть до членов степени h2, являясь т. о., методом Рунге-Кутта
2-го порядка. При использовании этого метода функцию f(x,y) приходит-
ся вычислять дважды в xm , ym и в xm + h , ym + hy'm . В целях сравнения
заметим, что для достижения той же точности метод разложения в ряд
Тейлора потребовал бы вычисления 3-х различных функций f, fx, fy .
В исправленном методе Эйлера усреднились наклоны касательных. Можно найти по другому пути и усреднить точки в следующем смысле. Рассмотрим рис. 5.
L1
L*
P
L0
y=y(x)
(xm, ym) (xm+1, ym+1)
X
xm xm+h
h/2 рис. 5
h
Первоначально через (xm, ym) проведена касательная L1 с tg = f(xm, ym) до пересечения с ординатой x = xm + h/2. Точка P, а её ордината = y = ym + (h/2)ym’. Вычислим тангенс угла наклона касательной в этой точке
Ф(xm, ym, h) = f( xm+h/2, ym+(h/2)ym’ ), (14)
где ym’ = f(xm, ym) (15)
Это прямая L*. Далее через (xm, ym) проведём прямую параллельно L* и обозначим L0. Пересечение L0 с ординатой точки xm+h и даёт искомую точку (xm+1,ym+1).
Уравнение L0 можно записать в виде
y = ym + (x – xm) Ф(xm, ym, h), где Ф задаётся (14). Поэтому
ym+1 = ym + h Ф(xm, ym, h) (16)
Соотношения (14), (15), (16) описывают так называемый модифицированный метод Эйлера. Этот метод согласуется с (8) вплоть до членов степени h2 и является поэтому ещё одним методом Рунге-Кутта 2-го порядка.
Сравним два эти метода и выясним, можно ли их обобщить. Оба метода описываются формулами вида
ym+1 = ym + h Ф(xm, ym, h) (17)
в обоих случаях Ф имеет вид
Ф(xm, ym, h) = a1 f(xm, ym) + a2 f(xm+b1 h, ym+b2 h ym’), (18)
где ym’ = f(xm, ym) (19)
для исправленного метода Эйлера
a1=a2=1/2
b1=b2=1
в то время, как для модифицированного метода Эйлера
a1=0, a2=1
b1=b2=1/2
Формулы (17)–(19) описывают некоторый метод Рунге-Кутта. Посмотрим, какого порядка метод можно рассчитывать(?) получить в лучшем случае и каковы допустимые значения параметров a1, b1, a2, b2. Для соответствия ряду Тейлора до членов степени h достаточно 1-го параметра. Чтобы получить соответствие h2, потребуется ещё два параметра, т.к. необходимо учитывать члены h2fx и h2ffy. Так как у нас имеется всего четыре параметра, три из которых потребуются для согласования с рядом Тейлора вплоть до членов порядка h2, то самое лучшее, на что приходится рассчитывать – это метод 2-го порядка. С другой стороны, так как имеется четыре параметра, а условий, наложенных на эти параметры, всего три, то можно ожидать, что удастся построить множество методов второго порядка, варьируя один свободный параметр. Так это и есть на самом деле.
В разложении f(x, y) в ряд (13) в окрестности (xm, ym) положим
x = xm + b1 h
y = ym + b2 h f
Тогда f(xm + b1 h, ym + b2 h f) = f + b1 h fx + b2 h f fy + O(h2), где формула и производные в правой части равенства вычислены в точке (xm, ym). Тогда (17) можно переписать
ym+1 = ym + h[a1 f + a2 f + h(a2 b1 fx + a2 b2 f fy)] + O(h3)
Сравним эту формулу с разложением в ряд Тейлора (8). Если потребовать совпадения членов степени hf, то
a1+a2=1.
Сравнивая члены, содержащие h2 fx, получим
a2 b1 = 1/2,
Сравнивая члены, содержащие h2 f fx, получим
a2 b2 = 1/2.
Так как мы пришли к трём уравнениям для определения четырёх неизвестных, то одно из этих неизвестных можно задать произвольно, исключая, может быть, нуль, в зависимости от того, какой параметр взят в качестве произвольного.
Положим, например
a2 = 0.
Тогда a1 = 1 –
b1 = b2 = 1/2,
и соотношения (17)–(19) сведутся к
ym+1 = ym + h[(1–) f(xm, ym) + f(xm+h/2, ym + h/2) f (xm, ym)] + O(h3) (20)
– это наиболее общая форма записи метода Рунге-Кутта 2-го порядка. При =1/2 мы получаем исправленный метод Эйлера, при =1 получаем модифицированный метод Эйлера. Для всех 0 ошибка приближения равна
et = kh3 (21)
Можно оценить верхний предел |k|. Согласно Ральстону, наименьший верхний предел получается при = 2/3.
Методы Рунге-Кутта 3-го и 4-го можно вывести аналогично тому, как это делалось при выводе методов 1-го и 2-го порядков. Ограничимся тем, что приведём формулы, описывающие метод 4-го порядка, один из самых употребительных методов интегрирования дифференциального уравнения. Этот метод применяется настолько широко, что в литературе его просто называют “метод Рунге-Кутта” без всяких указаний на тип или порядок. Этот классический метод Рунге-Кутта описывается системой следующих соотношений:
ym+1 = ym + h/6 (k1 + 2k2 + 2k3 + k4), (22)
где k1 = f(xm, ym) (23)
k2 = f(xm + h/2, ym + k1 h/2) (24)
k3 = f(xm + h/2, ym + k2 h/2) (25)
k4 = f(xm + h, ym + k3h) (26)
Ошибка приближения для этого метода равна
et = kh5
Заметим, что при использовании этого метода функцию необходимо вычислить четыре раза. Один из серьёзных недостатков метода Рунге-Кутта состоит в отсутствии простых способов оценить их ошибку. Всё же без некоторой оценки ошибки приближения трудно правильно выбрать величину шага интегрирования h. Грубое оценочное правило предложено Коллатцом.
Если |k2 – k3| / |k1 – k2|
становится велико (более нескольких сотых), то шаг интегрирования необходимо уменьшить.
Даже если ошибка приближения шага {мала?}, всё равно метод Рунге-Кутта может при неблагоприятных условиях дать совершенно ошибочные результаты. Такие ошибочные результаты могут , например, появиться потому, что малые ошибки – ошибки приближения или округления могут возрасти при вычислении решения для больших x.
Например, рассмотрим следующее уравнение
y' = – 10 y с начальным условием y(0) = 1.
Точное решение этого уравнения y = e–10x.
Приближённая формула Рунге-Кутта 2-го порядка даст
ym+1 = (1 – 10h + 50h2)m.
Заметим, что при h>0 сумма в скобках становится больше единицы, т.е. при увеличении m значение y неограниченно возрастает. С другой стороны, точное решение убывает, т.е. стремится к нулю.
Это явление называется частичной неустойчивостью по Майерсу.
