Не накапливаются ошибки вычислений метод

Итерационные методы решения системы линейных алгебраических уравнений

В данной статье мы расскажем общие сведения об итерационных методах решения СЛАУ, познакомим с методом Зейделя и Якоби, а также приведем примеры решения систем линейных уравнений при помощи данных методов.

Общие сведения об итерационных методах или методе простой итерации

Метод итерации — это численный и приближенный метод решения СЛАУ.

Суть: нахождение по приближённому значению величины следующего приближения, которое является более точным. Метод позволяет получить значения корней системы с заданной точностью в виде предела последовательности некоторых векторов (итерационный процесс). Характер сходимости и сам факт сходимости метода зависит от выбора начального приближения корня x 0 .

Рассмотрим систему A x = b .

Чтобы применить итерационный метод, необходимо привести систему к эквивалентному виду x = B x + d . Затем выбираем начальное приближение к решению СЛАУ x ( 0 ) = ( x 1 0 , x 2 0 , . . . x m 0 ) и находим последовательность приближений к корню.

Для сходимости итерационного процесса является достаточным заданное условие В 1 . Окончание итерации зависит от того, какой итерационный метод применили.

Метод Якоби

Метод Якоби — один из наиболее простых методов приведения системы матрицы к виду, удобному для итерации: из 1-го уравнения матрицы выражаем неизвестное x 1 , из 2-го выражаем неизвестное x 2 и т.д.

Результатом служит матрица В , в которой на главной диагонали находятся нулевые элементы, а все остальные вычисляются по формуле:

b i j = — a i j / a i i , i , j = 1 , 2 . . . , n

Элементы (компоненты) вектора d вычисляются по следующей формуле:

d i = b i / a i i , i = 1 , 2 , . . . , n

Расчетная формула метода простой итерации:

x ( n + 1 ) = B x ( x ) + d

Матричная запись (координатная):

x i ( n + 1 ) = b i 1 x n 1 + b i 2 x ( n ) 2 + . . . + b

Критерий окончания в методе Якоби:

x ( n + 1 ) — x ( n ) ε 1 , где ε 1 = 1 — B B ε

В случае если B 1 / 2 , то можно применить более простой критерий окончания итераций:

x ( n + 1 ) — x ( n ) ε

Решить СЛАУ методом Якоби:

10 x 1 + x 2 — x 3 = 11 x 1 + 10 x 2 — x 3 = 10 — x 1 + x 2 + 10 x 3 = 10

Необходимо решить систему с показателем точности ε = 10 — 3 .

Приводим СЛАУ к удобному виду для итерации:

x 1 = — 0 , 1 x 2 + 0 , 1 x 3 + 1 , 1 x 2 = — 0 , 1 x 1 + 0 , 1 x 3 + 1 x 3 = 0 , 1 x 1 — 0 , 1 x 2 + 1

Выбираем начальное приближение, например: x ( 0 ) = 1 , 1 1 1 — вектор правой части.

В таком случае, первая итерация имеет следующий внешний вид:

x 1 ( 1 ) = — 0 , 1 × 1 + 0 , 1 × 1 + 1 , 1 = 1 , 1 x 2 ( 1 ) = — 0 , 1 × 1 , 1 + 0 , 1 + 1 = 0 , 99 x 3 ( 1 ) = 0 , 1 × 1 , 1 — 0 , 1 × 1 + 1 = 1 , 01

Аналогичным способом вычисляются приближения к решению:

x ( 2 ) = 1 , 102 0 , 991 1 , 011 , x ( 3 ) = 1 , 102 0 , 9909 1 , 0111 , x ( 4 ) = 1 , 10202 0 , 99091 1 , 01111

Находим норму матрицы В , для этого используем норму B ∞ .

Поскольку сумма модулей элементов в каждой строке равна 0,2, то B ∞ = 0 , 2 1 / 2 , поэтому можно вычислить критерий окончания итерации:

x ( n + 1 ) — x ( n ) ε

Далее вычисляем нормы разности векторов:

x ( 3 ) — x ( 2 ) ∞ = 0 , 002 , x ( 4 ) — x ( 3 ) ∞ = 0 , 00002 .

Поскольку x ( 4 ) — x ( 3 ) ∞ ε , то можно считать, что мы достигли заданной точности на 4-ой итерации.

x 1 = 1 , 102 ; x 2 = 0 , 991 ; x 3 = 1 ,01 1 .

Метод Зейделя

Метод Зейделя — метод является модификацией метода Якоби.

Суть: при вычислении очередного ( n + 1 ) — г о приближения к неизвестному x i при i > 1 используют уже найденные ( n + 1 ) — е приближения к неизвестным x 1 , x 2 , . . . , x i — 1 , а не n — о е приближение, как в методе Якоби.

x i ( n + 1 ) = b i 1 x 1 ( n + 1 ) + b i 2 x 2 ( n + 1 ) + . . . + b i , i — 1 x i — 2 ( n + 1 ) + b i , i + 1 x i + 1 ( n ) +

+ . . . + b i m x m ( n ) + d i

За условия сходимости и критерий окончания итераций можно принять такие же значения, как и в методе Якоби.

Решить СЛАУ методом Зейделя. Пусть матрица системы уравнений А — симметричная и положительно определенная. Следовательно, если выбрать начальное приближение, метод Зейделя сойдется. Дополнительных условий на малость нормы некоторой матрицы не накладывается.

Решим 3 системы уравнений:

2 x 1 + x 2 = 3 x 1 — 2 x 2 = 1 , x 1 + 2 x 2 = 3 2 x 1 — x 2 = 1 , 2 x 1 — 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1

Приведем системы к удобному для итерации виду:

x 1 ( n + 1 ) = — 0 , 5 x 2 ( n ) + 1 , 5 x 2 ( n + 1 ) = 0 , 5 x 1 ( n + 1 ) + 0 , 5 , x 1 ( n + 1 ) = — 2 x 2 ( n ) + 3 x 2 ( n + 1 ) = 2 x 1 ( n + 1 ) — 1 , 2 x 1 — 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1 .

Отличительная особенность, условие сходимости выполнено только для первой системы:

Вычисляем 3 первых приближения к каждому решению:

1-ая система: x ( 0 ) = 1 , 5 — 0 , 5 , x ( 1 ) = 1 , 75 0 , 375 , x ( 2 ) = 1 , 3125 0 , 1563 , x ( 3 ) = 1 , 4219 0 , 2109

Решение: x 1 = 1 , 4 , x 2 = 0 , 2 . Итерационный процесс сходится.

2-ая система: x ( 0 ) = 3 — 1 , x ( 1 ) = 5 9 , x ( 2 ) = — 15 — 31 , x ( 3 ) = 65 129

Итерационный процесс разошелся.

Решение: x 1 = 1 , x 2 = 2

3-я система: x ( 0 ) = 1 , 5 2 , x ( 1 ) = 2 — 6 , x ( 2 ) = 0 2 , x ( 3 ) = 0 2

Итерационный процесс зациклился.

Решение: x 1 = 1 , x 1 = 2

Метод простой итерации

Если А — симметричная и положительно определенная, то СЛАУ приводят к эквивалентному виду:

x = x — τ ( A x — b ) , τ — итерационный параметр.

Расчетная формула имеет следующий внешний вид:

x ( n + 1 ) = x ( n ) — τ ( A x n — b ) .

Здесь B = E — τ A и параметр τ > 0 выбирают таким образом, чтобы по возможности сделать максимальной величину B 2 .

Пусть λ m i n и λ m a x — максимальные и минимальные собственные значения матрицы А .

τ = 2 / ( λ m i n + λ m a x ) — оптимальный выбор параметра. В этом случае B 2 принимает минимальное значение, которое равняется ( λ m i n + λ m a x ) / ( λ m i n — λ m a x ) .

Лекция 5. Итерационные методы решения уравнений и систем

5.1 Простая итерация. Уравнения с одним неизвестным.Пусть задана непрерывная функция f(x) и требуется найти все или некоторые корни уравнения

Эта задача распадается на несколько задач. Во-первых, надо исследовать характер и расположение корней. Во-вторых, найти приближенные значения корней. В-третьих, выбрать из них интересующие нас корни и вычислить их с требуемой точностью.

Первая и вторая задачи решаются аналитическими и графическими методами. Например, многочлен

имеет n комплексных корней, не обязательно различных, и все корни лежат внутри круга

Когда ищутся только действительные корни уравнения, то полезно составить таблицу значений f(x). Если в двух соседних узлах таблицы функция имеет разные знаки, то между этими узлами лежит нечетное число корней уравнения (по меньшей мере один). Если эти узлы близки, то, скорее всего, корень между ними только один. Но выявить по таблице корни четной кратности сложно.

По таблице можно построить график функции y=f(x) и графически найти точки его пересечения с осью абсцисс. Этот способ более нагляден и дает неплохие приближенные значения корней. Во многих задачах такая точность уже достаточна. В технике еще популярны графические методы решения уравнений (номография). Построение графика зачастую позволяет выявить даже корни четной кратности.

Иногда удается заменить уравнение (5.1.1) эквивалентным ему уравнением φ(x) = ψ(x), в котором функции и имеют несложные графики. Например, уравнение x sin x – 1 = 0 удобно преобразить к виду sin x = 1/x. Абсциссы точек сечения этих графиков будут корнями исходного уравнения.

Дихотомия (деление пополам). Пусть мы нашли такие точки , , что , т.е. на отрезке лежит не менее одного корня уравнения. Найдем середину отрезка и вычислим . Из двух половин отрезка выберем ту, для которой , ибо один из корней лежит на этой половине. Затем новый отрезок опять делим пополам и выберем ту половину, на концах которой функция имеет разные знаки, и т.д. (рис. 5.1).

Если требуется найти корень с точность ε, то продолжаем деление пополам до тех пор, пока длина отрезка не станет меньше 2ε. Тогда середина последнего отрезка даст значение корня с требуемой точностью.

Дихотомия проста и очень надежна: к простому корню она сходится для любых непрерывных функций f(x), в том числе недифференцируемых; при этом она устойчива к ошибкам округления. Скорость сходимости невелика: за одну итерацию точность увеличивается примерно вдвое, т.е. уточнение трех цифр требует 10 итераций. Зато точность ответа гарантируется.

Перечислим недостатки метода. Для начала расчета надо найти отрезок, на котором функция меняет знак. Если в этом отрезке несколько корней, то заранее неизвестно, к какому из них сойдется процесс (хотя к одному из них сойдется). Метод неприменим к корням четной кратности. Для корней нечетной высокой кратности он сходится, но менее точен и хуже устойчив к ошибкам округления, возникающим при вычислении f(x). Наконец, на системы уравнений дихотомия не обобщается.

Дихотомия применяется тогда, когда требуется высокая надежность счета, а скорость сходимости малосущественна.

Удаление корней. Один из недостатков дихотомии – сходимость неизвестно к какому корню – имеется почти у всех итерационных методов. Его можно устранить удалением уже найденного корня.

Если есть простой корень уравнения (5.1.1) и f(x) липшиц-непрерывна, то вспомогательная функция непрерывна, причем все нули функции f(x) и g(x) совпадают, за исключением , ибо Если – кратный корень уравнения (5.1.1), то он будет нулем функции кратности на единицу меньше; остальные нули обеих функций по-прежнему будут одинаковы.

Поэтому найденный корень можно удалить, т.е. перейти к функции . Тогда нахождение остальных нулей f(x) сведется к нахождению нулей . Когда мы найдем какой-нибудь корень функции , то этот корень тоже можно удалить, вводя новую вспомогательную функцию

= . Так можно последовательно найти все корни f(x).

Строго говоря, мы находим лишь приближенное значение корня . А функция имеет нуль в точке и полюс в близкой к ней точке (рис. 5.2); только на некотором расстоянии от этого корня она близка к . Чтобы это не сказывалось при нахождении следующих корней, надо вычислять каждый корень с высокой точностью.

Кроме того, в любом методе окончательные итерации вблизи определяемого корня рекомендуется делать не по функциям типа , а по исходной функции . Последние итерации, вычисленные по функции , используются при этом в качестве нулевого приближения. Важно это при нахождении многих корней, ибо чем больше корней удалено, тем меньше нули вспомогательной функции соответствуют остальным нулям функции .

Учитывая эти предосторожности и вычисляя корни с 8-10 верными десятичными цифрами, зачастую можно определить десятка два корней, о расположении которых заранее ничего не известно (в том числе корней высокой кратности p

Метод простых итераций. Заменим уравнение (5.1.1) эквивалентным ему уравнением . Это можно сделать многими способами, например, положив , где – произвольная непрерывная знакопостоянная функция. Выберем некоторое нулевое приближение и вычислим дальнейшие приближения по формулам

(5.1.2)

Очевидно, если стремится к некоторому пределу , то этот предел есть корень исходного уравнения.

Исследуем условия сходимости. Если имеет непрерывную производную, тогда

, (5.1.3)

где точка ξ лежит между точками и . Поэтому если всюду , то отрезки убывают не медленней членов геометрической прогрессии со знаменателем и последовательность сходится при любом нулевом приближении. Если , то в силу непрерывности больше единицы и в некоторой окрестности корня; в этом случае итерации не могут сходится. Если , но вдали от корня , то итерации сходятся, если нулевое приближение выбрано достаточно близко к корню; при произвольном нулевом приближении сходимости может не быть.

Очевидно, что чем меньше q, тем быстрее сходимость. Вблизи корня асимптотическая сходимость определяется величиной и будет особенно быстрой при .

Значит, успех метода зависит от того, насколько удачно выбрано . Например, для извлечения квадратного корня, т.е. решения уравнения , можно положить или и соответственно написать такие итерационные процессы:

Первый процесс вообще не сходится, а второй сходится при любом ; сходится он очень быстро, ибо . Второй процесс используют при извлечении корня на калькуляторах.

Каков практический критерий сходимости, т.е. когда надо прекращать итерации (5.1.2)? Из (5.1.3) видно, что если , то итерации попеременно оказываются то с одной, то с другой стороны корня, так что корень заключен в интервале . Это надежная, хотя несколько грубая оценка. Но она неприменима при , когда итерации сходятся к корню монотонно, т.е. с одной стороны.

Вблизи корня итерации сходятся примерно, как геометрическая прогрессия со знаменателем . Чтобы сумма дальнейших ее членов не превосходила ε, должен выполняться критерий сходимости

. (5.1.5)

При выполнении этого условия итерации можно прекращать.

Метод простых итераций и почти все другие итерационные методы имеют важное достоинство: в них не накапливаются ошибки вычислений. Ошибка вычислений эквивалентна некоторому ухудшению очередного приближения. Но это отразится только на числе итераций, а не на точности окончательного результата. Подобные методы устойчивы даже по отношению к грубым ошибкам (компьютерного сбоя), если только ошибка не выбрасывает очередное приближение за пределы области сходимости.

Метод Ньютона. Он называется также методом касательных или методом линеаризации. Если есть некоторое приближение к корню , а имеет непрерывную производную, то уравнение (5.1.1) можно преобразоватьть следующим образом:

.

Приближенно заменяя на значение в известной точке , получим такой итерационный процесс:

. (5.1.6)

Геометрически этот процесс означает замену на каждой итерации графика касательной к нему (рис. 28).

Метод Ньютона можно рассматривать как частный случай метода простых итераций, если положить . Тогда Если есть р-кратный корень уравнения (5.1.1), то вблизи него ; отсюда нетрудно получить , т.е. . Для простого корня и . Используя результаты п.4, можно сформулировать следующие условия сходимости итерации (28). Если нулевое приближение выбрано достаточно близко к корню, ньютоновские итерации сходятся; скорость сходимости велика для простого корня и соответствует скорости геометрической прогрессии для кратного корня. При произвольном нулевом приближении итерации сходятся, если всюду ; в противном случае сходимость будет не при любом нулевом приближении, а только в некоторой окрестности корня.

Сходимость вблизи любого корня монотонна, что легко видеть на рис. 28; но вдали от корня возможна немонотонность итерации. Отметим, что рис. 28 указывает еще на одно достаточное условие сходимости итерации. Пусть справа от корня на отрезке ; если выбрано также справа от корня на этом отрезке, то итерация (28) сходится, причем монотонно. То же будет, если слева от корня на отрезке , и на этом же отрезке выбрано нулевое приближение. Таким образом, итерации сходятся к корню с той стороны, с которой .

Оценим скорость сходимости вблизи простого корня. По определению простых итераций, . Разлагая правую часть по формуле Тейлора и учитывая равенство , получим

, (5.1.7)
Т а б л и ц а 1
n , метод Ньютона , метод секущих
1,0000 1,0000
2,5000 2,5000
2,0500 1,8571
2,0001 1,9836

т.е. погрешность очередного приближения примерно равна квадрату погрешности предыдущего приближения. Например, если (n-1)-я итерация давала 3 верных знака, то n-я даст примерно 6 верных знаков, а (n+1)-я – примерно 12 знаков. Это иллюстрирует быструю сходимость вблизи корня. Разумеется, вдали от корня подобные соображения неприменимы.

Если вычисляется корень высокой кратности, то в знаменателе формулы (28) становится малой вблизи корня. Чтобы не было потери точности, отношение надо вычислять достаточно аккуратно. К остальным погрешностям расчета метод Ньютона хорошо устойчив.

Для нахождения корней произвольной дифференцируемой функции чаще всего применяют метод Ньютона, особенно если известны разумные начальные приближения для корней.

П р и м е р. Рассмотрим решение уравнения . Тогда общая формула метода Ньютона (5.1.6) принимает вид

.

Мы получили вторую формулу (5.1.4), которая, как отмечалось раньше, позволяет очень быстро находить квадратный корень с помощью только сложения и деления. Для иллюстрации в таблице 16 приведен ход итерации при извлечении квадратного корня из а = 4.Видно, что сходимость очень быстрая; несмотря на неважное нулевое приближение, уже третья итерация дает точность 0,005%. Попутно можно заметить, что вблизи корня итерация сходится с одной стороны, т.е. монотонно, хотя первая итерация дает переброс на другую сторону корня.

Метод секущих. В методе Ньютона требуется вычислять производную функции, что не всегда удобно. Можно заменить производную первой разделенной разностью, найденной по двум последним итерациям, т.е. заменить касательную секущей. Тогда вместо процесса (5.1.6) получим

. (5.1.8)

Для начала процесса надо задать и (рис. 29). Такие процессы, где для вычисления очередного приближения надо знать два предыдущих, называют двухшаговыми.

Эти небольшие изменения сильно влияют на характер итераций. Например, сходимость итераций может быть немонотонной не только вдали от корня, но и в малой окрестности корня. Скорость сходимости также изменяется. Приведенный в таблице 1 для сравнения расчет по методу Ньютона показывает, что метод секущих сходится медленнее, т.к. в методе Ньютона ошибка убывает быстрей. Но в методе Ньютона на каждой итерации надо вычислять и функцию, и производную, а в методе секущих – только функцию.

В знаменателе формулы (5.1.8) стоит разность значений функции; вдали от корня это несущественно, но вблизи корня значения функции малы и очень близки. Возникает потеря значащих цифр, приводящая к «разболтке» счета, что ограничивает точность.

От «разболтки» страхуются так называемым приемом Гарвика. Выбирают не очень малое значение ε, ведут итерации до выполнения условия и затем продолжают расчет до тех пор, пока убывают. Первое же возрастание обычно означает начало «разболтки»; тогда расчет прекращают и последнюю итерацию не используют.

Метод парабол. Метод секущих основан на замене функции ф(х) интерполяционным полиномом первой степени по узлам xn , xn-1 . По трем последним итерациям можно построить полином второй степени, т.е. заменить график функции параболой. Примем этот полином в форме Ньютона:

Приравняв его нулю, получим квадратноеуравнение

Меньший по модулю из двух корней квадратного уравнения определяет новое приближение xn+1=xn+z .

Для начала расчета надо задать три первых приближения х012 (обычно наугад), т.е. процесс является трехшаговым.

Метод парабол построен по образцу методов третьего порядка, однако замена производных разделенными разностями приводит к существенному уменьшению скорости сходимости.

В этом методе «разболтка» счета вблизи корня сказывается еще больше, чем в методе секущих, т.к. в расчете участвуют вторые разности, но все-таки корни можно найти с хорошей точностью; для определения оптимального числа итераций добно пользоваться приемом Гарвика (см. выше).

Метод парабол исключительно эффективен для нахождения всех корней многочлена высокой степени.

5.2. Итерации для линейных систем уравнений (обычный способ). Итерационные методы решения систем линейных уравнений позволяют получить это решение в виде предела последовательности некоторых векторов, построение которых осуществляется посредством единообразного процесса.

Для определенности запишем систему линейных уравнений четвертого порядка в виде + =0, где = (i,y=1,2,3,4), векторы

= , = .

Разрешим первое из уравнений относительно x1 , второе – относительно x2 и т.д. Тогда эту систему можно переписать в виде

= — (i=1, 2, 3, 4; k=1, 2, 3, 4, 5) . (2)

Система (1) является частным случаем записи вида

При этом линейная функция, например, L1(x1, x2, x3, x4) фактически не зависит от x1 согласно (1). Выводы не изменятся, если она будет содержать слагаемое вида α11x1 .То же относится к правым частям остальных уравнений.

Зададим произвольные начальные значения неизвестных , , , . Подставляя эти значения в правые части системы (3), получим первые приближения:

=L1( , , , ) ,

=L4( , , , ).

Полученные первые приближения могут быть таким же образом использованы для получения вторых, третьих и т.д., так что для любого ν можно получить ν-е приближение , , , .

Можно установить условия, которые обеспечат сходимость получающихся приближений к истинному решению системы x1, x2, x3, x4, для чего достаточно отличия от нуля определителя системы detA≠0.

Обозначим через ошибку ν-го приближения для k-го неизвестного

= – xk ,

где xk точное значение неизвестного в решении системы, которое предполагается существующим.

Показано, что для сходимости итерационного процесса к точному решению системы в этом способе достаточно выполнения условия С (ν) =L1 (x1 (ν-1) , x1 (ν-1) ,…),

Иначе говоря, следующее приближение полностью определялось значениями, полученными на предыдущем шаге. Между тем уже при построении первого приближения можно, например, вычисляя значение x2 (1) , воспользоваться для x1 не нулевым приближением x1 (0) , а уже полученным нами первым приближением x1 (1) . Вычисляя χ3 , можно использовать уже не только x1 (1) , но и x2 (1) и т. д.

Таким образом, вместо формул (1) предлагается использовать для отыскания следующего приближения формулы такого вида (мы снова пишем их для конкретного случая системы четырех уравнений с четырьмя неизвестными):

(2)

Это изменение и составляет идею итераций по способу Зейделя.

Естественно ожидать, что итерации по способу Зейделя дадут при том же числе шагов более точные результаты, чем обычные итерации, или, что то же самое, та же точность будет достигнута за меньшее число шагов. Вообще говоря, эти ожидания оправдываются. Однако нужно иметь в виду, что условия сходимости обычного итерационного процесса и итерационного процесса Зейделя различны. Один из этих процессов для данной системы может оказаться расходящимся тогда, когда другой сходится.

Вычислительная схема итерационного процесса Зейделя строится, как и для обычных итераций, на вычислении последовательных поправок. Рассмотрим эту схему, ограничившись, для краткости, системой трех линейных уравнений с тремя неизвестными. Формулы для отыскания следующих приближений через предыдущие будут в этом случае иметь вид

(3)

Формулы для вычисления поправок легко получить, исходя непосредственно из определения и используя (3). Действительно, для ν-ой итерации

δ1 (ν) = ˗ = ( + ) ˗ ( + ) = = + ( ,

δ1 (ν) = + . (4)

Для формула выглядит несколько иначе. Так как = ˗ =

= ( + ) ˗ ( + ),

= + , (5)

= + . (6)

Как и для обычного итерационного процесса, формулы (4)-(6) могут быть использованы для вычисления поправок для всех ν = 1, 2, …. , но не для ν = 0; для формулы должны быть выведены отдельно. Если принять за начальные приближения значения соответствующих свободных членов

= , = = ,

то для первых поправок получим выражения

(7)

где = + и = + .

Расположение вычислений показано в табл. 1. Верхняя часть ее не отличается от обычного способа, а таблица для вычисления поправок имеет уже несколько другой вид: при вычислении очередных поправок в ряде случаев используются уже полученные поправки того же этапа вычислений. Соответствующие места в табл. 1. подчеркнуты.

Вычисления продолжаются до получения достаточно малых поправок. Окончательные значения неизвестных получаются по формулам

+… (𝓀 = 1,2,3).

Таблица 1. Алгоритм способа Зейделя

для системы трех уравнений с тремя неизвестными

Метод итераций

Правила ввода функции

  1. Примеры
    ≡ x^2/(1+x)
    cos 2 (2x+π) ≡ (cos(2*x+pi))^2
    ≡ x+(x-1)^(2/3)

На рис.1а, 1б в окрестности корня |φ′(x)| 1, то процесс итерации может быть расходящимся (см. рис.2).

Достаточные условия сходимости метода итерации

Процесс нахождения нулей функции методом итераций состоит из следующих этапов:

  1. Получить шаблон с омощью этого сервиса.
  2. Уточнить интервалы в ячейках B2 , B3 .
  3. Копировать строки итераций до требуемой точности (столбец D ).

Примечание: столбец A — номер итерации, столбец B — корень уравнения X , столбец C — значение функции F(X) , столбец D — точность eps .

источники:

http://poisk-ru.ru/s48685t6.html

http://math.semestr.ru/optim/iteration_method.php

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

  • 1 Введение
    • 1.1 Постановка вопроса. Виды погрешностей
  • 2 Виды мер точности
  • 3 Предельные погрешности
  • 4 Погрешности округлений при представлении чисел в компьютере
  • 5 Погрешности арифметических операций
  • 6 Погрешности вычисления функций
  • 7 Числовые примеры
  • 8 Список литературы
  • 9 См. также

Введение

Постановка вопроса. Виды погрешностей

Процесс исследования исходного объекта методом математического моделирования и вычислительного эксперимента неизбежно носит приближенный характер, так как на каждом этапе вносятся погрешности. Построение математической модели связано с упрощением исходного явления, недостаточно точным заданием коэффициентов уравнения и других входных данных. По отношению к численному методу, реализующему данную математическую модель, указанные погрешности являются неустранимыми, поскольку они неизбежны в рамках данной модели.

При переходе от математической модели к численному методу возникают погрешности, называемые погрешностями метода. Они связаны с тем, что всякий численный метод воспроизводит исходную математическую модель приближенно. Наиболее типичными погрешностями метода являются погрешность дискретизации и погрешность округления.
При построении численного метода в качестве аналога исходной математической задачи обычно рассматривается её дискретная модель. Разность решений дискретизированной задачи и исходной называется погрешностью дискретизации. Обычно дискретная модель зависит от некоторого параметра (или их множества) дискретизации, при стремлении которого к нулю должна стремиться к нулю и погрешность дискретизации.
Дискретная модель представляет собой систему большого числа алгебраических уравнений. Для её решения используется тот или иной численный алгоритм. Входные данные этой системы, а именно коэффициенты и правые части, задаются в ЭВМ не точно, а с округлением. В процессе работы алгоритма погрешности округления обычно накапливаются, и в результате, решение, полученное на ЭВМ, будет отличаться от точного решения дискретизированной задачи. Результирующая погрешность называется погрешностью округления (вычислительной погрешностью). Величина этой погрешности определяется двумя факторами: точностью представления вещественных чисел в ЭВМ и чувствительностью данного алгоритма к погрешностям округления.

Итак, следует различать погрешности модели, дискретизации и округления. В вопросе преобладания какой-либо погрешности ответ неоднозначен. В общем случае нужно стремиться, чтобы все погрешности имели один и тот же порядок. Например, нецелесообразно пользоваться разностными схемами, имеющими точность 10−6, если коэффициенты исходных уравнений задаются с точностью 10−2.

Виды мер точности

Мерой точности вычислений являются абсолютные и относительные погрешности. Абсолютная погрешность определяется формулой

Delta(tilde a)=|tilde a-a|,

где tilde a – приближение к точному значению a.
Относительная погрешность определяется формулой

delta(tilde a)=frac{|tilde a-a|}{a}.

Относительная погрешность часто выражается в процентах. Абсолютная и относительная погрешности тесно связаны с понятием верных значащих цифр. Значащими цифрами числа называют все цифры в его записи, начиная с первой ненулевой цифры слева. Например, число 0,000129 имеет три значащих цифры. Значащая цифра называется верной, если абсолютная погрешность числа не превышает половины веса разряда, соответствующего этой цифре. Например, tilde a=9348, абсолютная погрешность Delta(tilde a)=15. Записывая число в виде

9348=9cdot10^3+3cdot10^2+4cdot10^1+8cdot10^0,

имеем 0,5cdot10^1<Delta(tilde a)<0,5cdot10^2, следовательно, число имеет две верных значащих цифр (9 и 3).

В общем случае абсолютная погрешность должна удовлетворять следующему неравенству:

Delta(tilde a)<0,5cdot10^{m-n+1} ,

где m — порядок (вес) старшей цифры, n — количество верных значащих цифр.
В рассматриваемом примере Delta(tilde a)le0,5cdot10^{3-2+1}le0,5cdot10^2=50.

Относительная погрешность связана с количеством верных цифр приближенного числа соотношением:

delta(tilde a)lefrac{Delta(tilde a)}{alpha_m}10^mlefrac{10^{m-n+1}}{alpha_m10^m}lefrac{1}{alpha_m10^{n-1}},

где alpha_m — старшая значащая цифра числа.

Для двоичного представления чисел имеем delta(tilde a)le2^{-n}.

Тот факт, что число tilde a является приближенным значением числа a с абсолютной погрешностью Delta(tilde a), записывают в виде

a=tilde apmDelta(tilde a),

причем числа tilde a и Delta(tilde a) записываются с одинаковым количеством знаков после запятой, например, a=2,347pm0,002 или a=2,347pm2cdot10^{-3}.

Запись вида

a=tilde a(1pmdelta(tilde a))

означает, что число tilde a является приближенным значение числа a с относительной погрешностью delta(tilde a).

Так как точное решение задачи как правило неизвестно, то погрешности приходится оценивать через исходные данные и особенности алгоритма. Если оценка может быть вычислена до решения задачи, то она называется априорной. Если оценка вычисляется после получения приближенного решения задачи, то она называется апостериорной.

Очень часто степень точности решения задачи характеризуется некоторыми косвенными вспомогательными величинами. Например точность решения системы алгебраических уравнений

AX=F

характеризуется невязкой

R=F-Atilde X,

где tilde X — приближенное решение системы.
Причём невязка достаточно сложным образом связана с погрешностью решения Delta(X)=tilde X-X, причём если невязка мала, то погрешность может быть значительной.

Предельные погрешности

Пусть искомая величина a является функцией параметров t_1, ldots , t_n in Omega, qquad a* — приближенное значение a. Тогда предельной абсолютной погрешностью называется величина

D(a^*) = suplimits_{(t_1, ldots ,t_n) in Omega } left|{a(t_1, ldots ,t_n) - a^*}right| ,

Предельной относительной погрешностью называется величина D(a*)/| a*|.

Пусть left|{t_j - t_j^*}right| le Delta (t_j^* ), qquad j = 1 div n — приближенное значение a^* = a(t_1^*, ldots ,t_n^* ). Предполагаем, что a — непрерывно дифференцируемая функция своих аргументов. Тогда, по формуле Лагранжа,

a(t_1, ldots ,t_n) - a^* = sumlimits_{j = 1}^n gamma_j (alpha )(t_j - t_j^*),

где gamma_j (alpha ) = a^{prime}_{t_j}(t_1^* + alpha (t_1 - t_1^*), ldots ,t_n^* + alpha (t_n - t_n^*)), qquad 0 le alpha le 1.

Отсюда

left|{a(t_1, ldots ,t_n) - a^*}right| le D_1 (a^*) = sumlimits_{j = 1}^n b_j Delta (t_j^*),

где b_j = suplimits_Omega left|{a^{prime}_{t_j}(t_1, ldots ,t_n)}right|.

Можно показать, что при малых rho = sqrt{{(Delta (t_1^* ))}^2 + ldots + {(Delta (t_n^* ))}^2 } эта оценка не может быть существенно улучшена. На практике иногда пользуются грубой (линейной) оценкой

left|{a(t_1, ldots ,t_n) - a^*}right| le D_2 (a^*),

где D_2 (a^*) = sumlimits_{j = 1} left|{gamma_j (0)}right| Delta (t^*).

Несложно показать, что:

  1. Delta ( pm t_1^* pm , ldots , pm t_n^*) = Delta (t_1^* ) + ldots + Delta (t_n^* ) — предельная погрешность суммы или разности равна сумме предельных погрешностей.
  2. delta (t_1^* cdots t_m^* cdot d_1^{* - 1} cdots d_m^{* - 1} ) = delta (t_1^* ) + ldots + delta (t_m^*) + delta (d_1^*) + ldots + delta (d_n^*) — предельная относительная погрешность произведения или частного приближенного равна сумме предельных относительных погрешностей.

Погрешности округлений при представлении чисел в компьютере

Одним из основных источников вычислительных погрешностей является приближенное представление чисел в компьютере, обусловленное конечностью разрядной сетки (см. Международный стандарт представления чисел с плавающей точкой в ЭВМ). Число a, не представимое в компьютере, подвергается округлению, т. е. заменяется близким числом tilde a, представимым в компьютере точно.
Найдем границу относительной погрешности представления числа с плавающей точкой. Допустим, что применяется простейшее округление – отбрасывание всех разрядов числа, выходящих за пределы разрядной сетки. Система счисления – двоичная. Пусть надо записать число, представляющее бесконечную двоичную дробь

a=underbrace{pm2^p}_{order}underbrace{left(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}+frac{a_{t+1}}{2^{t+1}}+dotsright)}_{mantissa},

где a_j={01, qquad (j=1,2,...) — цифры мантиссы.
Пусть под запись мантиссы отводится t двоичных разрядов. Отбрасывая лишние разряды, получим округлённое число

tilde a=pm2^pleft(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}right).

Абсолютная погрешность округления в этом случае равна

a-tilde a=pm2^pleft(frac{a_{t+1}}{2^{t+1}}+frac{a_{t+2}}{2^{t+2}}+dotsright).

Наибольшая погрешность будет в случае a_{t+1}=1, qquad a_{t+2}=1,, тогда

|a-tilde a|lepm2^pfrac{1}{2^{t+1}}underbrace{left(1+frac{1}{2}+frac{1}{2^2}+dotsright)}_{=2}=2^{p-t}.

Т.к. |M|ge0,5, где M — мантисса числа a, то всегда a_1=1. Тогда |a|ge2^pcdot2^{-1}=2^{p-1} и относительная погрешность равна frac{|a-tilde a|}{|a|}le2^{-t+1}. Практически применяют более точные методы округления и погрешность представления чисел равна

( 1 )

frac{|a-tilde a|}{|a|}le2^{-t},

т.е. точность представления чисел определяется разрядностью мантиссы t.
Тогда приближенно представленное в компьютере число можно записать в виде tilde a=a(1pmepsilon), где |epsilon|le2^{-t}«машинный эпсилон» – относительная погрешность представления чисел.

Погрешности арифметических операций

При вычислениях с плавающей точкой операция округления может потребоваться после выполнения любой из арифметических операций. Так умножение или деление двух чисел сводится к умножению или делению мантисс. Так как в общем случае количество разрядов мантисс произведений и частных больше допустимой разрядности мантиссы, то требуется округление мантиссы результатов. При сложении или вычитании чисел с плавающей точкой операнды должны быть предварительно приведены к одному порядку, что осуществляется сдвигом вправо мантиссы числа, имеющего меньший порядок, и увеличением в соответствующее число раз порядка этого числа. Сдвиг мантиссы вправо может привести к потере младших разрядов мантиссы, т.е. появляется погрешность округления.

Округленное в системе с плавающей точкой число, соответствующее точному числу x, обозначается через fl(x) (от англ. floating – плавающий). Выполнение каждой арифметической операции вносит относительную погрешность, не большую, чем погрешность представления чисел с плавающей точкой (1). Верна следующая запись:

fl(abox b)=abox b(1pmepsilon),

где box — любая из арифметических операций, |epsilon|le2^{-t}.

Рассмотрим трансформированные погрешности арифметических операций. Арифметические операции проводятся над приближенными числами, ошибка арифметических операций не учитывается (эту ошибку легко учесть, прибавив ошибку округления соответствующей операции к вычисленной ошибке).

Рассмотрим сложение и вычитание приближенных чисел. Абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей слагаемых.

Если сумма точных чисел равна

S=a_1+a_2+dots+a_n,

сумма приближенных чисел равна

tilde S=a_1+Delta(a_1)+a_2+Delta(a_2)+dots+a_n+Delta(a_n),

где Delta(a_i), qquad i=1,2,...,n— абсолютные погрешности представления чисел.

Тогда абсолютная погрешность суммы равна

Delta(S)=Delta(a_1)+Delta(a_2)+dots+Delta(a_n).

Относительная погрешность суммы нескольких чисел равна

( 2 )

delta(S)=frac{Delta(S)}{S}=frac{a_1}{S}left(frac{Delta(a_1)}{a_1}right)+frac{a_2}{S}left(frac{Delta(a_2)}{a_2}right)+dots=frac{a_1delta(a_1)+a_2delta(a_2)+dots}{S},

где delta(a_i), qquad i=1,2,...,n — относительные погрешности представления чисел.

Из (2) следует, что относительная погрешность суммы нескольких чисел одного и того же знака заключена между наименьшей и наибольшей из относительных погрешностей слагаемых:

min quad delta(a_k)ledelta(S)le max quad delta(a_k), qquad k=1,2,...,n, quad a_k>0.

При сложении чисел разного знака или вычитании чисел одного знака относительная погрешность может быть очень большой (если числа близки между собой). Так как даже при малых Delta(a_i) величина S может быть очень малой. Поэтому вычислительные алгоритмы необходимо строить таким образом, чтобы избегать вычитания близких чисел.

Необходимо отметить, что погрешности вычислений зависят от порядка вычислений. Далее будет рассмотрен пример сложения трех чисел.

S=x_1+x_2+x_3,
tilde S_1=(x_1+x_2)(1+delta_1),

( 3 )

tilde S=(tilde S_1+x_3)(1+delta_2)=(x_1+x_2)(1+delta_1)(1+delta_2)+x_3(1+delta_2).

При другой последовательности действий погрешность будет другой:

tilde S_1=(x_3+x_2)(1+delta_1),
tilde S=(x_3+x_2)(1+delta_1)(1+delta_2)+x_1(1+delta_2).

Из (3) видно, что результат выполнения некоторого алгоритма, искаженный погрешностями округлений, совпадает с результатом выполнения того же алгоритма, но с неточными исходными данными. Т.е. можно применять обратный анализ: свести влияние погрешностей округления к возмущению исходных данных. Тогда вместо (3) будет следующая запись:

tilde S=tilde x_1+tilde x_2+tilde x_3,

где tilde x_1=x_1(1+delta_1)(1+delta_2), quad tilde x_2=x_2(1+delta_1)(1+delta_2), quad tilde x_3=x_3(1+delta_2).

При умножении и делении приближенных чисел складываются и вычитаются их относительные погрешности.

S=a_1cdot a_2,
tilde S=a_1cdot a_2(1+delta(a_1))(1+delta(a_2))a_1cdot a_2(1+delta(a_1)+delta(a_2)),

с точностью величин второго порядка малости относительно delta.

Тогда delta(S)=delta(a_1)+delta(a_2).

Если S=frac{a_1}{a_2}, то Delta(S)=frac{a_1(1+delta_1)}{a_2(1+delta_2)}-frac{a_1}{a_2}=frac{a_1(delta_1-delta_2)}{a_2(1+delta_2)}approx frac{a_1}{a_2}(delta_1-delta_2), qquad delta(S)delta_1-delta_2.

При большом числе n арифметических операций можно пользоваться приближенной статистической оценкой погрешности арифметических операций, учитывающей частичную компенсацию погрешностей разных знаков:

delta_Sigma approx delta_{fl} quad sqrt{n},

где delta_Sigma – суммарная погрешность, |delta_{fl}|leepsilon – погрешность выполнения операций с плавающей точкой, epsilon – погрешность представления чисел с плавающей точкой.

Погрешности вычисления функций

Рассмотрим трансформированную погрешность вычисления значений функций.

Абсолютная трансформированная погрешность дифференцируемой функции y=f(x), вызываемая достаточно малой погрешностью аргумента Delta(x), оценивается величиной Delta(y)=|f'(x)|Delta(x).

Если f(x)>0, то delta(y)=frac{|f'(x)|}{f(x)}Delta(x)=left|(ln(f(x)))'right|cdotDelta(x).

Абсолютная погрешность дифференцируемой функции многих аргументов y=f(x_1, x_2, ..., x_n), вызываемая достаточно малыми погрешностями Delta(x_1), Delta(x_2), ..., Delta(x_n) аргументов x_1, x_2, ...,x_n оценивается величиной:

Delta(y)=sumlimits_{i=1}^nleft|frac{partial f}{partial x_i}right|Delta(x_i).

Если f(x_1,x_2,...,x_n)>0, то delta(y)=sumlimits_{i=1}^nfrac{1}{f}cdotleft|frac{partial f}{partial x_i}right|cdotDelta(x_i)=sumlimits_{i=1}^{n}left|frac{partial l_n(f)}{partial x_i}right|Delta(x_i).

Практически важно определить допустимую погрешность аргументов и допустимую погрешность функции (обратная задача). Эта задача имеет однозначное решение только для функций одной переменной y=f(x), если f(x) дифференцируема и f'(x)not=0:

Delta(x)=frac{1}{|f'(x)|}Delta(y).

Для функций многих переменных задача не имеет однозначного решения, необходимо ввести дополнительные ограничения. Например, если функция y=f(x_1,x_2,...,x_n) наиболее критична к погрешности Delta(x_i), то:

Delta(x_i)=frac{Delta(y)}{left|frac{partial f}{partial x_i}right|}qquad (погрешностью других аргументов пренебрегаем).

Если вклад погрешностей всех аргументов примерно одинаков, то применяют принцип равных влияний:

Delta(x_i)=frac{Delta(y)}{nleft|frac{partial f}{partial x_i}right|},qquad i=overline{1,n}.

Числовые примеры

Специфику машинных вычислений можно пояснить на нескольких элементарных примерах.

ПРИМЕР 1. Вычислить все корни уравнения

x^4 - 4x^3 + 8x^2 - 16x + 15.underbrace{99999999}_8 = {(x - 2)}^4 - 10^{- 8} = 0.

Точное решение задачи легко найти:

(x - 2)^2 = pm 10^{- 4},
x_1= 2,01; x_2= 1,99; x_{3,4}= 2 pm 0,01i.

Если компьютер работает при delta _M > 10^{ - 8}, то свободный член в исходном уравнении будет округлен до 16,0 и, с точки зрения представления чисел с плавающей точкой, будет решаться уравнение (x-2)^4= 0, т.е. x_{1,2,3,4} = 2, что, очевидно, неверно. В данном случае малые погрешности в задании свободного члена approx10^{-8} привели, независимо от метода решения, к погрешности в решении approx10^{-2}.

ПРИМЕР 2. Решается задача Коши для обыкновенного дифференциального уравнения 2-го порядка:

u''(t) = u(t), qquad u(0) = 1, qquad u'(0) = - 1.

Общее решение имеет вид:

u(t) = 0,5[u(0) + u'(0)]e^t + 0,5[u(0) - u'(0)]e^{- t}.

При заданных начальных данных точное решение задачи: u(x) = e^{-t}, однако малая погрешность delta в их задании приведет к появлению члена delta e^t, который при больших значениях аргумента может существенно исказить решение.

ПРИМЕР 3. Пусть необходимо найти решение обыкновенного дифференциального уравнения:

stackrel{cdot}{u} = 10u,qquad u = u(t), u(t_0) = u_0,qquad t in [0,1].

Его решение: u(t) = u_0e^{10(t - t_0 )}, однако значение u(t_0) известно лишь приближенно: u(t_0) approx u_0^*, и на самом деле u^*(t) = u_0^*e^{10(t - t_0)}.

Соответственно, разность u* - u будет:

u^* - u = (u_0^* - u_0)e^{10(t - t_0)}.

Предположим, что необходимо гарантировать некоторую заданную точность вычислений epsilon > 0 всюду на отрезке t in [0,1]. Тогда должно выполняться условие:

|{u^*(t) - u(t)}| le varepsilon.

Очевидно, что:

maxlimits_{t in [0,1]} |{u^*(t) - u(t)}| = |{u*(1) - u(1)}| = |{u_0^* - u_0}|e^{10(1 - t_0)}.

Отсюда можно получить требования к точности задания начальных данных delta: qquad|u_0^* - u_0| < delta, qquad delta le varepsilon e^{ - 10} при t_0= 0.

Таким образом, требование к заданию точности начальных данных оказываются в e^{10} раз выше необходимой точности результата решения задачи. Это требование, скорее всего, окажется нереальным.

Решение оказывается очень чувствительным к заданию начальных данных. Такого рода задачи называются плохо обусловленными.

ПРИМЕР 4. Решением системы линейных алгебраических уравнений (СЛАУ):

left{ begin{array}{l} u + 10v = 11,  100u + 1001v = 1101;  end{array} right.

является пара чисел {1, quad 1}.

Изменив правую часть системы на 0,01, получим возмущенную систему:

left{ begin{array}{l} u + 10v = 11.01,  100u + 1001v = 1101;  end{array} right.

с решением {11.01, quad 0.00}, сильно отличающимся от решения невозмущенной системы. Эта система также плохо обусловлена.

ПРИМЕР 5. Рассмотрим методический пример вычислений на модельном компьютере, обеспечивающем точность delta_M = 0,0005. Проанализируем причину происхождения ошибки, например, при вычитании двух чисел, взятых с точностью до третьей цифры после десятичной точки u = 1,001,quad v = 1,002, разность которых составляет Delta = |v_M - u_M| = 0,001.

В памяти машины эти же числа представляются в виде:

u_M = u(1 + delta_M^u), quad v_M = v(1 + delta_M^v), причем mid delta_M^umid le delta_M и mid delta_M^vmid le delta_M.

Тогда:

u_M - u approx udelta_M^u, quad v_M - v approx vdelta_M^v.

Относительная ошибка при вычислении разности u_M - v_M будет равна:

delta = frac{(u_M - v_M) - (u - v)}{(u - v)} = frac{(u_M - u) - (v_M - v)}{(u - v)} = frac{delta_M^u - delta_M^v}{(u - v)}.

Очевидно, что delta = left|{frac{delta_M^u - delta_M^v}{Delta }} right| le frac{2delta_M}{0,001} approx 2000delta_M = 1, т.е. все значащие цифры могут оказаться неверными.

ПРИМЕР 6. Рассмотрим рекуррентное соотношение u_{i+1} = qu_i, quad i ge 0, quad u_0 = a,quad q > 0, quad u_i > 0.

Пусть при выполнении реальных вычислений с конечной длиной мантиссы на i-м шаге возникла погрешность округления, и вычисления проводятся с возмущенным значением u_i^M = u_i + delta_i, тогда вместо u_{i+1} получим u_{i + 1}^M = q(u_i + delta_i) = u_{i + 1} + qdelta_i, т.е. delta_{i + 1} = qdelta_i,quad i = 0,1,ldots .

Следовательно, если |q| > 1, то в процессе вычислений погрешность, связанная с возникшей ошибкой округления, будет возрастать (алгоритм неустойчив). В случае mid qmid le 1 погрешность не возрастает и численный алгоритм устойчив.

Список литературы

  • А.А.Самарский, А.В.Гулин.  Численные методы. Москва «Наука», 1989.
  • http://www.mgopu.ru/PVU/2.1/nummethods/Chapter1.htm
  • http://www.intuit.ru/department/calculate/calcmathbase/1/4.html

См. также

  • Практикум ММП ВМК, 4й курс, осень 2008

Значит, успех метода зависит от того, насколько удачно выбрано . Например, для извлечения квадратного корня, т. е. решения уравнения можно положить или и соответственно написать такие итерационные процессы:

Первый процесс вообще не сходится, а второй сходится при любом сходится он очень быстро, ибо . Второй процесс используют при извлечении корня на клавишных машинах.

Каков практический критерий сходимости, т. е. когда надо прекращать итерации Из (24) видно, что если то итерации попеременно оказываются то с одной, то с другой стороны корня, так что корень заключен в интервале Это надежная, хотя несколько грубая оценка. Но она неприменима при когда итерации сходятся к корню монотонно, т. е. с одной стороны.

Вблизи корня итерации сходятся примерно как геометрическая прогрессия со знаменателем Чтобы сумма дальнейших ее членов не превосходила , должен выполняться критерий сходимости

При выполнении этого условия итерации можно прекращать.

Легко заметить, что выражение в левой части есть поправка Эйткена (4.24). Если последние три простые итерации уточнить процессом Эйткена, то это обычно заметно повышает точность расчета и позволяет ограничиться меньшим числом итераций.

Метод простых итераций и почти все другие итерационные методы имеют важное достоинство: в них не накапливаются ошибки вычислений. Ошибка вычислений эквивалентна некоторому ухудшению очередного приближения. Но это отразится только на числе итераций, а не на точности окончательного результата. Подобные методы устойчивы даже по отношению к грубым ошибкам (сбоям ЭВМ), если только ошибка не выбрасывает очередное приближение за пределы области сходимости.

При обработке эксперимента возникают стохастические задачи, где ошибки определения функции велики и носят случайный характер. Погрешность функции приводит к погрешности корня . Однако поскольку ошибки носят случайный характер, то методами статистики можно определить корень гораздо более точно, чем по указанной оценке. Рассмотрим простые итерации

при дополнительных условиях

которым удовлетворяет, например, последовательность Доказано [47], что при с вероятностью единица. Использование в формуле (27 а) знака производной не означает, что надо вычислять эту производную: достаточно лишь определить ее знак по разности двух значений функции.

Напомним, что стремлением к пределу с вероятностью единицайазывается сходимость к пределу х в подавляющем большинстве случаев (т. е. при разных нулевых приближениях и разных выборах последовательностей ), хотя в отдельных случаях процесс может не сходиться или сходиться к другому пределу. Стохастические процессы сходятся медленно, поэтому к детерминированным задачам их нецелесообразно применять.

Итерационные методы решения системы линейных алгебраических уравнений

В данной статье мы расскажем общие сведения об итерационных методах решения СЛАУ, познакомим с методом Зейделя и Якоби, а также приведем примеры решения систем линейных уравнений при помощи данных методов.

Общие сведения об итерационных методах или методе простой итерации

Метод итерации — это численный и приближенный метод решения СЛАУ.

Суть: нахождение по приближённому значению величины следующего приближения, которое является более точным. Метод позволяет получить значения корней системы с заданной точностью в виде предела последовательности некоторых векторов (итерационный процесс). Характер сходимости и сам факт сходимости метода зависит от выбора начального приближения корня x 0 .

Рассмотрим систему A x = b .

Чтобы применить итерационный метод, необходимо привести систему к эквивалентному виду x = B x + d . Затем выбираем начальное приближение к решению СЛАУ x ( 0 ) = ( x 1 0 , x 2 0 , . . . x m 0 ) и находим последовательность приближений к корню.

Для сходимости итерационного процесса является достаточным заданное условие В 1 . Окончание итерации зависит от того, какой итерационный метод применили.

Метод Якоби

Метод Якоби — один из наиболее простых методов приведения системы матрицы к виду, удобному для итерации: из 1-го уравнения матрицы выражаем неизвестное x 1 , из 2-го выражаем неизвестное x 2 и т.д.

Результатом служит матрица В , в которой на главной диагонали находятся нулевые элементы, а все остальные вычисляются по формуле:

b i j = — a i j / a i i , i , j = 1 , 2 . . . , n

Элементы (компоненты) вектора d вычисляются по следующей формуле:

d i = b i / a i i , i = 1 , 2 , . . . , n

Расчетная формула метода простой итерации:

x ( n + 1 ) = B x ( x ) + d

Матричная запись (координатная):

x i ( n + 1 ) = b i 1 x n 1 + b i 2 x ( n ) 2 + . . . + b

Критерий окончания в методе Якоби:

x ( n + 1 ) — x ( n ) ε 1 , где ε 1 = 1 — B B ε

В случае если B 1 / 2 , то можно применить более простой критерий окончания итераций:

x ( n + 1 ) — x ( n ) ε

Решить СЛАУ методом Якоби:

10 x 1 + x 2 — x 3 = 11 x 1 + 10 x 2 — x 3 = 10 — x 1 + x 2 + 10 x 3 = 10

Необходимо решить систему с показателем точности ε = 10 — 3 .

Приводим СЛАУ к удобному виду для итерации:

x 1 = — 0 , 1 x 2 + 0 , 1 x 3 + 1 , 1 x 2 = — 0 , 1 x 1 + 0 , 1 x 3 + 1 x 3 = 0 , 1 x 1 — 0 , 1 x 2 + 1

Выбираем начальное приближение, например: x ( 0 ) = 1 , 1 1 1 — вектор правой части.

В таком случае, первая итерация имеет следующий внешний вид:

x 1 ( 1 ) = — 0 , 1 × 1 + 0 , 1 × 1 + 1 , 1 = 1 , 1 x 2 ( 1 ) = — 0 , 1 × 1 , 1 + 0 , 1 + 1 = 0 , 99 x 3 ( 1 ) = 0 , 1 × 1 , 1 — 0 , 1 × 1 + 1 = 1 , 01

Аналогичным способом вычисляются приближения к решению:

x ( 2 ) = 1 , 102 0 , 991 1 , 011 , x ( 3 ) = 1 , 102 0 , 9909 1 , 0111 , x ( 4 ) = 1 , 10202 0 , 99091 1 , 01111

Находим норму матрицы В , для этого используем норму B ∞ .

Поскольку сумма модулей элементов в каждой строке равна 0,2, то B ∞ = 0 , 2 1 / 2 , поэтому можно вычислить критерий окончания итерации:

x ( n + 1 ) — x ( n ) ε

Далее вычисляем нормы разности векторов:

x ( 3 ) — x ( 2 ) ∞ = 0 , 002 , x ( 4 ) — x ( 3 ) ∞ = 0 , 00002 .

Поскольку x ( 4 ) — x ( 3 ) ∞ ε , то можно считать, что мы достигли заданной точности на 4-ой итерации.

x 1 = 1 , 102 ; x 2 = 0 , 991 ; x 3 = 1 ,01 1 .

Метод Зейделя

Метод Зейделя — метод является модификацией метода Якоби.

Суть: при вычислении очередного ( n + 1 ) — г о приближения к неизвестному x i при i > 1 используют уже найденные ( n + 1 ) — е приближения к неизвестным x 1 , x 2 , . . . , x i — 1 , а не n — о е приближение, как в методе Якоби.

x i ( n + 1 ) = b i 1 x 1 ( n + 1 ) + b i 2 x 2 ( n + 1 ) + . . . + b i , i — 1 x i — 2 ( n + 1 ) + b i , i + 1 x i + 1 ( n ) +

+ . . . + b i m x m ( n ) + d i

За условия сходимости и критерий окончания итераций можно принять такие же значения, как и в методе Якоби.

Решить СЛАУ методом Зейделя. Пусть матрица системы уравнений А — симметричная и положительно определенная. Следовательно, если выбрать начальное приближение, метод Зейделя сойдется. Дополнительных условий на малость нормы некоторой матрицы не накладывается.

Решим 3 системы уравнений:

2 x 1 + x 2 = 3 x 1 — 2 x 2 = 1 , x 1 + 2 x 2 = 3 2 x 1 — x 2 = 1 , 2 x 1 — 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1

Приведем системы к удобному для итерации виду:

x 1 ( n + 1 ) = — 0 , 5 x 2 ( n ) + 1 , 5 x 2 ( n + 1 ) = 0 , 5 x 1 ( n + 1 ) + 0 , 5 , x 1 ( n + 1 ) = — 2 x 2 ( n ) + 3 x 2 ( n + 1 ) = 2 x 1 ( n + 1 ) — 1 , 2 x 1 — 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1 .

Отличительная особенность, условие сходимости выполнено только для первой системы:

Вычисляем 3 первых приближения к каждому решению:

1-ая система: x ( 0 ) = 1 , 5 — 0 , 5 , x ( 1 ) = 1 , 75 0 , 375 , x ( 2 ) = 1 , 3125 0 , 1563 , x ( 3 ) = 1 , 4219 0 , 2109

Решение: x 1 = 1 , 4 , x 2 = 0 , 2 . Итерационный процесс сходится.

2-ая система: x ( 0 ) = 3 — 1 , x ( 1 ) = 5 9 , x ( 2 ) = — 15 — 31 , x ( 3 ) = 65 129

Итерационный процесс разошелся.

Решение: x 1 = 1 , x 2 = 2

3-я система: x ( 0 ) = 1 , 5 2 , x ( 1 ) = 2 — 6 , x ( 2 ) = 0 2 , x ( 3 ) = 0 2

Итерационный процесс зациклился.

Решение: x 1 = 1 , x 1 = 2

Метод простой итерации

Если А — симметричная и положительно определенная, то СЛАУ приводят к эквивалентному виду:

x = x — τ ( A x — b ) , τ — итерационный параметр.

Расчетная формула имеет следующий внешний вид:

x ( n + 1 ) = x ( n ) — τ ( A x n — b ) .

Здесь B = E — τ A и параметр τ > 0 выбирают таким образом, чтобы по возможности сделать максимальной величину B 2 .

Пусть λ m i n и λ m a x — максимальные и минимальные собственные значения матрицы А .

τ = 2 / ( λ m i n + λ m a x ) — оптимальный выбор параметра. В этом случае B 2 принимает минимальное значение, которое равняется ( λ m i n + λ m a x ) / ( λ m i n — λ m a x ) .

Лекция 5. Итерационные методы решения уравнений и систем

5.1 Простая итерация. Уравнения с одним неизвестным.Пусть задана непрерывная функция f(x) и требуется найти все или некоторые корни уравнения

Эта задача распадается на несколько задач. Во-первых, надо исследовать характер и расположение корней. Во-вторых, найти приближенные значения корней. В-третьих, выбрать из них интересующие нас корни и вычислить их с требуемой точностью.

Первая и вторая задачи решаются аналитическими и графическими методами. Например, многочлен

имеет n комплексных корней, не обязательно различных, и все корни лежат внутри круга

Когда ищутся только действительные корни уравнения, то полезно составить таблицу значений f(x). Если в двух соседних узлах таблицы функция имеет разные знаки, то между этими узлами лежит нечетное число корней уравнения (по меньшей мере один). Если эти узлы близки, то, скорее всего, корень между ними только один. Но выявить по таблице корни четной кратности сложно.

По таблице можно построить график функции y=f(x) и графически найти точки его пересечения с осью абсцисс. Этот способ более нагляден и дает неплохие приближенные значения корней. Во многих задачах такая точность уже достаточна. В технике еще популярны графические методы решения уравнений (номография). Построение графика зачастую позволяет выявить даже корни четной кратности.

Иногда удается заменить уравнение (5.1.1) эквивалентным ему уравнением φ(x) = ψ(x), в котором функции и имеют несложные графики. Например, уравнение x sin x – 1 = 0 удобно преобразить к виду sin x = 1/x. Абсциссы точек сечения этих графиков будут корнями исходного уравнения.

Дихотомия (деление пополам). Пусть мы нашли такие точки , , что , т.е. на отрезке лежит не менее одного корня уравнения. Найдем середину отрезка и вычислим . Из двух половин отрезка выберем ту, для которой , ибо один из корней лежит на этой половине. Затем новый отрезок опять делим пополам и выберем ту половину, на концах которой функция имеет разные знаки, и т.д. (рис. 5.1).

Если требуется найти корень с точность ε, то продолжаем деление пополам до тех пор, пока длина отрезка не станет меньше 2ε. Тогда середина последнего отрезка даст значение корня с требуемой точностью.

Дихотомия проста и очень надежна: к простому корню она сходится для любых непрерывных функций f(x), в том числе недифференцируемых; при этом она устойчива к ошибкам округления. Скорость сходимости невелика: за одну итерацию точность увеличивается примерно вдвое, т.е. уточнение трех цифр требует 10 итераций. Зато точность ответа гарантируется.

Перечислим недостатки метода. Для начала расчета надо найти отрезок, на котором функция меняет знак. Если в этом отрезке несколько корней, то заранее неизвестно, к какому из них сойдется процесс (хотя к одному из них сойдется). Метод неприменим к корням четной кратности. Для корней нечетной высокой кратности он сходится, но менее точен и хуже устойчив к ошибкам округления, возникающим при вычислении f(x). Наконец, на системы уравнений дихотомия не обобщается.

Дихотомия применяется тогда, когда требуется высокая надежность счета, а скорость сходимости малосущественна.

Удаление корней. Один из недостатков дихотомии – сходимость неизвестно к какому корню – имеется почти у всех итерационных методов. Его можно устранить удалением уже найденного корня.

Если есть простой корень уравнения (5.1.1) и f(x) липшиц-непрерывна, то вспомогательная функция непрерывна, причем все нули функции f(x) и g(x) совпадают, за исключением , ибо Если – кратный корень уравнения (5.1.1), то он будет нулем функции кратности на единицу меньше; остальные нули обеих функций по-прежнему будут одинаковы.

Поэтому найденный корень можно удалить, т.е. перейти к функции . Тогда нахождение остальных нулей f(x) сведется к нахождению нулей . Когда мы найдем какой-нибудь корень функции , то этот корень тоже можно удалить, вводя новую вспомогательную функцию

= . Так можно последовательно найти все корни f(x).

Строго говоря, мы находим лишь приближенное значение корня . А функция имеет нуль в точке и полюс в близкой к ней точке (рис. 5.2); только на некотором расстоянии от этого корня она близка к . Чтобы это не сказывалось при нахождении следующих корней, надо вычислять каждый корень с высокой точностью.

Кроме того, в любом методе окончательные итерации вблизи определяемого корня рекомендуется делать не по функциям типа , а по исходной функции . Последние итерации, вычисленные по функции , используются при этом в качестве нулевого приближения. Важно это при нахождении многих корней, ибо чем больше корней удалено, тем меньше нули вспомогательной функции соответствуют остальным нулям функции .

Учитывая эти предосторожности и вычисляя корни с 8-10 верными десятичными цифрами, зачастую можно определить десятка два корней, о расположении которых заранее ничего не известно (в том числе корней высокой кратности p

Метод простых итераций. Заменим уравнение (5.1.1) эквивалентным ему уравнением . Это можно сделать многими способами, например, положив , где – произвольная непрерывная знакопостоянная функция. Выберем некоторое нулевое приближение и вычислим дальнейшие приближения по формулам

(5.1.2)

Очевидно, если стремится к некоторому пределу , то этот предел есть корень исходного уравнения.

Исследуем условия сходимости. Если имеет непрерывную производную, тогда

, (5.1.3)

где точка ξ лежит между точками и . Поэтому если всюду , то отрезки убывают не медленней членов геометрической прогрессии со знаменателем и последовательность сходится при любом нулевом приближении. Если , то в силу непрерывности больше единицы и в некоторой окрестности корня; в этом случае итерации не могут сходится. Если , но вдали от корня , то итерации сходятся, если нулевое приближение выбрано достаточно близко к корню; при произвольном нулевом приближении сходимости может не быть.

Очевидно, что чем меньше q, тем быстрее сходимость. Вблизи корня асимптотическая сходимость определяется величиной и будет особенно быстрой при .

Значит, успех метода зависит от того, насколько удачно выбрано . Например, для извлечения квадратного корня, т.е. решения уравнения , можно положить или и соответственно написать такие итерационные процессы:

Первый процесс вообще не сходится, а второй сходится при любом ; сходится он очень быстро, ибо . Второй процесс используют при извлечении корня на калькуляторах.

Каков практический критерий сходимости, т.е. когда надо прекращать итерации (5.1.2)? Из (5.1.3) видно, что если , то итерации попеременно оказываются то с одной, то с другой стороны корня, так что корень заключен в интервале . Это надежная, хотя несколько грубая оценка. Но она неприменима при , когда итерации сходятся к корню монотонно, т.е. с одной стороны.

Вблизи корня итерации сходятся примерно, как геометрическая прогрессия со знаменателем . Чтобы сумма дальнейших ее членов не превосходила ε, должен выполняться критерий сходимости

. (5.1.5)

При выполнении этого условия итерации можно прекращать.

Метод простых итераций и почти все другие итерационные методы имеют важное достоинство: в них не накапливаются ошибки вычислений. Ошибка вычислений эквивалентна некоторому ухудшению очередного приближения. Но это отразится только на числе итераций, а не на точности окончательного результата. Подобные методы устойчивы даже по отношению к грубым ошибкам (компьютерного сбоя), если только ошибка не выбрасывает очередное приближение за пределы области сходимости.

Метод Ньютона. Он называется также методом касательных или методом линеаризации. Если есть некоторое приближение к корню , а имеет непрерывную производную, то уравнение (5.1.1) можно преобразоватьть следующим образом:

.

Приближенно заменяя на значение в известной точке , получим такой итерационный процесс:

. (5.1.6)

Геометрически этот процесс означает замену на каждой итерации графика касательной к нему (рис. 28).

Метод Ньютона можно рассматривать как частный случай метода простых итераций, если положить . Тогда Если есть р-кратный корень уравнения (5.1.1), то вблизи него ; отсюда нетрудно получить , т.е. . Для простого корня и . Используя результаты п.4, можно сформулировать следующие условия сходимости итерации (28). Если нулевое приближение выбрано достаточно близко к корню, ньютоновские итерации сходятся; скорость сходимости велика для простого корня и соответствует скорости геометрической прогрессии для кратного корня. При произвольном нулевом приближении итерации сходятся, если всюду ; в противном случае сходимость будет не при любом нулевом приближении, а только в некоторой окрестности корня.

Сходимость вблизи любого корня монотонна, что легко видеть на рис. 28; но вдали от корня возможна немонотонность итерации. Отметим, что рис. 28 указывает еще на одно достаточное условие сходимости итерации. Пусть справа от корня на отрезке ; если выбрано также справа от корня на этом отрезке, то итерация (28) сходится, причем монотонно. То же будет, если слева от корня на отрезке , и на этом же отрезке выбрано нулевое приближение. Таким образом, итерации сходятся к корню с той стороны, с которой .

Оценим скорость сходимости вблизи простого корня. По определению простых итераций, . Разлагая правую часть по формуле Тейлора и учитывая равенство , получим

, (5.1.7)
Т а б л и ц а 1
n , метод Ньютона , метод секущих
1,0000 1,0000
2,5000 2,5000
2,0500 1,8571
2,0001 1,9836

т.е. погрешность очередного приближения примерно равна квадрату погрешности предыдущего приближения. Например, если (n-1)-я итерация давала 3 верных знака, то n-я даст примерно 6 верных знаков, а (n+1)-я – примерно 12 знаков. Это иллюстрирует быструю сходимость вблизи корня. Разумеется, вдали от корня подобные соображения неприменимы.

Если вычисляется корень высокой кратности, то в знаменателе формулы (28) становится малой вблизи корня. Чтобы не было потери точности, отношение надо вычислять достаточно аккуратно. К остальным погрешностям расчета метод Ньютона хорошо устойчив.

Для нахождения корней произвольной дифференцируемой функции чаще всего применяют метод Ньютона, особенно если известны разумные начальные приближения для корней.

П р и м е р. Рассмотрим решение уравнения . Тогда общая формула метода Ньютона (5.1.6) принимает вид

.

Мы получили вторую формулу (5.1.4), которая, как отмечалось раньше, позволяет очень быстро находить квадратный корень с помощью только сложения и деления. Для иллюстрации в таблице 16 приведен ход итерации при извлечении квадратного корня из а = 4.Видно, что сходимость очень быстрая; несмотря на неважное нулевое приближение, уже третья итерация дает точность 0,005%. Попутно можно заметить, что вблизи корня итерация сходится с одной стороны, т.е. монотонно, хотя первая итерация дает переброс на другую сторону корня.

Метод секущих. В методе Ньютона требуется вычислять производную функции, что не всегда удобно. Можно заменить производную первой разделенной разностью, найденной по двум последним итерациям, т.е. заменить касательную секущей. Тогда вместо процесса (5.1.6) получим

. (5.1.8)

Для начала процесса надо задать и (рис. 29). Такие процессы, где для вычисления очередного приближения надо знать два предыдущих, называют двухшаговыми.

Эти небольшие изменения сильно влияют на характер итераций. Например, сходимость итераций может быть немонотонной не только вдали от корня, но и в малой окрестности корня. Скорость сходимости также изменяется. Приведенный в таблице 1 для сравнения расчет по методу Ньютона показывает, что метод секущих сходится медленнее, т.к. в методе Ньютона ошибка убывает быстрей. Но в методе Ньютона на каждой итерации надо вычислять и функцию, и производную, а в методе секущих – только функцию.

В знаменателе формулы (5.1.8) стоит разность значений функции; вдали от корня это несущественно, но вблизи корня значения функции малы и очень близки. Возникает потеря значащих цифр, приводящая к «разболтке» счета, что ограничивает точность.

От «разболтки» страхуются так называемым приемом Гарвика. Выбирают не очень малое значение ε, ведут итерации до выполнения условия и затем продолжают расчет до тех пор, пока убывают. Первое же возрастание обычно означает начало «разболтки»; тогда расчет прекращают и последнюю итерацию не используют.

Метод парабол. Метод секущих основан на замене функции ф(х) интерполяционным полиномом первой степени по узлам xn , xn-1 . По трем последним итерациям можно построить полином второй степени, т.е. заменить график функции параболой. Примем этот полином в форме Ньютона:

Приравняв его нулю, получим квадратноеуравнение

Меньший по модулю из двух корней квадратного уравнения определяет новое приближение xn+1=xn+z .

Для начала расчета надо задать три первых приближения х012 (обычно наугад), т.е. процесс является трехшаговым.

Метод парабол построен по образцу методов третьего порядка, однако замена производных разделенными разностями приводит к существенному уменьшению скорости сходимости.

В этом методе «разболтка» счета вблизи корня сказывается еще больше, чем в методе секущих, т.к. в расчете участвуют вторые разности, но все-таки корни можно найти с хорошей точностью; для определения оптимального числа итераций добно пользоваться приемом Гарвика (см. выше).

Метод парабол исключительно эффективен для нахождения всех корней многочлена высокой степени.

5.2. Итерации для линейных систем уравнений (обычный способ). Итерационные методы решения систем линейных уравнений позволяют получить это решение в виде предела последовательности некоторых векторов, построение которых осуществляется посредством единообразного процесса.

Для определенности запишем систему линейных уравнений четвертого порядка в виде + =0, где = (i,y=1,2,3,4), векторы

= , = .

Разрешим первое из уравнений относительно x1 , второе – относительно x2 и т.д. Тогда эту систему можно переписать в виде

= — (i=1, 2, 3, 4; k=1, 2, 3, 4, 5) . (2)

Система (1) является частным случаем записи вида

При этом линейная функция, например, L1(x1, x2, x3, x4) фактически не зависит от x1 согласно (1). Выводы не изменятся, если она будет содержать слагаемое вида α11x1 .То же относится к правым частям остальных уравнений.

Зададим произвольные начальные значения неизвестных , , , . Подставляя эти значения в правые части системы (3), получим первые приближения:

=L1( , , , ) ,

=L4( , , , ).

Полученные первые приближения могут быть таким же образом использованы для получения вторых, третьих и т.д., так что для любого ν можно получить ν-е приближение , , , .

Можно установить условия, которые обеспечат сходимость получающихся приближений к истинному решению системы x1, x2, x3, x4, для чего достаточно отличия от нуля определителя системы detA≠0.

Обозначим через ошибку ν-го приближения для k-го неизвестного

= – xk ,

где xk точное значение неизвестного в решении системы, которое предполагается существующим.

Показано, что для сходимости итерационного процесса к точному решению системы в этом способе достаточно выполнения условия С (ν) =L1 (x1 (ν-1) , x1 (ν-1) ,…),

Иначе говоря, следующее приближение полностью определялось значениями, полученными на предыдущем шаге. Между тем уже при построении первого приближения можно, например, вычисляя значение x2 (1) , воспользоваться для x1 не нулевым приближением x1 (0) , а уже полученным нами первым приближением x1 (1) . Вычисляя χ3 , можно использовать уже не только x1 (1) , но и x2 (1) и т. д.

Таким образом, вместо формул (1) предлагается использовать для отыскания следующего приближения формулы такого вида (мы снова пишем их для конкретного случая системы четырех уравнений с четырьмя неизвестными):

(2)

Это изменение и составляет идею итераций по способу Зейделя.

Естественно ожидать, что итерации по способу Зейделя дадут при том же числе шагов более точные результаты, чем обычные итерации, или, что то же самое, та же точность будет достигнута за меньшее число шагов. Вообще говоря, эти ожидания оправдываются. Однако нужно иметь в виду, что условия сходимости обычного итерационного процесса и итерационного процесса Зейделя различны. Один из этих процессов для данной системы может оказаться расходящимся тогда, когда другой сходится.

Вычислительная схема итерационного процесса Зейделя строится, как и для обычных итераций, на вычислении последовательных поправок. Рассмотрим эту схему, ограничившись, для краткости, системой трех линейных уравнений с тремя неизвестными. Формулы для отыскания следующих приближений через предыдущие будут в этом случае иметь вид

(3)

Формулы для вычисления поправок легко получить, исходя непосредственно из определения и используя (3). Действительно, для ν-ой итерации

δ1 (ν) = ˗ = ( + ) ˗ ( + ) = = + ( ,

δ1 (ν) = + . (4)

Для формула выглядит несколько иначе. Так как = ˗ =

= ( + ) ˗ ( + ),

= + , (5)

= + . (6)

Как и для обычного итерационного процесса, формулы (4)-(6) могут быть использованы для вычисления поправок для всех ν = 1, 2, …. , но не для ν = 0; для формулы должны быть выведены отдельно. Если принять за начальные приближения значения соответствующих свободных членов

= , = = ,

то для первых поправок получим выражения

(7)

где = + и = + .

Расположение вычислений показано в табл. 1. Верхняя часть ее не отличается от обычного способа, а таблица для вычисления поправок имеет уже несколько другой вид: при вычислении очередных поправок в ряде случаев используются уже полученные поправки того же этапа вычислений. Соответствующие места в табл. 1. подчеркнуты.

Вычисления продолжаются до получения достаточно малых поправок. Окончательные значения неизвестных получаются по формулам

+… (𝓀 = 1,2,3).

Таблица 1. Алгоритм способа Зейделя

для системы трех уравнений с тремя неизвестными

Метод итераций

Правила ввода функции

  1. Примеры
    ≡ x^2/(1+x)
    cos 2 (2x+π) ≡ (cos(2*x+pi))^2
    ≡ x+(x-1)^(2/3)

На рис.1а, 1б в окрестности корня |φ′(x)| 1, то процесс итерации может быть расходящимся (см. рис.2).

Достаточные условия сходимости метода итерации

Процесс нахождения нулей функции методом итераций состоит из следующих этапов:

  1. Получить шаблон с омощью этого сервиса.
  2. Уточнить интервалы в ячейках B2 , B3 .
  3. Копировать строки итераций до требуемой точности (столбец D ).

Примечание: столбец A — номер итерации, столбец B — корень уравнения X , столбец C — значение функции F(X) , столбец D — точность eps .

источники:

http://poisk-ru.ru/s48685t6.html

http://math.semestr.ru/optim/iteration_method.php

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

  • 1 Введение
    • 1.1 Постановка вопроса. Виды погрешностей
  • 2 Виды мер точности
  • 3 Предельные погрешности
  • 4 Погрешности округлений при представлении чисел в компьютере
  • 5 Погрешности арифметических операций
  • 6 Погрешности вычисления функций
  • 7 Числовые примеры
  • 8 Список литературы
  • 9 См. также

Введение

Постановка вопроса. Виды погрешностей

Процесс исследования исходного объекта методом математического моделирования и вычислительного эксперимента неизбежно носит приближенный характер, так как на каждом этапе вносятся погрешности. Построение математической модели связано с упрощением исходного явления, недостаточно точным заданием коэффициентов уравнения и других входных данных. По отношению к численному методу, реализующему данную математическую модель, указанные погрешности являются неустранимыми, поскольку они неизбежны в рамках данной модели.

При переходе от математической модели к численному методу возникают погрешности, называемые погрешностями метода. Они связаны с тем, что всякий численный метод воспроизводит исходную математическую модель приближенно. Наиболее типичными погрешностями метода являются погрешность дискретизации и погрешность округления.
При построении численного метода в качестве аналога исходной математической задачи обычно рассматривается её дискретная модель. Разность решений дискретизированной задачи и исходной называется погрешностью дискретизации. Обычно дискретная модель зависит от некоторого параметра (или их множества) дискретизации, при стремлении которого к нулю должна стремиться к нулю и погрешность дискретизации.
Дискретная модель представляет собой систему большого числа алгебраических уравнений. Для её решения используется тот или иной численный алгоритм. Входные данные этой системы, а именно коэффициенты и правые части, задаются в ЭВМ не точно, а с округлением. В процессе работы алгоритма погрешности округления обычно накапливаются, и в результате, решение, полученное на ЭВМ, будет отличаться от точного решения дискретизированной задачи. Результирующая погрешность называется погрешностью округления (вычислительной погрешностью). Величина этой погрешности определяется двумя факторами: точностью представления вещественных чисел в ЭВМ и чувствительностью данного алгоритма к погрешностям округления.

Итак, следует различать погрешности модели, дискретизации и округления. В вопросе преобладания какой-либо погрешности ответ неоднозначен. В общем случае нужно стремиться, чтобы все погрешности имели один и тот же порядок. Например, нецелесообразно пользоваться разностными схемами, имеющими точность 10−6, если коэффициенты исходных уравнений задаются с точностью 10−2.

Виды мер точности

Мерой точности вычислений являются абсолютные и относительные погрешности. Абсолютная погрешность определяется формулой

Delta(tilde a)=|tilde a-a|,

где tilde a – приближение к точному значению a.
Относительная погрешность определяется формулой

delta(tilde a)=frac{|tilde a-a|}{a}.

Относительная погрешность часто выражается в процентах. Абсолютная и относительная погрешности тесно связаны с понятием верных значащих цифр. Значащими цифрами числа называют все цифры в его записи, начиная с первой ненулевой цифры слева. Например, число 0,000129 имеет три значащих цифры. Значащая цифра называется верной, если абсолютная погрешность числа не превышает половины веса разряда, соответствующего этой цифре. Например, tilde a=9348, абсолютная погрешность Delta(tilde a)=15. Записывая число в виде

9348=9cdot10^3+3cdot10^2+4cdot10^1+8cdot10^0,

имеем 0,5cdot10^1<Delta(tilde a)<0,5cdot10^2, следовательно, число имеет две верных значащих цифр (9 и 3).

В общем случае абсолютная погрешность должна удовлетворять следующему неравенству:

Delta(tilde a)<0,5cdot10^{m-n+1} ,

где m — порядок (вес) старшей цифры, n — количество верных значащих цифр.
В рассматриваемом примере Delta(tilde a)le0,5cdot10^{3-2+1}le0,5cdot10^2=50.

Относительная погрешность связана с количеством верных цифр приближенного числа соотношением:

delta(tilde a)lefrac{Delta(tilde a)}{alpha_m}10^mlefrac{10^{m-n+1}}{alpha_m10^m}lefrac{1}{alpha_m10^{n-1}},

где alpha_m — старшая значащая цифра числа.

Для двоичного представления чисел имеем delta(tilde a)le2^{-n}.

Тот факт, что число tilde a является приближенным значением числа a с абсолютной погрешностью Delta(tilde a), записывают в виде

a=tilde apmDelta(tilde a),

причем числа tilde a и Delta(tilde a) записываются с одинаковым количеством знаков после запятой, например, a=2,347pm0,002 или a=2,347pm2cdot10^{-3}.

Запись вида

a=tilde a(1pmdelta(tilde a))

означает, что число tilde a является приближенным значение числа a с относительной погрешностью delta(tilde a).

Так как точное решение задачи как правило неизвестно, то погрешности приходится оценивать через исходные данные и особенности алгоритма. Если оценка может быть вычислена до решения задачи, то она называется априорной. Если оценка вычисляется после получения приближенного решения задачи, то она называется апостериорной.

Очень часто степень точности решения задачи характеризуется некоторыми косвенными вспомогательными величинами. Например точность решения системы алгебраических уравнений

AX=F

характеризуется невязкой

R=F-Atilde X,

где tilde X — приближенное решение системы.
Причём невязка достаточно сложным образом связана с погрешностью решения Delta(X)=tilde X-X, причём если невязка мала, то погрешность может быть значительной.

Предельные погрешности

Пусть искомая величина a является функцией параметров t_1, ldots , t_n in Omega, qquad a* — приближенное значение a. Тогда предельной абсолютной погрешностью называется величина

D(a^*) = suplimits_{(t_1, ldots ,t_n) in Omega } left|{a(t_1, ldots ,t_n) - a^*}right| ,

Предельной относительной погрешностью называется величина D(a*)/| a*|.

Пусть left|{t_j - t_j^*}right| le Delta (t_j^* ), qquad j = 1 div n — приближенное значение a^* = a(t_1^*, ldots ,t_n^* ). Предполагаем, что a — непрерывно дифференцируемая функция своих аргументов. Тогда, по формуле Лагранжа,

a(t_1, ldots ,t_n) - a^* = sumlimits_{j = 1}^n gamma_j (alpha )(t_j - t_j^*),

где gamma_j (alpha ) = a^{prime}_{t_j}(t_1^* + alpha (t_1 - t_1^*), ldots ,t_n^* + alpha (t_n - t_n^*)), qquad 0 le alpha le 1.

Отсюда

left|{a(t_1, ldots ,t_n) - a^*}right| le D_1 (a^*) = sumlimits_{j = 1}^n b_j Delta (t_j^*),

где b_j = suplimits_Omega left|{a^{prime}_{t_j}(t_1, ldots ,t_n)}right|.

Можно показать, что при малых rho = sqrt{{(Delta (t_1^* ))}^2 + ldots + {(Delta (t_n^* ))}^2 } эта оценка не может быть существенно улучшена. На практике иногда пользуются грубой (линейной) оценкой

left|{a(t_1, ldots ,t_n) - a^*}right| le D_2 (a^*),

где D_2 (a^*) = sumlimits_{j = 1} left|{gamma_j (0)}right| Delta (t^*).

Несложно показать, что:

  1. Delta ( pm t_1^* pm , ldots , pm t_n^*) = Delta (t_1^* ) + ldots + Delta (t_n^* ) — предельная погрешность суммы или разности равна сумме предельных погрешностей.
  2. delta (t_1^* cdots t_m^* cdot d_1^{* - 1} cdots d_m^{* - 1} ) = delta (t_1^* ) + ldots + delta (t_m^*) + delta (d_1^*) + ldots + delta (d_n^*) — предельная относительная погрешность произведения или частного приближенного равна сумме предельных относительных погрешностей.

Погрешности округлений при представлении чисел в компьютере

Одним из основных источников вычислительных погрешностей является приближенное представление чисел в компьютере, обусловленное конечностью разрядной сетки (см. Международный стандарт представления чисел с плавающей точкой в ЭВМ). Число a, не представимое в компьютере, подвергается округлению, т. е. заменяется близким числом tilde a, представимым в компьютере точно.
Найдем границу относительной погрешности представления числа с плавающей точкой. Допустим, что применяется простейшее округление – отбрасывание всех разрядов числа, выходящих за пределы разрядной сетки. Система счисления – двоичная. Пусть надо записать число, представляющее бесконечную двоичную дробь

a=underbrace{pm2^p}_{order}underbrace{left(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}+frac{a_{t+1}}{2^{t+1}}+dotsright)}_{mantissa},

где a_j={01, qquad (j=1,2,...) — цифры мантиссы.
Пусть под запись мантиссы отводится t двоичных разрядов. Отбрасывая лишние разряды, получим округлённое число

tilde a=pm2^pleft(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}right).

Абсолютная погрешность округления в этом случае равна

a-tilde a=pm2^pleft(frac{a_{t+1}}{2^{t+1}}+frac{a_{t+2}}{2^{t+2}}+dotsright).

Наибольшая погрешность будет в случае a_{t+1}=1, qquad a_{t+2}=1,, тогда

|a-tilde a|lepm2^pfrac{1}{2^{t+1}}underbrace{left(1+frac{1}{2}+frac{1}{2^2}+dotsright)}_{=2}=2^{p-t}.

Т.к. |M|ge0,5, где M — мантисса числа a, то всегда a_1=1. Тогда |a|ge2^pcdot2^{-1}=2^{p-1} и относительная погрешность равна frac{|a-tilde a|}{|a|}le2^{-t+1}. Практически применяют более точные методы округления и погрешность представления чисел равна

( 1 )

frac{|a-tilde a|}{|a|}le2^{-t},

т.е. точность представления чисел определяется разрядностью мантиссы t.
Тогда приближенно представленное в компьютере число можно записать в виде tilde a=a(1pmepsilon), где |epsilon|le2^{-t}«машинный эпсилон» – относительная погрешность представления чисел.

Погрешности арифметических операций

При вычислениях с плавающей точкой операция округления может потребоваться после выполнения любой из арифметических операций. Так умножение или деление двух чисел сводится к умножению или делению мантисс. Так как в общем случае количество разрядов мантисс произведений и частных больше допустимой разрядности мантиссы, то требуется округление мантиссы результатов. При сложении или вычитании чисел с плавающей точкой операнды должны быть предварительно приведены к одному порядку, что осуществляется сдвигом вправо мантиссы числа, имеющего меньший порядок, и увеличением в соответствующее число раз порядка этого числа. Сдвиг мантиссы вправо может привести к потере младших разрядов мантиссы, т.е. появляется погрешность округления.

Округленное в системе с плавающей точкой число, соответствующее точному числу x, обозначается через fl(x) (от англ. floating – плавающий). Выполнение каждой арифметической операции вносит относительную погрешность, не большую, чем погрешность представления чисел с плавающей точкой (1). Верна следующая запись:

fl(abox b)=abox b(1pmepsilon),

где box — любая из арифметических операций, |epsilon|le2^{-t}.

Рассмотрим трансформированные погрешности арифметических операций. Арифметические операции проводятся над приближенными числами, ошибка арифметических операций не учитывается (эту ошибку легко учесть, прибавив ошибку округления соответствующей операции к вычисленной ошибке).

Рассмотрим сложение и вычитание приближенных чисел. Абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей слагаемых.

Если сумма точных чисел равна

S=a_1+a_2+dots+a_n,

сумма приближенных чисел равна

tilde S=a_1+Delta(a_1)+a_2+Delta(a_2)+dots+a_n+Delta(a_n),

где Delta(a_i), qquad i=1,2,...,n— абсолютные погрешности представления чисел.

Тогда абсолютная погрешность суммы равна

Delta(S)=Delta(a_1)+Delta(a_2)+dots+Delta(a_n).

Относительная погрешность суммы нескольких чисел равна

( 2 )

delta(S)=frac{Delta(S)}{S}=frac{a_1}{S}left(frac{Delta(a_1)}{a_1}right)+frac{a_2}{S}left(frac{Delta(a_2)}{a_2}right)+dots=frac{a_1delta(a_1)+a_2delta(a_2)+dots}{S},

где delta(a_i), qquad i=1,2,...,n — относительные погрешности представления чисел.

Из (2) следует, что относительная погрешность суммы нескольких чисел одного и того же знака заключена между наименьшей и наибольшей из относительных погрешностей слагаемых:

min quad delta(a_k)ledelta(S)le max quad delta(a_k), qquad k=1,2,...,n, quad a_k>0.

При сложении чисел разного знака или вычитании чисел одного знака относительная погрешность может быть очень большой (если числа близки между собой). Так как даже при малых Delta(a_i) величина S может быть очень малой. Поэтому вычислительные алгоритмы необходимо строить таким образом, чтобы избегать вычитания близких чисел.

Необходимо отметить, что погрешности вычислений зависят от порядка вычислений. Далее будет рассмотрен пример сложения трех чисел.

S=x_1+x_2+x_3,
tilde S_1=(x_1+x_2)(1+delta_1),

( 3 )

tilde S=(tilde S_1+x_3)(1+delta_2)=(x_1+x_2)(1+delta_1)(1+delta_2)+x_3(1+delta_2).

При другой последовательности действий погрешность будет другой:

tilde S_1=(x_3+x_2)(1+delta_1),
tilde S=(x_3+x_2)(1+delta_1)(1+delta_2)+x_1(1+delta_2).

Из (3) видно, что результат выполнения некоторого алгоритма, искаженный погрешностями округлений, совпадает с результатом выполнения того же алгоритма, но с неточными исходными данными. Т.е. можно применять обратный анализ: свести влияние погрешностей округления к возмущению исходных данных. Тогда вместо (3) будет следующая запись:

tilde S=tilde x_1+tilde x_2+tilde x_3,

где tilde x_1=x_1(1+delta_1)(1+delta_2), quad tilde x_2=x_2(1+delta_1)(1+delta_2), quad tilde x_3=x_3(1+delta_2).

При умножении и делении приближенных чисел складываются и вычитаются их относительные погрешности.

S=a_1cdot a_2,
tilde S=a_1cdot a_2(1+delta(a_1))(1+delta(a_2))a_1cdot a_2(1+delta(a_1)+delta(a_2)),

с точностью величин второго порядка малости относительно delta.

Тогда delta(S)=delta(a_1)+delta(a_2).

Если S=frac{a_1}{a_2}, то Delta(S)=frac{a_1(1+delta_1)}{a_2(1+delta_2)}-frac{a_1}{a_2}=frac{a_1(delta_1-delta_2)}{a_2(1+delta_2)}approx frac{a_1}{a_2}(delta_1-delta_2), qquad delta(S)delta_1-delta_2.

При большом числе n арифметических операций можно пользоваться приближенной статистической оценкой погрешности арифметических операций, учитывающей частичную компенсацию погрешностей разных знаков:

delta_Sigma approx delta_{fl} quad sqrt{n},

где delta_Sigma – суммарная погрешность, |delta_{fl}|leepsilon – погрешность выполнения операций с плавающей точкой, epsilon – погрешность представления чисел с плавающей точкой.

Погрешности вычисления функций

Рассмотрим трансформированную погрешность вычисления значений функций.

Абсолютная трансформированная погрешность дифференцируемой функции y=f(x), вызываемая достаточно малой погрешностью аргумента Delta(x), оценивается величиной Delta(y)=|f'(x)|Delta(x).

Если f(x)>0, то delta(y)=frac{|f'(x)|}{f(x)}Delta(x)=left|(ln(f(x)))'right|cdotDelta(x).

Абсолютная погрешность дифференцируемой функции многих аргументов y=f(x_1, x_2, ..., x_n), вызываемая достаточно малыми погрешностями Delta(x_1), Delta(x_2), ..., Delta(x_n) аргументов x_1, x_2, ...,x_n оценивается величиной:

Delta(y)=sumlimits_{i=1}^nleft|frac{partial f}{partial x_i}right|Delta(x_i).

Если f(x_1,x_2,...,x_n)>0, то delta(y)=sumlimits_{i=1}^nfrac{1}{f}cdotleft|frac{partial f}{partial x_i}right|cdotDelta(x_i)=sumlimits_{i=1}^{n}left|frac{partial l_n(f)}{partial x_i}right|Delta(x_i).

Практически важно определить допустимую погрешность аргументов и допустимую погрешность функции (обратная задача). Эта задача имеет однозначное решение только для функций одной переменной y=f(x), если f(x) дифференцируема и f'(x)not=0:

Delta(x)=frac{1}{|f'(x)|}Delta(y).

Для функций многих переменных задача не имеет однозначного решения, необходимо ввести дополнительные ограничения. Например, если функция y=f(x_1,x_2,...,x_n) наиболее критична к погрешности Delta(x_i), то:

Delta(x_i)=frac{Delta(y)}{left|frac{partial f}{partial x_i}right|}qquad (погрешностью других аргументов пренебрегаем).

Если вклад погрешностей всех аргументов примерно одинаков, то применяют принцип равных влияний:

Delta(x_i)=frac{Delta(y)}{nleft|frac{partial f}{partial x_i}right|},qquad i=overline{1,n}.

Числовые примеры

Специфику машинных вычислений можно пояснить на нескольких элементарных примерах.

ПРИМЕР 1. Вычислить все корни уравнения

x^4 - 4x^3 + 8x^2 - 16x + 15.underbrace{99999999}_8 = {(x - 2)}^4 - 10^{- 8} = 0.

Точное решение задачи легко найти:

(x - 2)^2 = pm 10^{- 4},
x_1= 2,01; x_2= 1,99; x_{3,4}= 2 pm 0,01i.

Если компьютер работает при delta _M > 10^{ - 8}, то свободный член в исходном уравнении будет округлен до 16,0 и, с точки зрения представления чисел с плавающей точкой, будет решаться уравнение (x-2)^4= 0, т.е. x_{1,2,3,4} = 2, что, очевидно, неверно. В данном случае малые погрешности в задании свободного члена approx10^{-8} привели, независимо от метода решения, к погрешности в решении approx10^{-2}.

ПРИМЕР 2. Решается задача Коши для обыкновенного дифференциального уравнения 2-го порядка:

u''(t) = u(t), qquad u(0) = 1, qquad u'(0) = - 1.

Общее решение имеет вид:

u(t) = 0,5[u(0) + u'(0)]e^t + 0,5[u(0) - u'(0)]e^{- t}.

При заданных начальных данных точное решение задачи: u(x) = e^{-t}, однако малая погрешность delta в их задании приведет к появлению члена delta e^t, который при больших значениях аргумента может существенно исказить решение.

ПРИМЕР 3. Пусть необходимо найти решение обыкновенного дифференциального уравнения:

stackrel{cdot}{u} = 10u,qquad u = u(t), u(t_0) = u_0,qquad t in [0,1].

Его решение: u(t) = u_0e^{10(t - t_0 )}, однако значение u(t_0) известно лишь приближенно: u(t_0) approx u_0^*, и на самом деле u^*(t) = u_0^*e^{10(t - t_0)}.

Соответственно, разность u* - u будет:

u^* - u = (u_0^* - u_0)e^{10(t - t_0)}.

Предположим, что необходимо гарантировать некоторую заданную точность вычислений epsilon > 0 всюду на отрезке t in [0,1]. Тогда должно выполняться условие:

|{u^*(t) - u(t)}| le varepsilon.

Очевидно, что:

maxlimits_{t in [0,1]} |{u^*(t) - u(t)}| = |{u*(1) - u(1)}| = |{u_0^* - u_0}|e^{10(1 - t_0)}.

Отсюда можно получить требования к точности задания начальных данных delta: qquad|u_0^* - u_0| < delta, qquad delta le varepsilon e^{ - 10} при t_0= 0.

Таким образом, требование к заданию точности начальных данных оказываются в e^{10} раз выше необходимой точности результата решения задачи. Это требование, скорее всего, окажется нереальным.

Решение оказывается очень чувствительным к заданию начальных данных. Такого рода задачи называются плохо обусловленными.

ПРИМЕР 4. Решением системы линейных алгебраических уравнений (СЛАУ):

left{ begin{array}{l} u + 10v = 11,  100u + 1001v = 1101;  end{array} right.

является пара чисел {1, quad 1}.

Изменив правую часть системы на 0,01, получим возмущенную систему:

left{ begin{array}{l} u + 10v = 11.01,  100u + 1001v = 1101;  end{array} right.

с решением {11.01, quad 0.00}, сильно отличающимся от решения невозмущенной системы. Эта система также плохо обусловлена.

ПРИМЕР 5. Рассмотрим методический пример вычислений на модельном компьютере, обеспечивающем точность delta_M = 0,0005. Проанализируем причину происхождения ошибки, например, при вычитании двух чисел, взятых с точностью до третьей цифры после десятичной точки u = 1,001,quad v = 1,002, разность которых составляет Delta = |v_M - u_M| = 0,001.

В памяти машины эти же числа представляются в виде:

u_M = u(1 + delta_M^u), quad v_M = v(1 + delta_M^v), причем mid delta_M^umid le delta_M и mid delta_M^vmid le delta_M.

Тогда:

u_M - u approx udelta_M^u, quad v_M - v approx vdelta_M^v.

Относительная ошибка при вычислении разности u_M - v_M будет равна:

delta = frac{(u_M - v_M) - (u - v)}{(u - v)} = frac{(u_M - u) - (v_M - v)}{(u - v)} = frac{delta_M^u - delta_M^v}{(u - v)}.

Очевидно, что delta = left|{frac{delta_M^u - delta_M^v}{Delta }} right| le frac{2delta_M}{0,001} approx 2000delta_M = 1, т.е. все значащие цифры могут оказаться неверными.

ПРИМЕР 6. Рассмотрим рекуррентное соотношение u_{i+1} = qu_i, quad i ge 0, quad u_0 = a,quad q > 0, quad u_i > 0.

Пусть при выполнении реальных вычислений с конечной длиной мантиссы на i-м шаге возникла погрешность округления, и вычисления проводятся с возмущенным значением u_i^M = u_i + delta_i, тогда вместо u_{i+1} получим u_{i + 1}^M = q(u_i + delta_i) = u_{i + 1} + qdelta_i, т.е. delta_{i + 1} = qdelta_i,quad i = 0,1,ldots .

Следовательно, если |q| > 1, то в процессе вычислений погрешность, связанная с возникшей ошибкой округления, будет возрастать (алгоритм неустойчив). В случае mid qmid le 1 погрешность не возрастает и численный алгоритм устойчив.

Список литературы

  • А.А.Самарский, А.В.Гулин.  Численные методы. Москва «Наука», 1989.
  • http://www.mgopu.ru/PVU/2.1/nummethods/Chapter1.htm
  • http://www.intuit.ru/department/calculate/calcmathbase/1/4.html

См. также

  • Практикум ММП ВМК, 4й курс, осень 2008

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

  • 1 Введение
    • 1.1 Постановка вопроса. Виды погрешностей
  • 2 Виды мер точности
  • 3 Предельные погрешности
  • 4 Погрешности округлений при представлении чисел в компьютере
  • 5 Погрешности арифметических операций
  • 6 Погрешности вычисления функций
  • 7 Числовые примеры
  • 8 Список литературы
  • 9 См. также

Введение

Постановка вопроса. Виды погрешностей

Процесс исследования исходного объекта методом математического моделирования и вычислительного эксперимента неизбежно носит приближенный характер, так как на каждом этапе вносятся погрешности. Построение математической модели связано с упрощением исходного явления, недостаточно точным заданием коэффициентов уравнения и других входных данных. По отношению к численному методу, реализующему данную математическую модель, указанные погрешности являются неустранимыми, поскольку они неизбежны в рамках данной модели.

При переходе от математической модели к численному методу возникают погрешности, называемые погрешностями метода. Они связаны с тем, что всякий численный метод воспроизводит исходную математическую модель приближенно. Наиболее типичными погрешностями метода являются погрешность дискретизации и погрешность округления.
При построении численного метода в качестве аналога исходной математической задачи обычно рассматривается её дискретная модель. Разность решений дискретизированной задачи и исходной называется погрешностью дискретизации. Обычно дискретная модель зависит от некоторого параметра (или их множества) дискретизации, при стремлении которого к нулю должна стремиться к нулю и погрешность дискретизации.
Дискретная модель представляет собой систему большого числа алгебраических уравнений. Для её решения используется тот или иной численный алгоритм. Входные данные этой системы, а именно коэффициенты и правые части, задаются в ЭВМ не точно, а с округлением. В процессе работы алгоритма погрешности округления обычно накапливаются, и в результате, решение, полученное на ЭВМ, будет отличаться от точного решения дискретизированной задачи. Результирующая погрешность называется погрешностью округления (вычислительной погрешностью). Величина этой погрешности определяется двумя факторами: точностью представления вещественных чисел в ЭВМ и чувствительностью данного алгоритма к погрешностям округления.

Итак, следует различать погрешности модели, дискретизации и округления. В вопросе преобладания какой-либо погрешности ответ неоднозначен. В общем случае нужно стремиться, чтобы все погрешности имели один и тот же порядок. Например, нецелесообразно пользоваться разностными схемами, имеющими точность 10−6, если коэффициенты исходных уравнений задаются с точностью 10−2.

Виды мер точности

Мерой точности вычислений являются абсолютные и относительные погрешности. Абсолютная погрешность определяется формулой

Delta(tilde a)=|tilde a-a|,

где tilde a – приближение к точному значению a.
Относительная погрешность определяется формулой

delta(tilde a)=frac{|tilde a-a|}{a}.

Относительная погрешность часто выражается в процентах. Абсолютная и относительная погрешности тесно связаны с понятием верных значащих цифр. Значащими цифрами числа называют все цифры в его записи, начиная с первой ненулевой цифры слева. Например, число 0,000129 имеет три значащих цифры. Значащая цифра называется верной, если абсолютная погрешность числа не превышает половины веса разряда, соответствующего этой цифре. Например, tilde a=9348, абсолютная погрешность Delta(tilde a)=15. Записывая число в виде

9348=9cdot10^3+3cdot10^2+4cdot10^1+8cdot10^0,

имеем 0,5cdot10^1<Delta(tilde a)<0,5cdot10^2, следовательно, число имеет две верных значащих цифр (9 и 3).

В общем случае абсолютная погрешность должна удовлетворять следующему неравенству:

Delta(tilde a)<0,5cdot10^{m-n+1} ,

где m — порядок (вес) старшей цифры, n — количество верных значащих цифр.
В рассматриваемом примере Delta(tilde a)le0,5cdot10^{3-2+1}le0,5cdot10^2=50.

Относительная погрешность связана с количеством верных цифр приближенного числа соотношением:

delta(tilde a)lefrac{Delta(tilde a)}{alpha_m}10^mlefrac{10^{m-n+1}}{alpha_m10^m}lefrac{1}{alpha_m10^{n-1}},

где alpha_m — старшая значащая цифра числа.

Для двоичного представления чисел имеем delta(tilde a)le2^{-n}.

Тот факт, что число tilde a является приближенным значением числа a с абсолютной погрешностью Delta(tilde a), записывают в виде

a=tilde apmDelta(tilde a),

причем числа tilde a и Delta(tilde a) записываются с одинаковым количеством знаков после запятой, например, a=2,347pm0,002 или a=2,347pm2cdot10^{-3}.

Запись вида

a=tilde a(1pmdelta(tilde a))

означает, что число tilde a является приближенным значение числа a с относительной погрешностью delta(tilde a).

Так как точное решение задачи как правило неизвестно, то погрешности приходится оценивать через исходные данные и особенности алгоритма. Если оценка может быть вычислена до решения задачи, то она называется априорной. Если оценка вычисляется после получения приближенного решения задачи, то она называется апостериорной.

Очень часто степень точности решения задачи характеризуется некоторыми косвенными вспомогательными величинами. Например точность решения системы алгебраических уравнений

AX=F

характеризуется невязкой

R=F-Atilde X,

где tilde X — приближенное решение системы.
Причём невязка достаточно сложным образом связана с погрешностью решения Delta(X)=tilde X-X, причём если невязка мала, то погрешность может быть значительной.

Предельные погрешности

Пусть искомая величина a является функцией параметров t_1, ldots , t_n in Omega, qquad a* — приближенное значение a. Тогда предельной абсолютной погрешностью называется величина

D(a^*) = suplimits_{(t_1, ldots ,t_n) in Omega } left|{a(t_1, ldots ,t_n) - a^*}right| ,

Предельной относительной погрешностью называется величина D(a*)/| a*|.

Пусть  left|{t_j - t_j^*}right| le Delta (t_j^* ), qquad j = 1 div n — приближенное значение a^* = a(t_1^*, ldots ,t_n^* ). Предполагаем, что a — непрерывно дифференцируемая функция своих аргументов. Тогда, по формуле Лагранжа,

a(t_1, ldots ,t_n) - a^* = sumlimits_{j = 1}^n gamma_j (alpha )(t_j - t_j^*),

где gamma_j (alpha ) = a^{prime}_{t_j}(t_1^* + alpha (t_1 - t_1^*), ldots ,t_n^* + alpha (t_n - t_n^*)), qquad 0 le alpha le 1 .

Отсюда

left|{a(t_1, ldots ,t_n) - a^*}right| le D_1 (a^*) = sumlimits_{j = 1}^n b_j Delta (t_j^*),

где b_j = suplimits_Omega left|{a^{prime}_{t_j}(t_1, ldots ,t_n)}right|.

Можно показать, что при малых rho = sqrt{{(Delta (t_1^* ))}^2 + ldots + {(Delta (t_n^* ))}^2 } эта оценка не может быть существенно улучшена. На практике иногда пользуются грубой (линейной) оценкой

left|{a(t_1, ldots ,t_n) - a^*}right| le D_2 (a^*),

где D_2 (a^*) = sumlimits_{j = 1} left|{gamma_j (0)}right| Delta (t^*) .

Несложно показать, что:

  1. Delta ( pm t_1^* pm , ldots , pm t_n^*) = Delta (t_1^* ) + ldots + Delta (t_n^* ) — предельная погрешность суммы или разности равна сумме предельных погрешностей.
  2. delta (t_1^* cdots t_m^* cdot d_1^{* - 1} cdots d_m^{* - 1} ) = delta (t_1^* ) + ldots + delta (t_m^*) + delta (d_1^*) + ldots + delta (d_n^*) — предельная относительная погрешность произведения или частного приближенного равна сумме предельных относительных погрешностей.

Погрешности округлений при представлении чисел в компьютере

Одним из основных источников вычислительных погрешностей является приближенное представление чисел в компьютере, обусловленное конечностью разрядной сетки (см. Международный стандарт представления чисел с плавающей точкой в ЭВМ). Число a, не представимое в компьютере, подвергается округлению, т. е. заменяется близким числом tilde a, представимым в компьютере точно.
Найдем границу относительной погрешности представления числа с плавающей точкой. Допустим, что применяется простейшее округление – отбрасывание всех разрядов числа, выходящих за пределы разрядной сетки. Система счисления – двоичная. Пусть надо записать число, представляющее бесконечную двоичную дробь

a=underbrace{pm2^p}_{order}underbrace{left(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}+frac{a_{t+1}}{2^{t+1}}+dotsright)}_{mantissa},

где a_j={01, qquad (j=1,2,...) — цифры мантиссы.
Пусть под запись мантиссы отводится t двоичных разрядов. Отбрасывая лишние разряды, получим округлённое число

tilde a=pm2^pleft(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}right).

Абсолютная погрешность округления в этом случае равна

a-tilde a=pm2^pleft(frac{a_{t+1}}{2^{t+1}}+frac{a_{t+2}}{2^{t+2}}+dotsright).

Наибольшая погрешность будет в случае a_{t+1}=1, qquad a_{t+2}=1,, тогда

|a-tilde a|lepm2^pfrac{1}{2^{t+1}}underbrace{left(1+frac{1}{2}+frac{1}{2^2}+dotsright)}_{=2}=2^{p-t}.

Т.к. |M|ge0,5, где M — мантисса числа a, то всегда a_1=1. Тогда |a|ge2^pcdot2^{-1}=2^{p-1} и относительная погрешность равна frac{|a-tilde a|}{|a|}le2^{-t+1}. Практически применяют более точные методы округления и погрешность представления чисел равна

( 1 )

frac{|a-tilde a|}{|a|}le2^{-t},

т.е. точность представления чисел определяется разрядностью мантиссы t.
Тогда приближенно представленное в компьютере число можно записать в виде tilde a=a(1pmepsilon), где |epsilon|le2^{-t}«машинный эпсилон» – относительная погрешность представления чисел.

Погрешности арифметических операций

При вычислениях с плавающей точкой операция округления может потребоваться после выполнения любой из арифметических операций. Так умножение или деление двух чисел сводится к умножению или делению мантисс. Так как в общем случае количество разрядов мантисс произведений и частных больше допустимой разрядности мантиссы, то требуется округление мантиссы результатов. При сложении или вычитании чисел с плавающей точкой операнды должны быть предварительно приведены к одному порядку, что осуществляется сдвигом вправо мантиссы числа, имеющего меньший порядок, и увеличением в соответствующее число раз порядка этого числа. Сдвиг мантиссы вправо может привести к потере младших разрядов мантиссы, т.е. появляется погрешность округления.

Округленное в системе с плавающей точкой число, соответствующее точному числу x, обозначается через fl(x) (от англ. floating – плавающий). Выполнение каждой арифметической операции вносит относительную погрешность, не большую, чем погрешность представления чисел с плавающей точкой (1). Верна следующая запись:

fl(abox b)=abox b(1pmepsilon),

где box — любая из арифметических операций, |epsilon|le2^{-t}.

Рассмотрим трансформированные погрешности арифметических операций. Арифметические операции проводятся над приближенными числами, ошибка арифметических операций не учитывается (эту ошибку легко учесть, прибавив ошибку округления соответствующей операции к вычисленной ошибке).

Рассмотрим сложение и вычитание приближенных чисел. Абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей слагаемых.

Если сумма точных чисел равна

S=a_1+a_2+dots+a_n,

сумма приближенных чисел равна

tilde S=a_1+Delta(a_1)+a_2+Delta(a_2)+dots+a_n+Delta(a_n),

где Delta(a_i), qquad i=1,2,...,n— абсолютные погрешности представления чисел.

Тогда абсолютная погрешность суммы равна

Delta(S)=Delta(a_1)+Delta(a_2)+dots+Delta(a_n).

Относительная погрешность суммы нескольких чисел равна

( 2 )

delta(S)=frac{Delta(S)}{S}=frac{a_1}{S}left(frac{Delta(a_1)}{a_1}right)+frac{a_2}{S}left(frac{Delta(a_2)}{a_2}right)+dots=frac{a_1delta(a_1)+a_2delta(a_2)+dots}{S},

где delta(a_i), qquad i=1,2,...,n — относительные погрешности представления чисел.

Из (2) следует, что относительная погрешность суммы нескольких чисел одного и того же знака заключена между наименьшей и наибольшей из относительных погрешностей слагаемых:

min quad delta(a_k)ledelta(S)le max quad delta(a_k), qquad k=1,2,...,n, quad a_k>0.

При сложении чисел разного знака или вычитании чисел одного знака относительная погрешность может быть очень большой (если числа близки между собой). Так как даже при малых Delta(a_i) величина S может быть очень малой. Поэтому вычислительные алгоритмы необходимо строить таким образом, чтобы избегать вычитания близких чисел.

Необходимо отметить, что погрешности вычислений зависят от порядка вычислений. Далее будет рассмотрен пример сложения трех чисел.

S=x_1+x_2+x_3,
tilde S_1=(x_1+x_2)(1+delta_1),

( 3 )

tilde S=(tilde S_1+x_3)(1+delta_2)=(x_1+x_2)(1+delta_1)(1+delta_2)+x_3(1+delta_2).

При другой последовательности действий погрешность будет другой:

tilde S_1=(x_3+x_2)(1+delta_1),
tilde S=(x_3+x_2)(1+delta_1)(1+delta_2)+x_1(1+delta_2).

Из (3) видно, что результат выполнения некоторого алгоритма, искаженный погрешностями округлений, совпадает с результатом выполнения того же алгоритма, но с неточными исходными данными. Т.е. можно применять обратный анализ: свести влияние погрешностей округления к возмущению исходных данных. Тогда вместо (3) будет следующая запись:

tilde S=tilde x_1+tilde x_2+tilde x_3,

где tilde x_1=x_1(1+delta_1)(1+delta_2), quad tilde x_2=x_2(1+delta_1)(1+delta_2), quad tilde x_3=x_3(1+delta_2).

При умножении и делении приближенных чисел складываются и вычитаются их относительные погрешности.

S=a_1cdot a_2,
tilde S=a_1cdot a_2(1+delta(a_1))(1+delta(a_2))a_1cdot a_2(1+delta(a_1)+delta(a_2)),

с точностью величин второго порядка малости относительно delta.

Тогда delta(S)=delta(a_1)+delta(a_2).

Если S=frac{a_1}{a_2}, то Delta(S)=frac{a_1(1+delta_1)}{a_2(1+delta_2)}-frac{a_1}{a_2}=frac{a_1(delta_1-delta_2)}{a_2(1+delta_2)}approx frac{a_1}{a_2}(delta_1-delta_2), qquad delta(S)  delta_1-delta_2.

При большом числе n арифметических операций можно пользоваться приближенной статистической оценкой погрешности арифметических операций, учитывающей частичную компенсацию погрешностей разных знаков:

delta_Sigma approx delta_{fl} quad sqrt{n},

где delta_Sigma – суммарная погрешность, |delta_{fl}|leepsilon – погрешность выполнения операций с плавающей точкой, epsilon – погрешность представления чисел с плавающей точкой.

Погрешности вычисления функций

Рассмотрим трансформированную погрешность вычисления значений функций.

Абсолютная трансформированная погрешность дифференцируемой функции y=f(x), вызываемая достаточно малой погрешностью аргумента Delta(x), оценивается величиной Delta(y)=|f'(x)|Delta(x).

Если f(x)>0, то delta(y)=frac{|f'(x)|}{f(x)}Delta(x)=left|(ln(f(x)))'right|cdotDelta(x).

Абсолютная погрешность дифференцируемой функции многих аргументов y=f(x_1, x_2, ..., x_n), вызываемая достаточно малыми погрешностями Delta(x_1), Delta(x_2), ..., Delta(x_n) аргументов x_1, x_2, ...,x_n оценивается величиной:

Delta(y)=sumlimits_{i=1}^nleft|frac{partial f}{partial x_i}right|Delta(x_i).

Если f(x_1,x_2,...,x_n)>0, то delta(y)=sumlimits_{i=1}^nfrac{1}{f}cdotleft|frac{partial f}{partial x_i}right|cdotDelta(x_i)=sumlimits_{i=1}^{n}left|frac{partial l_n(f)}{partial x_i}right|Delta(x_i).

Практически важно определить допустимую погрешность аргументов и допустимую погрешность функции (обратная задача). Эта задача имеет однозначное решение только для функций одной переменной y=f(x), если f(x) дифференцируема и f'(x)not=0:

Delta(x)=frac{1}{|f'(x)|}Delta(y).

Для функций многих переменных задача не имеет однозначного решения, необходимо ввести дополнительные ограничения. Например, если функция y=f(x_1,x_2,...,x_n) наиболее критична к погрешности Delta(x_i), то:

Delta(x_i)=frac{Delta(y)}{left|frac{partial f}{partial x_i}right|}qquad (погрешностью других аргументов пренебрегаем).

Если вклад погрешностей всех аргументов примерно одинаков, то применяют принцип равных влияний:

Delta(x_i)=frac{Delta(y)}{nleft|frac{partial f}{partial x_i}right|},qquad i=overline{1,n}.

Числовые примеры

Специфику машинных вычислений можно пояснить на нескольких элементарных примерах.

ПРИМЕР 1. Вычислить все корни уравнения

x^4 - 4x^3 + 8x^2 - 16x + 15.underbrace{99999999}_8 = {(x - 2)}^4 - 10^{- 8} = 0.

Точное решение задачи легко найти:

(x - 2)^2  =  pm 10^{- 4},
x_1= 2,01;  x_2= 1,99;  x_{3,4}= 2 pm 0,01i.

Если компьютер работает при delta _M > 10^{ - 8}, то свободный член в исходном уравнении будет округлен до 16,0 и, с точки зрения представления чисел с плавающей точкой, будет решаться уравнение (x-2)^4= 0, т.е. x_{1,2,3,4} = 2, что, очевидно, неверно. В данном случае малые погрешности в задании свободного члена approx10^{-8} привели, независимо от метода решения, к погрешности в решении approx10^{-2}.

ПРИМЕР 2. Решается задача Коши для обыкновенного дифференциального уравнения 2-го порядка:

u''(t) = u(t), qquad u(0) = 1, qquad u'(0) = - 1.

Общее решение имеет вид:

u(t) = 0,5[u(0) + u'(0)]e^t  + 0,5[u(0) - u'(0)]e^{- t}.

При заданных начальных данных точное решение задачи: u(x) = e^{-t}, однако малая погрешность delta в их задании приведет к появлению члена delta e^t, который при больших значениях аргумента может существенно исказить решение.

ПРИМЕР 3. Пусть необходимо найти решение обыкновенного дифференциального уравнения:

stackrel{cdot}{u} = 10u,qquad u = u(t), u(t_0) = u_0,qquad t in [0,1].

Его решение: u(t) = u_0e^{10(t - t_0 )}, однако значение u(t_0) известно лишь приближенно: u(t_0) approx u_0^*, и на самом деле u^*(t) = u_0^*e^{10(t - t_0)}.

Соответственно, разность u* - u будет:

u^* - u = (u_0^* - u_0)e^{10(t - t_0)}.

Предположим, что необходимо гарантировать некоторую заданную точность вычислений epsilon > 0 всюду на отрезке t in [0,1]. Тогда должно выполняться условие:

|{u^*(t) - u(t)}| le varepsilon.

Очевидно, что:

maxlimits_{t in [0,1]} |{u^*(t) - u(t)}| = |{u*(1) - u(1)}| = |{u_0^* - u_0}|e^{10(1 - t_0)}.

Отсюда можно получить требования к точности задания начальных данных delta: qquad|u_0^* - u_0| < delta, qquad delta le varepsilon e^{ - 10} при t_0= 0.

Таким образом, требование к заданию точности начальных данных оказываются в e^{10} раз выше необходимой точности результата решения задачи. Это требование, скорее всего, окажется нереальным.

Решение оказывается очень чувствительным к заданию начальных данных. Такого рода задачи называются плохо обусловленными.

ПРИМЕР 4. Решением системы линейных алгебраических уравнений (СЛАУ):

left{ begin{array}{l} u + 10v = 11,  100u + 1001v = 1101;  end{array} right.

является пара чисел {1, quad 1}.

Изменив правую часть системы на 0,01, получим возмущенную систему:

left{ begin{array}{l} u + 10v = 11.01,  100u + 1001v = 1101;  end{array} right.

с решением {11.01, quad 0.00}, сильно отличающимся от решения невозмущенной системы. Эта система также плохо обусловлена.

ПРИМЕР 5. Рассмотрим методический пример вычислений на модельном компьютере, обеспечивающем точность delta_M = 0,0005. Проанализируем причину происхождения ошибки, например, при вычитании двух чисел, взятых с точностью до третьей цифры после десятичной точки u = 1,001,quad v = 1,002, разность которых составляет Delta = |v_M - u_M| = 0,001.

В памяти машины эти же числа представляются в виде:

u_M = u(1 + delta_M^u), quad v_M = v(1 + delta_M^v), причем  mid delta_M^umid le delta_M и mid delta_M^vmid le delta_M.

Тогда:

u_M - u approx udelta_M^u, quad v_M - v approx vdelta_M^v.

Относительная ошибка при вычислении разности u_M - v_M будет равна:

 delta = frac{(u_M - v_M) - (u - v)}{(u - v)} = frac{(u_M - u) - (v_M - v)}{(u - v)} = frac{delta_M^u - delta_M^v}{(u - v)}.

Очевидно, что  delta = left|{frac{delta_M^u - delta_M^v}{Delta }} right| le frac{2delta_M}{0,001} approx 2000delta_M = 1, т.е. все значащие цифры могут оказаться неверными.

ПРИМЕР 6. Рассмотрим рекуррентное соотношение u_{i+1} = qu_i, quad i ge 0, quad u_0 = a,quad q > 0, quad u_i > 0.

Пусть при выполнении реальных вычислений с конечной длиной мантиссы на i-м шаге возникла погрешность округления, и вычисления проводятся с возмущенным значением u_i^M = u_i + delta_i, тогда вместо u_{i+1} получим u_{i + 1}^M = q(u_i + delta_i) = u_{i + 1} + qdelta_i, т.е. delta_{i + 1} = qdelta_i,quad i = 0,1,ldots .

Следовательно, если |q| > 1, то в процессе вычислений погрешность, связанная с возникшей ошибкой округления, будет возрастать (алгоритм неустойчив). В случае mid qmid le 1 погрешность не возрастает и численный алгоритм устойчив.

Список литературы

  • А.А.Самарский, А.В.Гулин.  Численные методы. Москва «Наука», 1989.
  • http://www.mgopu.ru/PVU/2.1/nummethods/Chapter1.htm
  • http://www.intuit.ru/department/calculate/calcmathbase/1/4.html

См. также

  • Практикум ММП ВМК, 4й курс, осень 2008

Неточность математической модели

Любая модель является определенной идеализацией рассматриваемого физического явления и описывает лишь основные факторы, существенные при решении конкретной технической задачи.

Уточнение модели за счет введения описания дополнительных факторов обычно приводит к ее усложнению и, как следствие, к трудности использования, поэтому необходим определенный компромисс (Бритва Оккама).

Выбор удачного компромисса — это творческий процесс, требующий большого опыта и инженерной интуиции.

Погрешность исходных данных

Исходные данные обычно получаются из измерений либо — наоборот, по этим данным затем делается устройство. В каждом случае имеется так называемая неустранимая погрешность между исходными данными, участвующими в расчетах, и теми, которые реализуются. В результате этого получаемое решение также будет отличаться от реализуемого в устройстве.

В зависимости от того, как ошибки исходных данных отражаются на результате, задачи разделяют на два класса:

корректные и некорректные.

Задача называется корректной, если малые ошибки исходных данных приводят к пропорционально малым ошибкам решения.

Задача называется некорректной, если малые ошибки исходных данных приводят к большим ошибкам в результатах,.

Для решения некорректных, но правильных с физической точки зрения задач разрабатываются специальные методы

Погрешность метода

При построении вычислительного алгоритма обычно точное решение представляется в виде бесконечного предела последовательности арифметических и логических действий.

При ограничении лишь конечным числом вычислений вносится погрешность, контролируемая некоторыми параметрами метода.

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

• Обычно

при уменьшении некоторого параметра

h

метода

погрешность решения h стремится к нулю, т.е.

h

0

при

h 0

Ch p

.

. В этом случае, если выполняется оценка

,

h

где С

const и не зависит от

h, считается,

что

порядок

h

o(h

p

)

погрешности равен p и обозначается коротко

Например, метод вычисления y=e-x при x>0

• Метод – несколько первых членов ряда

e

x

M (x)

1 x

x2

…( 1)

n

xn

2

n!

• Погрешность:

n

M (x) e x

xn 1

1

c

(n 1)!

при h

0,

n

0.

n

Ошибки округлений

Все расчеты на ЭВМ производятся с конечным числом значащих цифр, определяемым объемом ячеек памяти. Поэтому при вычислении, например, 1/3 = 0,3333…3…, и если округление производится на седьмом знаке, то вносится ошибка 10-8.

Когда вычислений много, то такие ошибки могут накапливаться и, наоборот, компенсироваться (положительные и отрицательные).

В зависимости от реакции на погрешность округлений вычислительные методы разделяются на устойчивые и неустойчивые.

Метод устойчив, если в процессе вычислений ошибки округлений не накапливаются, в противном случае метод

неустойчив.

При увеличении количества вычислений по неустойчивому методу ошибки быстро нарастают, что приводит к переполнению ЭВМ.

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

Итерационные методы решения задач

• Задача: A(x) b

Итерационные методы основаны на построении сходящейся к точному решению x* бесконечной рекуррентной последовательности x0 , x1, …, xk x* элементов той же

Последовательность называется рекуррентной порядка m, если каждый следующий ее член выражается через m

предыдущих по некоторому правилу xk (xk 1, xk 2 , … xk m )

Для реализации m-шагового метода требуется задать m первых членов, называемых начальным приближением

x0 , x1, …, xm 1

Процесс вычислений

Задают начальное приближение и по формуле xm= (xm-1) последовательно находят xm , xm 1,… xk , …

Процесс получения следующего k-го члена через предыдущие называется kитерацией.

Итерации выполняются до тех пор, пока очередной член xk не

будет удовлетворять заданной точности, т.е.

xk x*

.

Ввиду того, что точное решение x* заранее неизвестно, обычно сходимость метода определяют по близости двух последних

членов, т.е. расчеты производят до тех пор, пока не выполнится

условие

xk xk 1

, или более точно

(xk xk 1)2

Получаем x* xk

2xk 1 xk xk 2

Пример простого итерационного метода

Приводим уравнение A(x) b к виду x (x)

Можно так

x r [ A(x) b] x (x)

Рекуррентная последовательность

xk (xk 1)

Задаем начальное условие x0 и находим x1, x2, … xk

Условие сходимости

d / dxG 1

Конец темы 1

Задавайте Ваши вопросы

Соседние файлы в папке Презентации выч методов

  • #
  • #
  • #
  • #
  • #
  • #

Итерационные методы решения системы линейных алгебраических уравнений

В данной статье мы расскажем общие сведения об итерационных методах решения СЛАУ, познакомим с методом Зейделя и Якоби, а также приведем примеры решения систем линейных уравнений при помощи данных методов.

Общие сведения об итерационных методах или методе простой итерации

Метод итерации — это численный и приближенный метод решения СЛАУ.

Суть: нахождение по приближённому значению величины следующего приближения, которое является более точным. Метод позволяет получить значения корней системы с заданной точностью в виде предела последовательности некоторых векторов (итерационный процесс). Характер сходимости и сам факт сходимости метода зависит от выбора начального приближения корня x 0 .

Рассмотрим систему A x = b .

Чтобы применить итерационный метод, необходимо привести систему к эквивалентному виду x = B x + d . Затем выбираем начальное приближение к решению СЛАУ x ( 0 ) = ( x 1 0 , x 2 0 , . . . x m 0 ) и находим последовательность приближений к корню.

Для сходимости итерационного процесса является достаточным заданное условие В 1 . Окончание итерации зависит от того, какой итерационный метод применили.

Метод Якоби

Метод Якоби — один из наиболее простых методов приведения системы матрицы к виду, удобному для итерации: из 1-го уравнения матрицы выражаем неизвестное x 1 , из 2-го выражаем неизвестное x 2 и т.д.

Результатом служит матрица В , в которой на главной диагонали находятся нулевые элементы, а все остальные вычисляются по формуле:

b i j = – a i j / a i i , i , j = 1 , 2 . . . , n

Элементы (компоненты) вектора d вычисляются по следующей формуле:

d i = b i / a i i , i = 1 , 2 , . . . , n

Расчетная формула метода простой итерации:

x ( n + 1 ) = B x ( x ) + d

Матричная запись (координатная):

x i ( n + 1 ) = b i 1 x n 1 + b i 2 x ( n ) 2 + . . . + b

Критерий окончания в методе Якоби:

x ( n + 1 ) – x ( n ) ε 1 , где ε 1 = 1 – B B ε

В случае если B 1 / 2 , то можно применить более простой критерий окончания итераций:

x ( n + 1 ) – x ( n ) ε

Решить СЛАУ методом Якоби:

10 x 1 + x 2 – x 3 = 11 x 1 + 10 x 2 – x 3 = 10 – x 1 + x 2 + 10 x 3 = 10

Необходимо решить систему с показателем точности ε = 10 – 3 .

Приводим СЛАУ к удобному виду для итерации:

x 1 = – 0 , 1 x 2 + 0 , 1 x 3 + 1 , 1 x 2 = – 0 , 1 x 1 + 0 , 1 x 3 + 1 x 3 = 0 , 1 x 1 – 0 , 1 x 2 + 1

Выбираем начальное приближение, например: x ( 0 ) = 1 , 1 1 1 — вектор правой части.

В таком случае, первая итерация имеет следующий внешний вид:

x 1 ( 1 ) = – 0 , 1 × 1 + 0 , 1 × 1 + 1 , 1 = 1 , 1 x 2 ( 1 ) = – 0 , 1 × 1 , 1 + 0 , 1 + 1 = 0 , 99 x 3 ( 1 ) = 0 , 1 × 1 , 1 – 0 , 1 × 1 + 1 = 1 , 01

Аналогичным способом вычисляются приближения к решению:

x ( 2 ) = 1 , 102 0 , 991 1 , 011 , x ( 3 ) = 1 , 102 0 , 9909 1 , 0111 , x ( 4 ) = 1 , 10202 0 , 99091 1 , 01111

Находим норму матрицы В , для этого используем норму B ∞ .

Поскольку сумма модулей элементов в каждой строке равна 0,2, то B ∞ = 0 , 2 1 / 2 , поэтому можно вычислить критерий окончания итерации:

x ( n + 1 ) – x ( n ) ε

Далее вычисляем нормы разности векторов:

x ( 3 ) – x ( 2 ) ∞ = 0 , 002 , x ( 4 ) – x ( 3 ) ∞ = 0 , 00002 .

Поскольку x ( 4 ) – x ( 3 ) ∞ ε , то можно считать, что мы достигли заданной точности на 4-ой итерации.

x 1 = 1 , 102 ; x 2 = 0 , 991 ; x 3 = 1 ,01 1 .

Метод Зейделя

Метод Зейделя — метод является модификацией метода Якоби.

Суть: при вычислении очередного ( n + 1 ) – г о приближения к неизвестному x i при i > 1 используют уже найденные ( n + 1 ) – е приближения к неизвестным x 1 , x 2 , . . . , x i — 1 , а не n – о е приближение, как в методе Якоби.

x i ( n + 1 ) = b i 1 x 1 ( n + 1 ) + b i 2 x 2 ( n + 1 ) + . . . + b i , i – 1 x i – 2 ( n + 1 ) + b i , i + 1 x i + 1 ( n ) +

+ . . . + b i m x m ( n ) + d i

За условия сходимости и критерий окончания итераций можно принять такие же значения, как и в методе Якоби.

Решить СЛАУ методом Зейделя. Пусть матрица системы уравнений А — симметричная и положительно определенная. Следовательно, если выбрать начальное приближение, метод Зейделя сойдется. Дополнительных условий на малость нормы некоторой матрицы не накладывается.

Решим 3 системы уравнений:

2 x 1 + x 2 = 3 x 1 – 2 x 2 = 1 , x 1 + 2 x 2 = 3 2 x 1 – x 2 = 1 , 2 x 1 – 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1

Приведем системы к удобному для итерации виду:

x 1 ( n + 1 ) = – 0 , 5 x 2 ( n ) + 1 , 5 x 2 ( n + 1 ) = 0 , 5 x 1 ( n + 1 ) + 0 , 5 , x 1 ( n + 1 ) = – 2 x 2 ( n ) + 3 x 2 ( n + 1 ) = 2 x 1 ( n + 1 ) – 1 , 2 x 1 – 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1 .

Отличительная особенность, условие сходимости выполнено только для первой системы:

Вычисляем 3 первых приближения к каждому решению:

1-ая система: x ( 0 ) = 1 , 5 – 0 , 5 , x ( 1 ) = 1 , 75 0 , 375 , x ( 2 ) = 1 , 3125 0 , 1563 , x ( 3 ) = 1 , 4219 0 , 2109

Решение: x 1 = 1 , 4 , x 2 = 0 , 2 . Итерационный процесс сходится.

2-ая система: x ( 0 ) = 3 – 1 , x ( 1 ) = 5 9 , x ( 2 ) = – 15 – 31 , x ( 3 ) = 65 129

Итерационный процесс разошелся.

Решение: x 1 = 1 , x 2 = 2

3-я система: x ( 0 ) = 1 , 5 2 , x ( 1 ) = 2 – 6 , x ( 2 ) = 0 2 , x ( 3 ) = 0 2

Итерационный процесс зациклился.

Решение: x 1 = 1 , x 1 = 2

Метод простой итерации

Если А — симметричная и положительно определенная, то СЛАУ приводят к эквивалентному виду:

x = x – τ ( A x – b ) , τ – итерационный параметр.

Расчетная формула имеет следующий внешний вид:

x ( n + 1 ) = x ( n ) – τ ( A x n – b ) .

Здесь B = E – τ A и параметр τ > 0 выбирают таким образом, чтобы по возможности сделать максимальной величину B 2 .

Пусть λ m i n и λ m a x – максимальные и минимальные собственные значения матрицы А .

τ = 2 / ( λ m i n + λ m a x ) – оптимальный выбор параметра. В этом случае B 2 принимает минимальное значение, которое равняется ( λ m i n + λ m a x ) / ( λ m i n – λ m a x ) .

Лекция 5. Итерационные методы решения уравнений и систем

5.1 Простая итерация. Уравнения с одним неизвестным.Пусть задана непрерывная функция f(x) и требуется найти все или некоторые корни уравнения

Эта задача распадается на несколько задач. Во-первых, надо исследовать характер и расположение корней. Во-вторых, найти приближенные значения корней. В-третьих, выбрать из них интересующие нас корни и вычислить их с требуемой точностью.

Первая и вторая задачи решаются аналитическими и графическими методами. Например, многочлен

имеет n комплексных корней, не обязательно различных, и все корни лежат внутри круга

Когда ищутся только действительные корни уравнения, то полезно составить таблицу значений f(x). Если в двух соседних узлах таблицы функция имеет разные знаки, то между этими узлами лежит нечетное число корней уравнения (по меньшей мере один). Если эти узлы близки, то, скорее всего, корень между ними только один. Но выявить по таблице корни четной кратности сложно.

По таблице можно построить график функции y=f(x) и графически найти точки его пересечения с осью абсцисс. Этот способ более нагляден и дает неплохие приближенные значения корней. Во многих задачах такая точность уже достаточна. В технике еще популярны графические методы решения уравнений (номография). Построение графика зачастую позволяет выявить даже корни четной кратности.

Иногда удается заменить уравнение (5.1.1) эквивалентным ему уравнением φ(x) = ψ(x), в котором функции и имеют несложные графики. Например, уравнение x sin x – 1 = 0 удобно преобразить к виду sin x = 1/x. Абсциссы точек сечения этих графиков будут корнями исходного уравнения.

Дихотомия (деление пополам). Пусть мы нашли такие точки , , что , т.е. на отрезке лежит не менее одного корня уравнения. Найдем середину отрезка и вычислим . Из двух половин отрезка выберем ту, для которой , ибо один из корней лежит на этой половине. Затем новый отрезок опять делим пополам и выберем ту половину, на концах которой функция имеет разные знаки, и т.д. (рис. 5.1).

Если требуется найти корень с точность ε, то продолжаем деление пополам до тех пор, пока длина отрезка не станет меньше 2ε. Тогда середина последнего отрезка даст значение корня с требуемой точностью.

Дихотомия проста и очень надежна: к простому корню она сходится для любых непрерывных функций f(x), в том числе недифференцируемых; при этом она устойчива к ошибкам округления. Скорость сходимости невелика: за одну итерацию точность увеличивается примерно вдвое, т.е. уточнение трех цифр требует 10 итераций. Зато точность ответа гарантируется.

Перечислим недостатки метода. Для начала расчета надо найти отрезок, на котором функция меняет знак. Если в этом отрезке несколько корней, то заранее неизвестно, к какому из них сойдется процесс (хотя к одному из них сойдется). Метод неприменим к корням четной кратности. Для корней нечетной высокой кратности он сходится, но менее точен и хуже устойчив к ошибкам округления, возникающим при вычислении f(x). Наконец, на системы уравнений дихотомия не обобщается.

Дихотомия применяется тогда, когда требуется высокая надежность счета, а скорость сходимости малосущественна.

Удаление корней. Один из недостатков дихотомии – сходимость неизвестно к какому корню – имеется почти у всех итерационных методов. Его можно устранить удалением уже найденного корня.

Если есть простой корень уравнения (5.1.1) и f(x) липшиц-непрерывна, то вспомогательная функция непрерывна, причем все нули функции f(x) и g(x) совпадают, за исключением , ибо Если – кратный корень уравнения (5.1.1), то он будет нулем функции кратности на единицу меньше; остальные нули обеих функций по-прежнему будут одинаковы.

Поэтому найденный корень можно удалить, т.е. перейти к функции . Тогда нахождение остальных нулей f(x) сведется к нахождению нулей . Когда мы найдем какой-нибудь корень функции , то этот корень тоже можно удалить, вводя новую вспомогательную функцию

= . Так можно последовательно найти все корни f(x).

Строго говоря, мы находим лишь приближенное значение корня . А функция имеет нуль в точке и полюс в близкой к ней точке (рис. 5.2); только на некотором расстоянии от этого корня она близка к . Чтобы это не сказывалось при нахождении следующих корней, надо вычислять каждый корень с высокой точностью.

Кроме того, в любом методе окончательные итерации вблизи определяемого корня рекомендуется делать не по функциям типа , а по исходной функции . Последние итерации, вычисленные по функции , используются при этом в качестве нулевого приближения. Важно это при нахождении многих корней, ибо чем больше корней удалено, тем меньше нули вспомогательной функции соответствуют остальным нулям функции .

Учитывая эти предосторожности и вычисляя корни с 8-10 верными десятичными цифрами, зачастую можно определить десятка два корней, о расположении которых заранее ничего не известно (в том числе корней высокой кратности p

Метод простых итераций. Заменим уравнение (5.1.1) эквивалентным ему уравнением . Это можно сделать многими способами, например, положив , где – произвольная непрерывная знакопостоянная функция. Выберем некоторое нулевое приближение и вычислим дальнейшие приближения по формулам

(5.1.2)

Очевидно, если стремится к некоторому пределу , то этот предел есть корень исходного уравнения.

Исследуем условия сходимости. Если имеет непрерывную производную, тогда

, (5.1.3)

где точка ξ лежит между точками и . Поэтому если всюду , то отрезки убывают не медленней членов геометрической прогрессии со знаменателем и последовательность сходится при любом нулевом приближении. Если , то в силу непрерывности больше единицы и в некоторой окрестности корня; в этом случае итерации не могут сходится. Если , но вдали от корня , то итерации сходятся, если нулевое приближение выбрано достаточно близко к корню; при произвольном нулевом приближении сходимости может не быть.

Очевидно, что чем меньше q, тем быстрее сходимость. Вблизи корня асимптотическая сходимость определяется величиной и будет особенно быстрой при .

Значит, успех метода зависит от того, насколько удачно выбрано . Например, для извлечения квадратного корня, т.е. решения уравнения , можно положить или и соответственно написать такие итерационные процессы:

Первый процесс вообще не сходится, а второй сходится при любом ; сходится он очень быстро, ибо . Второй процесс используют при извлечении корня на калькуляторах.

Каков практический критерий сходимости, т.е. когда надо прекращать итерации (5.1.2)? Из (5.1.3) видно, что если , то итерации попеременно оказываются то с одной, то с другой стороны корня, так что корень заключен в интервале . Это надежная, хотя несколько грубая оценка. Но она неприменима при , когда итерации сходятся к корню монотонно, т.е. с одной стороны.

Вблизи корня итерации сходятся примерно, как геометрическая прогрессия со знаменателем . Чтобы сумма дальнейших ее членов не превосходила ε, должен выполняться критерий сходимости

. (5.1.5)

При выполнении этого условия итерации можно прекращать.

Метод простых итераций и почти все другие итерационные методы имеют важное достоинство: в них не накапливаются ошибки вычислений. Ошибка вычислений эквивалентна некоторому ухудшению очередного приближения. Но это отразится только на числе итераций, а не на точности окончательного результата. Подобные методы устойчивы даже по отношению к грубым ошибкам (компьютерного сбоя), если только ошибка не выбрасывает очередное приближение за пределы области сходимости.

Метод Ньютона. Он называется также методом касательных или методом линеаризации. Если есть некоторое приближение к корню , а имеет непрерывную производную, то уравнение (5.1.1) можно преобразоватьть следующим образом:

.

Приближенно заменяя на значение в известной точке , получим такой итерационный процесс:

. (5.1.6)

Геометрически этот процесс означает замену на каждой итерации графика касательной к нему (рис. 28).

Метод Ньютона можно рассматривать как частный случай метода простых итераций, если положить . Тогда Если есть р-кратный корень уравнения (5.1.1), то вблизи него ; отсюда нетрудно получить , т.е. . Для простого корня и . Используя результаты п.4, можно сформулировать следующие условия сходимости итерации (28). Если нулевое приближение выбрано достаточно близко к корню, ньютоновские итерации сходятся; скорость сходимости велика для простого корня и соответствует скорости геометрической прогрессии для кратного корня. При произвольном нулевом приближении итерации сходятся, если всюду ; в противном случае сходимость будет не при любом нулевом приближении, а только в некоторой окрестности корня.

Сходимость вблизи любого корня монотонна, что легко видеть на рис. 28; но вдали от корня возможна немонотонность итерации. Отметим, что рис. 28 указывает еще на одно достаточное условие сходимости итерации. Пусть справа от корня на отрезке ; если выбрано также справа от корня на этом отрезке, то итерация (28) сходится, причем монотонно. То же будет, если слева от корня на отрезке , и на этом же отрезке выбрано нулевое приближение. Таким образом, итерации сходятся к корню с той стороны, с которой .

Оценим скорость сходимости вблизи простого корня. По определению простых итераций, . Разлагая правую часть по формуле Тейлора и учитывая равенство , получим

, (5.1.7)
Т а б л и ц а 1
n , метод Ньютона , метод секущих
1,0000 1,0000
2,5000 2,5000
2,0500 1,8571
2,0001 1,9836

т.е. погрешность очередного приближения примерно равна квадрату погрешности предыдущего приближения. Например, если (n-1)-я итерация давала 3 верных знака, то n-я даст примерно 6 верных знаков, а (n+1)-я – примерно 12 знаков. Это иллюстрирует быструю сходимость вблизи корня. Разумеется, вдали от корня подобные соображения неприменимы.

Если вычисляется корень высокой кратности, то в знаменателе формулы (28) становится малой вблизи корня. Чтобы не было потери точности, отношение надо вычислять достаточно аккуратно. К остальным погрешностям расчета метод Ньютона хорошо устойчив.

Для нахождения корней произвольной дифференцируемой функции чаще всего применяют метод Ньютона, особенно если известны разумные начальные приближения для корней.

П р и м е р. Рассмотрим решение уравнения . Тогда общая формула метода Ньютона (5.1.6) принимает вид

.

Мы получили вторую формулу (5.1.4), которая, как отмечалось раньше, позволяет очень быстро находить квадратный корень с помощью только сложения и деления. Для иллюстрации в таблице 16 приведен ход итерации при извлечении квадратного корня из а = 4.Видно, что сходимость очень быстрая; несмотря на неважное нулевое приближение, уже третья итерация дает точность 0,005%. Попутно можно заметить, что вблизи корня итерация сходится с одной стороны, т.е. монотонно, хотя первая итерация дает переброс на другую сторону корня.

Метод секущих. В методе Ньютона требуется вычислять производную функции, что не всегда удобно. Можно заменить производную первой разделенной разностью, найденной по двум последним итерациям, т.е. заменить касательную секущей. Тогда вместо процесса (5.1.6) получим

. (5.1.8)

Для начала процесса надо задать и (рис. 29). Такие процессы, где для вычисления очередного приближения надо знать два предыдущих, называют двухшаговыми.

Эти небольшие изменения сильно влияют на характер итераций. Например, сходимость итераций может быть немонотонной не только вдали от корня, но и в малой окрестности корня. Скорость сходимости также изменяется. Приведенный в таблице 1 для сравнения расчет по методу Ньютона показывает, что метод секущих сходится медленнее, т.к. в методе Ньютона ошибка убывает быстрей. Но в методе Ньютона на каждой итерации надо вычислять и функцию, и производную, а в методе секущих – только функцию.

В знаменателе формулы (5.1.8) стоит разность значений функции; вдали от корня это несущественно, но вблизи корня значения функции малы и очень близки. Возникает потеря значащих цифр, приводящая к «разболтке» счета, что ограничивает точность.

От «разболтки» страхуются так называемым приемом Гарвика. Выбирают не очень малое значение ε, ведут итерации до выполнения условия и затем продолжают расчет до тех пор, пока убывают. Первое же возрастание обычно означает начало «разболтки»; тогда расчет прекращают и последнюю итерацию не используют.

Метод парабол. Метод секущих основан на замене функции ф(х) интерполяционным полиномом первой степени по узлам xn , xn-1 . По трем последним итерациям можно построить полином второй степени, т.е. заменить график функции параболой. Примем этот полином в форме Ньютона:

Приравняв его нулю, получим квадратноеуравнение

Меньший по модулю из двух корней квадратного уравнения определяет новое приближение xn+1=xn+z .

Для начала расчета надо задать три первых приближения х012 (обычно наугад), т.е. процесс является трехшаговым.

Метод парабол построен по образцу методов третьего порядка, однако замена производных разделенными разностями приводит к существенному уменьшению скорости сходимости.

В этом методе «разболтка» счета вблизи корня сказывается еще больше, чем в методе секущих, т.к. в расчете участвуют вторые разности, но все-таки корни можно найти с хорошей точностью; для определения оптимального числа итераций добно пользоваться приемом Гарвика (см. выше).

Метод парабол исключительно эффективен для нахождения всех корней многочлена высокой степени.

5.2. Итерации для линейных систем уравнений (обычный способ). Итерационные методы решения систем линейных уравнений позволяют получить это решение в виде предела последовательности некоторых векторов, построение которых осуществляется посредством единообразного процесса.

Для определенности запишем систему линейных уравнений четвертого порядка в виде + =0, где = (i,y=1,2,3,4), векторы

= , = .

Разрешим первое из уравнений относительно x1 , второе – относительно x2 и т.д. Тогда эту систему можно переписать в виде

= – (i=1, 2, 3, 4; k=1, 2, 3, 4, 5) . (2)

Система (1) является частным случаем записи вида

При этом линейная функция, например, L1(x1, x2, x3, x4) фактически не зависит от x1 согласно (1). Выводы не изменятся, если она будет содержать слагаемое вида α11x1 .То же относится к правым частям остальных уравнений.

Зададим произвольные начальные значения неизвестных , , , . Подставляя эти значения в правые части системы (3), получим первые приближения:

=L1( , , , ) ,

=L4( , , , ).

Полученные первые приближения могут быть таким же образом использованы для получения вторых, третьих и т.д., так что для любого ν можно получить ν-е приближение , , , .

Можно установить условия, которые обеспечат сходимость получающихся приближений к истинному решению системы x1, x2, x3, x4, для чего достаточно отличия от нуля определителя системы detA≠0.

Обозначим через ошибку ν-го приближения для k-го неизвестного

= – xk ,

где xk точное значение неизвестного в решении системы, которое предполагается существующим.

Показано, что для сходимости итерационного процесса к точному решению системы в этом способе достаточно выполнения условия С (ν) =L1 (x1 (ν-1) , x1 (ν-1) ,…),

Иначе говоря, следующее приближение полностью определялось значениями, полученными на предыдущем шаге. Между тем уже при построении первого приближения можно, например, вычисляя значение x2 (1) , воспользоваться для x1 не нулевым приближением x1 (0) , а уже полученным нами первым приближением x1 (1) . Вычисляя χ3 , можно использовать уже не только x1 (1) , но и x2 (1) и т. д.

Таким образом, вместо формул (1) предлагается использовать для отыскания следующего приближения формулы такого вида (мы снова пишем их для конкретного случая системы четырех уравнений с четырьмя неизвестными):

(2)

Это изменение и составляет идею итераций по способу Зейделя.

Естественно ожидать, что итерации по способу Зейделя дадут при том же числе шагов более точные результаты, чем обычные итерации, или, что то же самое, та же точность будет достигнута за меньшее число шагов. Вообще говоря, эти ожидания оправдываются. Однако нужно иметь в виду, что условия сходимости обычного итерационного процесса и итерационного процесса Зейделя различны. Один из этих процессов для данной системы может оказаться расходящимся тогда, когда другой сходится.

Вычислительная схема итерационного процесса Зейделя строится, как и для обычных итераций, на вычислении последовательных поправок. Рассмотрим эту схему, ограничившись, для краткости, системой трех линейных уравнений с тремя неизвестными. Формулы для отыскания следующих приближений через предыдущие будут в этом случае иметь вид

(3)

Формулы для вычисления поправок легко получить, исходя непосредственно из определения и используя (3). Действительно, для ν-ой итерации

δ1 (ν) = ˗ = ( + ) ˗ ( + ) = = + ( ,

δ1 (ν) = + . (4)

Для формула выглядит несколько иначе. Так как = ˗ =

= ( + ) ˗ ( + ),

= + , (5)

= + . (6)

Как и для обычного итерационного процесса, формулы (4)-(6) могут быть использованы для вычисления поправок для всех ν = 1, 2, …. , но не для ν = 0; для формулы должны быть выведены отдельно. Если принять за начальные приближения значения соответствующих свободных членов

= , = = ,

то для первых поправок получим выражения

(7)

где = + и = + .

Расположение вычислений показано в табл. 1. Верхняя часть ее не отличается от обычного способа, а таблица для вычисления поправок имеет уже несколько другой вид: при вычислении очередных поправок в ряде случаев используются уже полученные поправки того же этапа вычислений. Соответствующие места в табл. 1. подчеркнуты.

Вычисления продолжаются до получения достаточно малых поправок. Окончательные значения неизвестных получаются по формулам

+… (𝓀 = 1,2,3).

Таблица 1. Алгоритм способа Зейделя

для системы трех уравнений с тремя неизвестными

Метод итераций

Правила ввода функции

  1. Примеры
    ≡ x^2/(1+x)
    cos 2 (2x+π) ≡ (cos(2*x+pi))^2
    ≡ x+(x-1)^(2/3)

На рис.1а, 1б в окрестности корня |φ′(x)| 1, то процесс итерации может быть расходящимся (см. рис.2).

Достаточные условия сходимости метода итерации

Процесс нахождения нулей функции методом итераций состоит из следующих этапов:

  1. Получить шаблон с омощью этого сервиса.
  2. Уточнить интервалы в ячейках B2 , B3 .
  3. Копировать строки итераций до требуемой точности (столбец D ).

Примечание: столбец A – номер итерации, столбец B – корень уравнения X , столбец C – значение функции F(X) , столбец D – точность eps .

источники:

http://poisk-ru.ru/s48685t6.html

http://math.semestr.ru/optim/iteration_method.php

Студворк — интернет-сервис помощи студентам

Метод последовательных приближений
Исходное уравнение можно представить в виде x = φ (t). Например, можно выделить x из уравнения, а остальное перенести в правую часть.
Можно также выполнить следующее преобразование: x = x + cf (x), где с – произвольная постоянная. В этом случае φ (x) = x + cf (x). Задаются начальным приближением x [0], а последующие приближения определяют итерационной процедурой вида x [ k+1] = φ (x [ k ]), k = 0, 1, 2 … . Эта итерационная процедура сходится, если на отрезке [a, b], содержащем корень x*, а также все его последовательные приближения x [0], x [1], … x [k], выполнено условие │φ l (x) │ <1, сходимость будет тем быстрее, чем меньше по абсолютной величине значение производной φ l (x).
Метод последовательных приближений обладает тем важным преимуществом, что при его использовании не накапливаются ошибки вычислений. Ошибка вычислений эквивалентна ухудшению очередного приближения, а это может отразиться только на числе итераций, но не на точности результата.

Решения; Х+кореньХ+3кореньХ-2.5=0

Простая итерация

Cтраница 2

Метод простой итерации для решения нелинейных уравнений заключается в следующем.
 [17]

Способ простых итераций как таковой применяется редко, поскольку во многих случаях его сходимость оказывается слишком медленной. После получения какого-либо значения переменной можно целенаправленно выбрать величину следующего приближения при помощи различных, обеспечивающих сходимость расчета способов, применение которых во многих случаях оказывается столь же трудным, как и аналитическое решение задач.
 [18]

Метод простой итерации для решения нелинейных уравнений по существу является развитием метода простой итерации для одного уравнения.
 [20]

Метод простых итераций во многих случаях расходится или имеет медленную сходимость. Существует ряд способов ускоряющих сходимость метода простых итераций.
 [21]

Метод простых итераций состоит в следующем.
 [22]

Метод простых итераций и почти все другие итерационные методы имеют важное достоинство: в них не накапливаются ошибки вычислений. Ошибка вычислений эквивалентна некоторому ухудшению очередного приближения.
 [23]

В методе простых итераций И может достигать неприемлемо больших значений, поэтому целесообразно ввести на И ограничение Ягр сверху. Методы Зейделя, Якоби, последовательной верхней релаксации ( ПВР) имеют аналогичный характер зависимости Я от Ц, хотя скорость сходимости у них часто оказывается несколько выше, чем в методе простых итераций.
 [24]

В методе простой итерации в качестве итерационной матрицы выбирается В М, где I — единичная матрица; h — скалярная величина.
 [25]

Применение метода простой итерации для решения системы (1.51) неэффективно, поскольку ликвидирует все преимущества неявных методов интегрирования из-за ограничений на шаг hm, значительно более сильных, чем в методе Ньютона.
 [26]

Недостатки метода простых итераций частично устраняются в методе Ньютона. Суть этого метода заключается в следующем. Допустим, что два приближенных значения хк 1 н хк отличаются на малую величину Ах хк — хк.
 [27]

Согласно методу простых итераций, в правые части уравнений модели на каждой итерации подставляют значения переменных, полученные на предыдущей итерации. В отличие от этого в методе Зейделя, если у некоторой переменной обновлено значение на текущей итерации, именно его и используют в дальнейших вьиислениях уже на текущей итерации. Метод Зейделя позволяет сократить число итераций, но для этого нужно предварительно упорядочить уравнения модели так, чтобы последовательность вычислений соответствовала последовательности прохождения сигналов по схеме. Такое упорядочение выполняют с помощью ранжирования.
 [28]

В методе простых итераций на К — и итерации рассчитываются все элементы вектора Х, которые затем используется на K I — и итерации в качестве нового приближения. Сходимость методе можно ускорить, если рассчитанные значения неизвестных используются на этой же итерации для вычислений значений последующих неизвестных.
 [29]

Рассмотренные свойства простых итераций служат важной основой для интерпретации численных результатов, полученных при решении сложных задач.
 [30]

Страницы:  

   1

   2

   3

   4

Мы уже говорили, что при приближённых
вычислениях полезно преобразовывать
выражения, вычисление числовых значений
которых приводит к вычитанию близких
чисел.

Общая формула для погрешности. Основная задача теории погрешности.

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

Пусть задана дифференцируемая функция:

и пусть

абсолютные погрешности аргументов
функции. Тогда абсолютная погрешность
функции

Обычно на практике
— малые величины,

произведениями

квадратами которых можно пренебречь.

высшими степенями

Поэтому

Итак
(2.14)

Обозначим

— предельные абсолютные погрешности
аргументов

предельную абсолютную погрешность
функции
для малых,
и получим:

(2.15)

Разделив обе части неравенства (2.14) на
,
будем иметь оценку для относительной
погрешности функции:

(2.16)

За предельную относительную погрешность
функции
можно
принять:

Пример: Найти предельные абсолютные
и относительные погрешности объема
шара,
если диаметрd=3,7см0,05см,.

Решение: Рассматриваяиdкак переменные величины,
вычисляем частные производные

Обратная задача теории погрешностей.

Какой точности данные нужно подать на
вход, чтобы на входе получить результат
заданной точности? Т.е. необходимо
оценить величины
по известной величине.Для
случая дифференцируемой функции одной
переменнойгрубоерешение обратной задачи тривиально:

Еслито

Для функции большего числа переменных
обратная задача, вообще говоря,
некорректна, т. е. необходимы дополнительные
условия. Например, применяют принцип
равных влияний,
состоящий в предположении,
что частные дифференциалыв (2.15) одинаково влияют на погрешность
значения функции, тогда

В качестве другого довольно естественного
допущения можно принять равенство
относительных погрешностей всех
аргументов, т. е. считать
,

Тогда

— эта величина характеризует относительный
уровень точности задания аргументов.
Таким образом,
за границы абсолютных
погрешностей аргументов принимаем:

и другие, более сложные подходы к решению
обратной задачи.

В силу формулы (2.15) предельная абсолютная
погрешность объёма:

Поэтому

Отсюда предельная относительная
погрешность объёма:

Устойчивость. Корректность.

Рассмотрим погрешности исходных данных.
Поскольку это – неустранимые погрешности
и вычислитель не может с ними бороться,
то, нужно хотя бы иметь представление
об их влиянии на точность окончательных
результатов.

Мы вправе надеется, что
погрешность результатов имеет порядок
погрешности исходных данных. Но так ли
это? Некоторые задачи
весьма чувствительны
к неточностям в исходных данных. Эта
чувствительность характеризуется так
называемой устойчивостью.

Пусть в результате решения
задачи по исходному значению величины
находится значение искомой величины.Если
исходная величина имеет абсолютную
погрешность,
то решение имеет абсолютную погрешность.

Задача называется устойчивой
по исходному параметру
,
если решение
непрерывно
от него зависит, т.е. малое приращение
исходной величиныприводит к малому приращению искомой
величины.

Иначе говоря, если малые погрешности в
исходной величине приводят к малым
погрешностям в решении.

Отсутствие устойчивости
означает, что даже незначительные
погрешности в исходных данных приводят
к большим погрешностям в решении или
даже к неверному результату. В случае
неустойчивости задач иногда говорят,
что задача чувствительна
к погрешностям исходных
данных.

Пример неустойчивой задачи:

Рассмотрим квадратное
уравнение с параметром

1,

-1,
<
0

при

<
0

при
=0
сколько угодно малая отрицательная
погрешность в задании,
приведёт конечной, а не сколько угодно
малой погрешности в решении уравнения.

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

Приращения исходной величины,
которые гарантируют
малость приращения исходной величины,
оказываются в этом случае настолько
малыми, что реальные малые приращения,
с которыми имеет дело вычислитель,
приводят к большим погрешностям в
решении.

Яркой иллюстрацией такой
задачи является пример
Уилкинсона.

Рассмотрим многочлен

Очевидно, что корнями многочлена
являются:

,=2,…,


Предположим,
что один из
коэффициентов многочлена
вычислен с некоторой малой погрешностью.

Например,
а=-210
при

Увеличим его на
.

В результате вычислений с двойной
точностью получим существенно другие
значения корней. Приведём эти значения,
округлённые до трёх значащих цифр:

Т.о., изменение коэффициента -210 на
(это малое вычисление в обычной
вычислительной практике) привело к
тому, что половина корней стала
комплексными.

Причина явления – чувствительность
(неустойчивость) задачи к погрешностям
исходных данных. Вычисления выполнялись
достаточно точно, и погрешности округления
не могли привести к таким последствиям.
Если коэффициент -210 увеличить на
,
значение корней при округлении до трёх
знаков, совпадут со значениями корней
исходного множества. В этомсмысле
задача устойчива.

Задача называется корректно
поставленной,
если
для любых допустимых значений исходных
данных её решение существует, единственно
и устойчиво по исходным данным.

То есть, чтобы численно решить задачу,
нужно быть уверенным, что решение
существует. Требования единственности
и устойчивости так же естественны. В
примере Уилкинсона неустойчивая задача
является некорректно поставленной.

Для решения таких задач применять
численные методы не целесообразно, так
как возникающие в расчётах погрешности
округления будут сильно возрастать в
ходе вычислений, что приведёт к
значительному искажению результатов.

Методы решения некоторых некорректных
задач основаны на замене исходной задачи
на корректно поставленную задачу.

Методы регуляризации.

Методы решения систем линейных уравнений
делятся на 2 группы: прямые и итерационные.

1)Прямые методы(точные методы)используют конечные соотношения
(формулы) для вычисления неизвестных.
Они дают решения после выполнения
заранее известного числа операций. Эти
методы сравнительно просты и пригодны
для решения широкого класса линейных
систем.

Недостатки: требуют хранения в
оперативной памяти компьютера сразу
всей матрицы, и при больших значенияхрасходуют много места в памяти. Далее,
прямые методы обычно не учитывают
структуру матрицы при большом числе
нулевых элементов в разряженных матрицах
(например: клеточных или ленточных) эти
элементы занимают место в памяти машины,
над ними проводятся арифметические
действия. Исключением являетсяметод
прогонки.

Существенные недостатки прямых
методов: накапливание погрешностей
в процессе решения, поскольку вычисления
на любом этапе используют результаты
предыдущих операций. Это особенно опасно
для больших систем, весьма чувствительных
к погрешностям. В связи с этим прямые
методы используются для систем: не
слишком больших (),
с плотно заполненной матрицей и не
близким к нулю определителем. Прямые
методы решения СЛАУ иногда называютсяточными,так как решение выражается
в виде точных формул через коэффициенты
системы. Однако точное решение может
быть получено лишь при точном выполнении
вычислений (и при точных значениях
коэффициентов системы). На практике при
использованиикомпонентов
вычисления проводятся
с погрешностями. Поэтому неизбежны
погрешности в результатах.

2)Итерационные методы– методы
последовательных приближений.

В них необходимо задать некоторое
приближённое решение – начальное
приближение. После этого с помощью
некоторого алгоритма проводится один
цикл вычислений, называемый итерацией.
В результате итерации находят новое
приближение. Итерации проводятся до
получения решения с требуемой точностью.
Алгоритмы решения линейных систем с
использованием итерационных методов
обычно более сложные по сравнению с
прямыми методами. Объём вычислений
заранее определить трудно.

Тем не менее, в ряде случаев итерационные
методы предпочтительнее. Они требуют
хранения в памяти машины не всей матрицы
системы, а лишь нескольких векторов с
компонентами. Иногда элементы матрицы
можно совсем не хранить, а вычислять
их по мере необходимости. Погрешности
окончательных результатов при
использовании итерационных методов не
накапливаются, поскольку точность
вычислений в каждой итерации определяется
лишь результатами предыдущей итерации
и практически не зависит от ранее
выполненных вычислений.

Эти достоинства итерационных методовделают их особенно полезными в случае
большого числа уравнений, а также плохо
обусловленных систем.

Итерационные методы могут быть
использованы для уточнения решений,
полученных с помощью прямых методов.
Такие смешанные алгоритмы обычно
довольно эффективны, особенно для плохо
обусловленных систем.

Численный алгоритм (метод) называется
корректным, если существует и

единственно численное решение при
любых значениях исходных данных, при
этом

решение устойчиво относительно
погрешностей исходных данных.

Соседние файлы в папке Лекции

  • #
  • #
  • #
  • #
  • #

    30.04.2013215.04 Кб13L2.doc

  • #

    30.04.2013386.56 Кб53L3.doc

  • #

    30.04.2013350.21 Кб16L4.doc

  • #

    30.04.2013235.52 Кб12L5.doc

  • #
  • #

    30.04.2013455.68 Кб16L7.doc

  • #

    30.04.2013361.47 Кб16L8.doc

Итерационные методы решения системы линейных алгебраических уравнений

В данной статье мы расскажем общие сведения об итерационных методах решения СЛАУ, познакомим с методом Зейделя и Якоби, а также приведем примеры решения систем линейных уравнений при помощи данных методов.

Общие сведения об итерационных методах или методе простой итерации

Метод итерации — это численный и приближенный метод решения СЛАУ.

Суть: нахождение по приближённому значению величины следующего приближения, которое является более точным. Метод позволяет получить значения корней системы с заданной точностью в виде предела последовательности некоторых векторов (итерационный процесс). Характер сходимости и сам факт сходимости метода зависит от выбора начального приближения корня x 0 .

Рассмотрим систему A x = b .

Чтобы применить итерационный метод, необходимо привести систему к эквивалентному виду x = B x + d . Затем выбираем начальное приближение к решению СЛАУ x ( 0 ) = ( x 1 0 , x 2 0 , . . . x m 0 ) и находим последовательность приближений к корню.

Для сходимости итерационного процесса является достаточным заданное условие В 1 . Окончание итерации зависит от того, какой итерационный метод применили.

Метод Якоби

Метод Якоби — один из наиболее простых методов приведения системы матрицы к виду, удобному для итерации: из 1-го уравнения матрицы выражаем неизвестное x 1 , из 2-го выражаем неизвестное x 2 и т.д.

Результатом служит матрица В , в которой на главной диагонали находятся нулевые элементы, а все остальные вычисляются по формуле:

b i j = — a i j / a i i , i , j = 1 , 2 . . . , n

Элементы (компоненты) вектора d вычисляются по следующей формуле:

d i = b i / a i i , i = 1 , 2 , . . . , n

Расчетная формула метода простой итерации:

x ( n + 1 ) = B x ( x ) + d

Матричная запись (координатная):

x i ( n + 1 ) = b i 1 x n 1 + b i 2 x ( n ) 2 + . . . + b

Критерий окончания в методе Якоби:

x ( n + 1 ) — x ( n ) ε 1 , где ε 1 = 1 — B B ε

В случае если B 1 / 2 , то можно применить более простой критерий окончания итераций:

x ( n + 1 ) — x ( n ) ε

Решить СЛАУ методом Якоби:

10 x 1 + x 2 — x 3 = 11 x 1 + 10 x 2 — x 3 = 10 — x 1 + x 2 + 10 x 3 = 10

Необходимо решить систему с показателем точности ε = 10 — 3 .

Приводим СЛАУ к удобному виду для итерации:

x 1 = — 0 , 1 x 2 + 0 , 1 x 3 + 1 , 1 x 2 = — 0 , 1 x 1 + 0 , 1 x 3 + 1 x 3 = 0 , 1 x 1 — 0 , 1 x 2 + 1

Выбираем начальное приближение, например: x ( 0 ) = 1 , 1 1 1 — вектор правой части.

В таком случае, первая итерация имеет следующий внешний вид:

x 1 ( 1 ) = — 0 , 1 × 1 + 0 , 1 × 1 + 1 , 1 = 1 , 1 x 2 ( 1 ) = — 0 , 1 × 1 , 1 + 0 , 1 + 1 = 0 , 99 x 3 ( 1 ) = 0 , 1 × 1 , 1 — 0 , 1 × 1 + 1 = 1 , 01

Аналогичным способом вычисляются приближения к решению:

x ( 2 ) = 1 , 102 0 , 991 1 , 011 , x ( 3 ) = 1 , 102 0 , 9909 1 , 0111 , x ( 4 ) = 1 , 10202 0 , 99091 1 , 01111

Находим норму матрицы В , для этого используем норму B ∞ .

Поскольку сумма модулей элементов в каждой строке равна 0,2, то B ∞ = 0 , 2 1 / 2 , поэтому можно вычислить критерий окончания итерации:

x ( n + 1 ) — x ( n ) ε

Далее вычисляем нормы разности векторов:

x ( 3 ) — x ( 2 ) ∞ = 0 , 002 , x ( 4 ) — x ( 3 ) ∞ = 0 , 00002 .

Поскольку x ( 4 ) — x ( 3 ) ∞ ε , то можно считать, что мы достигли заданной точности на 4-ой итерации.

x 1 = 1 , 102 ; x 2 = 0 , 991 ; x 3 = 1 ,01 1 .

Метод Зейделя

Метод Зейделя — метод является модификацией метода Якоби.

Суть: при вычислении очередного ( n + 1 ) — г о приближения к неизвестному x i при i > 1 используют уже найденные ( n + 1 ) — е приближения к неизвестным x 1 , x 2 , . . . , x i — 1 , а не n — о е приближение, как в методе Якоби.

x i ( n + 1 ) = b i 1 x 1 ( n + 1 ) + b i 2 x 2 ( n + 1 ) + . . . + b i , i — 1 x i — 2 ( n + 1 ) + b i , i + 1 x i + 1 ( n ) +

+ . . . + b i m x m ( n ) + d i

За условия сходимости и критерий окончания итераций можно принять такие же значения, как и в методе Якоби.

Решить СЛАУ методом Зейделя. Пусть матрица системы уравнений А — симметричная и положительно определенная. Следовательно, если выбрать начальное приближение, метод Зейделя сойдется. Дополнительных условий на малость нормы некоторой матрицы не накладывается.

Решим 3 системы уравнений:

2 x 1 + x 2 = 3 x 1 — 2 x 2 = 1 , x 1 + 2 x 2 = 3 2 x 1 — x 2 = 1 , 2 x 1 — 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1

Приведем системы к удобному для итерации виду:

x 1 ( n + 1 ) = — 0 , 5 x 2 ( n ) + 1 , 5 x 2 ( n + 1 ) = 0 , 5 x 1 ( n + 1 ) + 0 , 5 , x 1 ( n + 1 ) = — 2 x 2 ( n ) + 3 x 2 ( n + 1 ) = 2 x 1 ( n + 1 ) — 1 , 2 x 1 — 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1 .

Отличительная особенность, условие сходимости выполнено только для первой системы:

Вычисляем 3 первых приближения к каждому решению:

1-ая система: x ( 0 ) = 1 , 5 — 0 , 5 , x ( 1 ) = 1 , 75 0 , 375 , x ( 2 ) = 1 , 3125 0 , 1563 , x ( 3 ) = 1 , 4219 0 , 2109

Решение: x 1 = 1 , 4 , x 2 = 0 , 2 . Итерационный процесс сходится.

2-ая система: x ( 0 ) = 3 — 1 , x ( 1 ) = 5 9 , x ( 2 ) = — 15 — 31 , x ( 3 ) = 65 129

Итерационный процесс разошелся.

Решение: x 1 = 1 , x 2 = 2

3-я система: x ( 0 ) = 1 , 5 2 , x ( 1 ) = 2 — 6 , x ( 2 ) = 0 2 , x ( 3 ) = 0 2

Итерационный процесс зациклился.

Решение: x 1 = 1 , x 1 = 2

Метод простой итерации

Если А — симметричная и положительно определенная, то СЛАУ приводят к эквивалентному виду:

x = x — τ ( A x — b ) , τ — итерационный параметр.

Расчетная формула имеет следующий внешний вид:

x ( n + 1 ) = x ( n ) — τ ( A x n — b ) .

Здесь B = E — τ A и параметр τ > 0 выбирают таким образом, чтобы по возможности сделать максимальной величину B 2 .

Пусть λ m i n и λ m a x — максимальные и минимальные собственные значения матрицы А .

τ = 2 / ( λ m i n + λ m a x ) — оптимальный выбор параметра. В этом случае B 2 принимает минимальное значение, которое равняется ( λ m i n + λ m a x ) / ( λ m i n — λ m a x ) .

Лекция 5. Итерационные методы решения уравнений и систем

5.1 Простая итерация. Уравнения с одним неизвестным.Пусть задана непрерывная функция f(x) и требуется найти все или некоторые корни уравнения

Эта задача распадается на несколько задач. Во-первых, надо исследовать характер и расположение корней. Во-вторых, найти приближенные значения корней. В-третьих, выбрать из них интересующие нас корни и вычислить их с требуемой точностью.

Первая и вторая задачи решаются аналитическими и графическими методами. Например, многочлен

имеет n комплексных корней, не обязательно различных, и все корни лежат внутри круга

Когда ищутся только действительные корни уравнения, то полезно составить таблицу значений f(x). Если в двух соседних узлах таблицы функция имеет разные знаки, то между этими узлами лежит нечетное число корней уравнения (по меньшей мере один). Если эти узлы близки, то, скорее всего, корень между ними только один. Но выявить по таблице корни четной кратности сложно.

По таблице можно построить график функции y=f(x) и графически найти точки его пересечения с осью абсцисс. Этот способ более нагляден и дает неплохие приближенные значения корней. Во многих задачах такая точность уже достаточна. В технике еще популярны графические методы решения уравнений (номография). Построение графика зачастую позволяет выявить даже корни четной кратности.

Иногда удается заменить уравнение (5.1.1) эквивалентным ему уравнением φ(x) = ψ(x), в котором функции и имеют несложные графики. Например, уравнение x sin x – 1 = 0 удобно преобразить к виду sin x = 1/x. Абсциссы точек сечения этих графиков будут корнями исходного уравнения.

Дихотомия (деление пополам). Пусть мы нашли такие точки , , что , т.е. на отрезке лежит не менее одного корня уравнения. Найдем середину отрезка и вычислим . Из двух половин отрезка выберем ту, для которой , ибо один из корней лежит на этой половине. Затем новый отрезок опять делим пополам и выберем ту половину, на концах которой функция имеет разные знаки, и т.д. (рис. 5.1).

Если требуется найти корень с точность ε, то продолжаем деление пополам до тех пор, пока длина отрезка не станет меньше 2ε. Тогда середина последнего отрезка даст значение корня с требуемой точностью.

Дихотомия проста и очень надежна: к простому корню она сходится для любых непрерывных функций f(x), в том числе недифференцируемых; при этом она устойчива к ошибкам округления. Скорость сходимости невелика: за одну итерацию точность увеличивается примерно вдвое, т.е. уточнение трех цифр требует 10 итераций. Зато точность ответа гарантируется.

Перечислим недостатки метода. Для начала расчета надо найти отрезок, на котором функция меняет знак. Если в этом отрезке несколько корней, то заранее неизвестно, к какому из них сойдется процесс (хотя к одному из них сойдется). Метод неприменим к корням четной кратности. Для корней нечетной высокой кратности он сходится, но менее точен и хуже устойчив к ошибкам округления, возникающим при вычислении f(x). Наконец, на системы уравнений дихотомия не обобщается.

Дихотомия применяется тогда, когда требуется высокая надежность счета, а скорость сходимости малосущественна.

Удаление корней. Один из недостатков дихотомии – сходимость неизвестно к какому корню – имеется почти у всех итерационных методов. Его можно устранить удалением уже найденного корня.

Если есть простой корень уравнения (5.1.1) и f(x) липшиц-непрерывна, то вспомогательная функция непрерывна, причем все нули функции f(x) и g(x) совпадают, за исключением , ибо Если – кратный корень уравнения (5.1.1), то он будет нулем функции кратности на единицу меньше; остальные нули обеих функций по-прежнему будут одинаковы.

Поэтому найденный корень можно удалить, т.е. перейти к функции . Тогда нахождение остальных нулей f(x) сведется к нахождению нулей . Когда мы найдем какой-нибудь корень функции , то этот корень тоже можно удалить, вводя новую вспомогательную функцию

= . Так можно последовательно найти все корни f(x).

Строго говоря, мы находим лишь приближенное значение корня . А функция имеет нуль в точке и полюс в близкой к ней точке (рис. 5.2); только на некотором расстоянии от этого корня она близка к . Чтобы это не сказывалось при нахождении следующих корней, надо вычислять каждый корень с высокой точностью.

Кроме того, в любом методе окончательные итерации вблизи определяемого корня рекомендуется делать не по функциям типа , а по исходной функции . Последние итерации, вычисленные по функции , используются при этом в качестве нулевого приближения. Важно это при нахождении многих корней, ибо чем больше корней удалено, тем меньше нули вспомогательной функции соответствуют остальным нулям функции .

Учитывая эти предосторожности и вычисляя корни с 8-10 верными десятичными цифрами, зачастую можно определить десятка два корней, о расположении которых заранее ничего не известно (в том числе корней высокой кратности p

Метод простых итераций. Заменим уравнение (5.1.1) эквивалентным ему уравнением . Это можно сделать многими способами, например, положив , где – произвольная непрерывная знакопостоянная функция. Выберем некоторое нулевое приближение и вычислим дальнейшие приближения по формулам

(5.1.2)

Очевидно, если стремится к некоторому пределу , то этот предел есть корень исходного уравнения.

Исследуем условия сходимости. Если имеет непрерывную производную, тогда

, (5.1.3)

где точка ξ лежит между точками и . Поэтому если всюду , то отрезки убывают не медленней членов геометрической прогрессии со знаменателем и последовательность сходится при любом нулевом приближении. Если , то в силу непрерывности больше единицы и в некоторой окрестности корня; в этом случае итерации не могут сходится. Если , но вдали от корня , то итерации сходятся, если нулевое приближение выбрано достаточно близко к корню; при произвольном нулевом приближении сходимости может не быть.

Очевидно, что чем меньше q, тем быстрее сходимость. Вблизи корня асимптотическая сходимость определяется величиной и будет особенно быстрой при .

Значит, успех метода зависит от того, насколько удачно выбрано . Например, для извлечения квадратного корня, т.е. решения уравнения , можно положить или и соответственно написать такие итерационные процессы:

Первый процесс вообще не сходится, а второй сходится при любом ; сходится он очень быстро, ибо . Второй процесс используют при извлечении корня на калькуляторах.

Каков практический критерий сходимости, т.е. когда надо прекращать итерации (5.1.2)? Из (5.1.3) видно, что если , то итерации попеременно оказываются то с одной, то с другой стороны корня, так что корень заключен в интервале . Это надежная, хотя несколько грубая оценка. Но она неприменима при , когда итерации сходятся к корню монотонно, т.е. с одной стороны.

Вблизи корня итерации сходятся примерно, как геометрическая прогрессия со знаменателем . Чтобы сумма дальнейших ее членов не превосходила ε, должен выполняться критерий сходимости

. (5.1.5)

При выполнении этого условия итерации можно прекращать.

Метод простых итераций и почти все другие итерационные методы имеют важное достоинство: в них не накапливаются ошибки вычислений. Ошибка вычислений эквивалентна некоторому ухудшению очередного приближения. Но это отразится только на числе итераций, а не на точности окончательного результата. Подобные методы устойчивы даже по отношению к грубым ошибкам (компьютерного сбоя), если только ошибка не выбрасывает очередное приближение за пределы области сходимости.

Метод Ньютона. Он называется также методом касательных или методом линеаризации. Если есть некоторое приближение к корню , а имеет непрерывную производную, то уравнение (5.1.1) можно преобразоватьть следующим образом:

.

Приближенно заменяя на значение в известной точке , получим такой итерационный процесс:

. (5.1.6)

Геометрически этот процесс означает замену на каждой итерации графика касательной к нему (рис. 28).

Метод Ньютона можно рассматривать как частный случай метода простых итераций, если положить . Тогда Если есть р-кратный корень уравнения (5.1.1), то вблизи него ; отсюда нетрудно получить , т.е. . Для простого корня и . Используя результаты п.4, можно сформулировать следующие условия сходимости итерации (28). Если нулевое приближение выбрано достаточно близко к корню, ньютоновские итерации сходятся; скорость сходимости велика для простого корня и соответствует скорости геометрической прогрессии для кратного корня. При произвольном нулевом приближении итерации сходятся, если всюду ; в противном случае сходимость будет не при любом нулевом приближении, а только в некоторой окрестности корня.

Сходимость вблизи любого корня монотонна, что легко видеть на рис. 28; но вдали от корня возможна немонотонность итерации. Отметим, что рис. 28 указывает еще на одно достаточное условие сходимости итерации. Пусть справа от корня на отрезке ; если выбрано также справа от корня на этом отрезке, то итерация (28) сходится, причем монотонно. То же будет, если слева от корня на отрезке , и на этом же отрезке выбрано нулевое приближение. Таким образом, итерации сходятся к корню с той стороны, с которой .

Оценим скорость сходимости вблизи простого корня. По определению простых итераций, . Разлагая правую часть по формуле Тейлора и учитывая равенство , получим

, (5.1.7)
Т а б л и ц а 1
n , метод Ньютона , метод секущих
1,0000 1,0000
2,5000 2,5000
2,0500 1,8571
2,0001 1,9836

т.е. погрешность очередного приближения примерно равна квадрату погрешности предыдущего приближения. Например, если (n-1)-я итерация давала 3 верных знака, то n-я даст примерно 6 верных знаков, а (n+1)-я – примерно 12 знаков. Это иллюстрирует быструю сходимость вблизи корня. Разумеется, вдали от корня подобные соображения неприменимы.

Если вычисляется корень высокой кратности, то в знаменателе формулы (28) становится малой вблизи корня. Чтобы не было потери точности, отношение надо вычислять достаточно аккуратно. К остальным погрешностям расчета метод Ньютона хорошо устойчив.

Для нахождения корней произвольной дифференцируемой функции чаще всего применяют метод Ньютона, особенно если известны разумные начальные приближения для корней.

П р и м е р. Рассмотрим решение уравнения . Тогда общая формула метода Ньютона (5.1.6) принимает вид

.

Мы получили вторую формулу (5.1.4), которая, как отмечалось раньше, позволяет очень быстро находить квадратный корень с помощью только сложения и деления. Для иллюстрации в таблице 16 приведен ход итерации при извлечении квадратного корня из а = 4.Видно, что сходимость очень быстрая; несмотря на неважное нулевое приближение, уже третья итерация дает точность 0,005%. Попутно можно заметить, что вблизи корня итерация сходится с одной стороны, т.е. монотонно, хотя первая итерация дает переброс на другую сторону корня.

Метод секущих. В методе Ньютона требуется вычислять производную функции, что не всегда удобно. Можно заменить производную первой разделенной разностью, найденной по двум последним итерациям, т.е. заменить касательную секущей. Тогда вместо процесса (5.1.6) получим

. (5.1.8)

Для начала процесса надо задать и (рис. 29). Такие процессы, где для вычисления очередного приближения надо знать два предыдущих, называют двухшаговыми.

Эти небольшие изменения сильно влияют на характер итераций. Например, сходимость итераций может быть немонотонной не только вдали от корня, но и в малой окрестности корня. Скорость сходимости также изменяется. Приведенный в таблице 1 для сравнения расчет по методу Ньютона показывает, что метод секущих сходится медленнее, т.к. в методе Ньютона ошибка убывает быстрей. Но в методе Ньютона на каждой итерации надо вычислять и функцию, и производную, а в методе секущих – только функцию.

В знаменателе формулы (5.1.8) стоит разность значений функции; вдали от корня это несущественно, но вблизи корня значения функции малы и очень близки. Возникает потеря значащих цифр, приводящая к «разболтке» счета, что ограничивает точность.

От «разболтки» страхуются так называемым приемом Гарвика. Выбирают не очень малое значение ε, ведут итерации до выполнения условия и затем продолжают расчет до тех пор, пока убывают. Первое же возрастание обычно означает начало «разболтки»; тогда расчет прекращают и последнюю итерацию не используют.

Метод парабол. Метод секущих основан на замене функции ф(х) интерполяционным полиномом первой степени по узлам xn , xn-1 . По трем последним итерациям можно построить полином второй степени, т.е. заменить график функции параболой. Примем этот полином в форме Ньютона:

Приравняв его нулю, получим квадратноеуравнение

Меньший по модулю из двух корней квадратного уравнения определяет новое приближение xn+1=xn+z .

Для начала расчета надо задать три первых приближения х012 (обычно наугад), т.е. процесс является трехшаговым.

Метод парабол построен по образцу методов третьего порядка, однако замена производных разделенными разностями приводит к существенному уменьшению скорости сходимости.

В этом методе «разболтка» счета вблизи корня сказывается еще больше, чем в методе секущих, т.к. в расчете участвуют вторые разности, но все-таки корни можно найти с хорошей точностью; для определения оптимального числа итераций добно пользоваться приемом Гарвика (см. выше).

Метод парабол исключительно эффективен для нахождения всех корней многочлена высокой степени.

5.2. Итерации для линейных систем уравнений (обычный способ). Итерационные методы решения систем линейных уравнений позволяют получить это решение в виде предела последовательности некоторых векторов, построение которых осуществляется посредством единообразного процесса.

Для определенности запишем систему линейных уравнений четвертого порядка в виде + =0, где = (i,y=1,2,3,4), векторы

= , = .

Разрешим первое из уравнений относительно x1 , второе – относительно x2 и т.д. Тогда эту систему можно переписать в виде

= — (i=1, 2, 3, 4; k=1, 2, 3, 4, 5) . (2)

Система (1) является частным случаем записи вида

При этом линейная функция, например, L1(x1, x2, x3, x4) фактически не зависит от x1 согласно (1). Выводы не изменятся, если она будет содержать слагаемое вида α11x1 .То же относится к правым частям остальных уравнений.

Зададим произвольные начальные значения неизвестных , , , . Подставляя эти значения в правые части системы (3), получим первые приближения:

=L1( , , , ) ,

=L4( , , , ).

Полученные первые приближения могут быть таким же образом использованы для получения вторых, третьих и т.д., так что для любого ν можно получить ν-е приближение , , , .

Можно установить условия, которые обеспечат сходимость получающихся приближений к истинному решению системы x1, x2, x3, x4, для чего достаточно отличия от нуля определителя системы detA≠0.

Обозначим через ошибку ν-го приближения для k-го неизвестного

= – xk ,

где xk точное значение неизвестного в решении системы, которое предполагается существующим.

Показано, что для сходимости итерационного процесса к точному решению системы в этом способе достаточно выполнения условия С (ν) =L1 (x1 (ν-1) , x1 (ν-1) ,…),

Иначе говоря, следующее приближение полностью определялось значениями, полученными на предыдущем шаге. Между тем уже при построении первого приближения можно, например, вычисляя значение x2 (1) , воспользоваться для x1 не нулевым приближением x1 (0) , а уже полученным нами первым приближением x1 (1) . Вычисляя χ3 , можно использовать уже не только x1 (1) , но и x2 (1) и т. д.

Таким образом, вместо формул (1) предлагается использовать для отыскания следующего приближения формулы такого вида (мы снова пишем их для конкретного случая системы четырех уравнений с четырьмя неизвестными):

(2)

Это изменение и составляет идею итераций по способу Зейделя.

Естественно ожидать, что итерации по способу Зейделя дадут при том же числе шагов более точные результаты, чем обычные итерации, или, что то же самое, та же точность будет достигнута за меньшее число шагов. Вообще говоря, эти ожидания оправдываются. Однако нужно иметь в виду, что условия сходимости обычного итерационного процесса и итерационного процесса Зейделя различны. Один из этих процессов для данной системы может оказаться расходящимся тогда, когда другой сходится.

Вычислительная схема итерационного процесса Зейделя строится, как и для обычных итераций, на вычислении последовательных поправок. Рассмотрим эту схему, ограничившись, для краткости, системой трех линейных уравнений с тремя неизвестными. Формулы для отыскания следующих приближений через предыдущие будут в этом случае иметь вид

(3)

Формулы для вычисления поправок легко получить, исходя непосредственно из определения и используя (3). Действительно, для ν-ой итерации

δ1 (ν) = ˗ = ( + ) ˗ ( + ) = = + ( ,

δ1 (ν) = + . (4)

Для формула выглядит несколько иначе. Так как = ˗ =

= ( + ) ˗ ( + ),

= + , (5)

= + . (6)

Как и для обычного итерационного процесса, формулы (4)-(6) могут быть использованы для вычисления поправок для всех ν = 1, 2, …. , но не для ν = 0; для формулы должны быть выведены отдельно. Если принять за начальные приближения значения соответствующих свободных членов

= , = = ,

то для первых поправок получим выражения

(7)

где = + и = + .

Расположение вычислений показано в табл. 1. Верхняя часть ее не отличается от обычного способа, а таблица для вычисления поправок имеет уже несколько другой вид: при вычислении очередных поправок в ряде случаев используются уже полученные поправки того же этапа вычислений. Соответствующие места в табл. 1. подчеркнуты.

Вычисления продолжаются до получения достаточно малых поправок. Окончательные значения неизвестных получаются по формулам

+… (𝓀 = 1,2,3).

Таблица 1. Алгоритм способа Зейделя

для системы трех уравнений с тремя неизвестными

Метод итераций

Правила ввода функции

  1. Примеры
    ≡ x^2/(1+x)
    cos 2 (2x+π) ≡ (cos(2*x+pi))^2
    ≡ x+(x-1)^(2/3)

На рис.1а, 1б в окрестности корня |φ′(x)| 1, то процесс итерации может быть расходящимся (см. рис.2).

Достаточные условия сходимости метода итерации

Процесс нахождения нулей функции методом итераций состоит из следующих этапов:

  1. Получить шаблон с омощью этого сервиса.
  2. Уточнить интервалы в ячейках B2 , B3 .
  3. Копировать строки итераций до требуемой точности (столбец D ).

Примечание: столбец A — номер итерации, столбец B — корень уравнения X , столбец C — значение функции F(X) , столбец D — точность eps .

источники:

http://poisk-ru.ru/s48685t6.html

http://math.semestr.ru/optim/iteration_method.php

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

  • 1 Введение
    • 1.1 Постановка вопроса. Виды погрешностей
  • 2 Виды мер точности
  • 3 Предельные погрешности
  • 4 Погрешности округлений при представлении чисел в компьютере
  • 5 Погрешности арифметических операций
  • 6 Погрешности вычисления функций
  • 7 Числовые примеры
  • 8 Список литературы
  • 9 См. также

Введение

Постановка вопроса. Виды погрешностей

Процесс исследования исходного объекта методом математического моделирования и вычислительного эксперимента неизбежно носит приближенный характер, так как на каждом этапе вносятся погрешности. Построение математической модели связано с упрощением исходного явления, недостаточно точным заданием коэффициентов уравнения и других входных данных. По отношению к численному методу, реализующему данную математическую модель, указанные погрешности являются неустранимыми, поскольку они неизбежны в рамках данной модели.

При переходе от математической модели к численному методу возникают погрешности, называемые погрешностями метода. Они связаны с тем, что всякий численный метод воспроизводит исходную математическую модель приближенно. Наиболее типичными погрешностями метода являются погрешность дискретизации и погрешность округления.
При построении численного метода в качестве аналога исходной математической задачи обычно рассматривается её дискретная модель. Разность решений дискретизированной задачи и исходной называется погрешностью дискретизации. Обычно дискретная модель зависит от некоторого параметра (или их множества) дискретизации, при стремлении которого к нулю должна стремиться к нулю и погрешность дискретизации.
Дискретная модель представляет собой систему большого числа алгебраических уравнений. Для её решения используется тот или иной численный алгоритм. Входные данные этой системы, а именно коэффициенты и правые части, задаются в ЭВМ не точно, а с округлением. В процессе работы алгоритма погрешности округления обычно накапливаются, и в результате, решение, полученное на ЭВМ, будет отличаться от точного решения дискретизированной задачи. Результирующая погрешность называется погрешностью округления (вычислительной погрешностью). Величина этой погрешности определяется двумя факторами: точностью представления вещественных чисел в ЭВМ и чувствительностью данного алгоритма к погрешностям округления.

Итак, следует различать погрешности модели, дискретизации и округления. В вопросе преобладания какой-либо погрешности ответ неоднозначен. В общем случае нужно стремиться, чтобы все погрешности имели один и тот же порядок. Например, нецелесообразно пользоваться разностными схемами, имеющими точность 10−6, если коэффициенты исходных уравнений задаются с точностью 10−2.

Виды мер точности

Мерой точности вычислений являются абсолютные и относительные погрешности. Абсолютная погрешность определяется формулой

Delta(tilde a)=|tilde a-a|,

где tilde a – приближение к точному значению a.
Относительная погрешность определяется формулой

delta(tilde a)=frac{|tilde a-a|}{a}.

Относительная погрешность часто выражается в процентах. Абсолютная и относительная погрешности тесно связаны с понятием верных значащих цифр. Значащими цифрами числа называют все цифры в его записи, начиная с первой ненулевой цифры слева. Например, число 0,000129 имеет три значащих цифры. Значащая цифра называется верной, если абсолютная погрешность числа не превышает половины веса разряда, соответствующего этой цифре. Например, tilde a=9348, абсолютная погрешность Delta(tilde a)=15. Записывая число в виде

9348=9cdot10^3+3cdot10^2+4cdot10^1+8cdot10^0,

имеем 0,5cdot10^1<Delta(tilde a)<0,5cdot10^2, следовательно, число имеет две верных значащих цифр (9 и 3).

В общем случае абсолютная погрешность должна удовлетворять следующему неравенству:

Delta(tilde a)<0,5cdot10^{m-n+1} ,

где m — порядок (вес) старшей цифры, n — количество верных значащих цифр.
В рассматриваемом примере Delta(tilde a)le0,5cdot10^{3-2+1}le0,5cdot10^2=50.

Относительная погрешность связана с количеством верных цифр приближенного числа соотношением:

delta(tilde a)lefrac{Delta(tilde a)}{alpha_m}10^mlefrac{10^{m-n+1}}{alpha_m10^m}lefrac{1}{alpha_m10^{n-1}},

где alpha_m — старшая значащая цифра числа.

Для двоичного представления чисел имеем delta(tilde a)le2^{-n}.

Тот факт, что число tilde a является приближенным значением числа a с абсолютной погрешностью Delta(tilde a), записывают в виде

a=tilde apmDelta(tilde a),

причем числа tilde a и Delta(tilde a) записываются с одинаковым количеством знаков после запятой, например, a=2,347pm0,002 или a=2,347pm2cdot10^{-3}.

Запись вида

a=tilde a(1pmdelta(tilde a))

означает, что число tilde a является приближенным значение числа a с относительной погрешностью delta(tilde a).

Так как точное решение задачи как правило неизвестно, то погрешности приходится оценивать через исходные данные и особенности алгоритма. Если оценка может быть вычислена до решения задачи, то она называется априорной. Если оценка вычисляется после получения приближенного решения задачи, то она называется апостериорной.

Очень часто степень точности решения задачи характеризуется некоторыми косвенными вспомогательными величинами. Например точность решения системы алгебраических уравнений

AX=F

характеризуется невязкой

R=F-Atilde X,

где tilde X — приближенное решение системы.
Причём невязка достаточно сложным образом связана с погрешностью решения Delta(X)=tilde X-X, причём если невязка мала, то погрешность может быть значительной.

Предельные погрешности

Пусть искомая величина a является функцией параметров t_1, ldots , t_n in Omega, qquad a* — приближенное значение a. Тогда предельной абсолютной погрешностью называется величина

D(a^*) = suplimits_{(t_1, ldots ,t_n) in Omega } left|{a(t_1, ldots ,t_n) - a^*}right| ,

Предельной относительной погрешностью называется величина D(a*)/| a*|.

Пусть left|{t_j - t_j^*}right| le Delta (t_j^* ), qquad j = 1 div n — приближенное значение a^* = a(t_1^*, ldots ,t_n^* ). Предполагаем, что a — непрерывно дифференцируемая функция своих аргументов. Тогда, по формуле Лагранжа,

a(t_1, ldots ,t_n) - a^* = sumlimits_{j = 1}^n gamma_j (alpha )(t_j - t_j^*),

где gamma_j (alpha ) = a^{prime}_{t_j}(t_1^* + alpha (t_1 - t_1^*), ldots ,t_n^* + alpha (t_n - t_n^*)), qquad 0 le alpha le 1.

Отсюда

left|{a(t_1, ldots ,t_n) - a^*}right| le D_1 (a^*) = sumlimits_{j = 1}^n b_j Delta (t_j^*),

где b_j = suplimits_Omega left|{a^{prime}_{t_j}(t_1, ldots ,t_n)}right|.

Можно показать, что при малых rho = sqrt{{(Delta (t_1^* ))}^2 + ldots + {(Delta (t_n^* ))}^2 } эта оценка не может быть существенно улучшена. На практике иногда пользуются грубой (линейной) оценкой

left|{a(t_1, ldots ,t_n) - a^*}right| le D_2 (a^*),

где D_2 (a^*) = sumlimits_{j = 1} left|{gamma_j (0)}right| Delta (t^*).

Несложно показать, что:

  1. Delta ( pm t_1^* pm , ldots , pm t_n^*) = Delta (t_1^* ) + ldots + Delta (t_n^* ) — предельная погрешность суммы или разности равна сумме предельных погрешностей.
  2. delta (t_1^* cdots t_m^* cdot d_1^{* - 1} cdots d_m^{* - 1} ) = delta (t_1^* ) + ldots + delta (t_m^*) + delta (d_1^*) + ldots + delta (d_n^*) — предельная относительная погрешность произведения или частного приближенного равна сумме предельных относительных погрешностей.

Погрешности округлений при представлении чисел в компьютере

Одним из основных источников вычислительных погрешностей является приближенное представление чисел в компьютере, обусловленное конечностью разрядной сетки (см. Международный стандарт представления чисел с плавающей точкой в ЭВМ). Число a, не представимое в компьютере, подвергается округлению, т. е. заменяется близким числом tilde a, представимым в компьютере точно.
Найдем границу относительной погрешности представления числа с плавающей точкой. Допустим, что применяется простейшее округление – отбрасывание всех разрядов числа, выходящих за пределы разрядной сетки. Система счисления – двоичная. Пусть надо записать число, представляющее бесконечную двоичную дробь

a=underbrace{pm2^p}_{order}underbrace{left(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}+frac{a_{t+1}}{2^{t+1}}+dotsright)}_{mantissa},

где a_j={01, qquad (j=1,2,...) — цифры мантиссы.
Пусть под запись мантиссы отводится t двоичных разрядов. Отбрасывая лишние разряды, получим округлённое число

tilde a=pm2^pleft(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}right).

Абсолютная погрешность округления в этом случае равна

a-tilde a=pm2^pleft(frac{a_{t+1}}{2^{t+1}}+frac{a_{t+2}}{2^{t+2}}+dotsright).

Наибольшая погрешность будет в случае a_{t+1}=1, qquad a_{t+2}=1,, тогда

|a-tilde a|lepm2^pfrac{1}{2^{t+1}}underbrace{left(1+frac{1}{2}+frac{1}{2^2}+dotsright)}_{=2}=2^{p-t}.

Т.к. |M|ge0,5, где M — мантисса числа a, то всегда a_1=1. Тогда |a|ge2^pcdot2^{-1}=2^{p-1} и относительная погрешность равна frac{|a-tilde a|}{|a|}le2^{-t+1}. Практически применяют более точные методы округления и погрешность представления чисел равна

( 1 )

frac{|a-tilde a|}{|a|}le2^{-t},

т.е. точность представления чисел определяется разрядностью мантиссы t.
Тогда приближенно представленное в компьютере число можно записать в виде tilde a=a(1pmepsilon), где |epsilon|le2^{-t}«машинный эпсилон» – относительная погрешность представления чисел.

Погрешности арифметических операций

При вычислениях с плавающей точкой операция округления может потребоваться после выполнения любой из арифметических операций. Так умножение или деление двух чисел сводится к умножению или делению мантисс. Так как в общем случае количество разрядов мантисс произведений и частных больше допустимой разрядности мантиссы, то требуется округление мантиссы результатов. При сложении или вычитании чисел с плавающей точкой операнды должны быть предварительно приведены к одному порядку, что осуществляется сдвигом вправо мантиссы числа, имеющего меньший порядок, и увеличением в соответствующее число раз порядка этого числа. Сдвиг мантиссы вправо может привести к потере младших разрядов мантиссы, т.е. появляется погрешность округления.

Округленное в системе с плавающей точкой число, соответствующее точному числу x, обозначается через fl(x) (от англ. floating – плавающий). Выполнение каждой арифметической операции вносит относительную погрешность, не большую, чем погрешность представления чисел с плавающей точкой (1). Верна следующая запись:

fl(abox b)=abox b(1pmepsilon),

где box — любая из арифметических операций, |epsilon|le2^{-t}.

Рассмотрим трансформированные погрешности арифметических операций. Арифметические операции проводятся над приближенными числами, ошибка арифметических операций не учитывается (эту ошибку легко учесть, прибавив ошибку округления соответствующей операции к вычисленной ошибке).

Рассмотрим сложение и вычитание приближенных чисел. Абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей слагаемых.

Если сумма точных чисел равна

S=a_1+a_2+dots+a_n,

сумма приближенных чисел равна

tilde S=a_1+Delta(a_1)+a_2+Delta(a_2)+dots+a_n+Delta(a_n),

где Delta(a_i), qquad i=1,2,...,n— абсолютные погрешности представления чисел.

Тогда абсолютная погрешность суммы равна

Delta(S)=Delta(a_1)+Delta(a_2)+dots+Delta(a_n).

Относительная погрешность суммы нескольких чисел равна

( 2 )

delta(S)=frac{Delta(S)}{S}=frac{a_1}{S}left(frac{Delta(a_1)}{a_1}right)+frac{a_2}{S}left(frac{Delta(a_2)}{a_2}right)+dots=frac{a_1delta(a_1)+a_2delta(a_2)+dots}{S},

где delta(a_i), qquad i=1,2,...,n — относительные погрешности представления чисел.

Из (2) следует, что относительная погрешность суммы нескольких чисел одного и того же знака заключена между наименьшей и наибольшей из относительных погрешностей слагаемых:

min quad delta(a_k)ledelta(S)le max quad delta(a_k), qquad k=1,2,...,n, quad a_k>0.

При сложении чисел разного знака или вычитании чисел одного знака относительная погрешность может быть очень большой (если числа близки между собой). Так как даже при малых Delta(a_i) величина S может быть очень малой. Поэтому вычислительные алгоритмы необходимо строить таким образом, чтобы избегать вычитания близких чисел.

Необходимо отметить, что погрешности вычислений зависят от порядка вычислений. Далее будет рассмотрен пример сложения трех чисел.

S=x_1+x_2+x_3,
tilde S_1=(x_1+x_2)(1+delta_1),

( 3 )

tilde S=(tilde S_1+x_3)(1+delta_2)=(x_1+x_2)(1+delta_1)(1+delta_2)+x_3(1+delta_2).

При другой последовательности действий погрешность будет другой:

tilde S_1=(x_3+x_2)(1+delta_1),
tilde S=(x_3+x_2)(1+delta_1)(1+delta_2)+x_1(1+delta_2).

Из (3) видно, что результат выполнения некоторого алгоритма, искаженный погрешностями округлений, совпадает с результатом выполнения того же алгоритма, но с неточными исходными данными. Т.е. можно применять обратный анализ: свести влияние погрешностей округления к возмущению исходных данных. Тогда вместо (3) будет следующая запись:

tilde S=tilde x_1+tilde x_2+tilde x_3,

где tilde x_1=x_1(1+delta_1)(1+delta_2), quad tilde x_2=x_2(1+delta_1)(1+delta_2), quad tilde x_3=x_3(1+delta_2).

При умножении и делении приближенных чисел складываются и вычитаются их относительные погрешности.

S=a_1cdot a_2,
tilde S=a_1cdot a_2(1+delta(a_1))(1+delta(a_2))a_1cdot a_2(1+delta(a_1)+delta(a_2)),

с точностью величин второго порядка малости относительно delta.

Тогда delta(S)=delta(a_1)+delta(a_2).

Если S=frac{a_1}{a_2}, то Delta(S)=frac{a_1(1+delta_1)}{a_2(1+delta_2)}-frac{a_1}{a_2}=frac{a_1(delta_1-delta_2)}{a_2(1+delta_2)}approx frac{a_1}{a_2}(delta_1-delta_2), qquad delta(S)delta_1-delta_2.

При большом числе n арифметических операций можно пользоваться приближенной статистической оценкой погрешности арифметических операций, учитывающей частичную компенсацию погрешностей разных знаков:

delta_Sigma approx delta_{fl} quad sqrt{n},

где delta_Sigma – суммарная погрешность, |delta_{fl}|leepsilon – погрешность выполнения операций с плавающей точкой, epsilon – погрешность представления чисел с плавающей точкой.

Погрешности вычисления функций

Рассмотрим трансформированную погрешность вычисления значений функций.

Абсолютная трансформированная погрешность дифференцируемой функции y=f(x), вызываемая достаточно малой погрешностью аргумента Delta(x), оценивается величиной Delta(y)=|f'(x)|Delta(x).

Если f(x)>0, то delta(y)=frac{|f'(x)|}{f(x)}Delta(x)=left|(ln(f(x)))'right|cdotDelta(x).

Абсолютная погрешность дифференцируемой функции многих аргументов y=f(x_1, x_2, ..., x_n), вызываемая достаточно малыми погрешностями Delta(x_1), Delta(x_2), ..., Delta(x_n) аргументов x_1, x_2, ...,x_n оценивается величиной:

Delta(y)=sumlimits_{i=1}^nleft|frac{partial f}{partial x_i}right|Delta(x_i).

Если f(x_1,x_2,...,x_n)>0, то delta(y)=sumlimits_{i=1}^nfrac{1}{f}cdotleft|frac{partial f}{partial x_i}right|cdotDelta(x_i)=sumlimits_{i=1}^{n}left|frac{partial l_n(f)}{partial x_i}right|Delta(x_i).

Практически важно определить допустимую погрешность аргументов и допустимую погрешность функции (обратная задача). Эта задача имеет однозначное решение только для функций одной переменной y=f(x), если f(x) дифференцируема и f'(x)not=0:

Delta(x)=frac{1}{|f'(x)|}Delta(y).

Для функций многих переменных задача не имеет однозначного решения, необходимо ввести дополнительные ограничения. Например, если функция y=f(x_1,x_2,...,x_n) наиболее критична к погрешности Delta(x_i), то:

Delta(x_i)=frac{Delta(y)}{left|frac{partial f}{partial x_i}right|}qquad (погрешностью других аргументов пренебрегаем).

Если вклад погрешностей всех аргументов примерно одинаков, то применяют принцип равных влияний:

Delta(x_i)=frac{Delta(y)}{nleft|frac{partial f}{partial x_i}right|},qquad i=overline{1,n}.

Числовые примеры

Специфику машинных вычислений можно пояснить на нескольких элементарных примерах.

ПРИМЕР 1. Вычислить все корни уравнения

x^4 - 4x^3 + 8x^2 - 16x + 15.underbrace{99999999}_8 = {(x - 2)}^4 - 10^{- 8} = 0.

Точное решение задачи легко найти:

(x - 2)^2 = pm 10^{- 4},
x_1= 2,01; x_2= 1,99; x_{3,4}= 2 pm 0,01i.

Если компьютер работает при delta _M > 10^{ - 8}, то свободный член в исходном уравнении будет округлен до 16,0 и, с точки зрения представления чисел с плавающей точкой, будет решаться уравнение (x-2)^4= 0, т.е. x_{1,2,3,4} = 2, что, очевидно, неверно. В данном случае малые погрешности в задании свободного члена approx10^{-8} привели, независимо от метода решения, к погрешности в решении approx10^{-2}.

ПРИМЕР 2. Решается задача Коши для обыкновенного дифференциального уравнения 2-го порядка:

u''(t) = u(t), qquad u(0) = 1, qquad u'(0) = - 1.

Общее решение имеет вид:

u(t) = 0,5[u(0) + u'(0)]e^t + 0,5[u(0) - u'(0)]e^{- t}.

При заданных начальных данных точное решение задачи: u(x) = e^{-t}, однако малая погрешность delta в их задании приведет к появлению члена delta e^t, который при больших значениях аргумента может существенно исказить решение.

ПРИМЕР 3. Пусть необходимо найти решение обыкновенного дифференциального уравнения:

stackrel{cdot}{u} = 10u,qquad u = u(t), u(t_0) = u_0,qquad t in [0,1].

Его решение: u(t) = u_0e^{10(t - t_0 )}, однако значение u(t_0) известно лишь приближенно: u(t_0) approx u_0^*, и на самом деле u^*(t) = u_0^*e^{10(t - t_0)}.

Соответственно, разность u* - u будет:

u^* - u = (u_0^* - u_0)e^{10(t - t_0)}.

Предположим, что необходимо гарантировать некоторую заданную точность вычислений epsilon > 0 всюду на отрезке t in [0,1]. Тогда должно выполняться условие:

|{u^*(t) - u(t)}| le varepsilon.

Очевидно, что:

maxlimits_{t in [0,1]} |{u^*(t) - u(t)}| = |{u*(1) - u(1)}| = |{u_0^* - u_0}|e^{10(1 - t_0)}.

Отсюда можно получить требования к точности задания начальных данных delta: qquad|u_0^* - u_0| < delta, qquad delta le varepsilon e^{ - 10} при t_0= 0.

Таким образом, требование к заданию точности начальных данных оказываются в e^{10} раз выше необходимой точности результата решения задачи. Это требование, скорее всего, окажется нереальным.

Решение оказывается очень чувствительным к заданию начальных данных. Такого рода задачи называются плохо обусловленными.

ПРИМЕР 4. Решением системы линейных алгебраических уравнений (СЛАУ):

left{ begin{array}{l} u + 10v = 11,  100u + 1001v = 1101;  end{array} right.

является пара чисел {1, quad 1}.

Изменив правую часть системы на 0,01, получим возмущенную систему:

left{ begin{array}{l} u + 10v = 11.01,  100u + 1001v = 1101;  end{array} right.

с решением {11.01, quad 0.00}, сильно отличающимся от решения невозмущенной системы. Эта система также плохо обусловлена.

ПРИМЕР 5. Рассмотрим методический пример вычислений на модельном компьютере, обеспечивающем точность delta_M = 0,0005. Проанализируем причину происхождения ошибки, например, при вычитании двух чисел, взятых с точностью до третьей цифры после десятичной точки u = 1,001,quad v = 1,002, разность которых составляет Delta = |v_M - u_M| = 0,001.

В памяти машины эти же числа представляются в виде:

u_M = u(1 + delta_M^u), quad v_M = v(1 + delta_M^v), причем mid delta_M^umid le delta_M и mid delta_M^vmid le delta_M.

Тогда:

u_M - u approx udelta_M^u, quad v_M - v approx vdelta_M^v.

Относительная ошибка при вычислении разности u_M - v_M будет равна:

delta = frac{(u_M - v_M) - (u - v)}{(u - v)} = frac{(u_M - u) - (v_M - v)}{(u - v)} = frac{delta_M^u - delta_M^v}{(u - v)}.

Очевидно, что delta = left|{frac{delta_M^u - delta_M^v}{Delta }} right| le frac{2delta_M}{0,001} approx 2000delta_M = 1, т.е. все значащие цифры могут оказаться неверными.

ПРИМЕР 6. Рассмотрим рекуррентное соотношение u_{i+1} = qu_i, quad i ge 0, quad u_0 = a,quad q > 0, quad u_i > 0.

Пусть при выполнении реальных вычислений с конечной длиной мантиссы на i-м шаге возникла погрешность округления, и вычисления проводятся с возмущенным значением u_i^M = u_i + delta_i, тогда вместо u_{i+1} получим u_{i + 1}^M = q(u_i + delta_i) = u_{i + 1} + qdelta_i, т.е. delta_{i + 1} = qdelta_i,quad i = 0,1,ldots .

Следовательно, если |q| > 1, то в процессе вычислений погрешность, связанная с возникшей ошибкой округления, будет возрастать (алгоритм неустойчив). В случае mid qmid le 1 погрешность не возрастает и численный алгоритм устойчив.

Список литературы

  • А.А.Самарский, А.В.Гулин.  Численные методы. Москва «Наука», 1989.
  • http://www.mgopu.ru/PVU/2.1/nummethods/Chapter1.htm
  • http://www.intuit.ru/department/calculate/calcmathbase/1/4.html

См. также

  • Практикум ММП ВМК, 4й курс, осень 2008

Итерационные методы решения системы линейных алгебраических уравнений

В данной статье мы расскажем общие сведения об итерационных методах решения СЛАУ, познакомим с методом Зейделя и Якоби, а также приведем примеры решения систем линейных уравнений при помощи данных методов.

Общие сведения об итерационных методах или методе простой итерации

Метод итерации — это численный и приближенный метод решения СЛАУ.

Суть: нахождение по приближённому значению величины следующего приближения, которое является более точным. Метод позволяет получить значения корней системы с заданной точностью в виде предела последовательности некоторых векторов (итерационный процесс). Характер сходимости и сам факт сходимости метода зависит от выбора начального приближения корня x 0 .

Рассмотрим систему A x = b .

Чтобы применить итерационный метод, необходимо привести систему к эквивалентному виду x = B x + d . Затем выбираем начальное приближение к решению СЛАУ x ( 0 ) = ( x 1 0 , x 2 0 , . . . x m 0 ) и находим последовательность приближений к корню.

Для сходимости итерационного процесса является достаточным заданное условие В 1 . Окончание итерации зависит от того, какой итерационный метод применили.

Метод Якоби

Метод Якоби — один из наиболее простых методов приведения системы матрицы к виду, удобному для итерации: из 1-го уравнения матрицы выражаем неизвестное x 1 , из 2-го выражаем неизвестное x 2 и т.д.

Результатом служит матрица В , в которой на главной диагонали находятся нулевые элементы, а все остальные вычисляются по формуле:

b i j = — a i j / a i i , i , j = 1 , 2 . . . , n

Элементы (компоненты) вектора d вычисляются по следующей формуле:

d i = b i / a i i , i = 1 , 2 , . . . , n

Расчетная формула метода простой итерации:

x ( n + 1 ) = B x ( x ) + d

Матричная запись (координатная):

x i ( n + 1 ) = b i 1 x n 1 + b i 2 x ( n ) 2 + . . . + b

Критерий окончания в методе Якоби:

x ( n + 1 ) — x ( n ) ε 1 , где ε 1 = 1 — B B ε

В случае если B 1 / 2 , то можно применить более простой критерий окончания итераций:

x ( n + 1 ) — x ( n ) ε

Решить СЛАУ методом Якоби:

10 x 1 + x 2 — x 3 = 11 x 1 + 10 x 2 — x 3 = 10 — x 1 + x 2 + 10 x 3 = 10

Необходимо решить систему с показателем точности ε = 10 — 3 .

Приводим СЛАУ к удобному виду для итерации:

x 1 = — 0 , 1 x 2 + 0 , 1 x 3 + 1 , 1 x 2 = — 0 , 1 x 1 + 0 , 1 x 3 + 1 x 3 = 0 , 1 x 1 — 0 , 1 x 2 + 1

Выбираем начальное приближение, например: x ( 0 ) = 1 , 1 1 1 — вектор правой части.

В таком случае, первая итерация имеет следующий внешний вид:

x 1 ( 1 ) = — 0 , 1 × 1 + 0 , 1 × 1 + 1 , 1 = 1 , 1 x 2 ( 1 ) = — 0 , 1 × 1 , 1 + 0 , 1 + 1 = 0 , 99 x 3 ( 1 ) = 0 , 1 × 1 , 1 — 0 , 1 × 1 + 1 = 1 , 01

Аналогичным способом вычисляются приближения к решению:

x ( 2 ) = 1 , 102 0 , 991 1 , 011 , x ( 3 ) = 1 , 102 0 , 9909 1 , 0111 , x ( 4 ) = 1 , 10202 0 , 99091 1 , 01111

Находим норму матрицы В , для этого используем норму B ∞ .

Поскольку сумма модулей элементов в каждой строке равна 0,2, то B ∞ = 0 , 2 1 / 2 , поэтому можно вычислить критерий окончания итерации:

x ( n + 1 ) — x ( n ) ε

Далее вычисляем нормы разности векторов:

x ( 3 ) — x ( 2 ) ∞ = 0 , 002 , x ( 4 ) — x ( 3 ) ∞ = 0 , 00002 .

Поскольку x ( 4 ) — x ( 3 ) ∞ ε , то можно считать, что мы достигли заданной точности на 4-ой итерации.

x 1 = 1 , 102 ; x 2 = 0 , 991 ; x 3 = 1 ,01 1 .

Метод Зейделя

Метод Зейделя — метод является модификацией метода Якоби.

Суть: при вычислении очередного ( n + 1 ) — г о приближения к неизвестному x i при i > 1 используют уже найденные ( n + 1 ) — е приближения к неизвестным x 1 , x 2 , . . . , x i — 1 , а не n — о е приближение, как в методе Якоби.

x i ( n + 1 ) = b i 1 x 1 ( n + 1 ) + b i 2 x 2 ( n + 1 ) + . . . + b i , i — 1 x i — 2 ( n + 1 ) + b i , i + 1 x i + 1 ( n ) +

+ . . . + b i m x m ( n ) + d i

За условия сходимости и критерий окончания итераций можно принять такие же значения, как и в методе Якоби.

Решить СЛАУ методом Зейделя. Пусть матрица системы уравнений А — симметричная и положительно определенная. Следовательно, если выбрать начальное приближение, метод Зейделя сойдется. Дополнительных условий на малость нормы некоторой матрицы не накладывается.

Решим 3 системы уравнений:

2 x 1 + x 2 = 3 x 1 — 2 x 2 = 1 , x 1 + 2 x 2 = 3 2 x 1 — x 2 = 1 , 2 x 1 — 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1

Приведем системы к удобному для итерации виду:

x 1 ( n + 1 ) = — 0 , 5 x 2 ( n ) + 1 , 5 x 2 ( n + 1 ) = 0 , 5 x 1 ( n + 1 ) + 0 , 5 , x 1 ( n + 1 ) = — 2 x 2 ( n ) + 3 x 2 ( n + 1 ) = 2 x 1 ( n + 1 ) — 1 , 2 x 1 — 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1 .

Отличительная особенность, условие сходимости выполнено только для первой системы:

Вычисляем 3 первых приближения к каждому решению:

1-ая система: x ( 0 ) = 1 , 5 — 0 , 5 , x ( 1 ) = 1 , 75 0 , 375 , x ( 2 ) = 1 , 3125 0 , 1563 , x ( 3 ) = 1 , 4219 0 , 2109

Решение: x 1 = 1 , 4 , x 2 = 0 , 2 . Итерационный процесс сходится.

2-ая система: x ( 0 ) = 3 — 1 , x ( 1 ) = 5 9 , x ( 2 ) = — 15 — 31 , x ( 3 ) = 65 129

Итерационный процесс разошелся.

Решение: x 1 = 1 , x 2 = 2

3-я система: x ( 0 ) = 1 , 5 2 , x ( 1 ) = 2 — 6 , x ( 2 ) = 0 2 , x ( 3 ) = 0 2

Итерационный процесс зациклился.

Решение: x 1 = 1 , x 1 = 2

Метод простой итерации

Если А — симметричная и положительно определенная, то СЛАУ приводят к эквивалентному виду:

x = x — τ ( A x — b ) , τ — итерационный параметр.

Расчетная формула имеет следующий внешний вид:

x ( n + 1 ) = x ( n ) — τ ( A x n — b ) .

Здесь B = E — τ A и параметр τ > 0 выбирают таким образом, чтобы по возможности сделать максимальной величину B 2 .

Пусть λ m i n и λ m a x — максимальные и минимальные собственные значения матрицы А .

τ = 2 / ( λ m i n + λ m a x ) — оптимальный выбор параметра. В этом случае B 2 принимает минимальное значение, которое равняется ( λ m i n + λ m a x ) / ( λ m i n — λ m a x ) .

Лекция 5. Итерационные методы решения уравнений и систем

5.1 Простая итерация. Уравнения с одним неизвестным.Пусть задана непрерывная функция f(x) и требуется найти все или некоторые корни уравнения

Эта задача распадается на несколько задач. Во-первых, надо исследовать характер и расположение корней. Во-вторых, найти приближенные значения корней. В-третьих, выбрать из них интересующие нас корни и вычислить их с требуемой точностью.

Первая и вторая задачи решаются аналитическими и графическими методами. Например, многочлен

имеет n комплексных корней, не обязательно различных, и все корни лежат внутри круга

Когда ищутся только действительные корни уравнения, то полезно составить таблицу значений f(x). Если в двух соседних узлах таблицы функция имеет разные знаки, то между этими узлами лежит нечетное число корней уравнения (по меньшей мере один). Если эти узлы близки, то, скорее всего, корень между ними только один. Но выявить по таблице корни четной кратности сложно.

По таблице можно построить график функции y=f(x) и графически найти точки его пересечения с осью абсцисс. Этот способ более нагляден и дает неплохие приближенные значения корней. Во многих задачах такая точность уже достаточна. В технике еще популярны графические методы решения уравнений (номография). Построение графика зачастую позволяет выявить даже корни четной кратности.

Иногда удается заменить уравнение (5.1.1) эквивалентным ему уравнением φ(x) = ψ(x), в котором функции и имеют несложные графики. Например, уравнение x sin x – 1 = 0 удобно преобразить к виду sin x = 1/x. Абсциссы точек сечения этих графиков будут корнями исходного уравнения.

Дихотомия (деление пополам). Пусть мы нашли такие точки , , что , т.е. на отрезке лежит не менее одного корня уравнения. Найдем середину отрезка и вычислим . Из двух половин отрезка выберем ту, для которой , ибо один из корней лежит на этой половине. Затем новый отрезок опять делим пополам и выберем ту половину, на концах которой функция имеет разные знаки, и т.д. (рис. 5.1).

Если требуется найти корень с точность ε, то продолжаем деление пополам до тех пор, пока длина отрезка не станет меньше 2ε. Тогда середина последнего отрезка даст значение корня с требуемой точностью.

Дихотомия проста и очень надежна: к простому корню она сходится для любых непрерывных функций f(x), в том числе недифференцируемых; при этом она устойчива к ошибкам округления. Скорость сходимости невелика: за одну итерацию точность увеличивается примерно вдвое, т.е. уточнение трех цифр требует 10 итераций. Зато точность ответа гарантируется.

Перечислим недостатки метода. Для начала расчета надо найти отрезок, на котором функция меняет знак. Если в этом отрезке несколько корней, то заранее неизвестно, к какому из них сойдется процесс (хотя к одному из них сойдется). Метод неприменим к корням четной кратности. Для корней нечетной высокой кратности он сходится, но менее точен и хуже устойчив к ошибкам округления, возникающим при вычислении f(x). Наконец, на системы уравнений дихотомия не обобщается.

Дихотомия применяется тогда, когда требуется высокая надежность счета, а скорость сходимости малосущественна.

Удаление корней. Один из недостатков дихотомии – сходимость неизвестно к какому корню – имеется почти у всех итерационных методов. Его можно устранить удалением уже найденного корня.

Если есть простой корень уравнения (5.1.1) и f(x) липшиц-непрерывна, то вспомогательная функция непрерывна, причем все нули функции f(x) и g(x) совпадают, за исключением , ибо Если – кратный корень уравнения (5.1.1), то он будет нулем функции кратности на единицу меньше; остальные нули обеих функций по-прежнему будут одинаковы.

Поэтому найденный корень можно удалить, т.е. перейти к функции . Тогда нахождение остальных нулей f(x) сведется к нахождению нулей . Когда мы найдем какой-нибудь корень функции , то этот корень тоже можно удалить, вводя новую вспомогательную функцию

= . Так можно последовательно найти все корни f(x).

Строго говоря, мы находим лишь приближенное значение корня . А функция имеет нуль в точке и полюс в близкой к ней точке (рис. 5.2); только на некотором расстоянии от этого корня она близка к . Чтобы это не сказывалось при нахождении следующих корней, надо вычислять каждый корень с высокой точностью.

Кроме того, в любом методе окончательные итерации вблизи определяемого корня рекомендуется делать не по функциям типа , а по исходной функции . Последние итерации, вычисленные по функции , используются при этом в качестве нулевого приближения. Важно это при нахождении многих корней, ибо чем больше корней удалено, тем меньше нули вспомогательной функции соответствуют остальным нулям функции .

Учитывая эти предосторожности и вычисляя корни с 8-10 верными десятичными цифрами, зачастую можно определить десятка два корней, о расположении которых заранее ничего не известно (в том числе корней высокой кратности p

Метод простых итераций. Заменим уравнение (5.1.1) эквивалентным ему уравнением . Это можно сделать многими способами, например, положив , где – произвольная непрерывная знакопостоянная функция. Выберем некоторое нулевое приближение и вычислим дальнейшие приближения по формулам

(5.1.2)

Очевидно, если стремится к некоторому пределу , то этот предел есть корень исходного уравнения.

Исследуем условия сходимости. Если имеет непрерывную производную, тогда

, (5.1.3)

где точка ξ лежит между точками и . Поэтому если всюду , то отрезки убывают не медленней членов геометрической прогрессии со знаменателем и последовательность сходится при любом нулевом приближении. Если , то в силу непрерывности больше единицы и в некоторой окрестности корня; в этом случае итерации не могут сходится. Если , но вдали от корня , то итерации сходятся, если нулевое приближение выбрано достаточно близко к корню; при произвольном нулевом приближении сходимости может не быть.

Очевидно, что чем меньше q, тем быстрее сходимость. Вблизи корня асимптотическая сходимость определяется величиной и будет особенно быстрой при .

Значит, успех метода зависит от того, насколько удачно выбрано . Например, для извлечения квадратного корня, т.е. решения уравнения , можно положить или и соответственно написать такие итерационные процессы:

Первый процесс вообще не сходится, а второй сходится при любом ; сходится он очень быстро, ибо . Второй процесс используют при извлечении корня на калькуляторах.

Каков практический критерий сходимости, т.е. когда надо прекращать итерации (5.1.2)? Из (5.1.3) видно, что если , то итерации попеременно оказываются то с одной, то с другой стороны корня, так что корень заключен в интервале . Это надежная, хотя несколько грубая оценка. Но она неприменима при , когда итерации сходятся к корню монотонно, т.е. с одной стороны.

Вблизи корня итерации сходятся примерно, как геометрическая прогрессия со знаменателем . Чтобы сумма дальнейших ее членов не превосходила ε, должен выполняться критерий сходимости

. (5.1.5)

При выполнении этого условия итерации можно прекращать.

Метод простых итераций и почти все другие итерационные методы имеют важное достоинство: в них не накапливаются ошибки вычислений. Ошибка вычислений эквивалентна некоторому ухудшению очередного приближения. Но это отразится только на числе итераций, а не на точности окончательного результата. Подобные методы устойчивы даже по отношению к грубым ошибкам (компьютерного сбоя), если только ошибка не выбрасывает очередное приближение за пределы области сходимости.

Метод Ньютона. Он называется также методом касательных или методом линеаризации. Если есть некоторое приближение к корню , а имеет непрерывную производную, то уравнение (5.1.1) можно преобразоватьть следующим образом:

.

Приближенно заменяя на значение в известной точке , получим такой итерационный процесс:

. (5.1.6)

Геометрически этот процесс означает замену на каждой итерации графика касательной к нему (рис. 28).

Метод Ньютона можно рассматривать как частный случай метода простых итераций, если положить . Тогда Если есть р-кратный корень уравнения (5.1.1), то вблизи него ; отсюда нетрудно получить , т.е. . Для простого корня и . Используя результаты п.4, можно сформулировать следующие условия сходимости итерации (28). Если нулевое приближение выбрано достаточно близко к корню, ньютоновские итерации сходятся; скорость сходимости велика для простого корня и соответствует скорости геометрической прогрессии для кратного корня. При произвольном нулевом приближении итерации сходятся, если всюду ; в противном случае сходимость будет не при любом нулевом приближении, а только в некоторой окрестности корня.

Сходимость вблизи любого корня монотонна, что легко видеть на рис. 28; но вдали от корня возможна немонотонность итерации. Отметим, что рис. 28 указывает еще на одно достаточное условие сходимости итерации. Пусть справа от корня на отрезке ; если выбрано также справа от корня на этом отрезке, то итерация (28) сходится, причем монотонно. То же будет, если слева от корня на отрезке , и на этом же отрезке выбрано нулевое приближение. Таким образом, итерации сходятся к корню с той стороны, с которой .

Оценим скорость сходимости вблизи простого корня. По определению простых итераций, . Разлагая правую часть по формуле Тейлора и учитывая равенство , получим

, (5.1.7)
Т а б л и ц а 1
n , метод Ньютона , метод секущих
1,0000 1,0000
2,5000 2,5000
2,0500 1,8571
2,0001 1,9836

т.е. погрешность очередного приближения примерно равна квадрату погрешности предыдущего приближения. Например, если (n-1)-я итерация давала 3 верных знака, то n-я даст примерно 6 верных знаков, а (n+1)-я – примерно 12 знаков. Это иллюстрирует быструю сходимость вблизи корня. Разумеется, вдали от корня подобные соображения неприменимы.

Если вычисляется корень высокой кратности, то в знаменателе формулы (28) становится малой вблизи корня. Чтобы не было потери точности, отношение надо вычислять достаточно аккуратно. К остальным погрешностям расчета метод Ньютона хорошо устойчив.

Для нахождения корней произвольной дифференцируемой функции чаще всего применяют метод Ньютона, особенно если известны разумные начальные приближения для корней.

П р и м е р. Рассмотрим решение уравнения . Тогда общая формула метода Ньютона (5.1.6) принимает вид

.

Мы получили вторую формулу (5.1.4), которая, как отмечалось раньше, позволяет очень быстро находить квадратный корень с помощью только сложения и деления. Для иллюстрации в таблице 16 приведен ход итерации при извлечении квадратного корня из а = 4.Видно, что сходимость очень быстрая; несмотря на неважное нулевое приближение, уже третья итерация дает точность 0,005%. Попутно можно заметить, что вблизи корня итерация сходится с одной стороны, т.е. монотонно, хотя первая итерация дает переброс на другую сторону корня.

Метод секущих. В методе Ньютона требуется вычислять производную функции, что не всегда удобно. Можно заменить производную первой разделенной разностью, найденной по двум последним итерациям, т.е. заменить касательную секущей. Тогда вместо процесса (5.1.6) получим

. (5.1.8)

Для начала процесса надо задать и (рис. 29). Такие процессы, где для вычисления очередного приближения надо знать два предыдущих, называют двухшаговыми.

Эти небольшие изменения сильно влияют на характер итераций. Например, сходимость итераций может быть немонотонной не только вдали от корня, но и в малой окрестности корня. Скорость сходимости также изменяется. Приведенный в таблице 1 для сравнения расчет по методу Ньютона показывает, что метод секущих сходится медленнее, т.к. в методе Ньютона ошибка убывает быстрей. Но в методе Ньютона на каждой итерации надо вычислять и функцию, и производную, а в методе секущих – только функцию.

В знаменателе формулы (5.1.8) стоит разность значений функции; вдали от корня это несущественно, но вблизи корня значения функции малы и очень близки. Возникает потеря значащих цифр, приводящая к «разболтке» счета, что ограничивает точность.

От «разболтки» страхуются так называемым приемом Гарвика. Выбирают не очень малое значение ε, ведут итерации до выполнения условия и затем продолжают расчет до тех пор, пока убывают. Первое же возрастание обычно означает начало «разболтки»; тогда расчет прекращают и последнюю итерацию не используют.

Метод парабол. Метод секущих основан на замене функции ф(х) интерполяционным полиномом первой степени по узлам xn , xn-1 . По трем последним итерациям можно построить полином второй степени, т.е. заменить график функции параболой. Примем этот полином в форме Ньютона:

Приравняв его нулю, получим квадратноеуравнение

Меньший по модулю из двух корней квадратного уравнения определяет новое приближение xn+1=xn+z .

Для начала расчета надо задать три первых приближения х012 (обычно наугад), т.е. процесс является трехшаговым.

Метод парабол построен по образцу методов третьего порядка, однако замена производных разделенными разностями приводит к существенному уменьшению скорости сходимости.

В этом методе «разболтка» счета вблизи корня сказывается еще больше, чем в методе секущих, т.к. в расчете участвуют вторые разности, но все-таки корни можно найти с хорошей точностью; для определения оптимального числа итераций добно пользоваться приемом Гарвика (см. выше).

Метод парабол исключительно эффективен для нахождения всех корней многочлена высокой степени.

5.2. Итерации для линейных систем уравнений (обычный способ). Итерационные методы решения систем линейных уравнений позволяют получить это решение в виде предела последовательности некоторых векторов, построение которых осуществляется посредством единообразного процесса.

Для определенности запишем систему линейных уравнений четвертого порядка в виде + =0, где = (i,y=1,2,3,4), векторы

= , = .

Разрешим первое из уравнений относительно x1 , второе – относительно x2 и т.д. Тогда эту систему можно переписать в виде

= — (i=1, 2, 3, 4; k=1, 2, 3, 4, 5) . (2)

Система (1) является частным случаем записи вида

При этом линейная функция, например, L1(x1, x2, x3, x4) фактически не зависит от x1 согласно (1). Выводы не изменятся, если она будет содержать слагаемое вида α11x1 .То же относится к правым частям остальных уравнений.

Зададим произвольные начальные значения неизвестных , , , . Подставляя эти значения в правые части системы (3), получим первые приближения:

=L1( , , , ) ,

=L4( , , , ).

Полученные первые приближения могут быть таким же образом использованы для получения вторых, третьих и т.д., так что для любого ν можно получить ν-е приближение , , , .

Можно установить условия, которые обеспечат сходимость получающихся приближений к истинному решению системы x1, x2, x3, x4, для чего достаточно отличия от нуля определителя системы detA≠0.

Обозначим через ошибку ν-го приближения для k-го неизвестного

= – xk ,

где xk точное значение неизвестного в решении системы, которое предполагается существующим.

Показано, что для сходимости итерационного процесса к точному решению системы в этом способе достаточно выполнения условия С (ν) =L1 (x1 (ν-1) , x1 (ν-1) ,…),

Иначе говоря, следующее приближение полностью определялось значениями, полученными на предыдущем шаге. Между тем уже при построении первого приближения можно, например, вычисляя значение x2 (1) , воспользоваться для x1 не нулевым приближением x1 (0) , а уже полученным нами первым приближением x1 (1) . Вычисляя χ3 , можно использовать уже не только x1 (1) , но и x2 (1) и т. д.

Таким образом, вместо формул (1) предлагается использовать для отыскания следующего приближения формулы такого вида (мы снова пишем их для конкретного случая системы четырех уравнений с четырьмя неизвестными):

(2)

Это изменение и составляет идею итераций по способу Зейделя.

Естественно ожидать, что итерации по способу Зейделя дадут при том же числе шагов более точные результаты, чем обычные итерации, или, что то же самое, та же точность будет достигнута за меньшее число шагов. Вообще говоря, эти ожидания оправдываются. Однако нужно иметь в виду, что условия сходимости обычного итерационного процесса и итерационного процесса Зейделя различны. Один из этих процессов для данной системы может оказаться расходящимся тогда, когда другой сходится.

Вычислительная схема итерационного процесса Зейделя строится, как и для обычных итераций, на вычислении последовательных поправок. Рассмотрим эту схему, ограничившись, для краткости, системой трех линейных уравнений с тремя неизвестными. Формулы для отыскания следующих приближений через предыдущие будут в этом случае иметь вид

(3)

Формулы для вычисления поправок легко получить, исходя непосредственно из определения и используя (3). Действительно, для ν-ой итерации

δ1 (ν) = ˗ = ( + ) ˗ ( + ) = = + ( ,

δ1 (ν) = + . (4)

Для формула выглядит несколько иначе. Так как = ˗ =

= ( + ) ˗ ( + ),

= + , (5)

= + . (6)

Как и для обычного итерационного процесса, формулы (4)-(6) могут быть использованы для вычисления поправок для всех ν = 1, 2, …. , но не для ν = 0; для формулы должны быть выведены отдельно. Если принять за начальные приближения значения соответствующих свободных членов

= , = = ,

то для первых поправок получим выражения

(7)

где = + и = + .

Расположение вычислений показано в табл. 1. Верхняя часть ее не отличается от обычного способа, а таблица для вычисления поправок имеет уже несколько другой вид: при вычислении очередных поправок в ряде случаев используются уже полученные поправки того же этапа вычислений. Соответствующие места в табл. 1. подчеркнуты.

Вычисления продолжаются до получения достаточно малых поправок. Окончательные значения неизвестных получаются по формулам

+… (𝓀 = 1,2,3).

Таблица 1. Алгоритм способа Зейделя

для системы трех уравнений с тремя неизвестными

Метод итераций

Правила ввода функции

  1. Примеры
    ≡ x^2/(1+x)
    cos 2 (2x+π) ≡ (cos(2*x+pi))^2
    ≡ x+(x-1)^(2/3)

На рис.1а, 1б в окрестности корня |φ′(x)| 1, то процесс итерации может быть расходящимся (см. рис.2).

Достаточные условия сходимости метода итерации

Процесс нахождения нулей функции методом итераций состоит из следующих этапов:

  1. Получить шаблон с омощью этого сервиса.
  2. Уточнить интервалы в ячейках B2 , B3 .
  3. Копировать строки итераций до требуемой точности (столбец D ).

Примечание: столбец A — номер итерации, столбец B — корень уравнения X , столбец C — значение функции F(X) , столбец D — точность eps .

источники:

http://poisk-ru.ru/s48685t6.html

http://math.semestr.ru/optim/iteration_method.php

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

  • 1 Введение
    • 1.1 Постановка вопроса. Виды погрешностей
  • 2 Виды мер точности
  • 3 Предельные погрешности
  • 4 Погрешности округлений при представлении чисел в компьютере
  • 5 Погрешности арифметических операций
  • 6 Погрешности вычисления функций
  • 7 Числовые примеры
  • 8 Список литературы
  • 9 См. также

Введение

Постановка вопроса. Виды погрешностей

Процесс исследования исходного объекта методом математического моделирования и вычислительного эксперимента неизбежно носит приближенный характер, так как на каждом этапе вносятся погрешности. Построение математической модели связано с упрощением исходного явления, недостаточно точным заданием коэффициентов уравнения и других входных данных. По отношению к численному методу, реализующему данную математическую модель, указанные погрешности являются неустранимыми, поскольку они неизбежны в рамках данной модели.

При переходе от математической модели к численному методу возникают погрешности, называемые погрешностями метода. Они связаны с тем, что всякий численный метод воспроизводит исходную математическую модель приближенно. Наиболее типичными погрешностями метода являются погрешность дискретизации и погрешность округления.
При построении численного метода в качестве аналога исходной математической задачи обычно рассматривается её дискретная модель. Разность решений дискретизированной задачи и исходной называется погрешностью дискретизации. Обычно дискретная модель зависит от некоторого параметра (или их множества) дискретизации, при стремлении которого к нулю должна стремиться к нулю и погрешность дискретизации.
Дискретная модель представляет собой систему большого числа алгебраических уравнений. Для её решения используется тот или иной численный алгоритм. Входные данные этой системы, а именно коэффициенты и правые части, задаются в ЭВМ не точно, а с округлением. В процессе работы алгоритма погрешности округления обычно накапливаются, и в результате, решение, полученное на ЭВМ, будет отличаться от точного решения дискретизированной задачи. Результирующая погрешность называется погрешностью округления (вычислительной погрешностью). Величина этой погрешности определяется двумя факторами: точностью представления вещественных чисел в ЭВМ и чувствительностью данного алгоритма к погрешностям округления.

Итак, следует различать погрешности модели, дискретизации и округления. В вопросе преобладания какой-либо погрешности ответ неоднозначен. В общем случае нужно стремиться, чтобы все погрешности имели один и тот же порядок. Например, нецелесообразно пользоваться разностными схемами, имеющими точность 10−6, если коэффициенты исходных уравнений задаются с точностью 10−2.

Виды мер точности

Мерой точности вычислений являются абсолютные и относительные погрешности. Абсолютная погрешность определяется формулой

Delta(tilde a)=|tilde a-a|,

где tilde a – приближение к точному значению a.
Относительная погрешность определяется формулой

delta(tilde a)=frac{|tilde a-a|}{a}.

Относительная погрешность часто выражается в процентах. Абсолютная и относительная погрешности тесно связаны с понятием верных значащих цифр. Значащими цифрами числа называют все цифры в его записи, начиная с первой ненулевой цифры слева. Например, число 0,000129 имеет три значащих цифры. Значащая цифра называется верной, если абсолютная погрешность числа не превышает половины веса разряда, соответствующего этой цифре. Например, tilde a=9348, абсолютная погрешность Delta(tilde a)=15. Записывая число в виде

9348=9cdot10^3+3cdot10^2+4cdot10^1+8cdot10^0,

имеем 0,5cdot10^1<Delta(tilde a)<0,5cdot10^2, следовательно, число имеет две верных значащих цифр (9 и 3).

В общем случае абсолютная погрешность должна удовлетворять следующему неравенству:

Delta(tilde a)<0,5cdot10^{m-n+1} ,

где m — порядок (вес) старшей цифры, n — количество верных значащих цифр.
В рассматриваемом примере Delta(tilde a)le0,5cdot10^{3-2+1}le0,5cdot10^2=50.

Относительная погрешность связана с количеством верных цифр приближенного числа соотношением:

delta(tilde a)lefrac{Delta(tilde a)}{alpha_m}10^mlefrac{10^{m-n+1}}{alpha_m10^m}lefrac{1}{alpha_m10^{n-1}},

где alpha_m — старшая значащая цифра числа.

Для двоичного представления чисел имеем delta(tilde a)le2^{-n}.

Тот факт, что число tilde a является приближенным значением числа a с абсолютной погрешностью Delta(tilde a), записывают в виде

a=tilde apmDelta(tilde a),

причем числа tilde a и Delta(tilde a) записываются с одинаковым количеством знаков после запятой, например, a=2,347pm0,002 или a=2,347pm2cdot10^{-3}.

Запись вида

a=tilde a(1pmdelta(tilde a))

означает, что число tilde a является приближенным значение числа a с относительной погрешностью delta(tilde a).

Так как точное решение задачи как правило неизвестно, то погрешности приходится оценивать через исходные данные и особенности алгоритма. Если оценка может быть вычислена до решения задачи, то она называется априорной. Если оценка вычисляется после получения приближенного решения задачи, то она называется апостериорной.

Очень часто степень точности решения задачи характеризуется некоторыми косвенными вспомогательными величинами. Например точность решения системы алгебраических уравнений

AX=F

характеризуется невязкой

R=F-Atilde X,

где tilde X — приближенное решение системы.
Причём невязка достаточно сложным образом связана с погрешностью решения Delta(X)=tilde X-X, причём если невязка мала, то погрешность может быть значительной.

Предельные погрешности

Пусть искомая величина a является функцией параметров t_1, ldots , t_n in Omega, qquad a* — приближенное значение a. Тогда предельной абсолютной погрешностью называется величина

D(a^*) = suplimits_{(t_1, ldots ,t_n) in Omega } left|{a(t_1, ldots ,t_n) - a^*}right| ,

Предельной относительной погрешностью называется величина D(a*)/| a*|.

Пусть left|{t_j - t_j^*}right| le Delta (t_j^* ), qquad j = 1 div n — приближенное значение a^* = a(t_1^*, ldots ,t_n^* ). Предполагаем, что a — непрерывно дифференцируемая функция своих аргументов. Тогда, по формуле Лагранжа,

a(t_1, ldots ,t_n) - a^* = sumlimits_{j = 1}^n gamma_j (alpha )(t_j - t_j^*),

где gamma_j (alpha ) = a^{prime}_{t_j}(t_1^* + alpha (t_1 - t_1^*), ldots ,t_n^* + alpha (t_n - t_n^*)), qquad 0 le alpha le 1.

Отсюда

left|{a(t_1, ldots ,t_n) - a^*}right| le D_1 (a^*) = sumlimits_{j = 1}^n b_j Delta (t_j^*),

где b_j = suplimits_Omega left|{a^{prime}_{t_j}(t_1, ldots ,t_n)}right|.

Можно показать, что при малых rho = sqrt{{(Delta (t_1^* ))}^2 + ldots + {(Delta (t_n^* ))}^2 } эта оценка не может быть существенно улучшена. На практике иногда пользуются грубой (линейной) оценкой

left|{a(t_1, ldots ,t_n) - a^*}right| le D_2 (a^*),

где D_2 (a^*) = sumlimits_{j = 1} left|{gamma_j (0)}right| Delta (t^*).

Несложно показать, что:

  1. Delta ( pm t_1^* pm , ldots , pm t_n^*) = Delta (t_1^* ) + ldots + Delta (t_n^* ) — предельная погрешность суммы или разности равна сумме предельных погрешностей.
  2. delta (t_1^* cdots t_m^* cdot d_1^{* - 1} cdots d_m^{* - 1} ) = delta (t_1^* ) + ldots + delta (t_m^*) + delta (d_1^*) + ldots + delta (d_n^*) — предельная относительная погрешность произведения или частного приближенного равна сумме предельных относительных погрешностей.

Погрешности округлений при представлении чисел в компьютере

Одним из основных источников вычислительных погрешностей является приближенное представление чисел в компьютере, обусловленное конечностью разрядной сетки (см. Международный стандарт представления чисел с плавающей точкой в ЭВМ). Число a, не представимое в компьютере, подвергается округлению, т. е. заменяется близким числом tilde a, представимым в компьютере точно.
Найдем границу относительной погрешности представления числа с плавающей точкой. Допустим, что применяется простейшее округление – отбрасывание всех разрядов числа, выходящих за пределы разрядной сетки. Система счисления – двоичная. Пусть надо записать число, представляющее бесконечную двоичную дробь

a=underbrace{pm2^p}_{order}underbrace{left(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}+frac{a_{t+1}}{2^{t+1}}+dotsright)}_{mantissa},

где a_j={01, qquad (j=1,2,...) — цифры мантиссы.
Пусть под запись мантиссы отводится t двоичных разрядов. Отбрасывая лишние разряды, получим округлённое число

tilde a=pm2^pleft(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}right).

Абсолютная погрешность округления в этом случае равна

a-tilde a=pm2^pleft(frac{a_{t+1}}{2^{t+1}}+frac{a_{t+2}}{2^{t+2}}+dotsright).

Наибольшая погрешность будет в случае a_{t+1}=1, qquad a_{t+2}=1,, тогда

|a-tilde a|lepm2^pfrac{1}{2^{t+1}}underbrace{left(1+frac{1}{2}+frac{1}{2^2}+dotsright)}_{=2}=2^{p-t}.

Т.к. |M|ge0,5, где M — мантисса числа a, то всегда a_1=1. Тогда |a|ge2^pcdot2^{-1}=2^{p-1} и относительная погрешность равна frac{|a-tilde a|}{|a|}le2^{-t+1}. Практически применяют более точные методы округления и погрешность представления чисел равна

( 1 )

frac{|a-tilde a|}{|a|}le2^{-t},

т.е. точность представления чисел определяется разрядностью мантиссы t.
Тогда приближенно представленное в компьютере число можно записать в виде tilde a=a(1pmepsilon), где |epsilon|le2^{-t}«машинный эпсилон» – относительная погрешность представления чисел.

Погрешности арифметических операций

При вычислениях с плавающей точкой операция округления может потребоваться после выполнения любой из арифметических операций. Так умножение или деление двух чисел сводится к умножению или делению мантисс. Так как в общем случае количество разрядов мантисс произведений и частных больше допустимой разрядности мантиссы, то требуется округление мантиссы результатов. При сложении или вычитании чисел с плавающей точкой операнды должны быть предварительно приведены к одному порядку, что осуществляется сдвигом вправо мантиссы числа, имеющего меньший порядок, и увеличением в соответствующее число раз порядка этого числа. Сдвиг мантиссы вправо может привести к потере младших разрядов мантиссы, т.е. появляется погрешность округления.

Округленное в системе с плавающей точкой число, соответствующее точному числу x, обозначается через fl(x) (от англ. floating – плавающий). Выполнение каждой арифметической операции вносит относительную погрешность, не большую, чем погрешность представления чисел с плавающей точкой (1). Верна следующая запись:

fl(abox b)=abox b(1pmepsilon),

где box — любая из арифметических операций, |epsilon|le2^{-t}.

Рассмотрим трансформированные погрешности арифметических операций. Арифметические операции проводятся над приближенными числами, ошибка арифметических операций не учитывается (эту ошибку легко учесть, прибавив ошибку округления соответствующей операции к вычисленной ошибке).

Рассмотрим сложение и вычитание приближенных чисел. Абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей слагаемых.

Если сумма точных чисел равна

S=a_1+a_2+dots+a_n,

сумма приближенных чисел равна

tilde S=a_1+Delta(a_1)+a_2+Delta(a_2)+dots+a_n+Delta(a_n),

где Delta(a_i), qquad i=1,2,...,n— абсолютные погрешности представления чисел.

Тогда абсолютная погрешность суммы равна

Delta(S)=Delta(a_1)+Delta(a_2)+dots+Delta(a_n).

Относительная погрешность суммы нескольких чисел равна

( 2 )

delta(S)=frac{Delta(S)}{S}=frac{a_1}{S}left(frac{Delta(a_1)}{a_1}right)+frac{a_2}{S}left(frac{Delta(a_2)}{a_2}right)+dots=frac{a_1delta(a_1)+a_2delta(a_2)+dots}{S},

где delta(a_i), qquad i=1,2,...,n — относительные погрешности представления чисел.

Из (2) следует, что относительная погрешность суммы нескольких чисел одного и того же знака заключена между наименьшей и наибольшей из относительных погрешностей слагаемых:

min quad delta(a_k)ledelta(S)le max quad delta(a_k), qquad k=1,2,...,n, quad a_k>0.

При сложении чисел разного знака или вычитании чисел одного знака относительная погрешность может быть очень большой (если числа близки между собой). Так как даже при малых Delta(a_i) величина S может быть очень малой. Поэтому вычислительные алгоритмы необходимо строить таким образом, чтобы избегать вычитания близких чисел.

Необходимо отметить, что погрешности вычислений зависят от порядка вычислений. Далее будет рассмотрен пример сложения трех чисел.

S=x_1+x_2+x_3,
tilde S_1=(x_1+x_2)(1+delta_1),

( 3 )

tilde S=(tilde S_1+x_3)(1+delta_2)=(x_1+x_2)(1+delta_1)(1+delta_2)+x_3(1+delta_2).

При другой последовательности действий погрешность будет другой:

tilde S_1=(x_3+x_2)(1+delta_1),
tilde S=(x_3+x_2)(1+delta_1)(1+delta_2)+x_1(1+delta_2).

Из (3) видно, что результат выполнения некоторого алгоритма, искаженный погрешностями округлений, совпадает с результатом выполнения того же алгоритма, но с неточными исходными данными. Т.е. можно применять обратный анализ: свести влияние погрешностей округления к возмущению исходных данных. Тогда вместо (3) будет следующая запись:

tilde S=tilde x_1+tilde x_2+tilde x_3,

где tilde x_1=x_1(1+delta_1)(1+delta_2), quad tilde x_2=x_2(1+delta_1)(1+delta_2), quad tilde x_3=x_3(1+delta_2).

При умножении и делении приближенных чисел складываются и вычитаются их относительные погрешности.

S=a_1cdot a_2,
tilde S=a_1cdot a_2(1+delta(a_1))(1+delta(a_2))a_1cdot a_2(1+delta(a_1)+delta(a_2)),

с точностью величин второго порядка малости относительно delta.

Тогда delta(S)=delta(a_1)+delta(a_2).

Если S=frac{a_1}{a_2}, то Delta(S)=frac{a_1(1+delta_1)}{a_2(1+delta_2)}-frac{a_1}{a_2}=frac{a_1(delta_1-delta_2)}{a_2(1+delta_2)}approx frac{a_1}{a_2}(delta_1-delta_2), qquad delta(S)delta_1-delta_2.

При большом числе n арифметических операций можно пользоваться приближенной статистической оценкой погрешности арифметических операций, учитывающей частичную компенсацию погрешностей разных знаков:

delta_Sigma approx delta_{fl} quad sqrt{n},

где delta_Sigma – суммарная погрешность, |delta_{fl}|leepsilon – погрешность выполнения операций с плавающей точкой, epsilon – погрешность представления чисел с плавающей точкой.

Погрешности вычисления функций

Рассмотрим трансформированную погрешность вычисления значений функций.

Абсолютная трансформированная погрешность дифференцируемой функции y=f(x), вызываемая достаточно малой погрешностью аргумента Delta(x), оценивается величиной Delta(y)=|f'(x)|Delta(x).

Если f(x)>0, то delta(y)=frac{|f'(x)|}{f(x)}Delta(x)=left|(ln(f(x)))'right|cdotDelta(x).

Абсолютная погрешность дифференцируемой функции многих аргументов y=f(x_1, x_2, ..., x_n), вызываемая достаточно малыми погрешностями Delta(x_1), Delta(x_2), ..., Delta(x_n) аргументов x_1, x_2, ...,x_n оценивается величиной:

Delta(y)=sumlimits_{i=1}^nleft|frac{partial f}{partial x_i}right|Delta(x_i).

Если f(x_1,x_2,...,x_n)>0, то delta(y)=sumlimits_{i=1}^nfrac{1}{f}cdotleft|frac{partial f}{partial x_i}right|cdotDelta(x_i)=sumlimits_{i=1}^{n}left|frac{partial l_n(f)}{partial x_i}right|Delta(x_i).

Практически важно определить допустимую погрешность аргументов и допустимую погрешность функции (обратная задача). Эта задача имеет однозначное решение только для функций одной переменной y=f(x), если f(x) дифференцируема и f'(x)not=0:

Delta(x)=frac{1}{|f'(x)|}Delta(y).

Для функций многих переменных задача не имеет однозначного решения, необходимо ввести дополнительные ограничения. Например, если функция y=f(x_1,x_2,...,x_n) наиболее критична к погрешности Delta(x_i), то:

Delta(x_i)=frac{Delta(y)}{left|frac{partial f}{partial x_i}right|}qquad (погрешностью других аргументов пренебрегаем).

Если вклад погрешностей всех аргументов примерно одинаков, то применяют принцип равных влияний:

Delta(x_i)=frac{Delta(y)}{nleft|frac{partial f}{partial x_i}right|},qquad i=overline{1,n}.

Числовые примеры

Специфику машинных вычислений можно пояснить на нескольких элементарных примерах.

ПРИМЕР 1. Вычислить все корни уравнения

x^4 - 4x^3 + 8x^2 - 16x + 15.underbrace{99999999}_8 = {(x - 2)}^4 - 10^{- 8} = 0.

Точное решение задачи легко найти:

(x - 2)^2 = pm 10^{- 4},
x_1= 2,01; x_2= 1,99; x_{3,4}= 2 pm 0,01i.

Если компьютер работает при delta _M > 10^{ - 8}, то свободный член в исходном уравнении будет округлен до 16,0 и, с точки зрения представления чисел с плавающей точкой, будет решаться уравнение (x-2)^4= 0, т.е. x_{1,2,3,4} = 2, что, очевидно, неверно. В данном случае малые погрешности в задании свободного члена approx10^{-8} привели, независимо от метода решения, к погрешности в решении approx10^{-2}.

ПРИМЕР 2. Решается задача Коши для обыкновенного дифференциального уравнения 2-го порядка:

u''(t) = u(t), qquad u(0) = 1, qquad u'(0) = - 1.

Общее решение имеет вид:

u(t) = 0,5[u(0) + u'(0)]e^t + 0,5[u(0) - u'(0)]e^{- t}.

При заданных начальных данных точное решение задачи: u(x) = e^{-t}, однако малая погрешность delta в их задании приведет к появлению члена delta e^t, который при больших значениях аргумента может существенно исказить решение.

ПРИМЕР 3. Пусть необходимо найти решение обыкновенного дифференциального уравнения:

stackrel{cdot}{u} = 10u,qquad u = u(t), u(t_0) = u_0,qquad t in [0,1].

Его решение: u(t) = u_0e^{10(t - t_0 )}, однако значение u(t_0) известно лишь приближенно: u(t_0) approx u_0^*, и на самом деле u^*(t) = u_0^*e^{10(t - t_0)}.

Соответственно, разность u* - u будет:

u^* - u = (u_0^* - u_0)e^{10(t - t_0)}.

Предположим, что необходимо гарантировать некоторую заданную точность вычислений epsilon > 0 всюду на отрезке t in [0,1]. Тогда должно выполняться условие:

|{u^*(t) - u(t)}| le varepsilon.

Очевидно, что:

maxlimits_{t in [0,1]} |{u^*(t) - u(t)}| = |{u*(1) - u(1)}| = |{u_0^* - u_0}|e^{10(1 - t_0)}.

Отсюда можно получить требования к точности задания начальных данных delta: qquad|u_0^* - u_0| < delta, qquad delta le varepsilon e^{ - 10} при t_0= 0.

Таким образом, требование к заданию точности начальных данных оказываются в e^{10} раз выше необходимой точности результата решения задачи. Это требование, скорее всего, окажется нереальным.

Решение оказывается очень чувствительным к заданию начальных данных. Такого рода задачи называются плохо обусловленными.

ПРИМЕР 4. Решением системы линейных алгебраических уравнений (СЛАУ):

left{ begin{array}{l} u + 10v = 11,  100u + 1001v = 1101;  end{array} right.

является пара чисел {1, quad 1}.

Изменив правую часть системы на 0,01, получим возмущенную систему:

left{ begin{array}{l} u + 10v = 11.01,  100u + 1001v = 1101;  end{array} right.

с решением {11.01, quad 0.00}, сильно отличающимся от решения невозмущенной системы. Эта система также плохо обусловлена.

ПРИМЕР 5. Рассмотрим методический пример вычислений на модельном компьютере, обеспечивающем точность delta_M = 0,0005. Проанализируем причину происхождения ошибки, например, при вычитании двух чисел, взятых с точностью до третьей цифры после десятичной точки u = 1,001,quad v = 1,002, разность которых составляет Delta = |v_M - u_M| = 0,001.

В памяти машины эти же числа представляются в виде:

u_M = u(1 + delta_M^u), quad v_M = v(1 + delta_M^v), причем mid delta_M^umid le delta_M и mid delta_M^vmid le delta_M.

Тогда:

u_M - u approx udelta_M^u, quad v_M - v approx vdelta_M^v.

Относительная ошибка при вычислении разности u_M - v_M будет равна:

delta = frac{(u_M - v_M) - (u - v)}{(u - v)} = frac{(u_M - u) - (v_M - v)}{(u - v)} = frac{delta_M^u - delta_M^v}{(u - v)}.

Очевидно, что delta = left|{frac{delta_M^u - delta_M^v}{Delta }} right| le frac{2delta_M}{0,001} approx 2000delta_M = 1, т.е. все значащие цифры могут оказаться неверными.

ПРИМЕР 6. Рассмотрим рекуррентное соотношение u_{i+1} = qu_i, quad i ge 0, quad u_0 = a,quad q > 0, quad u_i > 0.

Пусть при выполнении реальных вычислений с конечной длиной мантиссы на i-м шаге возникла погрешность округления, и вычисления проводятся с возмущенным значением u_i^M = u_i + delta_i, тогда вместо u_{i+1} получим u_{i + 1}^M = q(u_i + delta_i) = u_{i + 1} + qdelta_i, т.е. delta_{i + 1} = qdelta_i,quad i = 0,1,ldots .

Следовательно, если |q| > 1, то в процессе вычислений погрешность, связанная с возникшей ошибкой округления, будет возрастать (алгоритм неустойчив). В случае mid qmid le 1 погрешность не возрастает и численный алгоритм устойчив.

Список литературы

  • А.А.Самарский, А.В.Гулин.  Численные методы. Москва «Наука», 1989.
  • http://www.mgopu.ru/PVU/2.1/nummethods/Chapter1.htm
  • http://www.intuit.ru/department/calculate/calcmathbase/1/4.html

См. также

  • Практикум ММП ВМК, 4й курс, осень 2008

Однако не всегда можно так просто найти зависимость погрешности от параметра метода, поэтому часто используют асимптотические оценки. Обычно при уменьшении некоторого параметра h метода погрешность решения εh стремится к нулю, т.е. εh 0 при h 0 , например в вышеприведенном приме-

реh =1/ n . В этом случае, если выполняется оценка εh < Ch p , где С — const и не зависит от h, считается, что порядок погрешности равен p и обозначается коротко εh o(h p ).

4. Ошибки округлений. Все расчеты на ЭВМ производятся с конечным числом значащих цифр, определяемым объемом ячеек памяти. Поэтому при вычислении, например, 1/3 = 0,3333…3…, и если округление производится на седьмом знаке, то вносится ошибка ε 10-8. Когда вычислений много, то такие ошибки могут накапливаться и, наоборот, компенсироваться (положительные и отрицательные). В зависимости от реакции на погрешность округлений вычислительные методы разделяются на устойчивые и неустойчивые.

Метод устойчив, если в процессе вычислений ошибки округлений не накапливаются, в противном случае метод неустойчив. Неустойчивость обычно устанавливается путем проведения прямых расчетов с различными значениями параметра метода. При увеличении количества вычислений по неустойчивому методу ошибки быстро нарастают, что приводит к переполнению ЭВМ. Одной из задач вычислительной математики является установление условий устойчивости и разработка рекомендаций по созданию устойчивых методов.

Символически решаемую задачу можно записать в виде

A(x) = b ,

(1.1)

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

Одним из наиболее часто используемых вычислительных методов является метод итераций, а также различные его модификации.

Итерационные методы основаны на построении сходящейся к точному

решению x* бесконечной рекуррентной последовательности x0 , x1, …, xk x*

k→∞

элементов той же природы, что и x* (числа, векторы, функции). Последовательность называется рекуррентной порядка m, если каждый

следующий ее член выражается через m предыдущих по некоторому правилу

xk =ϕ(xk1,

xk2 , … xkm ) .

(1.2)

Соответствующий итерационный метод называется mшаговым. Для реа-

лизации m-шагового метода

требуется задать m

первых

членов

{x0 , x1, …, xm1}, называемых начальным приближением. Зная начальное

приближение, по формуле (1.2)

последовательно находят

xm , xm+1,…

xk , ….

Процесс получения следующего k-го члена через предыдущие называется k

28

итерацией. Итерации выполняются до тех пор, пока очередной член xk не будет удовлетворять заданной точности, т.е. xk x* <δ. Ввиду того, что точное ре-

шение x* заранее неизвестно, обычно сходимость метода определяют по близости двух последних членов, т.е. расчеты производят до тех пор, пока не выпол-

нится условие xk xk1 <ε, где ε — некоторая заданная малая величина. Из

теории сходящихся последовательностей известно, что в большинстве практически важных случаев δ и ε связаны пропорциональной зависимостью, поэтому если взять ε с некоторым запасом (обычно достаточно ε = δ/10), то требуемая точность будет достигнута. Для более точной оценки сходимости (обычно когда сходимость медленная) можно воспользоваться критерием

(xk xk1)2 <ε

2xk1 xk xk2 . В качестве искомого решения берут последний член по-

следовательности xk, при котором выполнилось указанное неравенство. Простой итерационный метод для решения задачи (1.1) строится сле-

дующим образом.

Преобразуем задачу (1.1) к виду, разрешенному относительно неизвестного

x:

При этом точное решение (1.1) x* является и решением (1.3). Заметим, что привести задачу (1.1) к виду (1.3), не изменяя решения, можно различными способами, например: x =ωr[A(x) b] + x =ϕ(x) , здесь ωr — произвольный параметр,

который в дальнейшем подбирается из условия сходимости итераций. Используем выражение (1.3) в качестве рекуррентной формулы (m=1):

Задав одно x0 (начальное приближение), последовательно находим x1, x2,……xk. Если полученная таким образом последовательность сходится к некоторому конечному пределу, то этот предел совпадает с точным решением x*

Условие сходимости последовательности, задаваемой рекуррентной

формулой (1.4), определяется выполнением неравенства

dϕ / dx = G <1.

(1.5)

Чем ближе G к нулю, тем быстрее сходится рекуррентная последовательность

к точному решению и, следовательно, для получения решения с заданной точностью требуется меньше итераций.

29

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

  • 1 Введение
    • 1.1 Постановка вопроса. Виды погрешностей
  • 2 Виды мер точности
  • 3 Предельные погрешности
  • 4 Погрешности округлений при представлении чисел в компьютере
  • 5 Погрешности арифметических операций
  • 6 Погрешности вычисления функций
  • 7 Числовые примеры
  • 8 Список литературы
  • 9 См. также

Введение

Постановка вопроса. Виды погрешностей

Процесс исследования исходного объекта методом математического моделирования и вычислительного эксперимента неизбежно носит приближенный характер, так как на каждом этапе вносятся погрешности. Построение математической модели связано с упрощением исходного явления, недостаточно точным заданием коэффициентов уравнения и других входных данных. По отношению к численному методу, реализующему данную математическую модель, указанные погрешности являются неустранимыми, поскольку они неизбежны в рамках данной модели.

При переходе от математической модели к численному методу возникают погрешности, называемые погрешностями метода. Они связаны с тем, что всякий численный метод воспроизводит исходную математическую модель приближенно. Наиболее типичными погрешностями метода являются погрешность дискретизации и погрешность округления.
При построении численного метода в качестве аналога исходной математической задачи обычно рассматривается её дискретная модель. Разность решений дискретизированной задачи и исходной называется погрешностью дискретизации. Обычно дискретная модель зависит от некоторого параметра (или их множества) дискретизации, при стремлении которого к нулю должна стремиться к нулю и погрешность дискретизации.
Дискретная модель представляет собой систему большого числа алгебраических уравнений. Для её решения используется тот или иной численный алгоритм. Входные данные этой системы, а именно коэффициенты и правые части, задаются в ЭВМ не точно, а с округлением. В процессе работы алгоритма погрешности округления обычно накапливаются, и в результате, решение, полученное на ЭВМ, будет отличаться от точного решения дискретизированной задачи. Результирующая погрешность называется погрешностью округления (вычислительной погрешностью). Величина этой погрешности определяется двумя факторами: точностью представления вещественных чисел в ЭВМ и чувствительностью данного алгоритма к погрешностям округления.

Итак, следует различать погрешности модели, дискретизации и округления. В вопросе преобладания какой-либо погрешности ответ неоднозначен. В общем случае нужно стремиться, чтобы все погрешности имели один и тот же порядок. Например, нецелесообразно пользоваться разностными схемами, имеющими точность 10−6, если коэффициенты исходных уравнений задаются с точностью 10−2.

Виды мер точности

Мерой точности вычислений являются абсолютные и относительные погрешности. Абсолютная погрешность определяется формулой

Delta(tilde a)=|tilde a-a|,

где tilde a – приближение к точному значению a.
Относительная погрешность определяется формулой

delta(tilde a)=frac{|tilde a-a|}{a}.

Относительная погрешность часто выражается в процентах. Абсолютная и относительная погрешности тесно связаны с понятием верных значащих цифр. Значащими цифрами числа называют все цифры в его записи, начиная с первой ненулевой цифры слева. Например, число 0,000129 имеет три значащих цифры. Значащая цифра называется верной, если абсолютная погрешность числа не превышает половины веса разряда, соответствующего этой цифре. Например, tilde a=9348, абсолютная погрешность Delta(tilde a)=15. Записывая число в виде

9348=9cdot10^3+3cdot10^2+4cdot10^1+8cdot10^0,

имеем 0,5cdot10^1<Delta(tilde a)<0,5cdot10^2, следовательно, число имеет две верных значащих цифр (9 и 3).

В общем случае абсолютная погрешность должна удовлетворять следующему неравенству:

Delta(tilde a)<0,5cdot10^{m-n+1} ,

где m — порядок (вес) старшей цифры, n — количество верных значащих цифр.
В рассматриваемом примере Delta(tilde a)le0,5cdot10^{3-2+1}le0,5cdot10^2=50.

Относительная погрешность связана с количеством верных цифр приближенного числа соотношением:

delta(tilde a)lefrac{Delta(tilde a)}{alpha_m}10^mlefrac{10^{m-n+1}}{alpha_m10^m}lefrac{1}{alpha_m10^{n-1}},

где alpha_m — старшая значащая цифра числа.

Для двоичного представления чисел имеем delta(tilde a)le2^{-n}.

Тот факт, что число tilde a является приближенным значением числа a с абсолютной погрешностью Delta(tilde a), записывают в виде

a=tilde apmDelta(tilde a),

причем числа tilde a и Delta(tilde a) записываются с одинаковым количеством знаков после запятой, например, a=2,347pm0,002 или a=2,347pm2cdot10^{-3}.

Запись вида

a=tilde a(1pmdelta(tilde a))

означает, что число tilde a является приближенным значение числа a с относительной погрешностью delta(tilde a).

Так как точное решение задачи как правило неизвестно, то погрешности приходится оценивать через исходные данные и особенности алгоритма. Если оценка может быть вычислена до решения задачи, то она называется априорной. Если оценка вычисляется после получения приближенного решения задачи, то она называется апостериорной.

Очень часто степень точности решения задачи характеризуется некоторыми косвенными вспомогательными величинами. Например точность решения системы алгебраических уравнений

AX=F

характеризуется невязкой

R=F-Atilde X,

где tilde X — приближенное решение системы.
Причём невязка достаточно сложным образом связана с погрешностью решения Delta(X)=tilde X-X, причём если невязка мала, то погрешность может быть значительной.

Предельные погрешности

Пусть искомая величина a является функцией параметров t_1, ldots , t_n in Omega, qquad a* — приближенное значение a. Тогда предельной абсолютной погрешностью называется величина

D(a^*) = suplimits_{(t_1, ldots ,t_n) in Omega } left|{a(t_1, ldots ,t_n) - a^*}right| ,

Предельной относительной погрешностью называется величина D(a*)/| a*|.

Пусть  left|{t_j - t_j^*}right| le Delta (t_j^* ), qquad j = 1 div n — приближенное значение a^* = a(t_1^*, ldots ,t_n^* ). Предполагаем, что a — непрерывно дифференцируемая функция своих аргументов. Тогда, по формуле Лагранжа,

a(t_1, ldots ,t_n) - a^* = sumlimits_{j = 1}^n gamma_j (alpha )(t_j - t_j^*),

где gamma_j (alpha ) = a^{prime}_{t_j}(t_1^* + alpha (t_1 - t_1^*), ldots ,t_n^* + alpha (t_n - t_n^*)), qquad 0 le alpha le 1 .

Отсюда

left|{a(t_1, ldots ,t_n) - a^*}right| le D_1 (a^*) = sumlimits_{j = 1}^n b_j Delta (t_j^*),

где b_j = suplimits_Omega left|{a^{prime}_{t_j}(t_1, ldots ,t_n)}right|.

Можно показать, что при малых rho = sqrt{{(Delta (t_1^* ))}^2 + ldots + {(Delta (t_n^* ))}^2 } эта оценка не может быть существенно улучшена. На практике иногда пользуются грубой (линейной) оценкой

left|{a(t_1, ldots ,t_n) - a^*}right| le D_2 (a^*),

где D_2 (a^*) = sumlimits_{j = 1} left|{gamma_j (0)}right| Delta (t^*) .

Несложно показать, что:

  1. Delta ( pm t_1^* pm , ldots , pm t_n^*) = Delta (t_1^* ) + ldots + Delta (t_n^* ) — предельная погрешность суммы или разности равна сумме предельных погрешностей.
  2. delta (t_1^* cdots t_m^* cdot d_1^{* - 1} cdots d_m^{* - 1} ) = delta (t_1^* ) + ldots + delta (t_m^*) + delta (d_1^*) + ldots + delta (d_n^*) — предельная относительная погрешность произведения или частного приближенного равна сумме предельных относительных погрешностей.

Погрешности округлений при представлении чисел в компьютере

Одним из основных источников вычислительных погрешностей является приближенное представление чисел в компьютере, обусловленное конечностью разрядной сетки (см. Международный стандарт представления чисел с плавающей точкой в ЭВМ). Число a, не представимое в компьютере, подвергается округлению, т. е. заменяется близким числом tilde a, представимым в компьютере точно.
Найдем границу относительной погрешности представления числа с плавающей точкой. Допустим, что применяется простейшее округление – отбрасывание всех разрядов числа, выходящих за пределы разрядной сетки. Система счисления – двоичная. Пусть надо записать число, представляющее бесконечную двоичную дробь

a=underbrace{pm2^p}_{order}underbrace{left(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}+frac{a_{t+1}}{2^{t+1}}+dotsright)}_{mantissa},

где a_j={01, qquad (j=1,2,...) — цифры мантиссы.
Пусть под запись мантиссы отводится t двоичных разрядов. Отбрасывая лишние разряды, получим округлённое число

tilde a=pm2^pleft(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}right).

Абсолютная погрешность округления в этом случае равна

a-tilde a=pm2^pleft(frac{a_{t+1}}{2^{t+1}}+frac{a_{t+2}}{2^{t+2}}+dotsright).

Наибольшая погрешность будет в случае a_{t+1}=1, qquad a_{t+2}=1,, тогда

|a-tilde a|lepm2^pfrac{1}{2^{t+1}}underbrace{left(1+frac{1}{2}+frac{1}{2^2}+dotsright)}_{=2}=2^{p-t}.

Т.к. |M|ge0,5, где M — мантисса числа a, то всегда a_1=1. Тогда |a|ge2^pcdot2^{-1}=2^{p-1} и относительная погрешность равна frac{|a-tilde a|}{|a|}le2^{-t+1}. Практически применяют более точные методы округления и погрешность представления чисел равна

( 1 )

frac{|a-tilde a|}{|a|}le2^{-t},

т.е. точность представления чисел определяется разрядностью мантиссы t.
Тогда приближенно представленное в компьютере число можно записать в виде tilde a=a(1pmepsilon), где |epsilon|le2^{-t}«машинный эпсилон» – относительная погрешность представления чисел.

Погрешности арифметических операций

При вычислениях с плавающей точкой операция округления может потребоваться после выполнения любой из арифметических операций. Так умножение или деление двух чисел сводится к умножению или делению мантисс. Так как в общем случае количество разрядов мантисс произведений и частных больше допустимой разрядности мантиссы, то требуется округление мантиссы результатов. При сложении или вычитании чисел с плавающей точкой операнды должны быть предварительно приведены к одному порядку, что осуществляется сдвигом вправо мантиссы числа, имеющего меньший порядок, и увеличением в соответствующее число раз порядка этого числа. Сдвиг мантиссы вправо может привести к потере младших разрядов мантиссы, т.е. появляется погрешность округления.

Округленное в системе с плавающей точкой число, соответствующее точному числу x, обозначается через fl(x) (от англ. floating – плавающий). Выполнение каждой арифметической операции вносит относительную погрешность, не большую, чем погрешность представления чисел с плавающей точкой (1). Верна следующая запись:

fl(abox b)=abox b(1pmepsilon),

где box — любая из арифметических операций, |epsilon|le2^{-t}.

Рассмотрим трансформированные погрешности арифметических операций. Арифметические операции проводятся над приближенными числами, ошибка арифметических операций не учитывается (эту ошибку легко учесть, прибавив ошибку округления соответствующей операции к вычисленной ошибке).

Рассмотрим сложение и вычитание приближенных чисел. Абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей слагаемых.

Если сумма точных чисел равна

S=a_1+a_2+dots+a_n,

сумма приближенных чисел равна

tilde S=a_1+Delta(a_1)+a_2+Delta(a_2)+dots+a_n+Delta(a_n),

где Delta(a_i), qquad i=1,2,...,n— абсолютные погрешности представления чисел.

Тогда абсолютная погрешность суммы равна

Delta(S)=Delta(a_1)+Delta(a_2)+dots+Delta(a_n).

Относительная погрешность суммы нескольких чисел равна

( 2 )

delta(S)=frac{Delta(S)}{S}=frac{a_1}{S}left(frac{Delta(a_1)}{a_1}right)+frac{a_2}{S}left(frac{Delta(a_2)}{a_2}right)+dots=frac{a_1delta(a_1)+a_2delta(a_2)+dots}{S},

где delta(a_i), qquad i=1,2,...,n — относительные погрешности представления чисел.

Из (2) следует, что относительная погрешность суммы нескольких чисел одного и того же знака заключена между наименьшей и наибольшей из относительных погрешностей слагаемых:

min quad delta(a_k)ledelta(S)le max quad delta(a_k), qquad k=1,2,...,n, quad a_k>0.

При сложении чисел разного знака или вычитании чисел одного знака относительная погрешность может быть очень большой (если числа близки между собой). Так как даже при малых Delta(a_i) величина S может быть очень малой. Поэтому вычислительные алгоритмы необходимо строить таким образом, чтобы избегать вычитания близких чисел.

Необходимо отметить, что погрешности вычислений зависят от порядка вычислений. Далее будет рассмотрен пример сложения трех чисел.

S=x_1+x_2+x_3,
tilde S_1=(x_1+x_2)(1+delta_1),

( 3 )

tilde S=(tilde S_1+x_3)(1+delta_2)=(x_1+x_2)(1+delta_1)(1+delta_2)+x_3(1+delta_2).

При другой последовательности действий погрешность будет другой:

tilde S_1=(x_3+x_2)(1+delta_1),
tilde S=(x_3+x_2)(1+delta_1)(1+delta_2)+x_1(1+delta_2).

Из (3) видно, что результат выполнения некоторого алгоритма, искаженный погрешностями округлений, совпадает с результатом выполнения того же алгоритма, но с неточными исходными данными. Т.е. можно применять обратный анализ: свести влияние погрешностей округления к возмущению исходных данных. Тогда вместо (3) будет следующая запись:

tilde S=tilde x_1+tilde x_2+tilde x_3,

где tilde x_1=x_1(1+delta_1)(1+delta_2), quad tilde x_2=x_2(1+delta_1)(1+delta_2), quad tilde x_3=x_3(1+delta_2).

При умножении и делении приближенных чисел складываются и вычитаются их относительные погрешности.

S=a_1cdot a_2,
tilde S=a_1cdot a_2(1+delta(a_1))(1+delta(a_2))a_1cdot a_2(1+delta(a_1)+delta(a_2)),

с точностью величин второго порядка малости относительно delta.

Тогда delta(S)=delta(a_1)+delta(a_2).

Если S=frac{a_1}{a_2}, то Delta(S)=frac{a_1(1+delta_1)}{a_2(1+delta_2)}-frac{a_1}{a_2}=frac{a_1(delta_1-delta_2)}{a_2(1+delta_2)}approx frac{a_1}{a_2}(delta_1-delta_2), qquad delta(S)  delta_1-delta_2.

При большом числе n арифметических операций можно пользоваться приближенной статистической оценкой погрешности арифметических операций, учитывающей частичную компенсацию погрешностей разных знаков:

delta_Sigma approx delta_{fl} quad sqrt{n},

где delta_Sigma – суммарная погрешность, |delta_{fl}|leepsilon – погрешность выполнения операций с плавающей точкой, epsilon – погрешность представления чисел с плавающей точкой.

Погрешности вычисления функций

Рассмотрим трансформированную погрешность вычисления значений функций.

Абсолютная трансформированная погрешность дифференцируемой функции y=f(x), вызываемая достаточно малой погрешностью аргумента Delta(x), оценивается величиной Delta(y)=|f'(x)|Delta(x).

Если f(x)>0, то delta(y)=frac{|f'(x)|}{f(x)}Delta(x)=left|(ln(f(x)))'right|cdotDelta(x).

Абсолютная погрешность дифференцируемой функции многих аргументов y=f(x_1, x_2, ..., x_n), вызываемая достаточно малыми погрешностями Delta(x_1), Delta(x_2), ..., Delta(x_n) аргументов x_1, x_2, ...,x_n оценивается величиной:

Delta(y)=sumlimits_{i=1}^nleft|frac{partial f}{partial x_i}right|Delta(x_i).

Если f(x_1,x_2,...,x_n)>0, то delta(y)=sumlimits_{i=1}^nfrac{1}{f}cdotleft|frac{partial f}{partial x_i}right|cdotDelta(x_i)=sumlimits_{i=1}^{n}left|frac{partial l_n(f)}{partial x_i}right|Delta(x_i).

Практически важно определить допустимую погрешность аргументов и допустимую погрешность функции (обратная задача). Эта задача имеет однозначное решение только для функций одной переменной y=f(x), если f(x) дифференцируема и f'(x)not=0:

Delta(x)=frac{1}{|f'(x)|}Delta(y).

Для функций многих переменных задача не имеет однозначного решения, необходимо ввести дополнительные ограничения. Например, если функция y=f(x_1,x_2,...,x_n) наиболее критична к погрешности Delta(x_i), то:

Delta(x_i)=frac{Delta(y)}{left|frac{partial f}{partial x_i}right|}qquad (погрешностью других аргументов пренебрегаем).

Если вклад погрешностей всех аргументов примерно одинаков, то применяют принцип равных влияний:

Delta(x_i)=frac{Delta(y)}{nleft|frac{partial f}{partial x_i}right|},qquad i=overline{1,n}.

Числовые примеры

Специфику машинных вычислений можно пояснить на нескольких элементарных примерах.

ПРИМЕР 1. Вычислить все корни уравнения

x^4 - 4x^3 + 8x^2 - 16x + 15.underbrace{99999999}_8 = {(x - 2)}^4 - 10^{- 8} = 0.

Точное решение задачи легко найти:

(x - 2)^2  =  pm 10^{- 4},
x_1= 2,01;  x_2= 1,99;  x_{3,4}= 2 pm 0,01i.

Если компьютер работает при delta _M > 10^{ - 8}, то свободный член в исходном уравнении будет округлен до 16,0 и, с точки зрения представления чисел с плавающей точкой, будет решаться уравнение (x-2)^4= 0, т.е. x_{1,2,3,4} = 2, что, очевидно, неверно. В данном случае малые погрешности в задании свободного члена approx10^{-8} привели, независимо от метода решения, к погрешности в решении approx10^{-2}.

ПРИМЕР 2. Решается задача Коши для обыкновенного дифференциального уравнения 2-го порядка:

u''(t) = u(t), qquad u(0) = 1, qquad u'(0) = - 1.

Общее решение имеет вид:

u(t) = 0,5[u(0) + u'(0)]e^t  + 0,5[u(0) - u'(0)]e^{- t}.

При заданных начальных данных точное решение задачи: u(x) = e^{-t}, однако малая погрешность delta в их задании приведет к появлению члена delta e^t, который при больших значениях аргумента может существенно исказить решение.

ПРИМЕР 3. Пусть необходимо найти решение обыкновенного дифференциального уравнения:

stackrel{cdot}{u} = 10u,qquad u = u(t), u(t_0) = u_0,qquad t in [0,1].

Его решение: u(t) = u_0e^{10(t - t_0 )}, однако значение u(t_0) известно лишь приближенно: u(t_0) approx u_0^*, и на самом деле u^*(t) = u_0^*e^{10(t - t_0)}.

Соответственно, разность u* - u будет:

u^* - u = (u_0^* - u_0)e^{10(t - t_0)}.

Предположим, что необходимо гарантировать некоторую заданную точность вычислений epsilon > 0 всюду на отрезке t in [0,1]. Тогда должно выполняться условие:

|{u^*(t) - u(t)}| le varepsilon.

Очевидно, что:

maxlimits_{t in [0,1]} |{u^*(t) - u(t)}| = |{u*(1) - u(1)}| = |{u_0^* - u_0}|e^{10(1 - t_0)}.

Отсюда можно получить требования к точности задания начальных данных delta: qquad|u_0^* - u_0| < delta, qquad delta le varepsilon e^{ - 10} при t_0= 0.

Таким образом, требование к заданию точности начальных данных оказываются в e^{10} раз выше необходимой точности результата решения задачи. Это требование, скорее всего, окажется нереальным.

Решение оказывается очень чувствительным к заданию начальных данных. Такого рода задачи называются плохо обусловленными.

ПРИМЕР 4. Решением системы линейных алгебраических уравнений (СЛАУ):

left{ begin{array}{l} u + 10v = 11,  100u + 1001v = 1101;  end{array} right.

является пара чисел {1, quad 1}.

Изменив правую часть системы на 0,01, получим возмущенную систему:

left{ begin{array}{l} u + 10v = 11.01,  100u + 1001v = 1101;  end{array} right.

с решением {11.01, quad 0.00}, сильно отличающимся от решения невозмущенной системы. Эта система также плохо обусловлена.

ПРИМЕР 5. Рассмотрим методический пример вычислений на модельном компьютере, обеспечивающем точность delta_M = 0,0005. Проанализируем причину происхождения ошибки, например, при вычитании двух чисел, взятых с точностью до третьей цифры после десятичной точки u = 1,001,quad v = 1,002, разность которых составляет Delta = |v_M - u_M| = 0,001.

В памяти машины эти же числа представляются в виде:

u_M = u(1 + delta_M^u), quad v_M = v(1 + delta_M^v), причем  mid delta_M^umid le delta_M и mid delta_M^vmid le delta_M.

Тогда:

u_M - u approx udelta_M^u, quad v_M - v approx vdelta_M^v.

Относительная ошибка при вычислении разности u_M - v_M будет равна:

 delta = frac{(u_M - v_M) - (u - v)}{(u - v)} = frac{(u_M - u) - (v_M - v)}{(u - v)} = frac{delta_M^u - delta_M^v}{(u - v)}.

Очевидно, что  delta = left|{frac{delta_M^u - delta_M^v}{Delta }} right| le frac{2delta_M}{0,001} approx 2000delta_M = 1, т.е. все значащие цифры могут оказаться неверными.

ПРИМЕР 6. Рассмотрим рекуррентное соотношение u_{i+1} = qu_i, quad i ge 0, quad u_0 = a,quad q > 0, quad u_i > 0.

Пусть при выполнении реальных вычислений с конечной длиной мантиссы на i-м шаге возникла погрешность округления, и вычисления проводятся с возмущенным значением u_i^M = u_i + delta_i, тогда вместо u_{i+1} получим u_{i + 1}^M = q(u_i + delta_i) = u_{i + 1} + qdelta_i, т.е. delta_{i + 1} = qdelta_i,quad i = 0,1,ldots .

Следовательно, если |q| > 1, то в процессе вычислений погрешность, связанная с возникшей ошибкой округления, будет возрастать (алгоритм неустойчив). В случае mid qmid le 1 погрешность не возрастает и численный алгоритм устойчив.

Список литературы

  • А.А.Самарский, А.В.Гулин.  Численные методы. Москва «Наука», 1989.
  • http://www.mgopu.ru/PVU/2.1/nummethods/Chapter1.htm
  • http://www.intuit.ru/department/calculate/calcmathbase/1/4.html

См. также

  • Практикум ММП ВМК, 4й курс, осень 2008

Численные методы решения трансцендентных уравнений

Аннотация

Основной целью данной курсовой работы является изучение и сравнительный анализ численных методов решения трансцендентных уравнений.

В данной курсовой работе рассмотрено 5 методов решения трансцендентных уравнений.

Трансцендентными называются уравнения, не являющиеся алгебраическими. Т.е. содержащие функции (тригонометрические, показательные, логарифмические и др.).

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

Оглавление:

)Введение

2)Общая информация

)Метод половинного деления (Дихотомии)

)Метод простой итерации

)Метод хорд

6)Метод Ньютона (Метод касательных, линеаризации)

7)Метод хорд и касательных

)Заключение

9)Литература

10)Приложение

1. Введение

Трансцендентное уравнение — уравнение <#»9″ src=»doc_zip1.jpg» />

Более строгое определение таково:

Трансцендентное уравнение — это уравнение вида , где функции и являются аналитическими функциями <#»justify»>Актуальность этих методов с момента создания и по сей день присутствует во многих областях жизни человека.

Объект исследования — рассмотрение методов решения трансцендентных уравнений.

Поставлены следующие задачи:

проанализировать приведенные методы;

выбрать один из методов;

создать контрольный вариант;

разработать алгоритм;

реализовать алгоритм на языке программирования;

проверить работоспособность алгоритма;

2. Общая информация

Основные понятия

Алгебраические уравнения (в канонической форме):

аn× x n + an-1× x n-1 + … + a1×x + a0 = 0

Трансцендентные уравнения — в которых переменная х находится под знаком трансцендентной функции:

показательная а х ;

логарифмическая log a x ;

тригонометрические sin x ;

cos x ;

tg x ;

Решение нелинейного уравнения не всегда возможно и не всегда целесообразно, поэтому решение таких уравнений ведется приближённо.

Пусть существует такая непрерывная функция f(x) и требуется найти все или некоторые корни уравнения:

f(x)=0, (1).

Допустим, существует такой корень x уравнения f(x)=0, что он сводит его в тождество f(x)=0, тогда, решая уравнение каким-либо численным методом, мы находим приближённое значение корня x*, с погрешностью r. r — абсолютная погрешность.

Итак, во-первых, необходимо найти количество и расположение этих корней. Во-вторых, найти приближенные значения корней. В-третьих, выбрать из них необходимые нам корни, а также уточнить их приближённые значения. Первые две задачи можно решить аналитическими, либо графическими методами.

Для отделения корней существуют различные методы. Например, это может быть ясно из смысла задачи.

Если необходимо найти только действительные корни, есть смысл составить таблицу значений f(x). Если в двух соседних колонках таблицы находятся значения с разными знаками, то между ними существует нечетное число корней, по крайней мере, один корень. Если узлы близки, то, скорее всего, между ними всего один корень.

Таблица(1)

x-¥-11+¥ f(x)-+-+

Но выявить по таблице корень четной кратности крайне сложно.

Также, возможно отделение корней с помощью построения графика функции y = f(x), где приближенные значения действительных корней уравнения f(x) = 0 соответствуют абсциссам точек пересечения или касания графика с осью 0x. Помимо этого, построение графика часто позволяет найти корни чётной кратности.

«Иногда удается заменить уравнение (1) эквивалентным ему уравнением ?(x)=?(x), в котором функции y1= ?(x) и y2= ?(x) имеют несложные графики. Например, уравнение x*sin(x)-1=0 удобно преобразовать к виду sin(x)=1/x. Абсциссы точек пересечения этих графиков будут корнями исходного уравнения».

Но наиболее распространен следующий метод: если на концах некоторого интервала [a, b] значения непрерывной функции f(x) имеют разные знаки, то на этом интервале уравнение F(x)=0 имеет хотя бы один корень. При этом корень является единственным, если производная функции f'(x) существует и сохраняет свой знак внутри интервала [a, b].

3. Метод половинного деления (Дихотомии)

На мой взгляд, самый легкий метод. Он прост и очень надёжен. К простому корню метод дихотомии сходится для любых непрерывных функций, в том числе недифференцируемых. Он устойчив к ошибкам округления.

Его суть заключается в построении отрезков, но при этом на каждом шаге очередной отрезок делится пополам и в качестве следующего отрезка берется та половина, на которой значения функции в концах имеют разные знаки. Процесс продолжают до тех пор, пока длина очередного отрезка не станет меньше, чем величина 2?. Тогда его середина и будет приближенным значением корня с точностью ?.

Рис. 1

Для этого метода существенно, чтобы функция f(x) была непрерывна и ограничена в заданном интервале [a, b], внутри которого находится корень. Предполагается также, что значения функции на концах интервала f(a) и f(b) имеют разные знаки, т.е. выполняется условие f(a)f(b) < 0.

Алгоритм данного метода можно записать так:

.Ввести данные (a, b, ?).

.Если нужная точность достигнута (| b — a | < 2?) то иди к п.6

.Возьми середину очередного отрезка (x= ( a + b )/ 2).

.Если значения функции в точках a и c одного знака (f(a)*f(c)>0), то в качестве следующего отрезка взять правую половину (а=c), иначе левую (b=c).

.Иди к п.2.

.Напечатать ответ c=…

Метод половинного деления легко реализуется и является наиболее универсальным среди итерационных методов уточнения корней. Его применение гарантирует получение решения для любой непрерывной функции f(x), если найден интервал, на котором она изменяет знак. В том случае, когда корни не отделены, будет найден один из корней уравнения.

Метод всегда сходится, но скорость сходимости является небольшой, так как за одну итерацию точность увеличивается примерно в два раза. Однако существуют, иногда довольно значительные, недостатки метода половинного деления. Как уже говорилось выше, для того чтобы решить уравнение необходимо найти отрезок, на котором функция меняет свой знак. И если в этом отрезке не один корень, то неясно, к какому из корней сойдется метод (к одному корню сойдется точно). Также метод неприменим для корней чётной кратности. Наконец, не используется для систем уравнений.

Поэтому на практике метод половинного деления обычно применяется для грубого нахождения корней уравнения, поскольку при повышении требуемой точности значительно возрастает объем вычислений.

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

Реализация удаления корней: « Если x1 есть простой корень уравнения f(x) непрерывна, то вспомогательная функция g(x)=f(x)/(x-x1) непрерывна, причем все нули функций f(x) и g(x) совпадают, за исключением x1, то он будет нулем g(x) кратности на единицу меньше; остальные нули обеих функций по-прежнему будут одинаковы».

Пример. Необходимо методом дихотомии уточнить корень уравнения х 3 — 3× х +1 = 0 с точностью 10 -3 (табл. 2) .

Таблица 2

Na nb nf(x n)0010,5-0,375100,50,250,265620,250,50,375-0,072330,250,3750,31250,093040,31250,3750,34380,009250,34380,3750,3594-0,031860,34380,35940,3516-0,011370,34380,35160,3477-0,001180,34380,34770,34580,004090,34580,34770,34680,0013100,34680,34770,3473

|a10 — b10| = |0,3468 — 0,3477| = 0,0009 < , где = 0,001.

x » 0,347 .

4. Метод простой итерации

Или метод последовательных приближений. Чтобы применить этот метод для решения уравнения (1) необходимо преобразовать его к виду . Далее выбирается начальное приближение и вычисляется x1, затем x2 и т.д.:

x1 = j(x0);

x2 = j(x1);

…;

xk = j(xk-1);

Если xn стремится к некоторому пределу x, то этот предел и есть корень уравнения.

Полученная последовательность сходится к корню при выполнении следующих условий:f

) функция j(x) дифференцируема на интервале [a, b].

) во всех точках этого интервала j¢(x) удовлетворяет неравенству:

0 £ q £ 1 (2)

При таких условиях скорость сходимости является линейной, а итерации следует выполнять до тех пор, пока не станет справедливым условие:

. (3)

Критерий вида

, (4)

может использоваться только при 0 £ q £ ½. Иначе итерации заканчиваются преждевременно, не обеспечивая заданную точность. Если вычисление q затруднительно, то можно использовать критерий окончания вида

; . (5)

Возможны различные способы преобразования уравнения (1) к виду . Следует выбирать такой, который удовлетворяет условию (4), что порождает сходящийся итерационный процесс, как, например, это показано на рис. 2, 3. В противном случае, в частности, при ½j¢(x)½>1, итерационный процесс расходится и не позволяет получить решение (рис. 4).

Рис. 2

Рис. 3

Рис.4

Говорят, что итерационный процесс сходится, если при выполнении последовательных итераций получаются значения корней, все ближе и ближе приближающиеся к точному значению корня. В противном случае итерационный процесс считается расходящимся.

Почти все итерационные методы, в том числе и метод простых итераций, имеют важное достоинство: в них не накапливаются ошибки вычислений. Эта ошибка эквивалентна некоторому ухудшению следующего приближения. Однако это не отразится на результате и будет заметно лишь по количеству итераций.

Даже грубые ошибки не могут причинить видимого вреда. Но только если ошибка не выбрасывает приближение за пределы области сходимости.

Пример. Необходимо методом итераций уточнить корень [0;1] уравнения: х 3 — 3×х +1 = 0, с точностью 10 -3 (табл. 3).

Преобразованное уравнение:

.

Таблица 3

nх nj (x n)000,333310,33330,345720,34570,347130,34710,347340,3473

êх 4 — х 3 ê < e

x » 0,347.

5. Метод хорд

Или метод пропорциональных частей, хотя я так и не понял почему. Пусть дано уравнение f(x) = 0, где f(x) — непрерывная функция, имеющая в интервале (a, b) производные первого и второго порядков. Корень считается отделенным и находится на отрезке [a, b].

Идея метода хорд состоит в том, что на достаточно малом промежутке [a, b] дугу кривой y = f(x) можно заменить хордой и в качестве приближенного значения корня принять точку пересечения с осью абсцисс. Рассмотрим случай, когда первая и вторая производные имеют одинаковые знаки, т.е. f ‘(x)f ²(x) > 0. Тогда уравнение хорды, проходящей через точки A0 и B, имеет вид

. (6)

Приближение корня x = x1, для которого y = 0, определяется как

. (7)

Аналогично для хорды, проходящей через точки A1 и B, вычисляется следующее приближение корня

. (8)

В общем случае формула метода хорд имеет вид:

. (9)

Если первая и вторая производные имеют разные знаки, т.е.

‘(x)f «(x) < 0,

то все приближения к корню x* выполняются со стороны правой границы отрезка [a, b], как это показано на рис. 6, и вычисляются по формуле:

. (10)

Выбор формулы в каждом конкретном случае зависит от вида функции f(x) и осуществляется по правилу: неподвижной является граница отрезка [a, b] изоляции корня, для которой знак функции совпадает со знаком второй производной. Формула (9) используется в том случае, когда f(b)f «(b) > 0. Если справедливо неравенство f(a)f «(a) > 0, то целесообразно применять формулу (10).

Рис. 5 Рис. 6

Рис. 7Рис. 8

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

. (11)

Тогда условие завершения вычислений записывается в виде:

. (12)

где e — заданная погрешность вычислений. Необходимо отметить, что при отыскании корня метод хорд нередко обеспечивает более быструю сходимость, чем метод половинного деления.

Пример. Необходимо методом хорд уточнить корень x Î [0;1] уравнения х 3 — 3×х + 1 = 0 с точностью 10 -3 (табл. 4) .

;

а = 0; f(a) = 1.

Таблица 4

nх nx n — a f(x n )011-1-0,510,50,5-0,375-0,363620,36360,3636-0,0427-0,348730,34870,3487-0,0037-0,347440,34740,3474-0,0003-0,347350,3473

½x 5 — x 4½ < e.

x » 0,347.

6. Метод Ньютона (Метод касательных, линеаризации)

Пусть уравнение (1) имеет корень на отрезке [a, b], причем f ‘(x) и f «(x) непрерывны и сохраняют постоянные знаки на всем интервале [a, b].

Геометрический смысл метода Ньютона состоит в том, что дуга кривой y = f(x) заменяется касательной. Для этого выбирается некоторое начальное приближение корня x0 на интервале [a, b] и проводится касательная в точке C0(x0, f(x0)) к кривой y = f(x) до пересечения с осью абсцисс. Уравнение касательной в точке C0 имеет вид

= f(x0) + f ‘(x0)×(x — x0). (13)

Далее за приближение корня принимается абсцисса x1, для которой y = 0:

(14)

Затем проводится касательная через новую точку C1(x1, f(x1)) и определяется точка x2 ее пересечения с осью 0x и т.д. В общем случае формула метода касательных имеет вид:

(15)

В результате вычислений получается последовательность приближенных значений x1, x2, …, xi, …, каждый последующий член которой ближе к корню x*, чем предыдущий.

Начальное приближение x0 должно удовлетворять условию:

(x0) f ¢¢(x0) > 0. (16)

В противном случае сходимость метода Ньютона не гарантируется, так как касательная будет пересекать ось абсцисс в точке, не принадлежащей отрезку [a, b]. На практике в качестве начального приближения корня x0, обычно выбирается одна из границ интервала [a, b], т.е. x0 = a или x0 = b, для которой знак функции совпадает со знаком второй производной.

Метод Ньютона обеспечивает высокую скорость сходимости при решении уравнений, для которых значение модуля производной ½f ¢(x)½вблизи корня достаточно велико, т.е. график функции y = f(x) в окрестности корня имеет большую крутизну. Если кривая y = f(x) в интервале [a, b] почти горизонтальна, то применять метод касательных не рекомендуется.

Существенным недостатком рассмотренного метода является необходимость вычисления производных функции для организации итерационного процесса. Если значение f ¢(x) мало изменяется на интервале [a, b], то для упрощения вычислений можно пользоваться формулой

, (17)

т.е. значение производной достаточно вычислить только один раз в начальной точке. Геометрически это означает, что касательные в точках Ci(xi, f(xi)), где i = 1, 2, …, заменяется прямыми, параллельными касательной, проведенной к кривой y = f(x) в начальной точке C0(x0, f(x0)).

В заключение необходимо отметить, что все изложенное справедливо в том случае, когда начальное приближение x0 выбрано достаточно близким к истинному корню x* уравнения. Однако это не всегда просто осуществимо. Поэтому метод Ньютона часто используется на завершающей стадии решения уравнений после работы какого-либо надежно сходящегося алгоритма, например, метода половинного деления. Скорость сходимости велика для простого корня и соответствует скорости геометрической прогрессии для кратного корня.

Упрощенный вариант метода

Если » const , то » (см. рис. 9)

Рис. 9

. (18)

Замечание. Данный вариант метода актуален, если производная сложна.

Пример. Необходимо методом касательных уточнить корень xÎ [0;1] уравнения

с точностью 10 -3 (табл. 5) .

.

Таблица 5

N001-3-0,333310,33330,0371-2,6667-0,013920,34720,0003-2,6384-0,000130,3473ïx 3 — x 2ï < e .

x » 0,347 .

. Метод хорд и касательных

Применяется только в том случае, когда f'(X) и f»(X) не изменяют знака на отрезке [a,b], т.е. функция f(X) на отрезке [a,b] монотонна и не имеет точек перегиба.

Суть метода та же самая — построение последовательности вложенных отрезков, содержащих корень, однако отрезки строятся по-другому. На каждом шаге через концы дуги графика функции f(X) на очередном отрезке проводят хорду и из одного конца проводят касательную. Точки пересечения этих прямых с осью Оx и образуют следующий отрезок. Процесс построения прекращают при выполнении того же условия:

(| b — a | < 2?). (19)

Для того, чтобы отрезки получались вложенными, нужно проводить ту касательную из конца, которая пересекает ось ОХ на отрезке [a,b]. Перебрав четыре возможных случая, легко увидеть, что касательную следует проводить из того конца, где знак функции совпадает со знаком второй производной.

Также несложно заметить, что касательная проводится либо все время из правого, либо все время из левого конца. Будем считать для определенности, что этот конец — b .

Формулы, употребляемые в методе, хорошо известны из аналитической геометрии:

Уравнение хорды, проходящей через точки (a,f(a)) и (b,f(b)):

трансцендентное уравнение дихотомия

y = f(a)+(x-a)*(f(b)-f(a))/(b-a),

откуда точка пересечения с осью Оx:

x= a — f(a) *(b-a)/(f(b)-f(a)).

Уравнение касательной, проходящей через точку (b,f(b)): y=f(b)+f'(b)(x-b), откуда точка пересечения с осью Оx:

x= b — f(b)/f'(b).

При составлении алгоритма снова естественно использовать для концов отрезка только две переменные a и b и писать:

a= a — f (a) *(b-a)/ (f (b)-f (a)) (20)

b= b — f(b)/f'(b) (21)

Однако, в этом случае важен порядок формул (20) и (21).

Пример. Необходимо комбинированным методом уточнить корень xÎ[0;1] уравнения: х 3 — 3 × х +1 = 0, с точностью 10 -3 (табл. 6) .

,

.

Таблица 6

nx n f(x n)

00 11 -0,5 -3 -0,33331-1 10,3333 0,16670,0371 -0,0150 -2,6667 -0,01390,5-0,3750 20,3472 0,00110,0003 -0,0001 -2,6384 -0,00010,34830,0027 30,3473 00,3473

ê ê< e . x » 0,347 .

8. Заключение

Проблема повышения качества вычислений нелинейных уравнений при помощи разнообразных методов существует, и будет существовать в дальнейшем. Ее решению будет содействовать развитие информационных технологий, которое заключается как в совершенствовании методов организации информационных процессов, так и их реализации с помощью конкретных инструментов — сред и языков программирования.

9. Литература

.Вычислительная техника и программирование: Учеб. для техн. вузов/ А.В. Петров, В.Е. Алексеев, А.С. Ваулин и др. — М.: Высш. шк., 1990г. 479 стр. ISBN: 1522608, 1522607.

2.Гусев В.А., Мордкович А.Г. — Математика: Справ. материалы: Кн. для учащихся. — 2-е изд. — М.: Просвещение, 1990г. — 416 стр. ISBN 5-09-001292-X.

.Березин В.Л., Харитонова К.Ю. «Просмотрщик решений трансцендентных уравнений и его применение в задачах волоконной оптики», Сб. науч. тр. Механика. Математика, Саратов: Изд-во Сарат. ун-та, 2004г. 168-170 стр.

.Мак-Кракен Д., Дорн У. Численные методы и программирование на ФОРТРАНе. — М.: Мир, 1977г. — 584 стр.

.Демидович Б.П., Марон И.А. «Основы вычислительной математики». — М.: Наука, 1970г. — 664 стр.

6.<#»justify»>10. Приложение

Листинг программы для решения трансцендентного уравнения

Находит лишь один корень, т.к. удаление других корней не реализовано.

uses crt;, a, b, c, eps: real;f(y: real):real; //функция

f := y*y*y-y+1; //заданное уравнение

end;

begin

ClrScr;

Writeln(‘Введите требуемую точность’); //ввод точности вычисления

readln(eps);

Writeln(‘Введите a’); //задание интервала

readln(a);

Writeln(‘Введите b’); //задание интервала

readln(b);:= (a+b)/2;abs(b-a) > eps dof(a)*f(c) < 0 then b := c //проверка значенияa := c;:= (a+b)/2; //разбитие отрезка;:= (a+b)/2;(‘x = ‘, x:6:10);;.

Блок схема программы:

Итерационные методы решения системы линейных алгебраических уравнений

В данной статье мы расскажем общие сведения об итерационных методах решения СЛАУ, познакомим с методом Зейделя и Якоби, а также приведем примеры решения систем линейных уравнений при помощи данных методов.

Общие сведения об итерационных методах или методе простой итерации

Метод итерации — это численный и приближенный метод решения СЛАУ.

Суть: нахождение по приближённому значению величины следующего приближения, которое является более точным. Метод позволяет получить значения корней системы с заданной точностью в виде предела последовательности некоторых векторов (итерационный процесс). Характер сходимости и сам факт сходимости метода зависит от выбора начального приближения корня x 0 .

Рассмотрим систему A x = b .

Чтобы применить итерационный метод, необходимо привести систему к эквивалентному виду x = B x + d . Затем выбираем начальное приближение к решению СЛАУ x ( 0 ) = ( x 1 0 , x 2 0 , . . . x m 0 ) и находим последовательность приближений к корню.

Для сходимости итерационного процесса является достаточным заданное условие В 1 . Окончание итерации зависит от того, какой итерационный метод применили.

Метод Якоби

Метод Якоби — один из наиболее простых методов приведения системы матрицы к виду, удобному для итерации: из 1-го уравнения матрицы выражаем неизвестное x 1 , из 2-го выражаем неизвестное x 2 и т.д.

Результатом служит матрица В , в которой на главной диагонали находятся нулевые элементы, а все остальные вычисляются по формуле:

b i j = — a i j / a i i , i , j = 1 , 2 . . . , n

Элементы (компоненты) вектора d вычисляются по следующей формуле:

d i = b i / a i i , i = 1 , 2 , . . . , n

Расчетная формула метода простой итерации:

x ( n + 1 ) = B x ( x ) + d

Матричная запись (координатная):

x i ( n + 1 ) = b i 1 x n 1 + b i 2 x ( n ) 2 + . . . + b

Критерий окончания в методе Якоби:

x ( n + 1 ) — x ( n ) ε 1 , где ε 1 = 1 — B B ε

В случае если B 1 / 2 , то можно применить более простой критерий окончания итераций:

x ( n + 1 ) — x ( n ) ε

Решить СЛАУ методом Якоби:

10 x 1 + x 2 — x 3 = 11 x 1 + 10 x 2 — x 3 = 10 — x 1 + x 2 + 10 x 3 = 10

Необходимо решить систему с показателем точности ε = 10 — 3 .

Приводим СЛАУ к удобному виду для итерации:

x 1 = — 0 , 1 x 2 + 0 , 1 x 3 + 1 , 1 x 2 = — 0 , 1 x 1 + 0 , 1 x 3 + 1 x 3 = 0 , 1 x 1 — 0 , 1 x 2 + 1

Выбираем начальное приближение, например: x ( 0 ) = 1 , 1 1 1 — вектор правой части.

В таком случае, первая итерация имеет следующий внешний вид:

x 1 ( 1 ) = — 0 , 1 × 1 + 0 , 1 × 1 + 1 , 1 = 1 , 1 x 2 ( 1 ) = — 0 , 1 × 1 , 1 + 0 , 1 + 1 = 0 , 99 x 3 ( 1 ) = 0 , 1 × 1 , 1 — 0 , 1 × 1 + 1 = 1 , 01

Аналогичным способом вычисляются приближения к решению:

x ( 2 ) = 1 , 102 0 , 991 1 , 011 , x ( 3 ) = 1 , 102 0 , 9909 1 , 0111 , x ( 4 ) = 1 , 10202 0 , 99091 1 , 01111

Находим норму матрицы В , для этого используем норму B ∞ .

Поскольку сумма модулей элементов в каждой строке равна 0,2, то B ∞ = 0 , 2 1 / 2 , поэтому можно вычислить критерий окончания итерации:

x ( n + 1 ) — x ( n ) ε

Далее вычисляем нормы разности векторов:

x ( 3 ) — x ( 2 ) ∞ = 0 , 002 , x ( 4 ) — x ( 3 ) ∞ = 0 , 00002 .

Поскольку x ( 4 ) — x ( 3 ) ∞ ε , то можно считать, что мы достигли заданной точности на 4-ой итерации.

x 1 = 1 , 102 ; x 2 = 0 , 991 ; x 3 = 1 ,01 1 .

Метод Зейделя

Метод Зейделя — метод является модификацией метода Якоби.

Суть: при вычислении очередного ( n + 1 ) — г о приближения к неизвестному x i при i > 1 используют уже найденные ( n + 1 ) — е приближения к неизвестным x 1 , x 2 , . . . , x i — 1 , а не n — о е приближение, как в методе Якоби.

x i ( n + 1 ) = b i 1 x 1 ( n + 1 ) + b i 2 x 2 ( n + 1 ) + . . . + b i , i — 1 x i — 2 ( n + 1 ) + b i , i + 1 x i + 1 ( n ) +

+ . . . + b i m x m ( n ) + d i

За условия сходимости и критерий окончания итераций можно принять такие же значения, как и в методе Якоби.

Решить СЛАУ методом Зейделя. Пусть матрица системы уравнений А — симметричная и положительно определенная. Следовательно, если выбрать начальное приближение, метод Зейделя сойдется. Дополнительных условий на малость нормы некоторой матрицы не накладывается.

Решим 3 системы уравнений:

2 x 1 + x 2 = 3 x 1 — 2 x 2 = 1 , x 1 + 2 x 2 = 3 2 x 1 — x 2 = 1 , 2 x 1 — 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1

Приведем системы к удобному для итерации виду:

x 1 ( n + 1 ) = — 0 , 5 x 2 ( n ) + 1 , 5 x 2 ( n + 1 ) = 0 , 5 x 1 ( n + 1 ) + 0 , 5 , x 1 ( n + 1 ) = — 2 x 2 ( n ) + 3 x 2 ( n + 1 ) = 2 x 1 ( n + 1 ) — 1 , 2 x 1 — 0 , 5 x 2 = 3 2 x 1 + 0 , 5 x 2 = 1 .

Отличительная особенность, условие сходимости выполнено только для первой системы:

Вычисляем 3 первых приближения к каждому решению:

1-ая система: x ( 0 ) = 1 , 5 — 0 , 5 , x ( 1 ) = 1 , 75 0 , 375 , x ( 2 ) = 1 , 3125 0 , 1563 , x ( 3 ) = 1 , 4219 0 , 2109

Решение: x 1 = 1 , 4 , x 2 = 0 , 2 . Итерационный процесс сходится.

2-ая система: x ( 0 ) = 3 — 1 , x ( 1 ) = 5 9 , x ( 2 ) = — 15 — 31 , x ( 3 ) = 65 129

Итерационный процесс разошелся.

Решение: x 1 = 1 , x 2 = 2

3-я система: x ( 0 ) = 1 , 5 2 , x ( 1 ) = 2 — 6 , x ( 2 ) = 0 2 , x ( 3 ) = 0 2

Итерационный процесс зациклился.

Решение: x 1 = 1 , x 1 = 2

Метод простой итерации

Если А — симметричная и положительно определенная, то СЛАУ приводят к эквивалентному виду:

x = x — τ ( A x — b ) , τ — итерационный параметр.

Расчетная формула имеет следующий внешний вид:

x ( n + 1 ) = x ( n ) — τ ( A x n — b ) .

Здесь B = E — τ A и параметр τ > 0 выбирают таким образом, чтобы по возможности сделать максимальной величину B 2 .

Пусть λ m i n и λ m a x — максимальные и минимальные собственные значения матрицы А .

τ = 2 / ( λ m i n + λ m a x ) — оптимальный выбор параметра. В этом случае B 2 принимает минимальное значение, которое равняется ( λ m i n + λ m a x ) / ( λ m i n — λ m a x ) .

Лекция 5. Итерационные методы решения уравнений и систем

5.1 Простая итерация. Уравнения с одним неизвестным.Пусть задана непрерывная функция f(x) и требуется найти все или некоторые корни уравнения

Эта задача распадается на несколько задач. Во-первых, надо исследовать характер и расположение корней. Во-вторых, найти приближенные значения корней. В-третьих, выбрать из них интересующие нас корни и вычислить их с требуемой точностью.

Первая и вторая задачи решаются аналитическими и графическими методами. Например, многочлен

имеет n комплексных корней, не обязательно различных, и все корни лежат внутри круга

Когда ищутся только действительные корни уравнения, то полезно составить таблицу значений f(x). Если в двух соседних узлах таблицы функция имеет разные знаки, то между этими узлами лежит нечетное число корней уравнения (по меньшей мере один). Если эти узлы близки, то, скорее всего, корень между ними только один. Но выявить по таблице корни четной кратности сложно.

По таблице можно построить график функции y=f(x) и графически найти точки его пересечения с осью абсцисс. Этот способ более нагляден и дает неплохие приближенные значения корней. Во многих задачах такая точность уже достаточна. В технике еще популярны графические методы решения уравнений (номография). Построение графика зачастую позволяет выявить даже корни четной кратности.

Иногда удается заменить уравнение (5.1.1) эквивалентным ему уравнением φ(x) = ψ(x), в котором функции и имеют несложные графики. Например, уравнение x sin x – 1 = 0 удобно преобразить к виду sin x = 1/x. Абсциссы точек сечения этих графиков будут корнями исходного уравнения.

Дихотомия (деление пополам). Пусть мы нашли такие точки , , что , т.е. на отрезке лежит не менее одного корня уравнения. Найдем середину отрезка и вычислим . Из двух половин отрезка выберем ту, для которой , ибо один из корней лежит на этой половине. Затем новый отрезок опять делим пополам и выберем ту половину, на концах которой функция имеет разные знаки, и т.д. (рис. 5.1).

Если требуется найти корень с точность ε, то продолжаем деление пополам до тех пор, пока длина отрезка не станет меньше 2ε. Тогда середина последнего отрезка даст значение корня с требуемой точностью.

Дихотомия проста и очень надежна: к простому корню она сходится для любых непрерывных функций f(x), в том числе недифференцируемых; при этом она устойчива к ошибкам округления. Скорость сходимости невелика: за одну итерацию точность увеличивается примерно вдвое, т.е. уточнение трех цифр требует 10 итераций. Зато точность ответа гарантируется.

Перечислим недостатки метода. Для начала расчета надо найти отрезок, на котором функция меняет знак. Если в этом отрезке несколько корней, то заранее неизвестно, к какому из них сойдется процесс (хотя к одному из них сойдется). Метод неприменим к корням четной кратности. Для корней нечетной высокой кратности он сходится, но менее точен и хуже устойчив к ошибкам округления, возникающим при вычислении f(x). Наконец, на системы уравнений дихотомия не обобщается.

Дихотомия применяется тогда, когда требуется высокая надежность счета, а скорость сходимости малосущественна.

Удаление корней. Один из недостатков дихотомии – сходимость неизвестно к какому корню – имеется почти у всех итерационных методов. Его можно устранить удалением уже найденного корня.

Если есть простой корень уравнения (5.1.1) и f(x) липшиц-непрерывна, то вспомогательная функция непрерывна, причем все нули функции f(x) и g(x) совпадают, за исключением , ибо Если – кратный корень уравнения (5.1.1), то он будет нулем функции кратности на единицу меньше; остальные нули обеих функций по-прежнему будут одинаковы.

Поэтому найденный корень можно удалить, т.е. перейти к функции . Тогда нахождение остальных нулей f(x) сведется к нахождению нулей . Когда мы найдем какой-нибудь корень функции , то этот корень тоже можно удалить, вводя новую вспомогательную функцию

= . Так можно последовательно найти все корни f(x).

Строго говоря, мы находим лишь приближенное значение корня . А функция имеет нуль в точке и полюс в близкой к ней точке (рис. 5.2); только на некотором расстоянии от этого корня она близка к . Чтобы это не сказывалось при нахождении следующих корней, надо вычислять каждый корень с высокой точностью.

Кроме того, в любом методе окончательные итерации вблизи определяемого корня рекомендуется делать не по функциям типа , а по исходной функции . Последние итерации, вычисленные по функции , используются при этом в качестве нулевого приближения. Важно это при нахождении многих корней, ибо чем больше корней удалено, тем меньше нули вспомогательной функции соответствуют остальным нулям функции .

Учитывая эти предосторожности и вычисляя корни с 8-10 верными десятичными цифрами, зачастую можно определить десятка два корней, о расположении которых заранее ничего не известно (в том числе корней высокой кратности p

Метод простых итераций. Заменим уравнение (5.1.1) эквивалентным ему уравнением . Это можно сделать многими способами, например, положив , где – произвольная непрерывная знакопостоянная функция. Выберем некоторое нулевое приближение и вычислим дальнейшие приближения по формулам

(5.1.2)

Очевидно, если стремится к некоторому пределу , то этот предел есть корень исходного уравнения.

Исследуем условия сходимости. Если имеет непрерывную производную, тогда

, (5.1.3)

где точка ξ лежит между точками и . Поэтому если всюду , то отрезки убывают не медленней членов геометрической прогрессии со знаменателем и последовательность сходится при любом нулевом приближении. Если , то в силу непрерывности больше единицы и в некоторой окрестности корня; в этом случае итерации не могут сходится. Если , но вдали от корня , то итерации сходятся, если нулевое приближение выбрано достаточно близко к корню; при произвольном нулевом приближении сходимости может не быть.

Очевидно, что чем меньше q, тем быстрее сходимость. Вблизи корня асимптотическая сходимость определяется величиной и будет особенно быстрой при .

Значит, успех метода зависит от того, насколько удачно выбрано . Например, для извлечения квадратного корня, т.е. решения уравнения , можно положить или и соответственно написать такие итерационные процессы:

Первый процесс вообще не сходится, а второй сходится при любом ; сходится он очень быстро, ибо . Второй процесс используют при извлечении корня на калькуляторах.

Каков практический критерий сходимости, т.е. когда надо прекращать итерации (5.1.2)? Из (5.1.3) видно, что если , то итерации попеременно оказываются то с одной, то с другой стороны корня, так что корень заключен в интервале . Это надежная, хотя несколько грубая оценка. Но она неприменима при , когда итерации сходятся к корню монотонно, т.е. с одной стороны.

Вблизи корня итерации сходятся примерно, как геометрическая прогрессия со знаменателем . Чтобы сумма дальнейших ее членов не превосходила ε, должен выполняться критерий сходимости

. (5.1.5)

При выполнении этого условия итерации можно прекращать.

Метод простых итераций и почти все другие итерационные методы имеют важное достоинство: в них не накапливаются ошибки вычислений. Ошибка вычислений эквивалентна некоторому ухудшению очередного приближения. Но это отразится только на числе итераций, а не на точности окончательного результата. Подобные методы устойчивы даже по отношению к грубым ошибкам (компьютерного сбоя), если только ошибка не выбрасывает очередное приближение за пределы области сходимости.

Метод Ньютона. Он называется также методом касательных или методом линеаризации. Если есть некоторое приближение к корню , а имеет непрерывную производную, то уравнение (5.1.1) можно преобразоватьть следующим образом:

.

Приближенно заменяя на значение в известной точке , получим такой итерационный процесс:

. (5.1.6)

Геометрически этот процесс означает замену на каждой итерации графика касательной к нему (рис. 28).

Метод Ньютона можно рассматривать как частный случай метода простых итераций, если положить . Тогда Если есть р-кратный корень уравнения (5.1.1), то вблизи него ; отсюда нетрудно получить , т.е. . Для простого корня и . Используя результаты п.4, можно сформулировать следующие условия сходимости итерации (28). Если нулевое приближение выбрано достаточно близко к корню, ньютоновские итерации сходятся; скорость сходимости велика для простого корня и соответствует скорости геометрической прогрессии для кратного корня. При произвольном нулевом приближении итерации сходятся, если всюду ; в противном случае сходимость будет не при любом нулевом приближении, а только в некоторой окрестности корня.

Сходимость вблизи любого корня монотонна, что легко видеть на рис. 28; но вдали от корня возможна немонотонность итерации. Отметим, что рис. 28 указывает еще на одно достаточное условие сходимости итерации. Пусть справа от корня на отрезке ; если выбрано также справа от корня на этом отрезке, то итерация (28) сходится, причем монотонно. То же будет, если слева от корня на отрезке , и на этом же отрезке выбрано нулевое приближение. Таким образом, итерации сходятся к корню с той стороны, с которой .

Оценим скорость сходимости вблизи простого корня. По определению простых итераций, . Разлагая правую часть по формуле Тейлора и учитывая равенство , получим

, (5.1.7)
Т а б л и ц а 1
n , метод Ньютона , метод секущих
1,0000 1,0000
2,5000 2,5000
2,0500 1,8571
2,0001 1,9836

т.е. погрешность очередного приближения примерно равна квадрату погрешности предыдущего приближения. Например, если (n-1)-я итерация давала 3 верных знака, то n-я даст примерно 6 верных знаков, а (n+1)-я – примерно 12 знаков. Это иллюстрирует быструю сходимость вблизи корня. Разумеется, вдали от корня подобные соображения неприменимы.

Если вычисляется корень высокой кратности, то в знаменателе формулы (28) становится малой вблизи корня. Чтобы не было потери точности, отношение надо вычислять достаточно аккуратно. К остальным погрешностям расчета метод Ньютона хорошо устойчив.

Для нахождения корней произвольной дифференцируемой функции чаще всего применяют метод Ньютона, особенно если известны разумные начальные приближения для корней.

П р и м е р. Рассмотрим решение уравнения . Тогда общая формула метода Ньютона (5.1.6) принимает вид

.

Мы получили вторую формулу (5.1.4), которая, как отмечалось раньше, позволяет очень быстро находить квадратный корень с помощью только сложения и деления. Для иллюстрации в таблице 16 приведен ход итерации при извлечении квадратного корня из а = 4.Видно, что сходимость очень быстрая; несмотря на неважное нулевое приближение, уже третья итерация дает точность 0,005%. Попутно можно заметить, что вблизи корня итерация сходится с одной стороны, т.е. монотонно, хотя первая итерация дает переброс на другую сторону корня.

Метод секущих. В методе Ньютона требуется вычислять производную функции, что не всегда удобно. Можно заменить производную первой разделенной разностью, найденной по двум последним итерациям, т.е. заменить касательную секущей. Тогда вместо процесса (5.1.6) получим

. (5.1.8)

Для начала процесса надо задать и (рис. 29). Такие процессы, где для вычисления очередного приближения надо знать два предыдущих, называют двухшаговыми.

Эти небольшие изменения сильно влияют на характер итераций. Например, сходимость итераций может быть немонотонной не только вдали от корня, но и в малой окрестности корня. Скорость сходимости также изменяется. Приведенный в таблице 1 для сравнения расчет по методу Ньютона показывает, что метод секущих сходится медленнее, т.к. в методе Ньютона ошибка убывает быстрей. Но в методе Ньютона на каждой итерации надо вычислять и функцию, и производную, а в методе секущих – только функцию.

В знаменателе формулы (5.1.8) стоит разность значений функции; вдали от корня это несущественно, но вблизи корня значения функции малы и очень близки. Возникает потеря значащих цифр, приводящая к «разболтке» счета, что ограничивает точность.

От «разболтки» страхуются так называемым приемом Гарвика. Выбирают не очень малое значение ε, ведут итерации до выполнения условия и затем продолжают расчет до тех пор, пока убывают. Первое же возрастание обычно означает начало «разболтки»; тогда расчет прекращают и последнюю итерацию не используют.

Метод парабол. Метод секущих основан на замене функции ф(х) интерполяционным полиномом первой степени по узлам xn , xn-1 . По трем последним итерациям можно построить полином второй степени, т.е. заменить график функции параболой. Примем этот полином в форме Ньютона:

Приравняв его нулю, получим квадратноеуравнение

Меньший по модулю из двух корней квадратного уравнения определяет новое приближение xn+1=xn+z .

Для начала расчета надо задать три первых приближения х012 (обычно наугад), т.е. процесс является трехшаговым.

Метод парабол построен по образцу методов третьего порядка, однако замена производных разделенными разностями приводит к существенному уменьшению скорости сходимости.

В этом методе «разболтка» счета вблизи корня сказывается еще больше, чем в методе секущих, т.к. в расчете участвуют вторые разности, но все-таки корни можно найти с хорошей точностью; для определения оптимального числа итераций добно пользоваться приемом Гарвика (см. выше).

Метод парабол исключительно эффективен для нахождения всех корней многочлена высокой степени.

5.2. Итерации для линейных систем уравнений (обычный способ). Итерационные методы решения систем линейных уравнений позволяют получить это решение в виде предела последовательности некоторых векторов, построение которых осуществляется посредством единообразного процесса.

Для определенности запишем систему линейных уравнений четвертого порядка в виде + =0, где = (i,y=1,2,3,4), векторы

= , = .

Разрешим первое из уравнений относительно x1 , второе – относительно x2 и т.д. Тогда эту систему можно переписать в виде

= — (i=1, 2, 3, 4; k=1, 2, 3, 4, 5) . (2)

Система (1) является частным случаем записи вида

При этом линейная функция, например, L1(x1, x2, x3, x4) фактически не зависит от x1 согласно (1). Выводы не изменятся, если она будет содержать слагаемое вида α11x1 .То же относится к правым частям остальных уравнений.

Зададим произвольные начальные значения неизвестных , , , . Подставляя эти значения в правые части системы (3), получим первые приближения:

=L1( , , , ) ,

=L4( , , , ).

Полученные первые приближения могут быть таким же образом использованы для получения вторых, третьих и т.д., так что для любого ν можно получить ν-е приближение , , , .

Можно установить условия, которые обеспечат сходимость получающихся приближений к истинному решению системы x1, x2, x3, x4, для чего достаточно отличия от нуля определителя системы detA≠0.

Обозначим через ошибку ν-го приближения для k-го неизвестного

= – xk ,

где xk точное значение неизвестного в решении системы, которое предполагается существующим.

Показано, что для сходимости итерационного процесса к точному решению системы в этом способе достаточно выполнения условия С (ν) =L1 (x1 (ν-1) , x1 (ν-1) ,…),

Иначе говоря, следующее приближение полностью определялось значениями, полученными на предыдущем шаге. Между тем уже при построении первого приближения можно, например, вычисляя значение x2 (1) , воспользоваться для x1 не нулевым приближением x1 (0) , а уже полученным нами первым приближением x1 (1) . Вычисляя χ3 , можно использовать уже не только x1 (1) , но и x2 (1) и т. д.

Таким образом, вместо формул (1) предлагается использовать для отыскания следующего приближения формулы такого вида (мы снова пишем их для конкретного случая системы четырех уравнений с четырьмя неизвестными):

(2)

Это изменение и составляет идею итераций по способу Зейделя.

Естественно ожидать, что итерации по способу Зейделя дадут при том же числе шагов более точные результаты, чем обычные итерации, или, что то же самое, та же точность будет достигнута за меньшее число шагов. Вообще говоря, эти ожидания оправдываются. Однако нужно иметь в виду, что условия сходимости обычного итерационного процесса и итерационного процесса Зейделя различны. Один из этих процессов для данной системы может оказаться расходящимся тогда, когда другой сходится.

Вычислительная схема итерационного процесса Зейделя строится, как и для обычных итераций, на вычислении последовательных поправок. Рассмотрим эту схему, ограничившись, для краткости, системой трех линейных уравнений с тремя неизвестными. Формулы для отыскания следующих приближений через предыдущие будут в этом случае иметь вид

(3)

Формулы для вычисления поправок легко получить, исходя непосредственно из определения и используя (3). Действительно, для ν-ой итерации

δ1 (ν) = ˗ = ( + ) ˗ ( + ) = = + ( ,

δ1 (ν) = + . (4)

Для формула выглядит несколько иначе. Так как = ˗ =

= ( + ) ˗ ( + ),

= + , (5)

= + . (6)

Как и для обычного итерационного процесса, формулы (4)-(6) могут быть использованы для вычисления поправок для всех ν = 1, 2, …. , но не для ν = 0; для формулы должны быть выведены отдельно. Если принять за начальные приближения значения соответствующих свободных членов

= , = = ,

то для первых поправок получим выражения

(7)

где = + и = + .

Расположение вычислений показано в табл. 1. Верхняя часть ее не отличается от обычного способа, а таблица для вычисления поправок имеет уже несколько другой вид: при вычислении очередных поправок в ряде случаев используются уже полученные поправки того же этапа вычислений. Соответствующие места в табл. 1. подчеркнуты.

Вычисления продолжаются до получения достаточно малых поправок. Окончательные значения неизвестных получаются по формулам

+… (𝓀 = 1,2,3).

Таблица 1. Алгоритм способа Зейделя

для системы трех уравнений с тремя неизвестными

Метод итераций

Правила ввода функции

  1. Примеры
    ≡ x^2/(1+x)
    cos 2 (2x+π) ≡ (cos(2*x+pi))^2
    ≡ x+(x-1)^(2/3)

На рис.1а, 1б в окрестности корня |φ′(x)| 1, то процесс итерации может быть расходящимся (см. рис.2).

Достаточные условия сходимости метода итерации

Процесс нахождения нулей функции методом итераций состоит из следующих этапов:

  1. Получить шаблон с омощью этого сервиса.
  2. Уточнить интервалы в ячейках B2 , B3 .
  3. Копировать строки итераций до требуемой точности (столбец D ).

Примечание: столбец A — номер итерации, столбец B — корень уравнения X , столбец C — значение функции F(X) , столбец D — точность eps .

источники:

http://poisk-ru.ru/s48685t6.html

http://math.semestr.ru/optim/iteration_method.php

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

  • 1 Введение
    • 1.1 Постановка вопроса. Виды погрешностей
  • 2 Виды мер точности
  • 3 Предельные погрешности
  • 4 Погрешности округлений при представлении чисел в компьютере
  • 5 Погрешности арифметических операций
  • 6 Погрешности вычисления функций
  • 7 Числовые примеры
  • 8 Список литературы
  • 9 См. также

Введение

Постановка вопроса. Виды погрешностей

Процесс исследования исходного объекта методом математического моделирования и вычислительного эксперимента неизбежно носит приближенный характер, так как на каждом этапе вносятся погрешности. Построение математической модели связано с упрощением исходного явления, недостаточно точным заданием коэффициентов уравнения и других входных данных. По отношению к численному методу, реализующему данную математическую модель, указанные погрешности являются неустранимыми, поскольку они неизбежны в рамках данной модели.

При переходе от математической модели к численному методу возникают погрешности, называемые погрешностями метода. Они связаны с тем, что всякий численный метод воспроизводит исходную математическую модель приближенно. Наиболее типичными погрешностями метода являются погрешность дискретизации и погрешность округления.
При построении численного метода в качестве аналога исходной математической задачи обычно рассматривается её дискретная модель. Разность решений дискретизированной задачи и исходной называется погрешностью дискретизации. Обычно дискретная модель зависит от некоторого параметра (или их множества) дискретизации, при стремлении которого к нулю должна стремиться к нулю и погрешность дискретизации.
Дискретная модель представляет собой систему большого числа алгебраических уравнений. Для её решения используется тот или иной численный алгоритм. Входные данные этой системы, а именно коэффициенты и правые части, задаются в ЭВМ не точно, а с округлением. В процессе работы алгоритма погрешности округления обычно накапливаются, и в результате, решение, полученное на ЭВМ, будет отличаться от точного решения дискретизированной задачи. Результирующая погрешность называется погрешностью округления (вычислительной погрешностью). Величина этой погрешности определяется двумя факторами: точностью представления вещественных чисел в ЭВМ и чувствительностью данного алгоритма к погрешностям округления.

Итак, следует различать погрешности модели, дискретизации и округления. В вопросе преобладания какой-либо погрешности ответ неоднозначен. В общем случае нужно стремиться, чтобы все погрешности имели один и тот же порядок. Например, нецелесообразно пользоваться разностными схемами, имеющими точность 10−6, если коэффициенты исходных уравнений задаются с точностью 10−2.

Виды мер точности

Мерой точности вычислений являются абсолютные и относительные погрешности. Абсолютная погрешность определяется формулой

Delta(tilde a)=|tilde a-a|,

где tilde a – приближение к точному значению a.
Относительная погрешность определяется формулой

delta(tilde a)=frac{|tilde a-a|}{a}.

Относительная погрешность часто выражается в процентах. Абсолютная и относительная погрешности тесно связаны с понятием верных значащих цифр. Значащими цифрами числа называют все цифры в его записи, начиная с первой ненулевой цифры слева. Например, число 0,000129 имеет три значащих цифры. Значащая цифра называется верной, если абсолютная погрешность числа не превышает половины веса разряда, соответствующего этой цифре. Например, tilde a=9348, абсолютная погрешность Delta(tilde a)=15. Записывая число в виде

9348=9cdot10^3+3cdot10^2+4cdot10^1+8cdot10^0,

имеем 0,5cdot10^1<Delta(tilde a)<0,5cdot10^2, следовательно, число имеет две верных значащих цифр (9 и 3).

В общем случае абсолютная погрешность должна удовлетворять следующему неравенству:

Delta(tilde a)<0,5cdot10^{m-n+1} ,

где m — порядок (вес) старшей цифры, n — количество верных значащих цифр.
В рассматриваемом примере Delta(tilde a)le0,5cdot10^{3-2+1}le0,5cdot10^2=50.

Относительная погрешность связана с количеством верных цифр приближенного числа соотношением:

delta(tilde a)lefrac{Delta(tilde a)}{alpha_m}10^mlefrac{10^{m-n+1}}{alpha_m10^m}lefrac{1}{alpha_m10^{n-1}},

где alpha_m — старшая значащая цифра числа.

Для двоичного представления чисел имеем delta(tilde a)le2^{-n}.

Тот факт, что число tilde a является приближенным значением числа a с абсолютной погрешностью Delta(tilde a), записывают в виде

a=tilde apmDelta(tilde a),

причем числа tilde a и Delta(tilde a) записываются с одинаковым количеством знаков после запятой, например, a=2,347pm0,002 или a=2,347pm2cdot10^{-3}.

Запись вида

a=tilde a(1pmdelta(tilde a))

означает, что число tilde a является приближенным значение числа a с относительной погрешностью delta(tilde a).

Так как точное решение задачи как правило неизвестно, то погрешности приходится оценивать через исходные данные и особенности алгоритма. Если оценка может быть вычислена до решения задачи, то она называется априорной. Если оценка вычисляется после получения приближенного решения задачи, то она называется апостериорной.

Очень часто степень точности решения задачи характеризуется некоторыми косвенными вспомогательными величинами. Например точность решения системы алгебраических уравнений

AX=F

характеризуется невязкой

R=F-Atilde X,

где tilde X — приближенное решение системы.
Причём невязка достаточно сложным образом связана с погрешностью решения Delta(X)=tilde X-X, причём если невязка мала, то погрешность может быть значительной.

Предельные погрешности

Пусть искомая величина a является функцией параметров t_1, ldots , t_n in Omega, qquad a* — приближенное значение a. Тогда предельной абсолютной погрешностью называется величина

D(a^*) = suplimits_{(t_1, ldots ,t_n) in Omega } left|{a(t_1, ldots ,t_n) - a^*}right| ,

Предельной относительной погрешностью называется величина D(a*)/| a*|.

Пусть left|{t_j - t_j^*}right| le Delta (t_j^* ), qquad j = 1 div n — приближенное значение a^* = a(t_1^*, ldots ,t_n^* ). Предполагаем, что a — непрерывно дифференцируемая функция своих аргументов. Тогда, по формуле Лагранжа,

a(t_1, ldots ,t_n) - a^* = sumlimits_{j = 1}^n gamma_j (alpha )(t_j - t_j^*),

где gamma_j (alpha ) = a^{prime}_{t_j}(t_1^* + alpha (t_1 - t_1^*), ldots ,t_n^* + alpha (t_n - t_n^*)), qquad 0 le alpha le 1.

Отсюда

left|{a(t_1, ldots ,t_n) - a^*}right| le D_1 (a^*) = sumlimits_{j = 1}^n b_j Delta (t_j^*),

где b_j = suplimits_Omega left|{a^{prime}_{t_j}(t_1, ldots ,t_n)}right|.

Можно показать, что при малых rho = sqrt{{(Delta (t_1^* ))}^2 + ldots + {(Delta (t_n^* ))}^2 } эта оценка не может быть существенно улучшена. На практике иногда пользуются грубой (линейной) оценкой

left|{a(t_1, ldots ,t_n) - a^*}right| le D_2 (a^*),

где D_2 (a^*) = sumlimits_{j = 1} left|{gamma_j (0)}right| Delta (t^*).

Несложно показать, что:

  1. Delta ( pm t_1^* pm , ldots , pm t_n^*) = Delta (t_1^* ) + ldots + Delta (t_n^* ) — предельная погрешность суммы или разности равна сумме предельных погрешностей.
  2. delta (t_1^* cdots t_m^* cdot d_1^{* - 1} cdots d_m^{* - 1} ) = delta (t_1^* ) + ldots + delta (t_m^*) + delta (d_1^*) + ldots + delta (d_n^*) — предельная относительная погрешность произведения или частного приближенного равна сумме предельных относительных погрешностей.

Погрешности округлений при представлении чисел в компьютере

Одним из основных источников вычислительных погрешностей является приближенное представление чисел в компьютере, обусловленное конечностью разрядной сетки (см. Международный стандарт представления чисел с плавающей точкой в ЭВМ). Число a, не представимое в компьютере, подвергается округлению, т. е. заменяется близким числом tilde a, представимым в компьютере точно.
Найдем границу относительной погрешности представления числа с плавающей точкой. Допустим, что применяется простейшее округление – отбрасывание всех разрядов числа, выходящих за пределы разрядной сетки. Система счисления – двоичная. Пусть надо записать число, представляющее бесконечную двоичную дробь

a=underbrace{pm2^p}_{order}underbrace{left(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}+frac{a_{t+1}}{2^{t+1}}+dotsright)}_{mantissa},

где a_j={01, qquad (j=1,2,...) — цифры мантиссы.
Пусть под запись мантиссы отводится t двоичных разрядов. Отбрасывая лишние разряды, получим округлённое число

tilde a=pm2^pleft(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}right).

Абсолютная погрешность округления в этом случае равна

a-tilde a=pm2^pleft(frac{a_{t+1}}{2^{t+1}}+frac{a_{t+2}}{2^{t+2}}+dotsright).

Наибольшая погрешность будет в случае a_{t+1}=1, qquad a_{t+2}=1,, тогда

|a-tilde a|lepm2^pfrac{1}{2^{t+1}}underbrace{left(1+frac{1}{2}+frac{1}{2^2}+dotsright)}_{=2}=2^{p-t}.

Т.к. |M|ge0,5, где M — мантисса числа a, то всегда a_1=1. Тогда |a|ge2^pcdot2^{-1}=2^{p-1} и относительная погрешность равна frac{|a-tilde a|}{|a|}le2^{-t+1}. Практически применяют более точные методы округления и погрешность представления чисел равна

( 1 )

frac{|a-tilde a|}{|a|}le2^{-t},

т.е. точность представления чисел определяется разрядностью мантиссы t.
Тогда приближенно представленное в компьютере число можно записать в виде tilde a=a(1pmepsilon), где |epsilon|le2^{-t}«машинный эпсилон» – относительная погрешность представления чисел.

Погрешности арифметических операций

При вычислениях с плавающей точкой операция округления может потребоваться после выполнения любой из арифметических операций. Так умножение или деление двух чисел сводится к умножению или делению мантисс. Так как в общем случае количество разрядов мантисс произведений и частных больше допустимой разрядности мантиссы, то требуется округление мантиссы результатов. При сложении или вычитании чисел с плавающей точкой операнды должны быть предварительно приведены к одному порядку, что осуществляется сдвигом вправо мантиссы числа, имеющего меньший порядок, и увеличением в соответствующее число раз порядка этого числа. Сдвиг мантиссы вправо может привести к потере младших разрядов мантиссы, т.е. появляется погрешность округления.

Округленное в системе с плавающей точкой число, соответствующее точному числу x, обозначается через fl(x) (от англ. floating – плавающий). Выполнение каждой арифметической операции вносит относительную погрешность, не большую, чем погрешность представления чисел с плавающей точкой (1). Верна следующая запись:

fl(abox b)=abox b(1pmepsilon),

где box — любая из арифметических операций, |epsilon|le2^{-t}.

Рассмотрим трансформированные погрешности арифметических операций. Арифметические операции проводятся над приближенными числами, ошибка арифметических операций не учитывается (эту ошибку легко учесть, прибавив ошибку округления соответствующей операции к вычисленной ошибке).

Рассмотрим сложение и вычитание приближенных чисел. Абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей слагаемых.

Если сумма точных чисел равна

S=a_1+a_2+dots+a_n,

сумма приближенных чисел равна

tilde S=a_1+Delta(a_1)+a_2+Delta(a_2)+dots+a_n+Delta(a_n),

где Delta(a_i), qquad i=1,2,...,n— абсолютные погрешности представления чисел.

Тогда абсолютная погрешность суммы равна

Delta(S)=Delta(a_1)+Delta(a_2)+dots+Delta(a_n).

Относительная погрешность суммы нескольких чисел равна

( 2 )

delta(S)=frac{Delta(S)}{S}=frac{a_1}{S}left(frac{Delta(a_1)}{a_1}right)+frac{a_2}{S}left(frac{Delta(a_2)}{a_2}right)+dots=frac{a_1delta(a_1)+a_2delta(a_2)+dots}{S},

где delta(a_i), qquad i=1,2,...,n — относительные погрешности представления чисел.

Из (2) следует, что относительная погрешность суммы нескольких чисел одного и того же знака заключена между наименьшей и наибольшей из относительных погрешностей слагаемых:

min quad delta(a_k)ledelta(S)le max quad delta(a_k), qquad k=1,2,...,n, quad a_k>0.

При сложении чисел разного знака или вычитании чисел одного знака относительная погрешность может быть очень большой (если числа близки между собой). Так как даже при малых Delta(a_i) величина S может быть очень малой. Поэтому вычислительные алгоритмы необходимо строить таким образом, чтобы избегать вычитания близких чисел.

Необходимо отметить, что погрешности вычислений зависят от порядка вычислений. Далее будет рассмотрен пример сложения трех чисел.

S=x_1+x_2+x_3,
tilde S_1=(x_1+x_2)(1+delta_1),

( 3 )

tilde S=(tilde S_1+x_3)(1+delta_2)=(x_1+x_2)(1+delta_1)(1+delta_2)+x_3(1+delta_2).

При другой последовательности действий погрешность будет другой:

tilde S_1=(x_3+x_2)(1+delta_1),
tilde S=(x_3+x_2)(1+delta_1)(1+delta_2)+x_1(1+delta_2).

Из (3) видно, что результат выполнения некоторого алгоритма, искаженный погрешностями округлений, совпадает с результатом выполнения того же алгоритма, но с неточными исходными данными. Т.е. можно применять обратный анализ: свести влияние погрешностей округления к возмущению исходных данных. Тогда вместо (3) будет следующая запись:

tilde S=tilde x_1+tilde x_2+tilde x_3,

где tilde x_1=x_1(1+delta_1)(1+delta_2), quad tilde x_2=x_2(1+delta_1)(1+delta_2), quad tilde x_3=x_3(1+delta_2).

При умножении и делении приближенных чисел складываются и вычитаются их относительные погрешности.

S=a_1cdot a_2,
tilde S=a_1cdot a_2(1+delta(a_1))(1+delta(a_2))a_1cdot a_2(1+delta(a_1)+delta(a_2)),

с точностью величин второго порядка малости относительно delta.

Тогда delta(S)=delta(a_1)+delta(a_2).

Если S=frac{a_1}{a_2}, то Delta(S)=frac{a_1(1+delta_1)}{a_2(1+delta_2)}-frac{a_1}{a_2}=frac{a_1(delta_1-delta_2)}{a_2(1+delta_2)}approx frac{a_1}{a_2}(delta_1-delta_2), qquad delta(S)delta_1-delta_2.

При большом числе n арифметических операций можно пользоваться приближенной статистической оценкой погрешности арифметических операций, учитывающей частичную компенсацию погрешностей разных знаков:

delta_Sigma approx delta_{fl} quad sqrt{n},

где delta_Sigma – суммарная погрешность, |delta_{fl}|leepsilon – погрешность выполнения операций с плавающей точкой, epsilon – погрешность представления чисел с плавающей точкой.

Погрешности вычисления функций

Рассмотрим трансформированную погрешность вычисления значений функций.

Абсолютная трансформированная погрешность дифференцируемой функции y=f(x), вызываемая достаточно малой погрешностью аргумента Delta(x), оценивается величиной Delta(y)=|f'(x)|Delta(x).

Если f(x)>0, то delta(y)=frac{|f'(x)|}{f(x)}Delta(x)=left|(ln(f(x)))'right|cdotDelta(x).

Абсолютная погрешность дифференцируемой функции многих аргументов y=f(x_1, x_2, ..., x_n), вызываемая достаточно малыми погрешностями Delta(x_1), Delta(x_2), ..., Delta(x_n) аргументов x_1, x_2, ...,x_n оценивается величиной:

Delta(y)=sumlimits_{i=1}^nleft|frac{partial f}{partial x_i}right|Delta(x_i).

Если f(x_1,x_2,...,x_n)>0, то delta(y)=sumlimits_{i=1}^nfrac{1}{f}cdotleft|frac{partial f}{partial x_i}right|cdotDelta(x_i)=sumlimits_{i=1}^{n}left|frac{partial l_n(f)}{partial x_i}right|Delta(x_i).

Практически важно определить допустимую погрешность аргументов и допустимую погрешность функции (обратная задача). Эта задача имеет однозначное решение только для функций одной переменной y=f(x), если f(x) дифференцируема и f'(x)not=0:

Delta(x)=frac{1}{|f'(x)|}Delta(y).

Для функций многих переменных задача не имеет однозначного решения, необходимо ввести дополнительные ограничения. Например, если функция y=f(x_1,x_2,...,x_n) наиболее критична к погрешности Delta(x_i), то:

Delta(x_i)=frac{Delta(y)}{left|frac{partial f}{partial x_i}right|}qquad (погрешностью других аргументов пренебрегаем).

Если вклад погрешностей всех аргументов примерно одинаков, то применяют принцип равных влияний:

Delta(x_i)=frac{Delta(y)}{nleft|frac{partial f}{partial x_i}right|},qquad i=overline{1,n}.

Числовые примеры

Специфику машинных вычислений можно пояснить на нескольких элементарных примерах.

ПРИМЕР 1. Вычислить все корни уравнения

x^4 - 4x^3 + 8x^2 - 16x + 15.underbrace{99999999}_8 = {(x - 2)}^4 - 10^{- 8} = 0.

Точное решение задачи легко найти:

(x - 2)^2 = pm 10^{- 4},
x_1= 2,01; x_2= 1,99; x_{3,4}= 2 pm 0,01i.

Если компьютер работает при delta _M > 10^{ - 8}, то свободный член в исходном уравнении будет округлен до 16,0 и, с точки зрения представления чисел с плавающей точкой, будет решаться уравнение (x-2)^4= 0, т.е. x_{1,2,3,4} = 2, что, очевидно, неверно. В данном случае малые погрешности в задании свободного члена approx10^{-8} привели, независимо от метода решения, к погрешности в решении approx10^{-2}.

ПРИМЕР 2. Решается задача Коши для обыкновенного дифференциального уравнения 2-го порядка:

u''(t) = u(t), qquad u(0) = 1, qquad u'(0) = - 1.

Общее решение имеет вид:

u(t) = 0,5[u(0) + u'(0)]e^t + 0,5[u(0) - u'(0)]e^{- t}.

При заданных начальных данных точное решение задачи: u(x) = e^{-t}, однако малая погрешность delta в их задании приведет к появлению члена delta e^t, который при больших значениях аргумента может существенно исказить решение.

ПРИМЕР 3. Пусть необходимо найти решение обыкновенного дифференциального уравнения:

stackrel{cdot}{u} = 10u,qquad u = u(t), u(t_0) = u_0,qquad t in [0,1].

Его решение: u(t) = u_0e^{10(t - t_0 )}, однако значение u(t_0) известно лишь приближенно: u(t_0) approx u_0^*, и на самом деле u^*(t) = u_0^*e^{10(t - t_0)}.

Соответственно, разность u* - u будет:

u^* - u = (u_0^* - u_0)e^{10(t - t_0)}.

Предположим, что необходимо гарантировать некоторую заданную точность вычислений epsilon > 0 всюду на отрезке t in [0,1]. Тогда должно выполняться условие:

|{u^*(t) - u(t)}| le varepsilon.

Очевидно, что:

maxlimits_{t in [0,1]} |{u^*(t) - u(t)}| = |{u*(1) - u(1)}| = |{u_0^* - u_0}|e^{10(1 - t_0)}.

Отсюда можно получить требования к точности задания начальных данных delta: qquad|u_0^* - u_0| < delta, qquad delta le varepsilon e^{ - 10} при t_0= 0.

Таким образом, требование к заданию точности начальных данных оказываются в e^{10} раз выше необходимой точности результата решения задачи. Это требование, скорее всего, окажется нереальным.

Решение оказывается очень чувствительным к заданию начальных данных. Такого рода задачи называются плохо обусловленными.

ПРИМЕР 4. Решением системы линейных алгебраических уравнений (СЛАУ):

left{ begin{array}{l} u + 10v = 11,  100u + 1001v = 1101;  end{array} right.

является пара чисел {1, quad 1}.

Изменив правую часть системы на 0,01, получим возмущенную систему:

left{ begin{array}{l} u + 10v = 11.01,  100u + 1001v = 1101;  end{array} right.

с решением {11.01, quad 0.00}, сильно отличающимся от решения невозмущенной системы. Эта система также плохо обусловлена.

ПРИМЕР 5. Рассмотрим методический пример вычислений на модельном компьютере, обеспечивающем точность delta_M = 0,0005. Проанализируем причину происхождения ошибки, например, при вычитании двух чисел, взятых с точностью до третьей цифры после десятичной точки u = 1,001,quad v = 1,002, разность которых составляет Delta = |v_M - u_M| = 0,001.

В памяти машины эти же числа представляются в виде:

u_M = u(1 + delta_M^u), quad v_M = v(1 + delta_M^v), причем mid delta_M^umid le delta_M и mid delta_M^vmid le delta_M.

Тогда:

u_M - u approx udelta_M^u, quad v_M - v approx vdelta_M^v.

Относительная ошибка при вычислении разности u_M - v_M будет равна:

delta = frac{(u_M - v_M) - (u - v)}{(u - v)} = frac{(u_M - u) - (v_M - v)}{(u - v)} = frac{delta_M^u - delta_M^v}{(u - v)}.

Очевидно, что delta = left|{frac{delta_M^u - delta_M^v}{Delta }} right| le frac{2delta_M}{0,001} approx 2000delta_M = 1, т.е. все значащие цифры могут оказаться неверными.

ПРИМЕР 6. Рассмотрим рекуррентное соотношение u_{i+1} = qu_i, quad i ge 0, quad u_0 = a,quad q > 0, quad u_i > 0.

Пусть при выполнении реальных вычислений с конечной длиной мантиссы на i-м шаге возникла погрешность округления, и вычисления проводятся с возмущенным значением u_i^M = u_i + delta_i, тогда вместо u_{i+1} получим u_{i + 1}^M = q(u_i + delta_i) = u_{i + 1} + qdelta_i, т.е. delta_{i + 1} = qdelta_i,quad i = 0,1,ldots .

Следовательно, если |q| > 1, то в процессе вычислений погрешность, связанная с возникшей ошибкой округления, будет возрастать (алгоритм неустойчив). В случае mid qmid le 1 погрешность не возрастает и численный алгоритм устойчив.

Список литературы

  • А.А.Самарский, А.В.Гулин.  Численные методы. Москва «Наука», 1989.
  • http://www.mgopu.ru/PVU/2.1/nummethods/Chapter1.htm
  • http://www.intuit.ru/department/calculate/calcmathbase/1/4.html

См. также

  • Практикум ММП ВМК, 4й курс, осень 2008

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Н.Н. Меркулова, М.Д. Михайлов

МЕТОДЫ ПРИБЛИЖЕННЫХ ВЫЧИСЛЕНИЙ Учебное пособие Второе издание, переработанное и дополненное Под редакцией доктора физико-математических наук, профессора А.В. Старченко Допущено УМО по классическому университетскому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности высшего профессионального образования «математика» и «механика»

Томск Издательский Дом Томского государственного университета 2014

УДК 519.6 ББК 22.193 М52

М52

Меркулова Н.Н., Михайлов М.Д. Методы приближенных вычислений : учебное пособие. – 2-е изд., перераб. и доп. / под ред. А.В. Старченко. – Томск : Издательский Дом ТГУ, 2014. – 764 с.

ISBN 978-5-94621-420-9 В учебном пособии рассматриваются численные методы решения алгебраических и трансцендентных уравнений, систем нелинейных уравнений; полная и частичная проблема нахождения собственных значений и собственных векторов матриц; прямые и итерационные методы решения систем линейных алгебраических уравнений. Изучаются вопросы аппроксимации функции одной переменной, численного дифференцирования и интегрирования, элементы теории разностных схем и их применение к численному решению задачи Коши и краевых задач для обыкновенных дифференциальных уравнений и систем таких уравнений. Даются элементы теории численного решения систем жестких уравнений. В работе приводятся разностные схемы для уравнений эллиптического, параболического и гиперболического типов. Рассматриваются методы решения интегральных уравнений, а также примеры задач, которые приводятся к интегральным уравнениям. Для студентов математических и инженерных специальностей вузов, аспирантов и научных работников.

УДК 519.6 ББК 22.193 Рецензенты: доктор физико-математических наук, доцент Л.Л. Миньков доктор технических наук, профессор А.А. Мицель доктор физико-математических наук, профессор В.А. Вшивков

ISBN 978-5-94621-420-9

© Меркулова Н.Н., Михайлов М.Д., 2014 © Томский государственный университет, 2014

ПРЕДИСЛОВИЕ Появление компьютеров и их внедрение в различные области человеческой деятельности стимулировали развитие вычислительной математики и особенно теории численных методов. Одновременно увеличилась потребность в специалистах, владеющих вычислительной техникой, основами программирования и умением проводить вычислительный эксперимент на компьютере. Другими словами, возникла необходимость в специалистах по вычислительной математике в широком смысле. Подготовку исследователей такого уровня за Уралом осуществляет механико-математический факультет Национального исследовательского Томского государственного университета. При этом накоплен огромный опыт по методике преподавания курса «Методы вычислений», который обобщен в виде данного пособия. Настоящее учебное пособие является дополненным и переработанным объединением трех отдельно изданных пособий авторов и предназначено для студентов и аспирантов механико-математических факультетов вузов. Оно будет также полезно всем специалистам, занимающимся решением различных прикладных задач. Кроме того, учебное пособие может быть использовано преподавателями при чтении курса лекций по численным методам алгебры, численному дифференцированию и интегрированию, численному решению обыкновенных дифференциальных уравнений (ОДУ) и уравнений в частных производных. Пособие состоит из предисловия и семнадцати глав. В первой главе излагаются этапы вычислительного эксперимента и даются основы теории погрешностей. Теоретический материал иллюстрируется решением примеров. Теория по решению алгебраических и трансцендентных уравнений и систем нелинейных уравнений рассматривается во второй и третьей главах. В них детально разобраны примеры решения указанных типов уравнений и систем нелинейных уравнений. 3

Методы приближенных вычислений

В четвертой и пятой главах приводятся прямые и итерационные методы решения систем линейных алгебраических уравнений (СЛАУ) с обоснованием корректности постановок рассматриваемых задач, устойчивости и точности прямых методов, сходимости и оценки скорости сходимости итерационных методов. В указанных главах содержится подробный анализ примеров решения соответствующих задач. Шестая глава посвящена полной и частичной проблеме нахождения собственных значений и собственных векторов матриц. В седьмой главе рассматриваются элементы теории приближения функций, которые в восьмой и девятой главах применяются при численном дифференцировании и интегрировании функций. Многие теоретические положения демонстрируются на примерах. В десятой главе изучаются элементы теории разностных схем. Приложение этой теории к численному решению задачи Коши для обыкновенных дифференциальных уравнений дается в одиннадцатой главе. Методы решения жестких уравнений и систем жестких уравнений рассматриваются в двенадцатой главе, где разбирается ряд примеров, иллюстрирующих излагаемую теорию. Главы с тринадцатой по шестнадцатую посвящены методам численного решения дифференциальных уравнений в частных производных эллиптического, параболического и гиперболического типов. Теоретические положения теории демонстрируются на примерах. Методы решения интегральных уравнений приводятся в семнадцатой главе, где на примерах показывается применение изложенной теории. В конце каждой главы даются варианты заданий для самостоятельной работы и список цитируемой литературы. Авторы выражают искреннюю благодарность рецензентам за критические замечания, а также коллективу кафедры вычислительной математики и компьютерного моделирования ММФ ТГУ за поддержку.

4

1. Теория погрешностей

1. ТЕОРИЯ ПОГРЕШНОСТЕЙ Важным разделом курса «Методы вычислений» является теория погрешностей. Изложение теоретических положений этого раздела, а также набор задач по теории погрешностей составляют содержание данной части. Прежде чем перейти к изложению теории погрешностей, остановимся кратко на содержании курса «Методы вычислений». Приближенное или численное решение прикладных задач всегда интересовало математиков. Отметим, что крупнейшие математики XIX–XX вв. сочетали в своих исследованиях изучение явлений природы с получением их математического описания (создание «математической модели») и с дальнейшим его исследованием. Конструирование некоторых ныне широко известных приближенных методов возникло в связи с изучением таких моделей. Эти методы получили имена крупнейших математиков, таких как Ньютон, Гаусс, Эрмит, Лобачевский, Чебышев, Крылов и др. Появление современных быстродействующих компьютеров и их применение при исследовании различных прикладных задач математической физики способствовало развитию нового направления в математике – вычислительной математики. Вычислительная математика занимается созданием и изучением теории методов, способов автоматизации вычислений, а также языков программирования. Развитие и совершенствование вычислительной техники и численных методов способствовало тому, что в настоящее время возникла многочисленная категория специалистов – пользователей современных компьютеров. Это не только математики – прикладники, экономисты, физики, механики и т.д., т.е. представители традиционно математических специальностей. Но это и представители медицины, лингвистики, истории и других нематематических специальностей. 5

Методы приближенных вычислений

Появление быстродействующих электронных вычислительных машин (ЭВМ) в 50-е гг. ХХ в. характеризовалось резким расширением приложений математики, чему способствовало возрастание скорости выполнения арифметических операций от 0,1 операций в секунду при ручном счёте до нескольких триллионов операций в секунду при расчёте на современных компьютерах. В последние годы возросло значение так называемого машинного (вычислительного) эксперимента. Суть его в том, что практически важные задачи описываются математически и решаются численными методами на компьютере [1, с. 17–18; 6, с. 8–10]. Полученные результаты порой позволяют математикам предсказывать важные физические эффекты или явления, которые впоследствии подтверждаются физическим экспериментом. Важность таких вычислительных экспериментов в том, что их стоимость значительно дешевле физических экспериментов. Кроме того, численные работы, благодаря их последовательному выполнению, позволяют подробно проследить развитие моделируемого явления. Отметим, что теоретические исследования в области численных методов в основном группируются вокруг так называемых типичных математических задач: алгебры, анализа (приближенное дифференцирование и интегрирование), решения дифференциальных и интегральных уравнений, обратных задач, задач оптимизации и др. [1–5]. Эти теоретические исследования играют большую роль при решении различных конкретных задач. Круг задач, с которыми имеют дело в вычислительной математике, можно свести к задаче вида [1, с. 17]:

y  A( x ),

(1.1)

где x и y принадлежат абстрактным множествам X и Y соответственно, A – некоторый заданный оператор. Требуется по заданному x  X найти y  Y или наоборот. Процесс получения решения указанной задачи в виде числового результата можно разбить на два этапа: 1) выбор численного метода решения данной задачи или замена задачи (1.1) некоторой приближённой задачей 6

1. Теория погрешностей

y  A(x ) ,

(1.2)

более удобной для наших целей. Решение последней в некотором смысле должно быть близко к решению поставленной ранее задачи (1.1); 2) составление вычислительной схемы или программы решения задачи (1.2) и сам процесс решения. Для первого этапа необходимы методы численного решения основных математических задач и должен быть известен сравнительный анализ различных методов решения одной и той же задачи с точки зрения их точности, границ применимости и целесообразности их реализации на различных вычислительных машинах. Разработка и анализ таких методов и составляют предмет курса «Методы вычислений». Одними из первых учебных пособий по указанному курсу являются [1, 2], изданные в начале 60-х гг. прошлого века известными специалистами по вычислительной математике. Пособия [3, 4] написаны на достаточно высоком математическом уровне по курсу лекций, прочитанных студентам вузов Минска и Москвы. Сборник задач [5], кроме большого числа примеров по различным разделам вычислительной математики, содержит краткое изложение теории по этим разделам. Кроме цитированной выше литературы, подробный её список можно найти в каждом из учебных пособий [1–5].

1.1. Основные этапы численного решения задач на компьютере Решение прикладных задач математической физики с использованием компьютеров или персональных электронных вычислительных машин (ПЭВМ) можно разбить на несколько этапов [4, с. 9–10]: 7

Методы приближенных вычислений

1. Физическая постановка задачи. На этом этапе осуществляется физическая постановка задачи и намечается путь ее решения. 2. Математическое моделирование. На этом этапе строится или выбирается математическая модель, описывающая соответствующую физическую задачу. Модель должна адекватно описывать основные законы физического процесса. 3. Выбор численного метода. Для решения задачи необходимо найти численный метод, позволяющий свести ее к некоторому вычислительному алгоритму. 4. Разработка алгоритма решения задачи. Алгоритм решения задачи записывается как последовательность логических и арифметических операций. Алгоритм можно представить в виде блоксхемы или стилизованной диаграммы. 5. Составление программы. Программа, реализующая алгоритм решения задачи, записывается на одном из языков программирования высокого уровня (это зависит от математического обеспечения компьютера, где предполагается решение задачи). 6. Отладка программы. Отладка программы состоит из 2 этапов: тестирование и исправление ошибок. 7. Счет по отлаженной программе. На этом этапе готовятся исходные данные для рассчитываемых вариантов и осуществляется счет по отлаженной программе. 8. Анализ результатов счета. Полученные с помощью ПЭВМ результаты численного счета анализируются, сравниваются с экспериментальными данными и оформляется соответствующая научно-техническая документация. 9. Внедрение полученных результатов.

1.2. Основные источники и классификация погрешностей численного решения задач на ПЭВМ Одним из главных вопросов, возникающих при численном решении задач математической физики, является оценка достоверности полученного результата. Получение такой оценки усложняется, если в распоряжении исследователя нет экспериментальных 8

1. Теория погрешностей

или каких-либо иных результатов. Источник возникновения погрешностей можно увидеть, следуя вышеприведенным этапам численного решения задачи. Во-первых, это погрешность, вносимая математической моделью задачи. Величина погрешности, вносимой в результат математической моделью, может возрасти, если в модели не учтены какие-либо важные характеристики изучаемого явления. Кроме того, исходные данные вносят свою долю (иногда основную) в образование погрешности результата. Эти источники погрешности называют неустранимыми погрешностями, так как их нельзя полностью устранить ни до начала решения задачи, ни тем более в процессе ее решения. Не следует стремиться к уменьшению погрешности одних данных, оставляя другие без изменения. Это не приводит к повышению точности результата, поэтому на практике исходные данные задаются примерно с одинаковой точностью. Еще одним источником погрешности является численный метод. Во многих численных методах, связанных, например, с приближенным вычислением интегралов или с нахождением промежуточных значений функции, заданной в виде таблицы, используется идея приближения функции с помощью алгебраического многочлена степени n. Это приводит к образованию погрешности, связанной с такой заменой. Заметим, что приближенное вычисление интеграла осуществляется также путем замены его конечной суммой, исходя из определения интеграла. Такая замена приводит к погрешности. Этот список примеров можно продолжить [4, c. 19]. Заметим, что погрешность численного метода может быть уменьшена до разумных пределов за счет изменения некоторых параметров задачи, например шага интегрирования. Этот тип погрешности более подробно анализируется для каждого численного метода в соответствующих разделах курса «Методы вычислений» [1–5]. При вычислениях неизбежно возникает погрешность округления в силу ограниченности разрядной сетки компьютера. Например, при 9

Методы приближенных вычислений

округлении в компьютере максимальная относительная погрешность равна max  0,5 1k , где β – основание системы счисления, k – количество разрядов мантиссы числа. Если просто отбрасывать лишние разряды, то эта погрешность может возрасти в два раза. Максимальная погрешность, вычисленная по вышеприведенной формуле, для чисел, представленных в формате с одинарной точностью (стандарт IEEE754), равна  max  6  10 8   2, k  24  . Для чисел, представленных в формате с двойной точностью, max  1016   2, k  53 [4, c. 20].

1.3. Неустранимая погрешность приближенного числа Рассмотрим математические характеристики точности задания исходных данных задачи. Обозначим через х точное значение некоторой величины, а через x* – ее приближенное значение. Погрешность приближенного числа x* , т.е. разность x* – х, обычно неизвестна. Обозначим x*  x   x* . Под оценкой погрешности x* понимают установление неравенства вида [4, c. 15–16]:  x*  x*  x  Ax* .

(1.3)

Число Ax* называется абсолютной погрешностью приближенной величины x* или предельной абсолютной погрешностью. В качестве Ax* стараются указать наименьшее число, удовлетворяющее неравенству (1.3). Иначе (1.3) можно записать x *  Ax*  x  x *  Ax* .

Часто полученное неравенство, задающее область неопределенности точного значения х, записывают в виде x  x *  Ax* .

10

1. Теория погрешностей

Отметим, что абсолютная погрешность – величина размерная, имеющая размерность x* . Поясним сказанное на примерах. Если x* – вес, поднятый штангистом и измеряемый в килограммах, то Ax* – абсолютная погрешность, с которой была взвешена штанга, тоже задается в килограммах. Если x* – расстояние, пробегаемое бегуном за одну тренировку и измеряемое в метрах (м), то Ax* – абсолютная погрешность, с которой измерено расстояние, преодоленное спортсменом на тренировке, также имеет размерность (м) и т.д. С помощью абсолютной погрешности можно отразить количественную сторону погрешности некоторого результата, но не качественную. Например, измерение расстояния, преодоленного прыгуном в длину, проведено с точностью 0,5 см. С такой же погрешностью измерена длина беговой дорожки стадиона. Очевидно, что второе измерение выполнено более качественно, чем первое. Введем понятие относительной погрешности. Относительной (предельной относительной) погрешностью  x* приближенного числа x* называется отношение его абсолютной погрешности Ax* к абсолютной величине числа x* , т.е.  x* 

Ax* x

*

* , x 0 .

(1.4)

Тогда

x*  x Ax*  *   x* . x* x

(1.5)

Из (1.5) следует, что * x * (1   x* )  x  x * (1   x* ) , x  0 .

(1.6)

11

Методы приближенных вычислений

Относительная погрешность – величина безразмерная и обычно выражается в процентах. Ее принято записывать с двумя, тремя знаками в сторону увеличения [4, c. 16]. Пример 1. Определить, в каком случае качество вычислений выше: x1*  13 / 19  0,684 ; x*2  52  7,21 . * Рeшение. Вначале определим абсолютные погрешности x1 и

x*2 . Для этого берем числа x1* и x*2 с большим числом знаков: 13 19  0,68421;

52  7,2111.

Определим абсолютные погрешности, округляя их с избытком (для обеспечения неравенства (1.3)):

Ax*  0,68421  0,684  0,00022, 1

Ax*  7,2111  7,21  0,0012. 2

* * Далее определим относительные погрешности для x1 и x2 :

 x*  1

 x*  2

Ax* 1

* 1

x

0,00022  0,00033  0,04%, 0,684

0,0012  0,00017  0,02%. 7,21

Ax* 2

x

* 2

Сравнивая  x* и  x* , , видим, что качество приближенных вы1

2

числений во втором случае оказалось выше, чем в первом.

1.4. Значащие цифры и верные значащие цифры числа При решении различных прикладных задач часто ставится условие получить результат с определенной точностью ε, напри2 3 мер ε  10 , 10 …. Что это значит? Точность вычислений в вы12

1. Теория погрешностей

числительной математике определяется количеством цифр результата, заслуживающих доверия, а не числом десятичных знаков после запятой [1, с. 34–35]. Известно, что любое число можно представить в виде конечной или бесконечной дроби

x*    x1 n  x2 n 1    xm n  m 1   ,

(1.7)

где xi – цифры числа x* (xi  0,1, …,β  1) ,  – основание системы счисления, причем x1  0, n – некоторое целое число (старший разряд числа x* ). Если   10 , то, например, для числа 327,012… можно записать представление

327,012…  3 102  2 101  7 100  1102  2 103  … . В основном на практике имеют дело с приближенными числами – конечными дробями. Пусть   10 . Тогда, например, для числа a* , состоящего из m цифр, имеет место такое представление: a *  a1  10n  a2  10n 1  …  am  10n  m 1 ( a1  0).

(1.8)

Все сохраняемые десятичные знаки ai , i  1, m , называются значащими цифрами числа a* , среди них есть равные нулю за исключением a1 . Итак, значащими цифрами числа a* называют все цифры в его представлении, начиная с первой отличной от нуля слева. Если при записи числа 237 000 надо показать, что три последних нуля не являются значащими цифрами, то пишут это число следующим образом:

237  103 , или 23,7 104 , или 2,37 105 , или 0,237 106 . Абсолютные и относительные погрешности для приближенных вещественных чисел тесно связаны с очень важным понятием верных значащих цифр [1, c. 34–35]. 13

Методы приближенных вычислений

Говорят, что число x* имеет m верных значащих цифр, если для абсолютной погрешности числа Ax* справедливо неравенство Ax*   n  m 1 ,

(1.9)

0,5 . 11/  При этом ( m  1)-я цифра числа x* считается сомнительной. В случае, когда (1.9) выполняется при   0,5, говорят о верных значащих цифрах числа x* в узком смысле слова, а когда   1, то в широком смысле. Если   10, то получим, что где  



0,5  0,5555…  0,56 . 0,9

В двоичной системе счисления



0,5  1. 0,5

Если допускать сдвиг последней верной цифры на два разряда влево, то в десятичной системе счисления в качестве  можно взять число



0,5  0,5050…  0,5 . 1  1 / 10 2

Приближенные числа следует записывать, сохраняя верные знаки. Это позволяет судить о точности задания этих чисел. Можно оценить погрешность приближенного числа, указав, сколько в нем верных значащих цифр. Поясним сказанное на примерах. Пример 2. Пусть число x*  0,00139 имеет три верные значащие цифры. Определить его абсолютную погрешность. Решение. Исходя из связи, установленной между Ax* и m с помощью неравенства (1.9), получим 14

1. Теория погрешностей

Ax*  0,5  10331 , n  3, m  3 или

Ax*  0,5 10 5 . Абсолютная погрешность числа x * не превосходит величины

0,5 105 . Пример 3. Со сколькими десятичными знаками следует взять число  , чтобы его абсолютная погрешность не превосходила 0,5? Решение. Исходя из определения числа верных значащих цифр, будем иметь

0,5  0,5  100m 1 , n  0 или

0,5 100  0,5 101m , m  1. Тогда следует взять   3 . Заметим, что если в исходных данных задачи дано число без указания его абсолютной или относительной погрешности, то предполагается, что все цифры данного числа являются верными значащими цифрами [1, c. 35]. В теории погрешностей при округлении чисел применяется правило дополнения: если первая отбрасываемая цифра больше или равна 5, то последняя сохраняемая цифра увеличивается на 1. Если первая отбрасываемая цифра меньше 5, то последняя сохраняемая цифра остается без изменения [1, c. 30].

1.5. Неустранимая погрешность функции В теории погрешностей рассматриваются две основные задачи: прямая и обратная. Сформулируем эти задачи и укажем способы их решения [1, c. 37–45; 2, c. 41–46; 3, c. 30].

15

Методы приближенных вычислений

Прямая задача. Пусть задана функция

y  f ( x1 , x2 ,…, xn ). Требуется, зная приближенные значения аргументов x1* , x2* ,…, xn* и их абсолютные погрешности Ax* , Ax* ,…, Ax* , оценить неустрани1

2

n

мую погрешность функции y  f ( x , x ,…, xn* ). Будем решать поставленную задачу при следующих предположениях: 1) f ( x1 , x2 ,…, xn )  C 1 (G ), где G – некоторая выпуклая область n-мерного числового пространства; *

* 1

* 2

2) погрешности Ax*  xi , i  1, n; *

i

3)

приближенного значения функции y  f ( x , x ,…, x ) требуется найти с небольшой точностью, например, один-два верных знака. Сформулированные предположения позволяют сократить объем вычислений погрешности функции. В самом деле, по формуле конечных приращений Лагранжа имеем *

погрешность * 1

* 2

* n

 y*  f ( x1 , x2 ,…, xn )  f ( x1* , x2* ,…, xn* )   f ( x1*   x* , x2*   x* ,…, xn*   x* )  1

2

n

(1.10)

n

 f ( x1* , x2* ,…, xn* )   f xi () x* . i 1

Здесь

i

f xi () – производные функции, вычисленные в точке

  (1 ,  2 ,…, n ) отрезка, соединяющего точки x  ( x1 , x2 ,…, xn ) и x *  ( x1* , x2* ,…, xn* ) . Координаты точки ξ неизвестны. Однако в силу второго предположения о малости погрешностей аргументов функции можно заменить точку ξ на x * . Тогда из формулы (1.10) получаем 16

1. Теория погрешностей

 y* 

n

 i 1

n

f xi ( x* ) x*   f xi ( x* ) Ax* . i

i

i 1

(1.11)

Можно подобрать  x* таким образом, что правая часть нераi

венства (1.11) будет равна Ay* . Следовательно, предельная абсолютная погрешность приближенного значения функции y* вычисляется по формуле n

Ay*   f xi ( x * ) Ax* . i

i 1

(1.12)

Тогда, используя определение предельной относительной погрешности приближенного значения y*, получаем формулу для её нахождения

 y* 

Ay* y*

n

 i 1

 ln f ( x * ) Ax* . i xi

(1.13)

Можно выразить относительную погрешность функции через относительные погрешности аргументов. В этом случае формула (1.13) примет вид

 y* 

Ay* y*

n

  xi* i 1

f xi ( x* ) f ( x* )

 x* xi*  0, i  1,, n . i

(1.14)

Итак, формулы (1.12)–(1.14) дают общие выражения для абсолютной и относительной погрешности функции, зависящей от нескольких приближенных аргументов, при сформулированных выше трёх предположениях. Применение формул (1.12)–(1.14) в некоторых частных случаях даёт интересные результаты [1, с. 39–42; 2, c. 31–40; 3, c. 16–19]. Приведём их. Погрешность суммы. Рассмотрим

y  f ( x1 , x2 ,…, xn )  x1  x2  …  xn , где xi  0, i  1, n . 17

Методы приближенных вычислений

Так как все f xi ( x * )  1 , то согласно формуле (1.12) получаем n

Ay*   Ax* , i 1

i

(1.15)

 y*  Ay* / x  …  x . * 1

* n

Другими словами, при сложении приближённых величин их абсолютные погрешности складываются. Заметим, что формула (1.15) даёт сильно завышенное значение абсолютной погрешности, если число слагаемых n велико, так как обычно погрешности имеют разные знаки и при их сложении происходит частичная компенсация. В таких случаях можно пользоваться правилом статистической оценки абсолютной погрешности суммы [5, с. 12]. Если погрешности всех слагаемых оцениваются p

величиной 0,5 10 , т.е. слагаемые округлены до p-го десятичного разряда, то по правилу статистической оценки

Ay*  3n  0,5  10  p , где n > 10 – число слагаемых. Кроме описанных выше правил при сложении приближённых величин можно применять следующее правило [2, с. 31]: 1) среди слагаемых выделяем число, имеющее наибольшую абсолютную погрешность; 2) остальные слагаемые округляем по образцу выделенного с запасом в один-два десятичных знака; 3) производим сложение приближённых чисел; 4) в сумме оставляем столько знаков, сколько их в слагаемом с максимальной абсолютной погрешностью. Пример 4. Пусть требуется найти S  111,5  32,45  17,048  0,0074 . Решение. Число 111,5 имеет максимальную абсолютную погрешность, равную 0,05. Округлим остальные слагаемые до двух десятичных знаков и произведём сложение. Получим 18

1. Теория погрешностей

S *  161,01 . Так как число с максимальной погрешностью имеет один верный десятичный знак после запятой, то окончательно получаем

S *  161,0. Этот же пример можно решить другим способом, пользуясь тем фактом, что при сложении приближённых величин складываются их погрешности. Найти значение S * , As* , а затем установить в числе S * количество верных знаков. Получится тот же самый результат: S *  161,0 . Погрешность разности. Получим формулу погрешности для функции

y  f ( x1 , x2 )  x1  x2 , где x1  x2 . Согласно формуле (1.12) получаем, что

Ay*  Ax*  Ax* , так как f x1 ( x * )  f x2 ( x * )  1, 1

2

а

 y* 

Ay* x1*  x2*

.

Таким образом, при вычитании приближенных чисел их абсолютные погрешности складываются. Пример 5. Оценить погрешность разности

z*  1,05  1,045. Решение. Нетрудно показать, что погрешность первого числа есть 0,005, а второго – 0,0005, считая все знаки чисел верными. Тогда

Az *  0,0055, z *  0,005 и 19

Методы приближенных вычислений

 z* 

0,0055  100%  110% . 0,005

Видим, что при вычитании близких чисел сильно возрастает относительная погрешность. Таких ситуаций при проведении численных расчётов следует избегать. Погрешность произведения. Выведем формулу для погрешности функции

y  f ( x1 , x2 ,…, xn )  x1  x2  …  xn . Из формулы (1.12) имеем, что

Ay*  x2* x3* …xn* Ax*  x1* x3* …xn* Ax*  …  x1* x2* …xn*1 Ax* . 1

2

n

Тогда

 y* 

Ay* * 1

x …x

* n

Ax* 1

* 1

x

Ax* 2

x

* 2

 … 

Ax* n

x

* n

или

y *   x*  …   x* . 1

n

(1.16)

Следовательно, при умножении приближённых чисел складываются их относительные погрешности. Это правило можно использовать при решении примеров. Пример 6. Вычислить P*  0,35 1,75  3,2 и оценить AP* ,  P* . Решение. Предполагая, что все сомножители даны с верными знаками, определим их абсолютные погрешности. Получим соответственно

Ax*  0,005; Ax*  0,005; Ax*  0,05, 1

2

где x1*  0,35; x 2*  1,75; x3*  3,2 . Тогда 20

3

1. Теория погрешностей

 x*  1

 x*  2

 x*  3

Ax* 1

* 1

x

Ax* 2

* 2

x

Ax* 3

x3*

0, 005  0,14 101 , 0,35

0, 005  0, 29 102 , 1, 75

0, 05  0,16 101. 3, 2

Следовательно,

 P*   x*   x*   x*  3,3  10 2 1

или

2

3

 P*  3,3% .

Находим непосредственным умножением, что

P*  1,96 . Зная, что

AP*   P*  P * , получаем

AP*  6,5  10 2 . Погрешность частного. Пусть задана функция

y  f ( x1 , x2 )  *

x1 . x2 *

Известны приближённые значения x1 , x2 и погрешности Ax* , Ax* . 1

2

Получим Ay* и  y* . Из формулы (1.12) имеем, что 21

Методы приближенных вычислений

Ay*  f x1 ( x1* , x2* ) Ax*  f x2 ( x1* , x2* ) Ax* 1

2

или

Ay * 

Ax* 1

x

* 2

x1*  Ax*

x 

.

2

* 2 2

Тогда относительная погрешность

 y* 

Ay* y*

Ax*

1

x1*

Ax*

2

x2*

или

 y*   x*   x* . 1

(1.17)

2

Таким образом, при делении приближённых величин складываются их относительные погрешности. Пример 7. Вычислить

r

0,75  1,4  0,002 1,1  3,7

и оценить абсолютную и относительную погрешности результата. Решение. Обозначим

x1*  0,75; x 2*  1,4; x3*  0,002; x 4*  1,1; x5*  3,7. Считаем, что все приближённые числа даны с верными знаками. Тогда можно оценить их абсолютные погрешности, пользуясь определением значащих цифр и верных знаков [1, с. 34–37]. Имеем

Ax*  0,005; Ax*  0,05; Ax*  0,0005; Ax*  0,05; Ax*  0,05 . 1

2

3

4

5

Теперь можно найти относительные погрешности xi* , i  1,5 . Получаем 22

1. Теория погрешностей

 x*  1

 x*  2

Ax* 1

* 1

x

0,005  0,67  102 , 0,75

0,05  0,36  101 , 1, 4

Ax* 2

* 2

x

 x*  3

 x*  4

 x*  5

Ax* 3

* 3

x

Ax* 4

x

* 4

Ax* 5

* 5

x

0,0005  0,25, 0,002

0,05  0,46  101 , 1,1

0,05  0,14  101. 3,7

Воспользуемся теперь тем, что при умножении и делении приближённых величин складываются их относительные погрешности. Получим 5

 r *    x*  0,35 или  r *  35%. i 1

i

Непосредственным вычислением получаем, что

r *  5,16  104. Тогда

A r *  r *   r *  0,18  10 3. Определим теперь, сколько верных знаков имеет число

r*  0,000516. Число r* имеет 3 значащие цифры и может быть представлено в виде

r *  5  10 4  1  10 5  6  10 6 . 23

Методы приближенных вычислений

Его старший разряд есть 10–4. По определению верных знаков [1, с. 35] должно выполняться неравенство

Ar *  0,5  10 4  m 1 , где m – количество верных знаков числа r*. Определим его из неравенства

0,18 103  0,5 104m1 . Тогда получаем

3  4  m  1 и m  0 , т.е. число r* не имеет ни одного верного знака. Пользуясь (1.12), можно получить формулы погрешности для степенной, показательной, логарифмической и тригонометрических функций [5, с. 16–18]. Итак, получены формулы (1.12)–(1.14) и их частные случаи (1.15)–(1.17), позволяющие находить погрешность функции одной или многих переменных по известным погрешностям аргументов. Завершим рассмотрение прямой задачи теории погрешностей решением примера. Пример 8. Найти предельные абсолютные и относительные погрешности вычисления объёма шара

1 V  d 3 , 6 если диаметр

d  4,5  0, 05 (м), а число   3,14. Решение. Так как число   3,14159… , то можно взять *

A*  0,002. Из формулы (1.12) имеем 24

1. Теория погрешностей

AV * 

V V A*  A *.  d d

Тогда V  V d

( * ,d * )

3 1  ( d * )  15,1875 (м3 ), 6

 ( * ,d * )

1 * * 2  ( d )  31,7925 (м 2 ), 2

AV *  15,1875  0,002  31,7925  0,05  1,62 (м3 ).

Проводя вычисления, получаем 1 V *  * (d * )3  47,68875 (м3 ). 6 Следовательно,

V  V *  AV *  47,689  1,62 (м 3 ). Предельная относительная погрешность объема шара есть

V * 

AV * V

*

1,62  3,4 102 47,689

или

 V *  3,4  10 2  100%  3,4%. Обратная задача. Суть её состоит в следующем: найти, каковы должны быть допустимые погрешности аргументов, чтобы погрешность функции не превосходила некоторого заданного значения. В такой постановке обратная задача однозначно разрешима лишь в случае функции одной переменной y  f ( x). Тогда из формулы (1.12), зная абсолютную погрешность Ay* функции, можно получить 25

Методы приближенных вычислений

Ay*

Ax* 

f ( x* )

,

а затем найти и относительную погрешность аргумента. В случае функции многих переменных для решения обратной задачи принимаются некоторые соглашения [2, с. 43–46]. 1. Можно принять, что все переменные вносят одинаковый вклад в погрешность функции, т.е. все частные дифференциалы

f xi ( x* )  Ax* , i  1, n , i

равно влияют на образование абсолютной погрешности Ay* функции y  f ( x1 ,…, xn ). Такое соглашение носит название принципа равных влияний. При тех же предположениях, что приняты при решении прямой задачи теории погрешностей, из формулы (1.12), полагая

f x1 ( x* ) Ax*  …  f xn ( x1* ,…, xn* ) Ax*  n

1

Ay* n

,

получаем

Ax*  i

Ay* n f x ( x1* ,…, xn* )

, i  1, n.

(1.18)

i

Следует отметить, что при решении обратной задачи по формуле (1.18) иногда может оказаться, что абсолютные погрешности некоторых аргументов настолько малы, что измерить их с полученной точностью практически невозможно [2, с. 44]. В таких случаях используют другие соглашения. 2. Будем предполагать, что предельные абсолютные погрешности всех аргументов функции одинаковы, т.е.

Ax*  Ax*  …  Ax* . 1

2

n

Тогда на основании формулы (1.12) имеем 26

1. Теория погрешностей

Ax*  i

Ay* n

 i 1

, i  1, n.

(1.19)

f xi ( x ,…, x ) * 1

* n

Возможны и другие соглашения [2, с. 45–46]. Пример 9. Определить, каковы должны быть допустимые погрешности числа π, радиуса основания R и высоты H, чтобы погрешность вычисления объёма цилиндра можно было определить с точностью до 1%. Решение. Объём цилиндра определяется по формуле

V  R 2 H . По условию задачи известна предельная относительная погрешность V   1% . Тогда можно вычислить предельную абсолютную погрешность:

V  V

1%  R 2 H  0, 01R 2 H . 100% 100% Для получения погрешности , R и H воспользуемся принципом AV * 

равных влияний и формулой (1.18). Тогда получим A* 

3( R* ) 2 H * AV *

*

  102 , 3

R*  102 , * * * 6 R H 6 AV * H*  * * 2   102. 3 ( R ) 3

AR*  AH *

AV *

Отсюда находим предельные относительные погрешности аргументов:   

A 

 100%  0,3%,

27

Методы приближенных вычислений

 R  H 

AR R AH 

100%  0, 2%,

 100%  0,3%. H Убедиться в правильности полученных результатов можно, учитывая, что при умножении приближённых величин складываются относительные погрешности сомножителей. Тогда V      2   R   H   1%.

Данная задача допускает и другое решение. Так как число  можно практически взять с любым количеством цифр, то его погрешность можно не учитывать в погрешности объёма. Тогда получается решение, с которым можно познакомиться в [5, с. 21–22].

1.6. Вычислительная погрешность Проведение численных расчётов на компьютере неизбежно связано с погрешностью округления, иначе говоря, с вычислительной погрешностью. Округления возникают в силу ограниченности разрядной сетки компьютера при представлении в нем вещественных чисел. Правила, по которым производятся округления при ручном счёте, просты, и с ними можно познакомиться, например, в [1, c. 29–32; 2, c. 24–25]. Округления в ПЭВМ производятся путём отбрасывания цифр, не помещающихся в разрядную сетку. Следует отметить, что встречаются задачи, которые очень чувствительны к погрешностям исходных данных. Эта чувствительность может быть охарактеризована понятием устойчивости, которое входит как составная часть в понятие корректности. Сформулируем его. Задача называется поставленной корректно, если для любых значений входных данных из некоторого класса выполняются следующие условия: 28

1. Теория погрешностей

1) решение задачи существует и единственно в рассматриваемом классе решений; 2) решение устойчиво относительно входных данных, т.е. малые изменения во входных данных приводят к малому изменению решения. Если нарушается одно из условий или сразу оба, то задача называется некорректно поставленной. В литературе представлено много примеров некорректно поставленных задач. Достаточно сослаться на пример Уилкинсона [4, c. 26–27] отыскания действительных корней многочлена:

P( x)  ( x  1)( x  2)…( x  20)  x 20  210  x19  … . Если незначительно изменить коэффициент при x19 (увеличить на 2 23 ), то в результате вычислений вместо корней

x1  1, x2  2,…, x20  20 получаются (при высокой точности расчётов) существенно иные корни. Этот пример иллюстрирует, что погрешность в исходных данных и погрешности округлений в процессе вычислений сильно искажают результат. Численные методы нецелесообразно применять к некорректно поставленным задачам. Эти задачи требуют особого рассмотрения, и для их решения разрабатываются свои методы. Даже если задача поставлена корректно, неустойчивым может оказаться метод решения этой задачи. Примеры неустойчивых методов (алгоритмов) можно найти в [1, c. 31–32; 4, c. 22, 27–28]. Разберём пример неустойчивого алгоритма, приведённого в [1, c. 31–32]. Пример 10. С помощью рекуррентного соотношения

 yn  2 yn 1  3, n  1,2,…;   63  y0   64

(1.20)

найти y6 , y10 , y12 , y14 , производя вычисления с двумя знаками после запятой.

29

Методы приближенных вычислений

Решение. Формулы (1.20) задают последовательность

y0 , y1 , y2 ,…, ym ,…, где каждый последующий член выражается через предыдущий по формуле

yn  3  2 yn 1 , n  1,2,…; а

y0  

63 . 64

Будем обозначать через y0 ,y1 ,…,ym ,… приближённые значения членов последовательности. Положим

~ y0  0,98.

При его вычислении допускаем погрешность  0,004 . Тогда

y1  3  2y0  1,04 , y2  3  2y1  0,92 и т.д. Аналогичным образом получим:

y3  1,16; y 4  0, 68; y5  1, 64; y 6  0, 28,…, y10  19, 48; y12  80,92; y14  326, 68. Точные значения членов последовательности задаются формулой yn  (1) n 2n 6  1,

(1.21)

в чем можно убедиться непосредственной подстановкой (1.21) в (1.20). Согласно формуле (1.21) имеем 63 1 15 ; y1  1 ; y2   ; … ; y6  0; 64 32 16 y10  15; y12  63; y14  255. y0  

Сравнивая полученные точные значения членов последовательности с приближёнными, видим, что небольшая погрешность в вычислении y0 с увеличением n сильно возрастает. Таким образом, 30

1. Теория погрешностей

алгоритм (1.20) вычисления членов последовательности неустойчив к погрешностям округлений. Для приобретения навыков в решении задач по теории погрешностей ниже предлагаются варианты заданий для самостоятельного решения.

1.7. Варианты заданий Вариант № 1.

1. Найти сумму приближённых чисел 23, 44  0, 263  445 , все знаки которых верны, и указать её абсолютную и относительную погрешности. 2. Сторона квадрата равна 3,07  0,02 (м). Вычислить площадь квадрата, округлив результат до верных знаков. 3. Вычислить значение функции при заданных значениях переменных. Указать абсолютную и относительную погрешности результата, считая все знаки в исходных данных верными:

 

x*  x2*

u  e 1

2

, x1*  0,85; x2*  0,632.

4. Определить количество верных значащих цифр в следующих числах: x1*  0,2365, если  x*  0,2  10 1 ; 1

x*2  426,75, если  x*  0,32  10 4 . 2

5. Найти допустимые абсолютные погрешности аргументов, позволяющие определить значение функции

u   x1* x2*  x2* x3* , x1*  3, 21458, x2*  1,32487, x3*  0, 026534 с пятью верными знаками.

31

Методы приближенных вычислений

Вариант № 2.

1. Определить относительную погрешность чисел

a*  27684, b*  5,18 , если Aa*  0,3  10 1 , Ab*  0,4  10 3.

2. Определить количество верных значащих цифр в числах * 1

x , x2* : x1*  0,52432, если  x*  0,02%; 1

x  29,3846, если  x*  0,34%. * 2

2

3. Найти частное двух чисел 0,327 /15, 4236 (у делимого и делителя все знаки верные) и указать относительную погрешность результата. 4. Найти допустимое число верных значащих цифр свободного члена уравнения x 2  4 x  e0,8  0 , чтобы получить корни с тремя верными знаками. 5. Вычислить значение функции

u 

x1* 3  x2* * , x1  2,68; x2*  0, 498; x3*  2,653. 0,6 x3*

С какой абсолютной погрешностью следует задать xi* , i  1,3 , чтобы получить значение функции с тремя верными значащими цифрами. Вариант № 3.

1. Определить количество верных значащих цифр в числах

a*  38441; b*  2,623, если  a*  0,5%,  b*  0,8%. 32

1. Теория погрешностей

2. Определить абсолютную погрешность чисел

a*  17,296; b*  0,002968, если  a*  2%,  b*  0,9%. 3. Найти произведение приближенных чисел 0,305  254,8  25, 43 – все знаки у сомножителей верные – и указать абсолютную и относительную погрешность результата. 4. С какой точностью должны быть измерены стороны * a  4, b*  260 прямоугольника, чтобы его площадь можно было определить с абсолютной погрешностью 2 м 2 ? 5. Определить абсолютную и относительную погрешности функции y  x1  x22  x32 , если

x1  0,4  0,06, x2  0,7  0,07, x3  0,5  0,04 . Вариант № 4.

1. Приближённое значение величины a*  24, 4827 . Зная, что  a*  0, 04% , указать область неопределённости а.

4,6  293,28  0,07625 , считая, что 1,3846  19,423 все числа даны с верными знаками. Определить число верных значащих цифр результата. 3. Даны числа a*  3, 265 и b*  0,138 с относительными по2. Вычислить выражение z 

грешностями  a*   b*  0,006 . Определить величину относительной погрешности корня квадратного из их разности. 4. Найти абсолютную и относительную погрешности объёма шара 1 V  d 3 , если диаметр шара d  3, 2  0, 04 (м) ; * =3,14. 6 5. Радиус основания цилиндра R*  4 м , высота H *  5 м . С какими абсолютными погрешностями надо определить R* и H * , чтобы боковая поверхность цилиндра при M  2RH , * =3,14 была вычислена с точностью 0,1 м2? 33

Методы приближенных вычислений

Вариант № 5.

1. Округлить сомнительные цифры числа, оставив верные знаки. Определить абсолютную погрешность результата: а) 0, 2837,   0, 042%; б) 13, 6253  0, 0038 . 2. Вычислить абсолютную и относительную погрешности ре-

a b , если 3 c a  3,85  0, 03;, b  2, 0235  0, 0005;, c  839, 7  0, 04. 3. Найти допустимую абсолютную погрешность для cos1, 244 ,

зультата X 

считая, что в исходном числе 1,244 все знаки верные. 4. С каким числом верных значащих цифр следует взять значение аргумента x* , чтобы получить значение функции y  x  sin x с пятью верными значащими цифрами? * Принять x  2, 4 . 3

Вариант № 6.

1. Определить, какое равенство точнее: 2 / 12  0,095 или 22  4,69? 2. Вычислить абсолютную и относительную погрешности результата

Y

m2n , ex

где m  1,6531  0,0003;, n  3,78  0,002;, x  0,158  0,0005 . 3. Определить количество верных значащих цифр в числе x* и округлить его до верных цифр, если известна относительная погрешность x* : x*  197,3587;  x*  7% .

34

1. Теория погрешностей

4. С какой абсолютной погрешностью следует задать значения аргументов x1 и x2 , чтобы получить значение функции y  x1  e 2 с четырьмя верными значащими цифрами? Здесь * * x1  0,47; x2  1,234. x

Вариант № 7.

1. Определить, какое равенство точнее: 6 / 7  0,857 или 4,8  2,19? 2. Вычислить абсолютную и относительную погрешности результата

y

a b , m( n  a ) 3

где

a  10,82  0, 03;, b  2, 786  0, 0006;, m  0,28  0,006;, n  14, 7  0, 06. 3. Определить количество верных значащих цифр в числе x* , если известна его абсолютная погрешность:

x*  246, 02401; Ax*  5. 4. С каким числом верных значащих цифр следует взять значения аргументов x1 , x2 , чтобы получить значение функции

y  ( x1  x2 )  sin x1 с относительной погрешностью 3%? Здесь x1*  0,754; x2*  1,342. Вариант № 8.

1. Найти абсолютную и относительную погрешности чисел, если они имеют только верные значащие цифры: а) 0,374 ; б) 4,348 . 35

Методы приближенных вычислений

2. Вычислить абсолютную и относительную погрешности результата:

S

h 2 a 2  4ab  b 2 : . 2 18 a  b

Здесь a  2,234;, b  4,518;, h  4,48 . 3. Найти допустимую абсолютную погрешность для ln4,552, считая в исходном числе 4,552 все знаки верными. 4. С каким числом верных значащих цифр следует взять значение аргумента x, чтобы получить значение функции y  x  ln x с абсолютной погрешностью 0,07? Принять x*  24,75 . *

*

*

Вариант № 9.

1. С каким числом верных значащих цифр следует взять значение аргумента x , чтобы получить значение функции y = x3+sinx с пятью верными значащими цифрами? Здесь x  2, 4 . 2. С каким числом верных знаков должен быть известен свободный член уравнения *

x2  2 x  ln 2  0, чтобы получить корни с четырьмя верными знаками? 3. Для определения модуля Юнга по прогибу стержня прямоугольного сечения используется формула

E

1 l3P , 4 d 3bS

где l – длина стержня, b и d – основание и высота поперечного сечения, S – стрела прогиба, P – нагрузка. С какой точностью следует измерить длину l и стрелу S , а также d , b , P , чтобы погрешность E не превышала 5,5% , если 36

1. Теория погрешностей

P*  5 кг; l *  0,13 м; d *  0, 24 м; b*  0,08 м; S *  0, 206 м. 4. Найти допустимую относительную погрешность считая в исходном числе 5,328 все цифры верными.

5,328,

Вариант № 10.

1. Определить количество верных значащих цифр в числе x* , если известна его относительная погрешность: а) x*  485, 623,  x*  0, 2%; б) x*  4, 376,  x*  0, 76%. 2. Найти сумму приближённых чисел и указать её погрешность: 0, 2434  3, 2985  26,3768  0,335  7,65  25,7654  17,3507 , все знаки у слагаемых верные. 3. При измерении радиуса R круга с точностью 0,04 м получилось число 0,21 м. Найти абсолютную и относительную погрешности при вычислении площади круга. 4. Угол α* = 0,682 радиан и измерен с точностью до 0,02 радиана. Определить sinα и его относительную погрешность. 5. С каким числом верных знаков должен быть задан свободный член уравнения

x2  9 x  sin 0, 4  0, чтобы получить корни с тремя верными значащими цифрами? Вариант № 11.

1. Катет прямоугольного треугольника равен 1,12±0,01 (м), а гипотенуза 2,420±0,01 (м). Вычислить cos угла α, прилежащего к катету, и относительную погрешность cos α. 2. Определить количество верных значащих цифр в числе x* , если известна его абсолютная погрешность:

x*  0, 2113; Ax*  0, 5 102. 37

Методы приближенных вычислений

3. Величина x* измерена с абсолютной погрешностью Ax* . Определить абсолютную и относительную погрешности функции y  e . 4. Даны x  8,34  0, 005; y  7, 2  0, 05. Вычислить x

z

sin(3 x  0, 7 y )  (7 x  ln y ) e0,4 x  0,5 y

и определить число верных значащих цифр в произведении. * 5. Дано z  24,68 и  z *  2% . Определить величину Ax* и Ay* , если

z

e x0,8 y  sin( xy), x*  2,5; y*  4,3. 2 x  0,65 y

Вариант № 12.

1. Определить абсолютную погрешность чисел:

a*  3,1524, если  a*  0,1%; b*  3, 22, если  b*  0,5%; c*  35, 72, если  c*  1%. 2. Найти сумму приближённых чисел

0,348  1,834  347, 4  143, 25  0, 7085  0, 000354 , все знаки которых верны. Указать абсолютную и относительную погрешности результата, количество верных знаков. 3. Определить количество верных знаков чисел:

a*  0, 7891, если  a*  0, 05%; b*  3,8494, если  b*  0,1%;. 38

1. Теория погрешностей

4. Вычислить значение функции

u  e x1  x2 при x1*  0,87; x*2  1,321. Указать абсолютную и относительную погрешности результата, считая все знаки исходных данных верными. 5. Найти допустимые абсолютные погрешности аргументов, которые позволяют вычислить значение функции

u

x1  x2 x32

с тремя верными знаками, если

x1*  2,8345; x 2*  0,348; x3*  1,2937. Вариант № 13.

1. Найти сумму приближённых чисел

0, 248; 5, 7915;  0,25; 1,132;  4,8 , все знаки которых верны. Получить абсолютную и относительную погрешность результата и число верных знаков. 2. Вычислить S  1,0000  cos1 и оценить погрешность результата. 3. Найти значение выражения 0

r

2,5  27, 6  0, 747 , 7,195  5, 428

его абсолютную и относительную погрешности, считая, что все числа даны с верными знаками. 4. Определить абсолютную и относительную погрешности при вычислении боковой поверхности

M  l ( R  r ) усечённого конуса, если его радиусы и образующая 39

Методы приближенных вычислений

R*  2,36 м, r*  1,73 м, l *  1,02 м измерены с точностью 0, 001 м . 5. С каким числом верных знаков должен быть известен свободный член уравнения

x 2  4 x  2  0, чтобы получить корни с тремя знаками после запятой? Вариант № 14.

1. Найти

L

3, 49 25,1 654,0 , x , y 8,6 1,743 83,6

и абсолютную и относительную погрешности результата, считая, что все числа даны с верными знаками. 2. Определить количество верных знаков чисел

x*  0,3941, y*  14,0023 , если  x*  0,03,  y*  0,005 . 3. При измерении радиуса R круга получено число 0,15± ±0,0005 (м). Найти абсолютную и относительную погрешности при вычислении площади круга. Взять   3,14 . 4. Вычислить значение функции

u  x  sin x  ln x при x  1,749 . Найти Au * и  u * . *

5. С какой абсолютной (относительной) погрешностью следует взять x  3 , чтобы получить значение функции

y  x2  e x sin x 3

с точностью 0,110 ? 40

1. Теория погрешностей

Вариант № 15.

1. Найти разность S 

2,02  2 с четырьмя верными знаками. 2. Округлить число   3,1415926535… до пяти, четырёх и трёх значащих цифр и оценить абсолютную и относительную погрешность округления. 3. Вычислить

u   e0,25  cos1,529  sin 0,375,

считая, что исходные данные имеют верные знаки. Найти количество верных знаков в результате. 4. Радиус R основания конуса равен  2 м , его образующая l  3,5 м . С какими абсолютными погрешностями нужно определить R и l , чтобы вычислить полную поверхность конуса

S  R  R  l  2

с точностью до 0,1 м ? Принять   3,1415926 . 5. Вычислить значение функции

u  x 2  ln x  cos 2 y  при x  2,75, y  0,375. Найти Au * и  u * , считая, что x* , y *

*

*

даны с верными знаками. Вариант № 16.

1. Найти частное приближённых чисел

a

25,385 1,789 391,74 , b , c , 0,5 0, 237 1, 29

все знаки которых верны. Вычислить абсолютную и относительную погрешности результата.

41

Методы приближенных вычислений

2. Округляя числа

0, 209145; 20, 70759; 391, 28907 до пяти, четырёх и трёх значащих цифр, получить абсолютную и относительную погрешности округления. 3. Определить количество верных знаков в числах

a*  48,361 и b*  0,8375 , если  a  1%,  b  0,001. *

*

4. Угол x измерен с точностью до 0,1% . Определить cos x , tg x и их абсолютные и относительные погрешности, если

x*  0,786 . 5. Найти абсолютную и относительную погрешности приближённых величин x  0,897 и y  3, 21 , для которых возможно найти значение функции *

*

u  0,5 x(lg x  tg 2 y ) с точностью до 2 десятичных знаков после запятой. Вариант № 17.

1. Полагая

  3,1416,

2  1, 414,

3

2  1, 26,

найти соответствующие относительные погрешности. 2. По прогибу стального стержня вычислен модуль Юнга

E  0, 2212 кг/м2 с точностью до 2% . Сколько верных знаков в найденном значении? 3. Найти предельные абсолютную и относительную погрешно2 сти в вычислении площади круга S   d / 4 , если диаметр

d  4,75  0,09, а *  3,14. 4. Стороны прямоугольника a  2 м, b  5 м . Какова допустимая погрешность при измерении этих сторон, если площадь 42

1. Теория погрешностей

прямоугольника требуется получить с абсолютной погрешностью AS *  0,1 м 2 ? 5. Найти сумму чисел

0, 291  0, 011  2, 75  11, 2907  1, 283 , все знаки которых верные. Указать количество верных знаков результата и его относительную погрешность. Вариант № 18.

1. Даны числа a  11,373 и b  11,371 с погрешностями *

*

Aa*  Ab*  0,001 . Найти количество верных знаков разности

r *  a *  b* и  r* . 2. Определить количество верных знаков в числах

a*  0,0273, b*  1,90087, c*  12,324, если  a*  0,1%,  b*  0,001;,  c*  1%. 3. Найти сумму

1 2 3 4 5 7 S      , 3 5 7 9 11 13 если каждое слагаемое при обращении в десятичную дробь взять с погрешностью 0,005. Найти AS * ,  S * и количество верных знаков в S* . 4. Вычислить полную поверхность цилиндра S  2 RR  H  при π ≈ 3,14, R = 2,5±0,01 (м), H = 3,75±0,01 (м). Указать AS * и  S * .

5. С какой точностью должен быть определён x  0, 7357 , что4

бы найти sin x и cos x с абсолютной погрешностью 0,5 10 ? 43

Методы приближенных вычислений

Вариант № 19.

1. Вычислить

z  lg(10,3  5, 4) , считая все знаки чисел x  10,3, y  5,4 верными. Оценить *

*

Az* и  z* . 2. Вычислить

y

0,725  2,53  7,3 . 3,911 7,9

Найти Ay* ,  y* и количество верных знаков в результате, считая, что исходные данные заданы с верными знаками. 3. При измерении угла в радианах получили

  0, 7524  0, 0034. Какова относительная погрешность  * ? 4. Дано x  0,375  0, 001.

Найти y  tg x и определить Ay* и  y* . 5. С каким числом верных знаков следует взять x  3 2 , чтобы получить

y  e x cos(1  x)

c

абсолютной

3

Ay*  0,1 10 ? Вариант № 20.

1. Вычислить

S

44

56,37  2,3  0,011 . 4,544  7, 42

погрешностью

1. Теория погрешностей

Найти AS * ,  S * , считая, что исходные данные заданы с верными знаками. 2. Экспериментальное значение величины c*  42,727 . Зная, что  с*  0,01 , найти пределы, в которых число c заключено. 3. Заданы числа a*  72,829 и b*  72,809 с погрешностями

Aa*  Ab*  0,005 . Найти r *  a *  b * и указать Ar * ,  r * и число верных знаков. 4. С какой точностью должна быть измерена сторона квадрата а ≈ 2 м, чтобы его площадь S  a 2 можно было определить с погрешностью AS *  0,1 м 2 ? 5. Вычислить y  x1 x2  x2 x3  x1 x3 , если

x1  0,75  0,01, x2  0,85  0,02, x3  0,95  0,03. Найти Ay* и  y* . Литература 1. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1966. Т. 1. 632 с. 2. Демидович Б.П., Марон И.А. Основы вычислительной математики. М. : Наука, 1966. 638 с. 3. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1976. Т. 1. 302 с. 4. Турчак Л.И., Плотников П.В. Основы численных методов. М. : Наука, 2002. 300 с. 5. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. М. : Наука, 1972. 367 с. 6. Самарский А.А. Введение в численные методы. М. : Наука, 1987. 288 с.

45

Методы приближенных вычислений

2. РЕШЕНИЕ АЛГЕБРАИЧЕСКИХ И ТРАНСЦЕНДЕНТНЫХ УРАВНЕНИЙ Задача решения различного типа уравнений может быть записана в общем виде в терминах функционального анализа [1, с. 170–172]. Пусть даны два множества X и Y, элементы которых обозначаются соответственно x и y и могут быть произвольной природы, например числами, функциями и т.д. Будем говорить, что на множестве X задан оператор A, если каждому элементу x  X ставится в соответствие некоторый элемент

y  A( x), y  Y . При этом x  X называют оригиналом, а y  Y – изображением. Пусть далее задан элемент y0  Y и требуется найти элементы

x  X , для которых y0 является изображением. Данную задачу можно задать операторным уравнением

A( x)  y0 . При этом предполагается, что решение задачи существует и единственно. Особый интерес представляют уравнения с числовыми неизвестными и системы этих уравнений. Нетрудно видеть, что такие уравнения – частный случай операторных уравнений, когда множества X и Y являются числовыми пространствами конечной размерности. В этом случае уравнение можно записать в виде

f ( x)  0, а систему уравнений в виде

46

(2.1)

2. Решение алгебраических и трансцендентных уравнений

 f1 ( x1 , x2 ,…, xn )  0,  f ( x , x ,…, x )  0,  2 1 2 n  . . . . .  f n ( x1 , x2 ,…, xn )  0 или в векторной форме

f ( x)  0 , где

 f1   x1       f2  x  f   , x   2 . … …     f  x   n  n 2.1. Общая теория алгебраических и трансцендентных уравнений Рассмотрим уравнение вида (2.1), где f (x) – некоторая функция, вообще говоря, комплекснозначная. Совокупность значений переменной х, при которых уравнение (2.1) обращается в тождество, называется решением этого уравнения, а каждое значение х из этой совокупности – корнем уравнения. В зависимости от вида функции f (x) уравнения вида (2.1) делят на алгебраические и трансцендентные. Функцию f (x) называют алгебраической, если для получения значения функции по данному х необходимо выполнить арифметические операции и возведение в степень с рациональным показателем (операцию извлечения корня степени n можно представить как операцию возведения в степень с показателем 1 n ). От47

Методы приближенных вычислений

метим, что алгебраическая функция называется рациональной относительно переменной х, если над х производятся операции сложения, вычитания, умножения, деления и возведения в степень. В зависимости от степени x рациональная функция может быть либо целой рациональной, либо дробно-рациональной. Например,

f ( x) 

x4 2  x  3  – пример целой рациональной функции; 7 4 a0  x k  a1  x k 1  …  ak f ( x)  , c0  x m  c1  x m 1  …  cm

где ai , c j i  0,1,…, k ; j  0,1,…, m – любые действительные числа, k – натуральное число или 0, m – натуральное число. Это пример дробно-рациональной функции. К классу алгебраических функций также принадлежат и иррациональные функции. Функцию f (x) называют иррациональной, если для получения её значения по данному x необходимо выполнить, кроме арифметических действий (не обязательно всех), ещё и извлечение корня. При этом функция будет иррациональной, если аргумент находится под знаком корня. Если в левую часть уравнения (2.1) входят только алгебраические функции, то уравнение называется алгебраическим. Алгебраическое уравнение можно привести к виду

a0 x n  a1 x n 1  a2 x n  2  …  an 1 x1  an  0.

(2.2)

Числа ai  i  0,1,…, n  – коэффициенты уравнения, причём это могут быть как вещественные, так и комплексные числа. Корни уравнения могут быть и вещественными и комплексными. В данном пособии ограничимся рассмотрением случая, когда коэффициенты – вещественные числа. В случае, когда коэффициенты уравнения (2.2) комплексные величины, можно обратиться к источникам [2, с. 517–523]. 48

2. Решение алгебраических и трансцендентных уравнений

Функцию f (x) называют трансцендентной, если она содерx

жит показательную функцию a , логарифмическую функцию log a x , тригонометрические функции sin x, cos x, tg x, ctg x , обратные

тригонометрические

функции

arcsin x, arccos x,

arctg x, arcctg x и др. Если в записи уравнения (2.1) содержится трансцендентная функция, то уравнение называется трансцендентным. Точные значения корней уравнения (2.1) можно найти лишь в исключительных случаях. Обычно этого можно добиться, если существует какая-то простая формула для нахождения значений корней, позволяющая их выразить через известные величины. Например, в случае квадратного уравнения можно использовать известные формулы, однако в случае n  5 Н.Х. Абелем доказано, что не существует формулы, выражающей решение уравнения (2.2) с помощью арифметических операций и извлечения корня. Заметим, что если коэффициенты некоторых уравнений есть приближённые числа, то в этом случае нельзя говорить о нахождении точных корней. Предположим, что уравнение (2.1) имеет лишь изолированные корни, т.е. для каждого корня уравнения (2.1) существует окрестность, не содержащая других корней этого уравнения. Остановимся на методах приближённого вычисления корней уравнения (2.1). Этот процесс разбивается на два этапа: 1) отделение корней, т.е. определение возможно малых промежутков [, ] , в каждом из которых содержится один и только один корень уравнения; 2) уточнение корней уравнения с заданной степенью точности. На этапе отделения корней область допустимых значений х разбивается на отрезки, на каждом из которых содержится только один корень. Существует два метода отделения корней: графический и аналитический. Графический метод можно применить как к алгебраическим, так и к трансцендентным уравнениям для случая и вещественных и комплексных корней [3, с. 8–11]. 49

Методы приближенных вычислений

2.2. Графический метод Условно можно выделить два подхода. 1. Строят график функции y  f (x ) . Абсциссы точек пересечения функции с осью OX и есть корни уравнения (2.1). 2. Все члены уравнения (2.1) разбивают на две группы, и одну из них записывают в левую, а другую – в правую части уравнения, т.е. (2.1) представляют в виде

1 ( x)  2 ( x) . Затем строят графики функций y  1 ( x) и y  2 ( x) . Абсциссы точек их пересечения и являются корнями уравнения (2.1). В первом и втором подходах с графиков снимают числа  и  , между которыми расположен корень уравнения (2.1).

2.3. Аналитический метод отделения корней Аналитически корни уравнения (2.1) отделяют с помощью известных теорем математического анализа. Сформулируем эти теоремы (без доказательства). Теорема 1. Если непрерывная функция f (x ) принимает значения разных знаков на концах отрезка [, ] , т.е. f ( )  f ()  0 , то внутри этого отрезка существует, по крайней мере, один корень уравнения (2.1). Теорема 2. Если непрерывная и монотонная на промежутке [, ] функция f (x ) принимает на концах отрезка значения разных знаков, то внутри отрезка [, ] содержится единственный корень уравнения y  f (x) . Теорема 3. Если функция f (x ) непрерывна на отрезке [, ] и принимает на концах отрезка значения разных знаков, а производная f (x ) сохраняет постоянный знак внутри отрезка, то внутри 50

2. Решение алгебраических и трансцендентных уравнений

отрезка существует корень уравнения f ( x )  0 и притом единственный.

2.4. Отделение действительных корней алгебраических уравнений Пусть дано алгебраическое уравнение (2.1) или в развёрнутом виде (2.2) с действительными коэффициентами a0 , a1 , a2 , … , an . В высшей алгебре доказывается ряд утверждений, позволяющих найти границы расположения корней уравнения (2.2) в комплексной области и отделить действительные корни. Приведём без доказательства некоторые теоремы, позволяющие установить границы расположения корней уравнения (2.2) [2, с. 452–458]. a  max{| a0 |, | a1 |, | a2 |,…,| an1 |} , Теорема 4. Если

a  max{| a1 |, | a2 |,…,| an |} , то все корни уравнения (2.2) расположены в кольце

| an | a | x | 1  . a | an | | a0 |

(2.3)

Теорема 5. Если a – максимум модулей отрицательных коэффициентов уравнения, a0  0 и первый отрицательный коэффициент в последовательности a0 , a1 , a2 , … , an есть am , то все положительные корни уравнения меньше

N  1 m

a a0

(если отрицательных коэффициентов нет, то нет и положительных корней).

51

Методы приближенных вычислений

Теорема 6. Если a0  0 и при x  c  0 имеют место неравенства

f (c)  0, f (c)  0,…, f ( n) (c)  0, то число c служит верхней границей положительных корней уравнения (2.2). Теорема 7. Пусть заданы многочлены

f ( x)  a0 x n  a1 x n 1  …  an 1 x  an ,

1 ( x)  x n f (1/ x)  an x n  an 1 x n 1  …  an x  a0 , 2 ( x)  f ( x)  (1)n [a0 xn  a1 xn1  a2 xn2  …  (1)n a0 ] , (2.4) 3 ( x)  x n f (1/ x)  (1) n [an x n  an 1 x n 1  …  (1) n a0 ] и N0 , N1 , N2 , N3 – верхние границы положительных корней соответственно многочленов f ( x), 1 (x), 2 (x), 3 (x). Тогда все положительные корни уравнения (2.2) лежат на отрезке [ 1 все отрицательные корни на отрезке [ N 2 ,  1

N3

N1

, N0 ] , а

].

Укажем далее несколько теорем, дающих возможность определить число действительных корней уравнения (2.2). Теорема 8 (теорема Декарта). Число положительных корней уравнения (2.2) с учётом их кратности равно числу перемен знаков в последовательности коэффициентов a0 , a1 , a2 , … , an (при этом равные нулю коэффициенты не учитываются) или меньше этого числа на чётное число. Для определения количества отрицательных корней достаточно применить теорему Декарта к многочлену f (  x ) . Отметим, что теорема Декарта, так же как и теорема Бюдана– Фурье [2, с. 456], не требует больших вычислений, но не всегда даёт точное количество действительных корней уравнения (2.2). Если уравнение (2.2) не имеет кратных корней на [, ] , то точное 52

2. Решение алгебраических и трансцендентных уравнений

число действительных корней уравнения (2.2) на отрезке [, ] даёт теорема Штурма. Прежде чем её сформулировать, введём обозначения, предположив, что уравнение (2.2) не имеет кратных корней. Обозначим через f1 ( x) производную f (x ) ; через f 2 ( x) – остаток от деления f (x ) на f1 ( x) , взятый с обратным знаком; через f 3 ( x) – остаток от деления f1 ( x) на f 2 ( x) , взятый с обратным знаком, и т.д. до тех пор, пока не придём к постоянной. Полученную последовательность

f ( x), f1 ( x), f 2 ( x), f 3 ( x),…, f n ( x)

(2.5)

назовём рядом Штурма. Теорема 9 (теорема Штурма). Число действительных корней уравнения f ( x )  0 , расположенных на отрезке [, ] , равно разности между числом перемен знаков в последовательности (2.5) при x   и числом перемен знаков в последовательности (2.5) при x   . Заметим, что использование теоремы Штурма на практике связано с большой вычислительной работой при построении ряда Штурма.

2.5. Метод половинного деления (дихотомии) Метод дихотомии [4, с. 118–119] удобно применять для грубого отделения одного из корней уравнения (2.1) на некотором отрезке [, ] , если на нём корни не отделены. Идея метода проста: пусть функция f (x ) непрерывна на [, ] и f ( )  f ()  0 . Для нахождения корня уравнения (2.1), принадлежащего [, ] , делим этот отрезок пополам. Если f (

  )0, 2 53

Методы приближенных вычислений

   есть корень уравнения. Если f ( )  0 , то вы2 2   бираем тот из отрезков [ , ] или [ , ] , на концах кото2 2 рого f (x ) имеет противоположные знаки. Новый отрезок [1 , 1 ] , то  

полученный указанным способом, снова разделим пополам и выполним ту же процедуру. Продолжая этот процесс, либо на какомто этапе получим точный корень уравнения (2.1), либо бесконечную последовательность вложенных друг в друга отрезков [1 , 1 ] , [2 , 2 ] , …, [n , n ] , …, таких что f (n )  f (n )  0

( n  1, 2,…), причём

n   n 

1 (  ). 2n

(2.6)

Левые концы 1 , 2 ,…, n ,… образуют монотонно неубывающую ограниченную последовательность, а правые концы 1 , 2 ,…, n ,… – монотонно невозрастающую ограниченную последовательность. Из равенства (2.6) вытекает, что существует общий предел

  lim  n  lim  n . n 

n 

Так как f (n )  f (n )  0 , то, переходя в этом неравенстве к пределу при n → ∞, в силу непрерывности функции f (x ) , получим [ f ()]  0 . Отсюда вытекает (2.1). Очевидна оценка 2

f (  )  0 , т.е.  есть корень уравнения

0    n 

54

1 (   ) . 2n

(2.7)

2. Решение алгебраических и трансцендентных уравнений

2.6. Итерационные методы решения алгебраических и трансцендентных уравнений 2.6.1. Метод простой итерации Прежде всего отметим, что суть любого итерационного метода решения уравнения (2.1) заключается в следующем. Пусть известен малый промежуток [, ] , в котором содержится единственный корень x   уравнения (2.1). Из достаточно малой окрестности корня выбирается точка x0 – начальное приближение к корню уравнения – и строится последовательность значений x1 , x2 , x3 ,…, xn ,… посредством рекуррентного соотношения

xk  k ( x0 , x1 ,…, xk 1 ) , k  1,2,… . При этом последовательность x1 , x2 , x3 ,…, xn ,… должна сходиться к корню x   , что обеспечивается соответствующим выбором k . Простейшим из итерационных методов решения уравнения (2.1) является метод простой итерации, или метод последовательных приближений, применимый к широкому классу уравнений вида (2.1). В этом методе уравнение (2.1) приводится к виду (2.8) x  ( x ) . Если x  X (в прикладных задачах X – конечный или бесконечный отрезок числовой оси), а y   ( x ) принадлежит Y , то функцию (x) можно рассматривать как оператор, отображающий X в Y . Решить уравнение (2.8) – значит найти такие точки x  X , которые при отображении оператором  переходят в себя. Как и в общем подходе, в методе простой итерации на основе начального приближения x0 , принадлежащего малой окрестности корня уравнения (2.1), строят последовательность {xk }, k  1, 2… , по формуле 55

Методы приближенных вычислений

xk  ( xk 1 ) , k  1,2,… .

(2.9)

Здесь функция (x) не зависит от номера итерации k , и методы такого типа называют стационарными. Геометрическая интерпретация метода простой итерации представлена на рис. 2.1. Отметим, что приведение уравнения (2.1) к виду (2.8) может быть сделано многими способами. Например, можно положить ( x )  x   ( x )  f ( x ) , где  (x ) – произвольная непрерывная знакопостоянная функция. Успех метода зависит от того, насколько удачно выбрана (x) . y

х=y

φ(х1) φ(хα)

0

y = φ(х)

хα

х1 х = η

х

Рис. 2.1

Исследуем условия сходимости метода [5, с. 142–143]. Пусть

(x) имеет непрерывную производную. Тогда

xk    ( xk 1 )  ()  ( xk 1  ) () ,

(2.10)

где xk 1     .

Из (2.10) видно, что если | ( x ) | q  1 , то последовательность

| xk   | , 56

k  0,1, , убывает не медленней членов геометриче-

2. Решение алгебраических и трансцендентных уравнений

ской прогрессии со знаменателем q  1 и тогда последовательность {xk } сходится при любом ненулевом приближении x0 . Если ( x )  1 в некоторой окрестности корня, то итерации не могут сходиться. Очевидно, что чем меньше q , тем быстрее сходимость. Сходимость будет особенно быстрой при ( )  0 . Если функция (x) удовлетворяет условию Липшица в круге Q  (| x   | r ) , т.е.

| ( x)  ( x) | L | x  x | ,

(2.11)

где L = const > 0, x′, x′′  Q – любые точки, условия сходимости метода простой итерации даёт следующая теорема [2, с. 452]. Теорема 10. Каково бы ни было x0  Q , последовательность

xk  ( xk 1 ), k  1,2,… , сходится к корню x   уравнения (2.1), если только функция (x) в круге Q удовлетворяет условию Липшица с константой L  1 , причём скорость сходимости определяется неравенством

| xk   | Lk | x0   |, k  1, 2,… .

(2.12)

Обсудим вопрос, когда прекращать итерации на практике. Как видно из (2.10), если ( x )  0 , итерации попеременно оказываются то справа, то слева от корня. Тогда корень x   будет заключён в интервале ( xk 1 , xk ) , что является надёжной, но несколько

грубой оценкой. Однако она не применима, если ( x )  0 и итерации сходятся к корню монотонно, т.е. с одной стороны. В малой окрестности корня итерации сходятся примерно как геометрическая прогрессия со знаменателем

q

xk  xk 1 , k  2,3,… . xk 1  xk 2

(2.13)

Итерации можно прекратить, если выполняется условие [5, с. 142]: 57

Методы приближенных вычислений

| q

xk  xk 1 ( xk  xk 1 ) 2 |  , 1 q | 2  xk 1  xk  xk  2 |

k  2,3,… .

(2.14)

Здесь   0 – точность вычислений. Из (2.10) следует, что метод простой итерации является методом первого порядка точности, поскольку ( xk  ) пропорционально ( xk 1  ) .

2.6.2. Метод Ньютона Метод Ньютона является ещё одним классическим методом решения уравнений вида (2.1). Иначе его называют методом касательных или методом линеаризации [5, с. 143–145]. Предположим, что на [, ] содержится единственный корень x   уравнения (2.1) и функция f (x ) дважды непрерывно дифференцируема, причём f (x ) и f (x ) не равны нулю на [, ] . Приведём уравнение (2.1) к виду (2.8). Полагаем при этом

( x)  x 

f ( x) , f ( x)

т.е. будем рассматривать метод Ньютона как частный случай метода простой итерации. Выберем произвольную точку x0 из малой окрестности корня x   так, чтобы выполнялось условие

f ( x0 )  f ( x0 )  0 ,

(2.15)

и построим итерационную последовательность по формуле

xk  xk 1 

f ( xk 1 ) , k  1, 2,… . f ( xk 1 )

Последовательность (2.16) будет сходиться, так как

58

(2.16)

2. Решение алгебраических и трансцендентных уравнений

( x) 

f ( x)  f ( x) и, следовательно, ( )  0 . ( f ( x))2

Последнее означает, что если x0 выбрано из достаточно малой

окрестности x   , то | ( x ) | L  1 .

При произвольном x0 итерации будут сходиться, если всюду

| f  f  | ( f )2 . Геометрически формула (2.16) означает, что на каждой итерации график функции y  f (x ) заменяется касательной к нему (рис. 2.2).

y = f(х)

х=η 0

х1

х0

х

Рис. 2.2

Отметим, что условие (2.15) даёт монотонную сходимость итерационного процесса к корню x   с той стороны, с какой выбирается x0 . Оценим скорость сходимости метода Ньютона [5, с. 144]. Используя (2.10), имеем 59

Методы приближенных вычислений

 xk  ()  ( xk 1 ), k  1, 2, … . Разложим ( xk 1 ) по формуле Тейлора в точке  и учтём, что ()  0 . Получим

1   xk  ()  ()  ( xk 1  )  ()   ( xk 1  ) 2  (1 ) , 2 или

1 xk    ( xk 1  )2 (1 ), k  1,2,…, 2

(2.17)

где 1  ( xk 1, ) . Из формулы (2.17) видно, что погрешность очередного приближения примерно равна квадрату погрешности предыдущего приближения. Поэтому метод Ньютона является методом второго порядка точности. Он обеспечивает более быструю сходимость по сравнению с методом простой итерации. Если известны хорошие начальные приближения для корней произвольной дифференцируемой функции, то для их уточнения чаще всего применяют метод Ньютона.

2.6.3. Другие итерационные методы Вычислительная работа метода Ньютона связана с нахождением f ( xk 1 ) и f ( xk 1 ) . Её можно уменьшить, если заменить,

например, производную f ( x) первой разделённой разностью по

двум точкам x и x0 или, что то же, заменить касательную секущей, т.е. положить

f ( x)  60

f ( x)  f ( x0 ) . x  x0

2. Решение алгебраических и трансцендентных уравнений

Тогда формула (2.16) перейдёт в следующую формулу:

xk  xk 1 

( xk 1  x0 ) f ( xk 1 ) , k  2,3,… , f ( xk 1 )  f ( x0 )

или

xk 

x0  f ( xk 1 )  xk 1  f ( x0 ) , k  2,3,… . f ( xk 1 )  f ( x0 )

(2.18)

Чтобы строить итерационную последовательность по формуле (2.18), нужно задать два начальных приближения x0 и x1 . Итерационные процессы, где для вычислений очередного приближения требуется знание двух предыдущих, называют двухшаговыми. Как показано в [2, с. 465–466], в методе секущих

() 

( x0  ) 2 f ( 2 ) , x0  2   .  2 f ( x0 )

Если x0 взято достаточно близко к корню x   , то () – малое число. Тогда существует такая окрестность корня x   , в которой | ( x ) | L  1 . Если x1 также принадлежит этой окрестности, то итерационная последовательность будет сходиться к корню x   . Отметим, что сходимость итераций может быть немонотонной как вдали от корня, так и в малой окрестности корня [5, с. 145]. Погрешность xk   в методе секущих убывает по закону, близкому к убыванию в методе Ньютона, но с несколько меньшей скоростью стремления к нулю. Заметим, что в формуле (2.18) в знаменателе стоит разность значений функции f (x ) . Вблизи корня значения функции малы и близки. Возникает потеря значащих цифр, что ограничивает точность получаемого значения корня. Метод секущих является итерационным методом первого порядка точности. 61

Методы приближенных вычислений

Можно получить нестационарный метод нахождения действительных корней уравнения (2.1), комбинируя метод Ньютона и метод секущих [2, с. 467–470]. Пусть на отрезке [, ] содержится единственный корень уравнения (2.1) и f ( x ), f ( x ) не меняют знаков на [, ] . Начальные приближения x0 и x1 получаем по формулам

x0   

f ( )   f ()   f () , x1  , f () f ()  f ()

(2.19)

если f ( )  f ( )  0 . Если же f ()  f ()  0 , то x0 и x1 задаём по формулам

x0   

f ()   f ()   f () , x1  . f () f ()  f ()

(2.20)

Остальные приближения вычисляем, пользуясь формулами

f ( x2 k 2 ) , f ( x2 k 2 ) x  f ( x2 k 1 )  x2 k 1  f ( x2 k  2 ) x2 k 1  2 k  2 , k  1, 2,… . (2.21) f ( x2 k 1 )  f ( x2 k  2 ) x2 k  x2 k 2 

Последовательные приближения x 2 k и x2k 1 лежат всегда по разные стороны от корня x   . В процессе вычислений можно следить за точностью результатов. Комбинированный метод сходится значительно быстрее метода секущих. Замечание. Почти все итерационные методы решения уравнения (2.1) обладают тем свойством, что в них не накапливаются ошибки вычислений. Если в процессе счёта допущена ошибка, то она не отразится на точности окончательного результата, а лишь на числе итераций, так как этот процесс самоисправляющийся. В завершение рассмотрения итерационных методов решения нелинейных уравнений приведем примеры блок-схем некоторых 62

2. Решение алгебраических и трансцендентных уравнений

из них, что, несомненно, облегчит понимание логической основы алгоритмов методов. Блок-схема метода дихотомии

Ввод

, 



 2

Останов

Корня нет

f ( )  0

Печать

Да Нет

Нет

Нет

f ( )  f ()  0

f ()  f ()  0

Да

Да



 Нет

Да

|    | 2

63

Методы приближенных вычислений

Блок-схема метода Ньютона Ввод α,β

х0 = α

Да

f(х0)f″(х0)>0

x1  x0 –

f (x0 ) f (x0 )

|х1–х0| < ε

Нет

Нет

Да

х0 = х1

х0 = β

Да

f(х0)f″(х0)>0

Печать х1

Останов Нет

Поменяйте начальное приближение

2.7. Задания 1. Отделить корни уравнения f ( x )  0 . 2. Уточнить с точностью  корни уравнения одним из итерационных методов.

64

2. Решение алгебраических и трансцендентных уравнений

2.7.1. Решение одного варианта задания Проиллюстрируем применение вышеизложенной теории на двух примерах. В качестве итерационного метода уточнения корней рассмотрим метод Ньютона. Пример 1. Отделить корни алгебраического уравнения x3  0,5×2  0,78  0 одним из аналитических методов и затем уточнить их методом касательных с точностью   10 5 . 1. Воспользуемся теоремой 7. Обозначим

f ( x)  x3  0,5  x2  0,78 , 1 1 ( x)  x3  f    0, 78  x 3  0,5  x  1 ,  x 2 ( x)  f ( x)   x3  0,5  x 2  0, 78 ,  1  3 ( x)  x 3  f    0, 78  x 3  0,5  x  1.  x  Тогда

N0  1

0,5 0, 5  1,5 , N1  1   1,8006, 1 0, 78 N 2  1  3 0,78  1,9205 , N3  1

1  2,1323 . 0,78

По теореме 7 корни принадлежат одному из промежутков  N 2 ,1 N3   1 N1 , N 0  . В данном примере корни уравнения могут лежать на интервалах  1,9205;0,4690, 0,5554;1,50. 2. Для отделения корней используем теорему Штурма. Ряд Штурма будет выглядеть следующим образом:

65

Методы приближенных вычислений

f ( x)  x3  0,5  x2  0,78 , f1 ( x)  3  x2  x , f 2 ( x)  1/18  x  0,78 , f 3 ( x)  577,3248 . Поместим в табл. 2.1 знаки функций из ряда Штурма на промежутках ( , 1], [  1, 0, 4], [  0, 4, 0,5], [0, 5,1], [1,  ). Т а б л и ц а 2.1 –0,4 +

0,5 +

1 +



–1 –

signf1 ( x)

+

+

+

+

+

+

sign f 2 ( x)

+

sign f 3 ( x )

Число перемен знаков

2

2

1

1

1

1

x



signf ( x)

+

Из таблицы видно, что есть один действительный корень данного уравнения f ( x )  0 , и он находится на промежутке [ 1; 0, 4] . Корень уточним методом касательных. В качестве начального значения берём x0  0,8 , так как f ( 0,8) f ( 0,8)  0 . Получим: итерация № 0 – x0  0,80000 , итерация № 1 – x1  0,780882 , итерация № 2 – x2  0,780479 , итерация № 3 – x3  0,780479 , число итераций – 3. 7

Корень x  0,780479  0,000001 , f ( x)  4,62488060 10 .

66

2. Решение алгебраических и трансцендентных уравнений

Пример 2. С помощью графического метода отделить корни трансцендентного уравнения ln x  ( x  1)  0,15  0 и уточнить 2

их методом Ньютона с точностью   10 5 . 1. Запишем уравнение в виде y1(x) = y2(x), где y1(x) = lnx; y2(x) = (x–1)2–0,15. Графики y1 ( x) и y2 ( x) представлены на рис. 2.3, из которого видно,

что

 2  1,1;2 .

первый

корень

1  0,1;1 , а второй корень

y 3 2 1

0

2

1

3

x

Рис. 2.3

2. Уточним корни методом касательных. Имеем

f ( x ) 

1  2( x  1); x

f ( x)  

1 2. x2

Формула метода Ньютона имеет вид

xk  xk 1 

ln xk 1  ( xk 1  1) 2  0,15 , k  1,2,3,… . 1 x k 1  2( xk 1  1) 67

Методы приближенных вычислений

Так как

f (0,1)  2,9625851;

f (0,1)  102 и

f (0,1)  f (0,1)  0 ,

то для первого корня, следовательно, x0  0,1 . Результаты расчетов для первого и второго корней помещены в табл. 2.2, 2.3. Т а б л и ц а 2.2 k xk

0 0,1

1 0,35

2 0,67

3 0,84

4 0,87

5 0,87

6 0,87

f ( xk )

–2,96

–1,32

–0,36

–0,06

–0,0

–0,00

0,00

f ( xk )

11,8

4,15

2,16

1,51

1,40

1,39

1,39

7 0,87

Т а б л и ц а 2.3 k xk

0 2

1 1,895

2 1,886

3 1,886

f ( xk )

–0,157

–0,012

–0,00

–0,00

f ( xk )

–1,5

–1,263

–1,241

–1,241

Для второго корня принято, что x0  2 .

2.7.2. Варианты заданий Вариант № 1. 1.  x  sin x  k  0,: а) k  0,01; б) k  0,02; 1. в) k  0,03; г) k  0,04; д) k  0,05;. 3 2. x  3  x  k  0,: 2.

в)

68

k  1, 2;

а) k  1; б ) k  1,1; г ) k  1,3; д) k  1, 4 .

4 1,886

2. Решение алгебраических и трансцендентных уравнений

Вариант № 2. 1. k  ln x  2( x  1)2  m  0,: а) k  0,3; m  0, 4;

б ) k  0, 4; m  0, 5; в ) k  0,5; m  0, 6; г ) k  0, 6; m  0, 7; д) k  0, 7; m  0,8;. 3 2 2. x  k  x  2  x  m  0,: 2.

a) k  0, 4; m  1,15;

б ) k  0,5; m  1, 20; в ) k  0, 6; m  1, 25; г ) k  0, 7; m  1, 30.

Вариант № 3.

x

1.  sin x  k  0 : , 1. 

а) k  0, 01; б ) k  0, 02;

в) k  0,03; г ) k  0,04; д) k  0, 05;. 3 2. x  x  k  0,: а) k  1; б ) k  1,1; 2.

в) k  1, 2; г ) k  1,3; д) k  1, 4.

Вариант № 4. 1. k  ln x  0, 2( x  1) 2  m  0,: а ) k  2;

m  0; б ) k  2,1; m  0, 2; в ) k  2, 2; m  0, 3;

г) k  2,3; m  0,4; д) k  2,4; m  0,5;. 3 2 2. x  0,5  x  k  0,: 2.

а) k  0,38; б ) k  0, 48; в) k  0,58; г ) k  0, 68; д) k  0,78.

69

Методы приближенных вычислений

Вариант № 5. 2 1. ln x  ( x  k )  0,15  0,: а) k  1; 1. в ) k  3; г ) k  4; д) k  5;.

б ) k  2;

3 2 2. x  k  x  x  m  0,: а ) k  2; m  1; 2.

б ) k  3; m  2; в) k  4; m  3; г ) k  2; m  2; д) k  3; m  3.

Вариант № 6.

x

 sin kx  m  0,: 1. 1. exp(1)

а ) k  2; m  0, 4;

б ) k  3; m  0,5; в) k  4; m  0, 6; г ) k  3; m  0, 6;. 3 2 2. x  1, 47  x  k  0,: а ) k  3, 28; б ) k  4, 28; 2. в ) k  5, 28; г ) k  6, 28. Вариант № 7. 2 1. ln x  ( x  k )  0,: 1.

а) k  1,5; б ) k  1, 7; s в ) k  1,9; г ) k  2,1; д) k  2,3;. 3 2. x  k  x  m  0,: а ) k  2; m  2; 2. б ) k  3; m  3; в) k  4; m  4; г ) k  2; m  3; д ) k  3; m  4. Вариант № 8. 1.  k  x    sin x  0,: 1. в ) k  3;. 70

а ) k  1;

б ) k  2;

2. Решение алгебраических и трансцендентных уравнений

2. k  x  x  1  0,: а) k  1; 3

б ) k  2;

в) k  3.

Вариант № 9. 1.

x  cos kx  m  0,: а) k  1; m  0,03; exp(1) б ) k  2; m  0, 04; в ) k  3, m  0, 05;.

3 2. 2  x  2  x  k  0, 2.

а ) k  9;

б ) k  10;

в ) k  11.

Вариант № 10. 1. sin(k  x)  cos(m  x)  0,: а) k  0,5; m  0,5; 1.

б) k  0,6; m  0,6; в ) k  0,7; m  0,7; г ) k  0,8; m  0,8;. 3 2. x  2  x  k  0,: а ) k  9; б ) k  10; 2. в) k  7; г ) k  8. Вариант № 11. 2 1. cos(k  x)  x  0,: а ) k  0,9; 1.

б ) k  1; в ) k  1,1; г ) k  1, 2; д) k  1,3;. 3 2 2. x  x  k  x  m  0,: а ) k  2; m  1; 2. б ) k  2; m  1, 2; в ) k  3; m  1, 2; г ) k  4; m  1, 4; д) k  4; m  1, 3.

71

Методы приближенных вычислений

Вариант № 12.

x

1.  sin kx  m  0,: а) k  1; 1. exp(1)

m  0, 01;

б ) k  2; m  0, 02; в ) k  3; m  0,03; г ) k  2; m  0,03;. 3 2. x  k  x  10  0,: а ) k  1; б ) k  2; 2. в) k  3; г ) k  4. Вариант № 13. 2 1. ln x  0,5( x  k )  m  0,: 1. б ) k  1; m  0,15;.

а) k  1; m  0, 05;

в ) k  2; m  0, 20; г ) k  2; m  0, 25; 3 2. x  x  k  0,: а ) k  1; б ) k  2; 2. в ) k  3; г ) k  4. Вариант № 14. 1. 2  ln x  ( x  k )  m  0,: 2

б ) k  2; m  0, 2; 2. x  x  k  x  m  0,: 2. 3

2

а) k  1; m  0,1;

в ) k  3; m  0,3;.

а ) k  1; m  1;

б ) k  2; m  1,1; в ) k  3; m  1, 2; г ) k  4; m  1,3.

72

2. Решение алгебраических и трансцендентных уравнений

Вариант № 15. k x 1. x  e  2,1,: 1.

а) k  0,1; б ) k  0,11; в) k  0,12; г ) k  0,13;. 3 2. x  k  x  m  0,: а ) k  0; m  0,5; 2. б ) k  1; m  1; в) k  2; m  1,5. Литература 1. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1976. Т. 1. 302 с. 2. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1966. Т. 1. 632 с. 3. Мысовских И.П. Лекции по методам вычислений. М. : Наука, 1982. 342 с. 4. Демидович Б.П., Марон И.А. Основы вычислительной математики. М. : Наука, 1960. 658 с. 5. Калиткин Н.Н. Численные методы. М. : Наука, 1978. 512 с.

73

Методы приближенных вычислений

3. РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ Задача решения систем нелинейных уравнений часто встречается на практике. Достаточно вспомнить, что решение нелинейных краевых задач (как для обыкновенных дифференциальных уравнений, так и для уравнений с частными производными) методом конечных разностей, а также минимизация функций многих переменных численными методами приводят к нелинейным системам уравнений [1, с. 438–444]. В настоящем разделе рассмотрим проблему численного решения систем нелинейных уравнений и покажем, как описанные в [2] методы переносятся на этот случай. Пусть требуется найти приближенное решение системы нелинейных уравнений

 f1 ( x1 , x2 ,…, xn )  0,  f ( x , x ,…, x )  0,  2 1 2 n  …………………………  f n ( x1 , x2 ,…, xn )  0,

(3.1)

где f1 , f 2 ,…, f n – заданные функции n переменных x1 , x2 ,…, xn . Здесь под решением понимается такой набор вещественных чисел (1 , 2 ,…,n ) , что при подстановке их в (3.1) получаются тождества. Систему (3.1) можно представить в векторном виде f (x ) = 0,

где

74

3. Решение систем нелинейных уравнений

 x1    x  x   2,    x   n

 f1 ( x1 , x2 ,…, xn )      f  . (3.2)      f ( x , x ,…, x )  n   n 1 2 Как видно из (3.1), при n  1 имеет место рассмотренный в главе 2 случай одного нелинейного уравнения. При численном решении системы (3.1) неизбежно возникает вопрос о существовании решения и его единственности. В общем случае ответить на этот вопрос очень сложно. В случае системы двух нелинейных уравнений ( n  2 ):

 f1 ( x1 , x2 )  0,   f 2 ( x1 , x2 )  0

(3.3)

ответ на вопрос о существовании решения можно, в принципе, найти геометрическим способом. Для этого на плоскости ( x1 , x2 ) нужно изобразить графики функций f1 ( x1 , x2 ) и f 2 ( x1 , x2 ) . Точки пересечения графиков и дадут множество решений системы (3.3). Несколько возможных ситуаций в случае n  2 представлено на рис. 3.1. Случай n  2

Единственное решение

Несколько решений

Нет решений

Рис. 3.1

75

Методы приближенных вычислений

В дальнейшем предполагается, что система нелинейных уравнений (3.1) имеет интересующее нас вещественное решение

 1     ,    n хотя оно может быть и не единственным. Перейдём теперь к описанию методов приближенного решения систем вида (3.1). Наиболее распространены на практике следующие итерационные методы: метод простой итерации [1, c. 317–323; 3, c. 179–185; 4, c.164–165]; метод Ньютона [1, c. 323–329; 3, c. 189–190; 4, c.165–168]; метод Зейделя [1, c. 320–321; 7, c. 192– 193]; методы секущих или, как их называют иначе, дискретные варианты метода Ньютона [9, c. 62–66]; метод Гаусса–Зейделя [Там же, c. 55–58]. Известны и другие методы, детальное описание которых можно найти в пособиях [1, 4, 5, 9]. Среди итерационных методов наиболее легко реализуется метод простой итерации.

3.1. Метод простой итерации Дана система n нелинейных уравнений (3.1) или в векторном виде (3.2). Для применения метода простой итерации система (3.1) или (3.2) приводится к виду

xi  i ( x1 , x2 ,, xn ), i  1, 2,…, n

(3.4)

или

x  (x) .

(3.5)

Система нелинейных уравнений (3.5) записана для элементов

n -мерного пространства R n , причём, элемент x этого пространства служит для изображения значений аргументов x1 , x2 ,…, xn 76

3. Решение систем нелинейных уравнений

функций 1 , 2 ,…, n , а элемент  – для изображения соответствующих значений 1 , 2 ,…, n . Зависимость вида (3.5) можно рассматривать как отображение пространства R n в себя. Если обозначить точное решение (3.5) через   (1 , 2 ,…, n )T и предположить, что за начальное приближение к точному реше(0)

нию выбрано x  ( x1(0) , x2(0) ,…, xn(0) )T , то дальнейшие приближения строятся по формуле

x

( k 1)

(k )

 ( x ), k  0,1, 2,…,

(3.6)

где k – номер приближения или итерации. Итерационный процесс продолжается до тех пор, пока не выполняются неравенства xi( k 1)  xi( k )  , i  1, n,  – принятая точность вычислений. Будем предполагать, что функция f (x) достаточно гладкая в окрестности точки . Обозначим через  грешности. Если x

x

( k 1)

(k )

(k )

x

(k )

  – вектор по-

близко к , то из (3.6) будет следовать, что (k )

 (   )  () 

 () ( k ) (k ) 2 ).    (  x

Или отсюда имеем

( k 1)

 () ( k ) (k ) 2    (  ). x

 ( x ) невырождена при x  (k ) 2  x   , то, пренебрегая величиной     , получим прибли 

Если предположить, что матрица Якоби

женную формулу, связывающую значения вектора погрешности на двух шагах итерации – k и ( k  1) , т.е. 77

Методы приближенных вычислений

( k 1)

 () ( k )  . x

Из последней формулы, очевидно, имеем

( k 1)

 ()     x 

k 1 (0)

 .

Для сходимости метода простой итерации при любом  димо, чтобы

q где под

( 0)

необхо-

 ()  1, x

 () понимается одна из норм матрицы [1, с. 255–257]. x

Скорость сходимости метода зависит от величины q, и, если q близко к 1, то скорость сходимости невысокая [9, с. 54–55]. Обсудим, как от системы (3.2) перейти к (3.5). Рекомендуется функцию (x) из (3.5) искать в виде

( x)  x    f ( x) . 1

Здесь    ( x

( 0)

(3.7)

) , где

 f1   f i   x1      x j   f n  x1 

f1 x2  f n x2

f1  xn      – матрица Якоби. (3.8) f n   xn   

( 0)

Будем предполагать, что матрица ( x ) – неособенная. Подставив выражение (x) из формулы (3.7) в (3.5), запишем следующую итерационную формулу: 78

3. Решение систем нелинейных уравнений

x

( k 1)

x

(k )

(k )

   f ( x ), k  0,1,2,… .

(3.9)

Приведём запись этой формулы для соответствующих компонент вектора x : n

xi( k 1)  xi( k )   aij  f j ( x1( k ) , x2( k ) ,…, xn( k ) ),

(3.10)

j 1

i  1,2,…, n; k  0,1,2,…; aij – элементы матрицы  . Остановимся на вопросе о сходимости метода простой итерации для случая системы n нелинейных уравнений. Будем предполагать, что R n – метрическое пространство. Говорят, что отображение (3.5) является сжимающим [1, c. 319], если при некотором q  1 отображение x  ( x) удовлетворяет условию

(( x1 ), ( x 2 ))  q  ( x1 , x 2 ) при всех x1 , x 2  R ;

 – расстояние в R n [3, с. 179]. Теорема 1. Если отображение y  (x) сжимающее, то уравнение (3.5) имеет решение  и n

(k )

(, x )  (1)

qk  a . 1 q

(0)

Здесь a  ( x , x ) . Доказательство теоремы можно найти в [1, c. 319–320]. Замечание 1. Вместо метода простой итерации иногда более удобно применять процесс Зейделя:  x1( k 1)  1 ( x1( k ) , x2( k ) , , xn( k ) ),  ( k 1) ( k 1) (k ) (k )  x2  2 ( x1 , x2 , , xn ),    x ( k 1)   ( x ( k 1) , x ( k 1) , , x ( k 1) , x ( k ) ). n 1 2 n 1 n  n 79

Методы приближенных вычислений

Рассмотрим случай n  2 [4, с. 164–165]. Имеем систему двух нелинейных уравнений

 f1 ( x1 , x 2 )  0,   f 2 ( x1 , x 2 )  0.

(3.11)

Требуется определить действительные корни этой системы с заданной точностью  . Будем предполагать, что система допускает лишь изолированные вещественные корни. Можно определить число этих корней и найти их приближенные значения графическим способом. Для этого строим кривые f1 ( x1 , x2 )  0, f 2 ( x1 , x2 )  0 и в качестве корней берём координаты точек пересечения этих кривых. Обозначим за приближенные значения корней системы соот( 0)

( 0)

ветственно x1 , x2 . Чтобы применить метод простой итерации ( 0)

( 0)

для уточнения значений x1 , x2 , систему приводим к виду

 x1  1 ( x1 , x2 ),   x2  2 ( x1 , x2 ).

(3.12)

Последующие приближения строим по формулам

 x1( k 1)  1 ( x1( k ) , x2( k ) ),  ( k 1)  x2  2 ( x1( k ) , x2( k ) ), k  0,1,2,… .

(3.13)

Итерационный процесс продолжается до тех пор, пока не выполнятся условия

x1( k 1)  x1( k )  , x2( k 1)  x2( k )   . При использовании метода простой итерации успех зависит от удачного выбора начальных приближений неизвестных. Приведём без доказательства достаточный признак сходимости метода простой итерации [8, c. 149].

80

3. Решение систем нелинейных уравнений

Теорема 2. Пусть в некоторой замкнутой окрестности Ga1  x1  b1 ; a2  x2  b2  имеется одна и только одна пара корней x1  1 , x2  2 системы (3.11). Если: 1) функции 1 ( x1 , x2 ) и 2 ( x1 , x2 ) определены и непрерывно дифференцируемы в G ; ( 0)

( 0)

2) начальные приближения x1 , x2 (k )

и все последующие при-

(k )

ближения x1 , x2 ( k  1,2,…) принадлежат G ; 3) в G выполнены неравенства

1  2   q1  1, x1 x1

1  2   q2  1 , x2 x2

то процесс последовательных приближений (3.13) сходится к корням x1  1 , x2  2 системы (3.12), т.е.

lim x1( k )  1 , lim x2( k )  2 . k 

k 

Заметим, что теорема остается справедливой, если условие 3 заменить условием

1 1 2 2   q1  1,   q2  1, x1 x2 x1 x2 3.2. Метод Ньютона Метод Ньютона является эффективным методом повышения точности решения системы нелинейных уравнений (3.1) в тех случаях, когда известно достаточно хорошее приближение x k  0 , к точному решению .

(k )

,

81

Методы приближенных вычислений

Идея метода состоит в следующем: в окрестности приближения (k )

x заменим задачу (3.1) вспомогательной линейной задачей. Обозначим

x    x

(k )

 x1        , xi  i  xi( k ) , i  1, n ,  x   n

и представим (3.1) в виде

f (x

(k )

  x)  0.

(3.14)

Предположим, что функции f i ( x1 , x2 ,…, xn ), i  1,…, n , дважды непрерывно дифференцируемы в области G , содержащей точку

x

(k )

 ( x1( k ) , x2( k ) ,…, xn( k ) ) T, а величина  x мала. Тогда, воспользо-

вавшись формулой Тейлора, получим приближенное равенство (k )

(k )

f ( x )  f ( x )   x  0. В формуле (3.15) под

(3.15)

(k )

f ( x ) понимается матрица Якоби

 f i  , i, j  1, n , или в развёрнутом виде   x j   f1 ( x1( k ) , x2( k ) ,  , xn( k ) ) f1 ( x1( k ) , x2( k ) ,  , xn( k ) )     x  xn 1   (k ) f ( x )    .   (k ) (k ) (k ) (k ) (k ) (k )  f n ( x1 , x2 ,  , xn )  f n ( x1 , x2 ,  , xn )    x1 xn   Формула (3.15) представляет собой систему линейных алгебраических уравнений относительно  x , причем все её коэффициенты 82

3. Решение систем нелинейных уравнений (k )

выражаются через x , k  0 . Решив эту систему любым известным методом, например по правилу Крамера, методом исключения Гаусса [1, c. 257–265], полагаем

x

( k 1)

x

(k )

 x .

Таким образом, фактическая реализация метода Ньютона проводится в два этапа: 1) решаем систему линейных алгебраических уравнений (k )

(k )

f ( x )   x   f ( x ) ,

(3.16)

или в развёрнутом виде

f1 f1  f1  x  x1  x  x2    x  xn   f1 , n 2  1 f 2 f 2  f 2  x1   x2     xn   f 2 ,  x2 xn  x1   f n f n  f n  x  x1  x  x2    x  xn   f n 2 n  1 относительно неизвестных x1 , x2 , , xn . Значения функций f1 , f 2 ,…, f n и их производных вычисляем в известной точке x ем, что det( f ( x 2) полагаем

(k )

(k )

 ( x1( k ) , x2( k ) ,…, xn( k ) ) T. При этом предполага-

))  0 ; x

( k 1)

x

(k )

 x

(3.17)

или покомпонентно

xi( k 1)  xi( k )  xi , i  1, n, и переходим к п. 1. 83

Методы приближенных вычислений

Счёт прекращаем, когда все приращения xi неизвестных становятся малыми по абсолютной величине, а именно

max xi   , 1i  n

где  – заданная точность вычислений. (k )

Если матрицы Якоби f ( x ), k  0,1,… , являются невырожденными, то из (3.15) получим ещё одну запись итерационного процесса:

 x   f ( x или

x

( k 1)

x

(k )

(k )

(k )

 f ( x )

)

1

1

 f (x

(k )

)

(3.18)

(k )

 f ( x ), k  0 .

Формула (3.18) есть обобщение метода Ньютона для одного уравнения [2, c. 12, 13] на случай n ( n  2) уравнений. Из приведённых здесь обобщений метода Ньютона на случай n уравнений алгоритм (3.16)–(3.17) является наиболее последовательным и обладает следующими достоинствами: 1. Сходимостью итераций к точному решению при условиях, которые даёт следующая теорема. Теорема о локальной сходимости. Если функции f i ( x1 , x2 ,…, x n ), i  1, n , дважды непрерывно дифференцируемы в окрестности точного решения  и матрица Якоби f ( x ) невырождена в окрестности , то при условии, что

x

( 0)

достаточно близко к , итерации (3.16)–(3.17) будут сходить-

ся к , причем скорость сходимости будет квадратичной, т.е.

x

84

( k 1)

 C x

(k )

2

 ,

3. Решение систем нелинейных уравнений

где C = const, а под x понимается одна из норм векторов [1, c. 255–257]. С доказательством этой теоремы можно ознакомиться, например, в [Там же, c. 324–325]. 2) Метод (3.16)–(3.17), как и в случае n  1 , имеет наглядную геометрическую интерпретацию. Согласно идее метода аппроксимируем каждую функцию f j линейной функцией, которая представляет собой касательную гиперплоскость к f j в точке x

(k )

n касательных к функциям f j и даёт приближение x

. Пересечение

( k 1)

.

Обратим внимание на ряд сложностей, возникающих при использовании метода Ньютона на практике. Речь сначала пойдёт о формулах (3.16)–(3.17). Первая трудность связана с вычислением элементов матрицы Якоби f ( x ) на каждой итерации. При больших значениях n и сложных функциях f i ( x1 ,…, xn ) получение матрицы Якоби требует от вычислителя внимательности и больших затрат труда. Вторая сложность заключена в необходимости решения системы линейных алгебраических уравнений на каждом шаге вычислений с новой матрицей коэффициентов. Однако использование ПЭВМ существенно облегчает преодоление указанных трудностей. Если использовать формулы (3.18), то на каждой итерации требуется находить элементы матрицы, обратной к матрице Якоби, что не всегда легко осуществить на практике. Чтобы уменьшить перечисленные трудности, метод Ньютона модифицируют. Тогда последовательные приближения к решению находятся по правилу

x

( k 1)

x

(k )

(0)

 f ( x )

1

(k )

 f ( x ), k  0 ,

(3.19)

или (0)

(k )

f ( x )   x   f ( x ). 85

Методы приближенных вычислений

Как следует из предыдущей формулы, при таком способе вычислений обратная матрица к f (x) находится только один раз. Условия, при которых сходится модифицированный метод Ньютона, даёт теорема Л.В. Канторовича [5, c. 498–500]. Сходимость при этом становится линейной. Есть ещё одна трудность при использовании метода Ньютона в вычислениях. Она связана с выбором начального приближения ( 0)

( 0)

x . Согласно локальной теореме сходимости, x должно быть из окрестности точного решения . Поэтому, чтобы итерации метода Ньютона сходились, следует наилучшим образом выбирать ( 0)

x . Здесь можно руководствоваться физическими или какимилибо другими соображениями. Подчеркнём, что при грубо задан( 0)

ном x итерации могут расходиться. Как следствие изложенной выше теории рассмотрим вывод формул в случае системы двух нелинейных уравнений [4, c. 167– 168; 6, c. 90–91]:

 f1 ( x1 , x2 )  0,   f 2 ( x1 , x2 )  0. Предполагаем, что известны приближенные значения неизвестных и матрица Якоби

 f1 ( x1 , x2 )  x1 f ( x1 , x2 )   f ( x , x )  2 1 2 x1 

f1 ( x1 , x2 )   x2  f 2 ( x1 , x2 )   x2 

невырождена, т.е.

det( f ( x1 , x2 ))  0 . Согласно идее метода Ньютона требуется найти решение системы линейных алгебраических уравнений 86

3. Решение систем нелинейных уравнений

 f1 ( x1( k ) , x2( k ) ) f1 ( x1( k ) , x2( k ) )   x   x2  1   x  x 1 2    f1 ( x1( k ) , x2( k ) ),  (k ) (k ) (k ) (k )  f 2 ( x1 , x2 )  x  f 2 ( x1 , x2 )  x  1 2  x1 x2  (k ) (k )   f 2 ( x1 , x2 ), k  0,

(3.20)

относительно приращений неизвестных x1 , x2 , а затем вычислить новые приближения к решению по формулам

 x1( k 1)  x1( k )  x1 ,  ( k 1)  x2  x2( k )  x2 , k  0.

(3.21)

Решение системы (3.20) можно найти, например, по правилу Крамера. Тогда расчётные формулы приобретают вид

  ( k 1)  x1( k )  1 ,  x1    x ( k 1)  x ( k )   2 , k  0, 2  2 

(3.22)

где

1 

f1 ( x1( k ) , x2( k ) ) f 2 ( x1( k ) , x2( k ) )

f1 ( x1( k ) , x2( k ) ) x1 2  f 2 ( x1( k ) , x2( k ) ) x1

f1 ( x1( k ) , x2( k ) ) x2 , f 2 ( x1( k ) , x2( k ) ) x2 f1 ( x1( k ) , x2( k ) ) , (k ) 1

(k ) 2

f2 (x , x ) 87

Методы приближенных вычислений

f1 ( x1( k ) , x2( k ) ) x1  f 2 ( x1( k ) , x2( k ) ) x1

f1 ( x1( k ) , x2( k ) ) x2  0. f 2 ( x1( k ) , x2( k ) ) x2

Итерации по формулам (3.22) идут до тех пор, пока не выполняются одновременно два условия: x1( k 1)  x1( k )   и

x2( k 1)  x2( k )   . Здесь  – принятая точность вычислений. Описанные алгоритмы метода простой итерации и метода Ньютона для решения системы двух нелинейных уравнений изобразим в виде блок-схем. Введенные в них обозначения с пояснениями приведены в таблице идентификаторов (табл. 3.1). Т а б л и ц а 3.1

88

Обозначения в задаче

Обозначения в блок-схеме

x1( k ) , x2( k )

x 0, y 0

x1( k 1) , x2( k 1)

x1, y1

D

x1 , x2

Dx , Dy

ε

E

k

M

f1 ( x1 , x2 ); f 2 ( x1 , x2 )

z1, z 2

1 ( x1 , x2 ); 2 ( x1, x2 )

F1, F 2

Пояснения Начальные приближения неизвестных x, y Последующие приближения неизвестных x, y Определитель матрицы Якоби Определители, получающиеся из D заменой соответствующего столбца на столбец

 f1  x1( k ) , x2( k )      f 2  x1( k ) , x2( k )    

Принятая точность вычислений Число итераций Левые части исходной системы уравнений Правые части системы уравнений (3.12)

3. Решение систем нелинейных уравнений

Блок-схема метода простой итерации для системы двух уравнений

89

Методы приближенных вычислений

Блок-схема метода Ньютона для системы двух уравнений

Замечание 2. Наряду с рассмотренными методами простой итерации и Ньютона для решения систем нелинейных уравнений существуют методы спуска [1, c. 329–334; 3, c. 192; 5, c. 501–504]. Суть их состоит в том, что задача решения системы (3.2) заменяется эквивалентной задачей о нахождении нулевых минимумов функционала 90

3. Решение систем нелинейных уравнений n

 ( x1 , x2 ,…, xn )   f i 2 ( x1 , x2 ,…, xn ). i 1

Для гладких функций f i ( x1 , x2 ,…, xn ) методы спуска сходятся, но часто медленно. Поэтому методы спуска можно использовать для получения начального приближения к решению, которое затем можно уточнять по методу Ньютона.

3.3. Лабораторные задания Задание 1. Получить начальное приближение к решению системы двух нелинейных уравнений графическим способом. 2. Уточнить решение системы до тысячных долей, используя итерационные методы. Пример решения варианта задания 1. Методом простой итерации. Рассмотрим пример из [8, c. 150]. Дана система уравнений

 f1 ( x1 , x2 )  2 x12  x1 x2  5 x1  1  0,   f 2 ( x1 , x2 )  x1  3 lg x1  x22  0. Определить положительные корни этой системы с тремя значащими цифрами. Решение 1) Определим начальное приближение к корням системы графическим способом. Из рис. 3.2 видно, что в качестве начального ( 0)

приближения можно взять x1

 3,5; x2(0)  2,2 .

91

Методы приближенных вычислений x2 x2 = 2,2 2 1

1

2

f1(x1, x2) = 0

3

x1 = 3,5

x1

f2(x1, x2) = 0

Рис. 3.2

Чтобы применить метод простой итерации, запишем данную систему в виде

 x1 ( x2  5)  1  1 ( x1 , x2 ),  x1  2   x  x  3  lg x   ( x , x ). 1 1 2 1 2  2 Итерационный процесс строится по формулам

 ( k 1) x1( k ) ( x2( k )  5)  1  x ,  1 2   ( k 1) (k ) (k )  x2  x1  3  lg x1 , k  0,1,2,… . Проверим, выполняется ли достаточный признак сходимости метода простой итерации. Определим 33M 

1  x1

92

x2  5 , x1 ( x2  5)  1 4 2

1 x1 2 ;  x1 2  x1  3lg x1

3. Решение систем нелинейных уравнений

где M  0, 43429;, 

1  x2

2  0. x2

x1 , x1 ( x2  5)  1 4 2

Если рассматривать окрестность

Gx1  3,5  0,1; x2  2,2  0,1, то получим, что

1  x1

2,1  5  0,54, 3, 4(2,1  5)  1 4 2 1 3, 4   0, 27, x2 3, 4(2,1  5)  1 4 2 3  0, 43 1 2 2 3, 4   0, 42;  0. x1 x2 2  3, 4  3  lg 3, 4 Отсюда находим, что

1 2   0,54  0, 42  0,96  1, x1 x1 1 2   0, 27  0  0, 27  1. x2 x2

(k )

(k )

Итак, если последовательные приближения x1 , x2 не будут выходить за пределы области G (это легко обнаружить в процессе вычислений), то итерационный процесс сходится. 2) Результаты вычислений приведём в табл. 3.2.

93

Методы приближенных вычислений Т а б л и ц а 3.2 K

x1( k )

x2( k )

0 1 2 3 4 5 6

3,5 3,479 3,481 3,484 3,486 3,484 3,487

2,2 2,259 2,260 2,261 2,261 2,262 2,262

В качестве корней можно взять 1  3,487; 2  2,262 . 2. Методом Ньютона. Проиллюстрируем выполнение задания на примере решения системы

2 y  cos( x  1)  0,   x  sin y  0,4. 1) Получим начальное приближение к решению данной системы. Для этого построим графики функций

y

cos( x  1) 2

и

x  0,4  sin y в плоскости переменных ( x, y ) . Они будут иметь вид, изображенный на рис. 3.3. Из графиков следует, что система имеет единственное решение, и за начальное приближение к решению можно принять

x (0)  0,9,; y (0)  0,5 . 2) Уточним начальное приближение по методу Ньютона с точностью   10 3 .

94

3. Решение систем нелинейных уравнений y

1 0,5 –π

y = 0,5·cos(x+1) π/2

–π/2

π x

–0,5 x = –0,4–sin(y) –1 Рис. 3.3

Исходная система имеет вид:

 f1 ( x, y )  2 y  cos( x  1)  0,   f 2 ( x, y )  x  sin y  0,4  0. (0)

(0)

последуюСогласно методу Ньютона при заданных x , y щие приближения к решению находятся по итерационным формулам (3.22). Для проведения расчетов по ним получим вид , x, y . Имеем

f1 ( x, y ) f 2 ( x , y )  sin( x  1);,  1, x x f 2 ( x, y ) f1 ( x, y )  2;,  cos y. y y Тогда

95

Методы приближенных вычислений

( x , y )  (k )

(k )

sin( x ( k )  1)

2

1

cos y ( k )

 cos y ( k )  sin( x ( k )  1)  2; 2 y ( k )  cos( x ( k )  1)

x( x , y )  (k )

(k )

x

 sin y

(k )

(k )

 0, 4

2 cos y ( k )

 (2 y ( k )  cos( x ( k )  1))  cos y ( k )  2( x ( k )  sin y ( k )  0, 4);

y ( x ( k ) , y ( k ) ) 

sin( x ( k )  1) 2 y ( k )  cos( x ( k )  1) x ( k )  sin y ( k )  0, 4

1

 ( x ( k )  sin y ( k )  0, 4)  sin( x ( k )  1)  2 y ( k )  cos( x ( k )  1), k  0. Получаем ( x , y )  cos 0,5  sin 0,1  2  0 , т.е. матрица Якоби невырождена. Уточнение решения заданной системы проведём по формулам ( 0)

( 0)

x  ( k 1) ,  x (k )   x    y ( k 1)  y ( k )  y , k  0.   При x

(0)

 0,9, y(0)  0,5 через k  3 итераций с точностью

  103 получаем решение

x ( 3)  0,87605, y (3)  0,496166. При этом имеем

f1 ( x ( 3) , y ( 3) )  0,397  10 5 , f 2 ( x ( 3) , y ( 3) )  0,736  10 5. 96

3. Решение систем нелинейных уравнений

3.4. Варианты заданий Вариант № 1.

sin( x  2)  y  0,2;,   x  cos 2 y  1. Вариант № 2.

cos( x  1)  3 y  1,5;,  2 x  cos y  4. Вариант № 3.

sin 2 x  y  1,;  cos( y  0,5)  x  0,5. Вариант № 4.

cos 2 x  y  3;,   x  sin( y  1)  0,5. Вариант № 5.

sin( x  1)  2 y  2;,  cos( y  1)  3x  0. Вариант № 6.

cos( x  1)  y  1,6;,  sin 2 y  x  0,8. 97

Методы приближенных вычислений

Вариант № 7.

sin( x  2)  y  0,7;,  2 x  sin y  0,6. Вариант № 8.

 y  cos( x  2)  0;,  2 x  sin y  1. Вариант № 9.

cos( x  0,7)  y  1;,  sin 2 y  x  0,5. Вариант № 10.

sin( x  3)  3 y  1,5;,   x  cos( y  1)  0,5. Вариант № 11.

y   x  lg z  1,  2 2  y  0,4  z  2 x ,  xy z  2  .  20 Заданы начальные приближения: x

98

( 0)

 1;, y (0)  2,2,; z (0)  2.

3. Решение систем нелинейных уравнений

Вариант № 12.

 x  x 2  2 yz  0,1,  2  y  y  3xz  0, 2,  z  z 2  2 xy  0,3; ,  x (0)  y (0)  z (0)  0. Вариант № 13.

2 x 2  xy  5 x  1  0;,   x  3  lg x  y 2  0. Вариант № 14.

2 x 2  xy  y 2  2 x  2 y  6  0;,   y  x  1  0. Вариант № 15.

x 3  y 2  1  0;,  3  xy  y  4  0.   1  0,5  k , k  0,1,…,5. Вариант № 16.

 x 2 y 2  3x 3  6 y 3  8  0;,  4  x  9 y  2  0. 99

Методы приближенных вычислений

Вариант № 17.

sin x  y  1,32;,  cos y  x  0,85. Вариант № 18.

y x y   x  1,1  sin 3  ln(1  5 );,   y  0, 5  cos xy .  6 Вариант № 19.

sin( x  1)  y  1,2;,  2 x  cos y  2. Вариант № 20.

sin( x  1)  1,3  y;,   x  sin( y  1)  0,8. Вариант № 21.

sin( y  1)  x  1,2,;  2 y  cos x  2. Вариант № 22.

cos( y  0,5)  x  0,8;,  sin x  2 y  1,6. 100

3. Решение систем нелинейных уравнений

Вариант № 23.

2 x  cos( y  1)  0;,   y  sin x  0,4. Вариант № 24.

sin( x  1)  y  1;,  2 x  cos y  2. Вариант № 25.

sin( x  1)  y  1,5;,   x  sin( y  1)  1. Вариант № 26.

cos( y  1)  x  0,8;,   y  cos x  2. Вариант № 27.

sin x  2 y  1,6;,  cos( y  1)  x  1. Вариант № 28.

sin( x  0,6)  y  1,6;,  3x  cos y  0,9.

101

Методы приближенных вычислений

Вариант № 29.

cos x  y  1,2;,  2 x  sin( y  0,5)  2. Вариант № 30.

tg ( xy  0,3)  x 2,;  0,9 x 2  2 y 2  1. Литература 1. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. М. : Наука, 1987. 598 с. 2. Решение алгебраических и трансцендентных уравнений : методические указания. Томск, 1989. 23 с. 3. Волков Е.А. Численные методы. М. : Наука, 1987. 248 с. 4. Турчак Л.И. Основы численных методов. М. : Наука, 1987. 318 с. 5. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1966. Т. 1. 632 с. 6. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. М. : Наука, 1972. 367 с. 7. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1976. Т. 1. 302 с. 8. Демидович Б.П., Марон И.А. Основы вычислительной математики. М. : Наука, 1966. 695 с. 9. Бобков В.В., Городецкий Л.М. Избранные численные методы решения на ЭВМ инженерных и научных задач. Минск : Высшая школа, 1985. 175 с.

102

4. Точные методы решения систем линейных алгебраических уравнений

4. ТОЧНЫЕ МЕТОДЫ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ 4.1. Общие замечания К основным проблемам линейной алгебры относятся следующие: решение систем линейных уравнений, вычисление определителей, нахождение элементов обратной матрицы, вычисление собственных значений и собственных векторов матриц. В данной главе рассмотрим первую задачу, решая вместе с ней вторую и третью. Задача решения систем линейных алгебраических уравнений (СЛАУ) часто встречается в приложениях. К решению систем линейных алгебраических уравнений приводятся: краевые задачи для обыкновенных дифференциальных уравнений и уравнений с частными производными, если их решать разностными методами [1, с. 357–570; 2, с. 193–243; 3, с. 205–291; 4, с. 237–451]; задача интерполяции и построение кубического сплайна [1, с. 194–203; 2, с. 63–68; 5, с. 21–76; 6, с. 46–149]; численное решение интегральных уравнений [1, с. 571–579; 3, с. 292–299; 4, с. 452–460] и др. Запишем систему линейных алгебраических уравнений в виде

Ax  b .

(4.1) n; – квадратная матрица порядка Здесь A T T x  ( x1 , x 2 ,…, xn ) , b  (b1 , b2 ,…, bn ) – вектор-столбец неизвестных и вектор-столбец правых частей соответственно. При этом x , b  H , где H – вещественное линейное n-мерное векторное пространство. Систему (4.1) можно записать в развернутом виде

103

Методы приближенных вычислений

a11 x1  a12 x2  …  a1n xn  b1 , a x  a x  …  a x  b ,  21 1 22 2 2n n 2  ……………………………………… an1 x1  an 2 x2  …  ann xn  bn .

(4.2)

Необходимым и достаточным условием существования единственного решения

 x1    x    x   n (4.1) или (4.2) является   det( A)  0 . Если   det( A)  0 , то система (4.1) или не имеет решения, или имеет бесчисленное множество решений. Проиллюстрируем эти случаи на примере системы ( n  2 ):

системы

a11 x1  a12 x2  b1 ,  a 21 x1  a 22 x2  b2 .

(4.3)

Каждое уравнение системы (4.3) задает на плоскости ( x1 , x2 ) прямую. Решением системы (4.3) являются координаты точки пересечения заданных прямых. В случае системы (4.3) возможны следующие три ситуации: а)  

a11

a12

a21

a22

 0. Тогда a11  a22  a21  a12

и прямые пересекаются в единственной точке (рис. 4.1, а); б)  

a11

a12

a21

a22

 0. Тогда a11  a22  a21  a12

и наклоны прямых равны. Прямые либо параллельны, либо совпадают (рис. 4.1, б); 104

4. Точные методы решения систем линейных алгебраических уравнений

х2

0

а 0

в 0

0

б

х1

Рис. 4.1

в)  

a11

a12

a21

a22

 0. В этом случае прямые почти параллельны

и координаты точки их пересечения чувствительны к ошибкам округлений. Другими словами, малые погрешности округлений могут привести к существенным изменениям в решении. Такие системы уравнений принято называть плохо обусловленными [4, c. 126–127]. Отметим, что близость  к нулю является необходимым, но не достаточным условием для плохой обусловленности системы (4.3). В теоретических исследованиях вводится число обусловленности матрицы, которое основывается на понятии нормы матрицы.

4.2. Некоторые сведения о нормах векторов и матриц Напомним, что решение системы (4.1) рассматриваем в вещественном линейном n-мерном векторном пространстве H. При этом матрицу А отождествляем с линейным оператором A: H  H . 105

Методы приближенных вычислений

В пространстве H можно ввести норму вектора несколькими способами [5, с. 80–87]:

1) x 1  max xi ; 1i  n n

2) x

2

  xi ;

(4.4)

i 1

3) x 3 

n

x

2 i

i 1

.

Нетрудно убедиться, что эти нормы удовлетворяют трем аксиомам норм [Там же, с. 83]. При решении задач линейной алгебры матрицы и векторы рассматриваются одновременно. Поэтому норму матрицы A определяют так, чтобы она была согласованной с нормой вектора x [Там же, c. 84]. Определение 1. Говорят, что норма матрицы A согласована с нормой вектора x , если для любого вектора x  H выполняется неравенство

Ax  A  x .

(4.5)

При получении оценок точности решения среди всех согласованных норм матрицы выбирают наименьшую

A  sup Ax .

(4.6)

x 1

Такая норма матрицы называется нормой, подчиненной норме вектора. Справедливы следующие утверждения [5, c. 85–86]: 1) если норма вектора x

x 1  max xi , 1i  n то подчиненная ей норма матрицы есть n

A 1  max  aij ; 1i  n

106

j 1

4. Точные методы решения систем линейных алгебраических уравнений

2) если норма вектора x

x

n

2

  xi , i 1

то подчиненная ей норма матрицы есть n

A 2  max  aij ; 1 j  n

i 1

3) если норма вектора x

x 3  x12  x22  …  xn2 , то подчиненная ей норма матрицы есть

A 3  1 , где 1 – наибольшее собственное значение матрицы AT  A . Определение 2. Число λ называется собственным значением матрицы A , если существует такой ненулевой вектор x  H , что справедливо

Ax  x .

(4.7)

Из (4.7) следует, что

Ax    x . С другой стороны, по определению нормы матрицы имеем

Ax  A  x . Тогда

A 

(4.8)

и неравенство (4.8) означает, что любая норма матрицы больше либо равна модулю произвольного своего собственного значения, в том числе

A  max  i . 1i  n

107

Методы приближенных вычислений

Определение 3. Число

  A  A 1

(4.9)

называется числом обусловленности матрицы A [4, с. 127]. При любой норме матрицы A число μ≥1 и чем оно больше, тем хуже обусловленность системы (4.1). Как следует из [4, с. 127], если   103 ,104  , то это уже означает плохую обусловленность. Заметим, что вычисление μ связано с нахождением обратной матрицы, а это не всегда легко сделать. Пример 1 (плохо обусловленная система). Пусть требуется решить систему линейных уравнений

25 x1  36 x2  1,  16 x1  23 x2  1

(4.10)

или

 25  36  , Ax  b , где A    16  23

x  ( x1 , x2 )T , b  (1,1)T . Решение. Так как

  det( A) 

25  36  1  0, 16  23

то решение системы существует и единственно. Непосредственной подстановкой в систему можно убедиться, что

x1  59, x2  41. Определим число обусловленности матрицы A . Имеем по определению 3

  A  A 1 . В нашем примере обратную матрицу A 1 найти просто: 108

4. Точные методы решения систем линейных алгебраических уравнений

  23 36  . A1     16 25  В качестве нормы матрицы выберем 2

A 1  max  aij . i 1,2

j 1

Тогда

A 1  61, A1  59 1

и число обусловленности матрицы

  A 1  A1  3599;   [103 ,10 4 ] . 1

Следовательно, система (4.10) является плохо обусловленной. Убедимся в этом непосредственно, изменяя коэффициенты матрицы A в пределах сотых долей. Получим следующие две системы:

25,01×1  35,99 x2  1,  15,99 x1  23,01×2  1,

(4.11)

25,01×1  36 x2  1,  15,99 x1  23,01×2  1.

(4.12)

Для системы (4.11) определитель   0 и решений нет, а для системы (4.12)   0,1599 и

x1  365,04315, x2  256,41025. Итак, малые погрешности в коэффициентах исходной системы привели к сильному изменению решения. В дальнейшем будем предполагать, что задача решения системы (4.1) корректно поставлена, что означает выполнение следующих двух условий: 109

Методы приближенных вычислений

1) решение системы (4.1) существует и единственно в H; 2) существует непрерывная зависимость решения x от входных данных A и b , т.е. малые изменения во входных данных приводят к малому изменению в решении. Корректность постановки задачи для систем линейных алгебраических уравнений

Ax  b выполняется, если: 1) число уравнений системы равно числу неизвестных, т.е. A – квадратная матрица порядка n , x , b  H – n -мерные вектора; 2)   det( A)  0; 3) число обусловленности  матрицы A удовлетворяет неравенству

1    A  A 1  10 3. Для решения систем линейных алгебраических уравнений существует много методов. Например, методы последовательного исключения неизвестных [1, с. 257–265; 2, с. 139–150; 3, с. 122– 133]; метод квадратного корня [4, с. 135–137; 6, с. 391–393]; метод отражений [1, с. 265–268]; метод простой итерации [1, с. 269–271; 2, с. 156–160; 5, с. 105–113; 6, с. 426–437]; метод Зейделя [3, с. 136–140; 5, с. 113–119; 6, с. 437–442; 10–12] и др. Указать самый эффективный из методов трудно, но можно провести их классификацию.

4.3. Классификация методов решения систем линейных алгебраических уравнений Если   det( A)  0 , то из (4.1) можно найти

x  A 1b , 110

(4.13)

4. Точные методы решения систем линейных алгебраических уравнений

где обратная матрица A 1 может быть вычислена по правилу

A21  An1   A22  An 2  .     A2 n  Ann 

 A11  ~ A ~  A12 1 A  , A    A  1n

(4.14)

Здесь Aij – алгебраические дополнения к элементам aij матрицы А. Кроме указанного метода решения систем вида (4.1), существует известное правило Крамера [7, с. 268–272], согласно которому неизвестные

xi 

i , i  1, n. 

(4.15)

Здесь  i – определитель, получающийся из  заменой i-го столбца столбцом свободных членов (b1 , b2 ,, bn ) T . Отметим, что решение системы (4.1) по правилу Крамера или по формулам (4.13)–(4.15) практически невыгодно, т.к. требует большого объема вычислений. Так, например, использование правила Крамера приводит к вычислению (n+1)-го определителя, а непосредственное развертывание определителя n -го порядка требует примерно n 3 арифметических операций [4, с. 130–131]. Если матрица исходной системы (4.1) имеет диагональный или треугольный вид, то решение системы (4.1) или (4.2) находится легко. В самом деле, пусть

 a11  0 A 0  0 

0 a22 0 0

 0    0  .  0    ann  111

Методы приближенных вычислений

Тогда если aii  0, имеем

xi 

bi , i  1, n. aii

В случае, когда матрица A является нижней треугольной, система (4.2) принимает вид

 b1 , a11 x1 a x  a x  b2 ,  21 1 22 2   an1 x1    ann xn  bn . Отсюда, если aii  0 , последовательно находятся x1 , x2 ,, xn по формулам

x1 

b1 , a11 b1  a21 a11 , a 22

b2  x2 

 n 1

xn 

bn   a nj x j j 1

a nn

.

Подобные формулы нахождения x1 , x2 ,, xn получаются и в случае, когда A есть верхняя треугольная матрица. В ряде методов решения систем линейных алгебраических уравнений используется идея приведения искомой матрицы A к упрощенному (диагональному или треугольному) виду. Все методы решения систем делятся на две группы: 112

4. Точные методы решения систем линейных алгебраических уравнений

1) точные или прямые методы; 2) итерационные методы или методы последовательных приближений. Здесь ограничимся рассмотрением точных или прямых методов. К точным методам относятся: 1) правило Крамера, расчетные формулы которого имеют вид (4.15); 2) метод исключения неизвестных Гаусса. Суть этого метода состоит в том, что матрица A искомой системы (4.1) сначала упрощается (приводится эквивалентными преобразованиями к треугольному или диагональному виду), а затем решается система с упрощенной матрицей. Метод Гаусса не вызывает теоретических затруднений, но скорость получения результатов и их точность зависят от принятой схемы вычислений. Некоторые схемы метода Гаусса будут рассмотрены ниже; 3) методы квадратного корня, отражений, вращений. Эти методы основаны на представлении матрицы A системы (4.1) в виде произведения двух матриц специального вида; 4) методы ортогонализации, сопряженных градиентов основываются на построении вспомогательной системы векторов, ортогональных в некоторой метрике пространства H . Перечисленные методы дают точный результат, если отсутствует неустранимая погрешность в исходных данных

A  (aij ), i, j  1, n; b  (b1 , b2 ,, bn )T и нет погрешности округлений. Таким образом, точные или прямые методы решения систем не имеют погрешности метода. Алгебраической основой методов исключения Гаусса и квадратного корня является LU-теорема [8, с. 39–41]. LU-теорема. Пусть дана невырожденная квадратная матрица A порядка n и Ak – главный минор матрицы, составленный из первых k строк и столбцов. Предположим, что det(Ak )  0 для

k  1,2, , n  1. Тогда существуют единственная нижняя тре113

Методы приближенных вычислений

угольная матрица L  (lij ) , где l11  l22    lnn  1 , и единственная верхняя треугольная матрица U  (uij ) , такие, что LU  A. Более того, det( A)  u11 unn . Доказательство. Используем метод математической индукции. Пусть n  1 . Тогда L  (l11 ),U  (u11 ), причем l11  1. Следовательно,

LU  1 u11 и представление

1 u11  a11 однозначно. При этом

det( A)  u11. Предположим, что теорема верна для n  k  1 . Для n  k разложим матрицы A , L , U на подматрицы:

C w 0 U L , L   k 1 . , U   k 1 a kk  u kk   m 1  0 r  (r1 , r2 ,, rk 1 ) – строка из ( k  1) элементов, A A   k 1  r

Здесь

 c1     c2  C  – столбец с ( k  1) компонентами, m – строка из     c   k 1  ( k  1) элементов, w – столбец с ( k  1) компонентами. Вычислим LU . Имеем L U LU   k 1 k 1  mU k 1

114

Lk 1 w  . mw  u kk 

4. Точные методы решения систем линейных алгебраических уравнений

Согласно предположению теоремы Lk 1U k 1  Ak 1 ,

Lk 1 , U k 1

определены однозначно. Кроме того, ни Lk 1 , ни U k 1 не вырождены, ибо в противном случае вырождена матрица Ak 1 , что противоречит предположению теоремы. Тогда, чтобы выполнялось LU  A , следует потребовать выполнения равенств

Lk 1w  C, mU k 1  r, mw  ukk  akk . Отсюда m, w, ukk выражаются единственным образом, а матрицы L и U определяются однозначно. При этом

det( A)  det( L)  det(U )  1 det(U k 1 )  ukk   u11  u22   uk 1,k 1  ukk . Теорема доказана. Следствие. Если A – симметричная положительно определенная матрица, то она имеет единственное разложение вида G  G T , где G – нижняя треугольная матрица с положительными диагональными элементами [8, с. 40].

4.4. Метод Гаусса последовательного исключения неизвестных Запишем систему линейных алгебраических уравнений (4.1) в виде n

a j 1

( 0) ij

x j  ai(,0n)1 , i  1, n ,

(4.16)

где aij( 0 ) – элементы матрицы A , ai(,0n)1  bi – компоненты векторстолбца b . Для решения системы (4.16) воспользуемся методом Гаусса последовательного исключения неизвестных (схема единственного деления). 115

Методы приближенных вычислений

Метод Гаусса последовательного исключения неизвестных можно изложить с помощью LU-теоремы. Используя разложение матрицы A исходной системы на произведение левой и правой треугольных матриц, решение исходной системы сводят к последовательному решению двух систем с треугольными матрицами. Подробное изложение алгоритма такого подхода можно найти в [1, с. 257–261]. В настоящей работе остановимся на другом подходе реализации метода Гаусса. Суть его в том, что последовательно исключаются неизвестные x1 , x2 ,, xn , и задача сводится к решению системы с треугольной матрицей, эквивалентной исходной системе. Рассмотрим алгоритм данного подхода для случая n  3 [1, с. 257, 258; 2, с. 139–143] и др. Если ведущий элемент a11  0 , то, поделив коэффициенты первого уравнения системы (4.16) на этот коэффициент, преобразуем уравнение к виду ( 0)

x1  a12(1) x2  a13(1) x3  a14(1) , где a1(1j) 

a1( 0j ) a11( 0 )

(4.17)

, j  2,4.

Далее умножим каждый член (4.17) на ai(0) ,1 ,

i  2,3 , и вычтем

его из соответствующего i -го уравнения системы (4.16). В результате получится система из двух уравнений, в которой отсутствует x1 : 3

a j 2

(1) ij

x j  ai(,14) ,

(4.18)

где aij  aij  ai ,1 a1, j , i  2,3; j  2,4 . (1)

(0)

(0)

(1)

(1)

Если в полученной системе уравнений (4.18) коэффициент a22 (1)

при x2 ( a22 – ведущий элемент) не равен 0, то преобразуем это уравнение по правилу, указанному выше: делим коэффициенты (1)

при неизвестных на a22 . В результате получим 116

4. Точные методы решения систем линейных алгебраических уравнений ( 2) ( 2) x2  a23 x3  a24 , (1) где a 2( 2j)  a 2(1j) a 22 ,

(4.19)

j  3,4.

Умножим левую и правую части (4.19) на ai(1) i  3 , и вычтем ,2 , из i -го уравнения системы (4.18). В результате получим одно уравнение с одним неизвестным x3 : ( 2) ( 2) a33 x3  a34 ,

(4.20)

где aij( 2 )  aij(1)  ai(,12) a 2( 2, j) , i  3, j  3,4 . ( 2) Если a33  0, то из уравнения (4.20) определяется неизвестная величина (3) x3  a34 ,

(4.21)

( 3) ( 2) ( 2)  a34 / a33 . где a34 В результате проведенных преобразований получилась система линейных алгебраических уравнений с треугольной матрицей, состоящая из уравнений (4.17), (4.19), (4.21). Матрица коэффициентов при неизвестных x1 , x2 , x3 в уравнениях этой системы имеет следующий вид:

 1 a12(1)  B  0 1 0 0 

a13(1)   ( 2) a23 . 1 

(4.22)

Указанная система в векторной форме записывается так:

Bx  c ,

(4.23)

(1) ( 2) ( 3) T где B имеет вид (4.22), c  (a14 , a24 , a34 ) . Отметим, что переход от исходной системы уравнений (4.16) к системе (4.23) с треугольной матрицей называется прямым ходом схемы Гаусса.

117

Методы приближенных вычислений

Обратный ход схемы Гаусса состоит в определении компонент вектора решения x . Для этого надо решить систему (4.23) с треугольной матрицей. Сначала определяется неизвестное x3 по формуле (4.21), затем находят x2 , x1 . Соответствующие расчетные формулы для определения x2 и

x1 определяем из уравнений (4.19) и (4.17) соответственно: ( 2) ( 2) x2  a24  a23 x3 ,

x1  a14(1)  a12(1) x2  a13(1) x3 .

(4.24) (4.25)

Аналогичным образом решается система (4.16) любого порядка n . ( 0)

( k 1) Если a11 , а также ведущие элементы a kk , k  2, n , остальных строк, полученные в процессе исключения неизвестных, отличны от нуля, то система (4.16) приводится к треугольному виду [2, с. 143]:

xk 

n

a

j k 1

(k ) kj

x j  ak( k,n)1 , k  1, n.

(4.26)

Ведущие элементы и коэффициенты системы (4.26) определяются по формулам

aij( k 1)  aij( k 2)  ai(,kk21) ak( k1,1j) , i  k , n; j  k , n  1; (4.27) a kj( k ) 

a kj( k 1) a kk( k 1)

, j  k  1, n.

Обратный ход схемы Гаусса, в котором неизвестные определяются в обратном порядке, проводится по следующим формулам:

xn  an( n,n)1 , xk  ak( k,n)1 

n

a

j  k 1

(k ) kj

x j , k  n  1, n  2,,1.

Вычисления в прямом и обратном ходе схемы Гаусса выполняются по следующему алгоритму: 118

4. Точные методы решения систем линейных алгебраических уравнений

1) на первом шаге определяют коэффициенты a1 j , j  1,4 , по (1)

формуле (4.17); 2) вычисляют aij , i  2,3; j  2, 4 , по формуле (4.18); (1)

3) далее находят a2 j , j  2, 4 , по формуле (4.19); (2)

4) вычисляют коэффициенты aij( 2 ) , i  3, j  3,4 , с помощью (4.20); 5) на этом шаге завершается прямой ход схемы Гаусса определением a3( 3j) , j  4 по формуле (4.21); 6) определяют неизвестную x3 по формуле (4.21); 7) неизвестную x2 находят по формуле (4.24); 8) на этом шаге завершается обратный ход схемы Гаусса определением x1 по формуле (4.25). Для контроля правильности вычислений коэффициентов в прямом ходе названной схемы можно поступить следующим образом. С помощью элементов исходной расширенной матрицы A системы (4.16) определяют три следующие суммы:

( 0)

1, j

4

  a1(0j ),; j 1

(0) 2, j

4

  a2( 0j),; j 1

( 0)

3, j

4

  a3(0j ) . j 1

Далее на каждом из первых пяти шагов алгоритма находят со (k ) (k ) и  ( k ) . Заметим, что элементы поответственно  лучаются как суммы элементов aij( k ) , k  1,2,3.  (k ) вычисля-

ют по тому же правилу, что и каждый из элементов на соответствующем шаге. Приведем эти формулы для каждого шага: 1)

(1) 1, j

4

 1   a1(,1j) ; j 2

    a (1) 1, j

4

j 1

( 0) 1j

a11(0) ;

119

Методы приближенных вычислений

2) 3) 4)

4

(1) ij

  aij(1) , i  2,3;

( 2) 2j

 1   a2( 2j) ;

( 2) 3, j

j 2

4

j 3

    (1) ij

    ( 2) 2, j

   

4

  a3( 2j ) ;

( 2) 3, j

j 3

(1) 3, j

(1) 2, j

(0) ij

 ai(10 )   1(1j) , i  2,3;.

(1) a22 .

(1)  a32   3(1,)j ;

 ( 2)  1  a 3( 3, 4) ;  3( 3, )j   3( 2, j) a 33 . Если вычисления ведутся с постоянным числом знаков после  запятой, то  (k ) и  (k ) не должны отличаться друг от друга 5)

( 3) 3, j

более, чем на несколько единиц последнего разряда в силу линейности расчетных формул. В противном случае следует проверить правильность проведенных расчетов. Для контроля правильности полученных значений x1 , x2 , x3 можно поступить двояко: 1) подставить значения xi , i  1,2,3 , во все уравнения системы (4.16) и убедиться, что полученные значения удовлетворяют этой системе; ( 3) Очевидно, что 2) определить неизвестную x3  3, j .

( 2) x3  x3  1. Далее, если в формулу (4.24) для x2 вместо a24 подставить  (22, )j , а вместо x3 соответственно x3 , то получится

x2  x2  1 . Наконец, подставляя в формулу (4.25) вместо a14(1)  1(1, )j и вместо x2 и x3 соответственно x2 и x3 , определяют x1 , причем x1  x1  1. Замечание 1. Нетрудно проверить, что вычисления, проводимые в прямом ходе метода Гаусса, требуют  2n 3 арифметических операций [1, с. 258]. 3

120

4. Точные методы решения систем линейных алгебраических уравнений

4.5. Метод Гаусса с выбором главного элемента Заметим, что в методе последовательного исключения Гаусса вычисления возможны, если ведущие элементы системы akk( k 1)  0 . Добиться выполнения этого условия можно, переставляя элементы строк и столбцов матрицы. Но среди ведущих элементов могут оказаться очень маленькие по абсолютной величине. При делении на такие ведущие элементы получается большая погрешность округления (вычислительная погрешность). Чтобы избежать сильного влияния вычислительной погрешности на решение, применяется метод Гаусса с выбором главного элемента [2, с. 148–150; 9, с. 55]. Изложим основную идею этого метода. Рассмотрим систему (4.16). Запишем расширенную прямоугольную матрицу коэффициентов системы:

 a11( 0)  ( 0)  a21   S   ( 0)  am1    a ( 0)  n1

a12( 0 ) (0) a22  am( 02)  an( 02)

     

a1(l0) a2( 0l )  ( 0) aml  anl( 0)

     

a1(n0 ) a2( 0n)  (0) amn  (0) ann

a1(,0n)1   a2( 0,n)1     . am( 0,)n1     an( 0,n)1 

Среди элементов матрицы aij( 0 ) ,(i, j  1, n), выберем наибольший по модулю, называемый главным, элемент. Например, пусть ( 0) им будет элемент aml . Строка с номером m , содержащая главный элемент, называется главной строкой. Далее вычисляем множители mi  

ail( 0) для всех i  m . (0) aml

Затем матрица S преобразуется так: к каждой i-й, не главной строке прибавим почленно главную строку, умножив её на mi . 121

Методы приближенных вычислений

В результате получим матрицу, у которой все элементы l-го ( 0) , равны 0. Отбрасывая этот столбец и столбца, за исключением aml главную строку, получаем новую матрицу S1 с меньшим на единицу числом строк и столбцов. Над матрицей S1 повторяем те же операции, после чего получаем матрицу S 2 и т.д. Эти преобразования продолжаются до тех пор, пока не получится матрица, содержащая одну строку из 2 элементов, которая тоже считается главной. Затем объединяем все главные строки, начиная с последней. После некоторой перестановки они образуют треугольную матрицу, эквивалентную исходной. На этом заканчивается прямой ход метода Гаусса с выбором главного элемента. Далее находим xi , i  1, n , решая систему с треугольной матрицей. Это обратный ход. Контроль правильности вычислений в методе Гаусса с выбором главного элемента осуществляется аналогично ранее описанному в методе последовательного исключения неизвестных.

4.6. Схема Жордана При решении системы линейных алгебраических уравнений по схеме Жордана [6, с. 381–383] матрица системы приводится к диагональному виду и обратный ход значительно облегчается. Когда система решалась по схеме Гаусса (последовательного исключения неизвестных или с выбором главного элемента), то на каждом шаге число уравнений уменьшалось на единицу. В схеме Жордана оставляют все уравнения, но при выборе главного элемента не учитываются коэффициенты тех уравнений, из которых уже выбирался главный элемент. По сути все вычисления в схеме Жордана аналогичны вычислениям в схеме Гаусса с выбором главного элемента, за исключением сделанного замечания. Контроль правильности вычислений здесь аналогичен вышеуказанному. 122

4. Точные методы решения систем линейных алгебраических уравнений

4.7. Метод прогонки Метод прогонки является частным случаем метода Гаусса и применяется к системам с трех и пяти диагональной матрицей [2, с. 161–166]. Такие системы часто встречаются при численном решении краевых задач для дифференциальных уравнений второго порядка, при моделировании некоторых инженерных задач. Примером подобной системы является система, которая получается при построении кубического сплайна [1, с. 194–203]. Если при решении таких систем применять метод Гаусса, то расчет можно организовать таким образом, чтобы не включать нулевые элементы матрицы. Этим самым экономится требуемая память и уменьшается объем вычислений. Указанное ускорение вычислений допускают системы линейных алгебраических уравнений с ленточными, блочными, квазитреугольными, почти треугольными и другими матрицами [4, с. 132, 133]. Запишем систему в каноническом виде [Там же, с. 133]:

ai xi1  bi xi  ci xi 1  d i , 1  i  n,

(4.28)

где a1  cn  0. В векторной форме она запишется так:

Ax  d ,

(4.29)

где

d  ( d 1 ,, d n ) T ;   b1   a2  0 A   0   0 

c1  b2 a3

0 c2  b3

 0 0

 0 0

0  0 0  0 c3  0    0  an1 0  0

0 0 0   bn1 an

0   0  0  .  cn1   bn  123

Методы приближенных вычислений

Предполагается, что bi  0, i  1, n. Метод прогонки состоит из двух этапов: прямой прогонки и обратной прогонки. На первом этапе определяются прогоночные коэффициенты, а на втором – находят неизвестные x1 , x2 ,, xn . Если в системе (4.29) выразить из первого уравнения x1 через

x2 , а затем подставить выражение x1 во второе уравнение, связывающее x1 , x2 , x3 , то получим уравнение относительно x2 и x3  c1  d  a2  b2  x2  c2 x3  d 2  a2 1 . b1  b1 

(4.30)

Из этого уравнения можно получить выражение x2 через x3 . Далее, рассуждая аналогично, подставим в i-е уравнение системы (4.29) выражение xi 1 через xi , полученное из (i–1)-го уравнения, и затем выразим xi через xi 1 . В этом выражении в правой части при xi 1 будет стоять некоторый коэффициент и свободный член. Если определить неизвестную xi 1 , то из формулы, связывающей xi и xi 1 , легко найти xi . Зная xi , определяем xi 1 и т.д., пока не найдем значение x1 . В силу сказанного основу метода прогонки составляет так называемая прогоночная формула

xi 1  Pi 1 xi  Qi 1 , i  2, n ,

(4.31)

где P, i Qi – прогоночные коэффициенты. Для вычисления P, i Qi используются следующие формулы:

Pi  124

ci  di  aiQi 1 , Qi  , i  2, n  1,  ai Pi 1  bi  ai Pi 1  bi

(4.32)

4. Точные методы решения систем линейных алгебраических уравнений

P1 

c1 d , Q1   1 . b1 b1

(4.33)

В прямой прогонке, как уже было сказано, последовательно находим P1 ,Q1 из (4.33), P2 , Q2 , P3 , Q3 ,…, Pn1 , Qn1 из (4.32). Далее осуществляем обратную прогонку. Вначале запишем прогоночную формулу при i  n :

xn1  Pn1 xn  Qn1 ,

(4.34)

и добавим сюда соотношение, которое получается из последнего уравнения системы

an xn1  bn xn  d n или xn1 

bn d xn  n . an an

Итак, имеем

 xn1  Pn1 xn  Qn1 ,  dn bn   xn1  a xn  a . n n 

(4.35)

Из (4.35) легко определить

xn 

d n  Qn1  a n ,  bn  Pn1  a n

а затем xn1 из (4.35). Далее определяются xn2 ,…,x1 из прогоночной формулы (4.31). Итак, решение системы (4.28) методом прогонки найдено. Покажем теперь, что при выполнении условия преобладания диагональных элементов у матрицы A системы (4.29)

bi  ai  ci ,

(4.36)

причем хотя бы для одного i имеет место строгое неравенство, в формулах прямой прогонки (4.32), (4.33) не возникает деления на нуль и исходная система (4.28) имеет единственное решение. Для 125

Методы приближенных вычислений

этого предположим, что Pi 1  1 при некотором значении индекса. Тогда легко проверяется цепочка неравенств

Pi  ci bi  ai Pi 1  ci  ci

c

i

 ai  ai  Pi 1

В силу того что P1  ческой

индукции

b  a   1. i

i

 Pi 1  

c1 , очевидно, P1  1 и методом математиb1

легко

показать,

что

Pi  1 ,

значит,

bi  ai Pi 1  ci  0. Что и требовалось показать. При выполнении условия (4.36) в прогоночных формулах не происходит деления на нуль и они устойчивы относительно ошибок округления [2, с. 163–165]. Условие устойчивости прогонки (4.36) достаточное, но не необходимое.

4.8. Вычисление определителей и обратных матриц При решении системы линейных алгебраических уравнений методом Гаусса и его модификациями можно попутно вычислить определитель системы следующим образом. В прямом ходе метода Гаусса матрица A системы (4.1) при условии, что ведущие элементы всех строк отличны от 0, приводится к треугольному виду. Последний получается после деления соответствующих строк на их ведущие элементы и последующего вычитания таких нормированных строк, умноженных на соответствующие числа, из других строк матрицы. При этом определитель матрицы тоже делится на соответствующий ведущий элемент, а последующие операции (умножения и вычитания) не меняют значения определителя матрицы A [2, с. 146–147; 6, с. 381; 7, с. 283–284]. В результате выполнения прямого хода схемы Гаусса получим систему (4.23) с треугольной матрицей, у которой определитель 126

4. Точные методы решения систем линейных алгебраических уравнений

равен 1. Последний получается в результате деления det( A) на (0) (1) ( n 1) , т.е. ведущие элементы a11 , a 22 ,…, a n( n1,2n)1 , a nn

1

det( A) (1) ( n 1) a a22  a nn ( 0) 11

или (1) ( n 1) det( A)  a11( 0 ) a 22  a nn .

При решении системы методом Гаусса и его модификациями можно попутно вычислить определитель системы. Если стоит задача найти только определитель заданной матрицы A , то вычисления проводятся по схеме, соответствующей прямому ходу метода Гаусса и его модификаций. При этом отсутствуют действия над столбцом правых частей системы. Число арифметических действий, выполняемых при вычислении определителя матрицы A с помощью этих методов, равно 

2 3 n . 3

Замечание 2. В случае, когда при решении системы (4.1) применяется метод Гаусса с выбором главного элемента или схема Жордана, рассуждая аналогично сказанному, получим, что det( A) равен произведению главных элементов. Остановимся на вопросе об определении элементов матрицы 1 A [2, с. 147–148; 6, с. 379–380; 7, с. 285–286]. Пусть дана невырожденная матрица A  (aij ), i, j  1, n . Элементы обратной A 1 матрицы будем обозначать xij , i, j  1, n . Очевидно, что

A  A1  E ,

(4.37)

где E – единичная матрица, т.е. n

a k 1

ik

xkj   ij , i, j  1, n ,

(4.38)

127

Методы приближенных вычислений

1, i  j;  ij   0, i  j. Запишем (4.38) более подробно:

j  1; j  2;

1, i  1, xk1   i ,1 , i  1, n;  i ,1   k 1 0, i  1; n 1, i  2, aik xk 2   i , 2 , i  1, n;  i , 2    k 1 0, i  2; n

a

ik

……………………………………………………………………. j  n;

n

a k 1

ik

1, i  n;, xkn   i ,n , i  1, n;  i ,n   0, i  n.

Получаем n систем из n линейных алгебраических уравнений, содержащих n2 неизвестных. Все эти системы имеют одну и ту же матрицу A и отличаются между собой лишь свободными членами. В силу того что при решении системы по методу Гаусса основные вычисления производятся над матрицей коэффициентов, то решение полученных n систем можно объединить в одной схеме и рассматривать одновременно n столбцов свободных членов. Естественно, что решение поставленной задачи предполагает использование компьютера.

4.9. Метод квадратного корня В изложенных выше схемах метода исключения Гаусса можно сделать ряд упрощений, если матрица A исходной системы (4.1) является симметрической. Однако в случае симметрической матрицы удобным методом решения системы является метод квадратного корня [4, с. 135–137; 5, с. 99–101; 6, с. 391–393; 7, с. 287–290]. Суть метода квадратного корня заключается в следующем. Пусть дана линейная система (4.1), где A  ( aij ) – симметрическая 128

квадратная

матрица

порядка

n,

т.е.

4. Точные методы решения систем линейных алгебраических уравнений

AT  (a ji )  A, b  (b1 ,…, bn ) T – вектор правых частей системы,

x  ( x1 ,…, xn )T – вектор-столбец неизвестных. Решение системы (4.1) проведем в два этапа. I этап (прямой ход). Согласно следствию из LU-теоремы представим матрицу A в виде

A  G GT ,

(4.39)

где G – нижняя треугольная матрица, G по отношению к G матрица. Пусть

 g11  g G   12   g  1n

0

0

g 22

0

g 2n

g 3n

T

– транспонированная

0    0  .     g nn  

Тогда, производя перемножение матриц G и G T , получим следующие уравнения для определения элементов g ij матрицы G :

g1i g1 j  g 2i g 2 j  …  g ii g ij  aij , i  j; g12i  g 22i  …  g ii2  aii .

(4.40)

Отсюда последовательно находим

g11  a11 , g1 j 

a1 j g11

, j  1;

i 1

g ii  aii   g ki2 , 1  i  n; k 1

(4.41)

i 1

g ij 

aij   g ki g kj k 1

g ii

, i  j;

g ij  0, i  j. 129

Методы приближенных вычислений

Если gii  0 , то det( A)  det(G )  det(G T )  ( g11  g 22  …  g nn ) 2  0

и система (4.1) имеет единственное решение. Заметим, что при действительных aij могут получиться чисто мнимые g ij . Формально метод применим и в этом случае. Если же матрица A является положительно определенной, то мнимых g ij не будет. II этап (обратный ход). В силу соотношения (4.39) система (4.1) эквивалентна двум системам с треугольной матрицей (4.42) Gy  b , GT x  y . Или в развернутом виде:

 g11 y1  b1 , g y  g y  b ,  12 1 22 2 2  ………. ………. ……..   g1n y1  g 2 n y 2  …  g nn y n  bn ,

(4.43)

и

 g11 x1  g12 x2  …  g1n xn  y1 ,  g 22 x2  …  g 2 n xn  y 2 ,   …………………………….   g nn xn  y n .

(4.44)

Из (4.43) последовательно находим y1 , y2 ,…, yn , ведя расчеты «сверху вниз» по формулам b y1  1 , g11 i 1 (4.45) bi   g ki y k k 1 yi  , i  1. g ii 130

4. Точные методы решения систем линейных алгебраических уравнений

Затем из (4.44) «снизу вверх» по найденным y1 , y2 ,…, yn последовательно находим xn , xn1 ,…, x1 , пользуясь формулами

xn 

xi 

yn , g nn yi 

n

g

k i 1

g ii

ik

xk

(4.46)

, i  n.

При вычислениях по методу квадратного корня производится обычный контроль с помощью сумм, как и в методе Гаусса. При составлении сумм учитываются все коэффициенты соответствующей строки. По сравнению с описанными выше методами решения систем данный метод дает выигрыш во времени, в силу того что: 1) существенно уменьшает число операций умножения и деления. По данному методу требуется произвести n операций извлечения квадратного корня (отсюда и название метода) и 

n3 опе6

раций умножения и деления (для больших n это почти в два раза меньше, чем в методе исключения Гаусса); 2) при расчетах на ПЭВМ позволяет экономить память машины, так как матрица A – симметрическая. В вычислительной схеме можно записывать

g ij (i  j ) .

n  ( n  1) верхних коэффициентов aij и 2

Кроме того, метод квадратного корня, как и изложенные выше методы, дает возможность найти det( A)  ( g11  g 22  …  g nn ) 2 . Для вычисления определителя достаточно провести прямой ход по формулам (4.41).

131

Методы приближенных вычислений

4.10. Дополнение Выбор определенного метода решения систем линейных алгебраических уравнений производится в каждом конкретном случае в зависимости от вида матрицы A , её особенностей, а также от используемой вычислительной техники. Если вычисления ведутся с помощью калькулятора, то для сокращения записи промежуточных результатов при решении систем линейных алгебраических уравнений используют компактную схему Гаусса и модификацию Краута–Дулитла [9, с. 48–54]. При работе на калькуляторе удобна также схема Халецкого [Там же, с. 60–63]. В ней получение расчетных формул основано на представлении матрицы A (невырожденной, квадратной) системы (4.1) в виде произведения двух треугольных матриц согласно LUтеореме. Для уменьшения влияния погрешности округления в прямых методах следует отдать предпочтение методу Гаусса с выбором главного элемента. Количество арифметических операций в методе Гаусса и его модификациях приблизительно одинаково. В случае, когда A – симметрическая матрица, для экономии памяти компьютера следует применять метод квадратного корня. Для систем с трех- и пятидиагональной матрицей можно применять каждый из вышеописанных методов. Если исходить из соображений экономичности, то следует отдать предпочтение методу прогонки. При этом затрачивается всего 8  ( n  1)  9 арифметических действий, т.е. число операций линейно зависит от числа неизвестных [2, с. 164]. При решении систем линейных алгебраических уравнений с помощью метода Гаусса и его модификаций, а также метода квадратного корня число действий приблизительно пропорционально кубу числа неизвестных.

132

4. Точные методы решения систем линейных алгебраических уравнений

4.11. Решение варианта задания Пример 2. Методом квадратного корня решить систему уравнений:

x2  x3  4, 3,2 x1   x3  4,5,  x1  3,7 x2   x  x2  4,2 x3  4. 1 

(4.47)

Решение. Все вычисления помещаем в табл. 4.1. Прямой ход 1. В первый раздел таблицы записываем коэффициенты системы и свободные члены. 2. Суммируем элементы по каждой строке и получаем величины n

Si   aij  bi , i  1, n, n  3, j 1

которые записываем в последнем столбце табл. 4.1, I. 3. Находим g ij с помощью формул

g11  a11 , g12 

a a12 , g13  13 , g11 g11

g 22  a22  g122 , g 23 

a23  g12  g13 , g 22

(4.48)

2 g 33  a33  g132  g 23 .

Последовательно получаем:

g11  1,78885; g12  0,55902; g13  0,55902; g 22  1,84052; g 23  0,37353; g 33  1,93597. 133

Методы приближенных вычислений

4. По формулам, аналогичным (4.48), вычисляем

S1 9, 2   5,14297;, g11 1, 78885 S  g12  S1 10, 2  5,14297  0,55902   3,97984;, S 2  2 g 22 1,84052 S  g13  S1  g 23  S 2  S3  3 g33 S1 

10, 2  0,55902  5,14297  0,37353  3,97984  3, 01574. 1,93597 Обратный ход

5. По формулам (4.45) находим y1 , y2 , y3 :

y1 

b1 4   2, 23607;, g11 1, 78885

y2 

b2  g12  y1 4,5  0,55902  2, 23607   1, 76580;, g 22 1,84052

y3 

b3  g13  y1  g 23  y2  g33

4  0,55902  2, 23607  0,37353 1, 76580  1, 07974. 1,93597

Полученные y1 , y2 , y3 помещаем в табл. 4.1, II, где записаны g ij и

Si . 6. Проводим контроль вычислений. Для этого находим суммы:

134

4. Точные методы решения систем линейных алгебраических уравнений

g11  g12  g13  y1  5,14296;, g 22  g 23  y 2  3,97985;, g 33  y3  3,01577. Сравниваем их с S1, S 2 , S3 . Видим, что результаты совпадают до 105. Переходим к последнему этапу. 7. По формулам (4.46) находим x3 , x2 , x1 :

x3 

y3 1, 07974   0,55772;, g33 1,93597

x2 

y2  g 23  x3 1, 7658  0,37353  0,55772   0,84621;, g 22 1,84052

x1 

y1  g12  x2  g13  x3  g11

2, 23607  0,55902  0,84621  0,55902  0,55772  0,81127. 1, 78885 Полученные значения x1 , x2 , x3 записываем в табл. 4.1, III. 

8. Найденные значения x1 , x2 , x3 подставляем в исходную систему. Получаем

3, 2 x1 

x2 

x1  3, 7 x2  x1 

x3  3,999994, x3  4, 49997,

x2  4, 2 x3  3,999904.

Сравнение полученных правых частей с b1 , b2 , b3 показывает, что отличие наблюдается в пятом разряде после запятой, что вполне допустимо.

135

Методы приближенных вычислений Т а б л и ц а 4.1

I

a11

a12

a13

b1

S1

3,2

1,0

1,0

4,0

9,2

a12

a22

a23

b2

S2

1,0

3,7

1,0

4,5

10,2

a13

a23

a33

b3

S3

1,0

1,0

4,2

4,0

10,2

1,789

0,559

0,559

2,236

5,143

1,841

0,374

1,766

3,98

1,936

1,08

3,016

g11 II

x1

III

g12

g13

y1

S1

g 22

g 23

y2

S2

g33

y3

S3

x2

x3

0,811

0,846

0,558

Пример 3. Решить систему линейных алгебраических уравнений, используя метод Гаусса с выбором главного элемента:

Ax  b , где

 0,8144 5,1518 2,1413   A   5,1518 0,8114 1,4656 ;,  2,1413 1,4656 5,1681  

 0,540    b   0,221;,  0,121   

A – симметрическая матрица. Решение. Будем использовать табл. 4.2. Т а б л и ц а 4.2

mi

ai(1k )

ai(2k )

ai(3k )

ai(4k )

–0,414 –0,284

0,814 5,152 2,141 –0,073 4,545 4,551

5,152 0,811 1,466 4,545 0,396 0

2,141 1,466 5,168 0 0 0

0,540 0,221 0,121 0,49 0,187 0,144

–0,087

136

(k )

8,646 7,65 8,896 4,962 5,127 4,695

  (k )

4,962 5,127 4,695

4. Точные методы решения систем линейных алгебраических уравнений

Выпишем треугольную матрицу B системы (4.23), которая получается в результате применения схемы Гаусса с выбором главного элемента:

 2,14130 1,46560 5,16810    B    0,07280 4,54456 0 .  4,55089 0 0   Решая эту систему «снизу вверх», последовательно определим:

4,55089×1  0,14403;, x1  0,03165;,  0,0728×1  4,54456 x2  0,48987;, x2  0,10830;, 2,1413×1  1,4656 x2  5,1681×3  0,121;, x3  0,02041. Для проверки правильности обратного хода схемы вычислим соответствующие xi , i  1,3 :

4,55089 x1  4,69492;, x1  1,03165,;  0,0728×1  4,54456 x2  4,96163; x2  1,10829;, 2,1413×1  1,4656 x2  5,1681×3  8,896;, x3  0,97959. Сравнивая xi и xi , i  1,2,3 , видим, что

x1  x1  1;, x2  x2  0,99999;, x3  x3  1, т.е. x1 , x3 отличаются от x1 , x3 на 1, а x2 и x2 – на 0,99999. Это вполне допустимая точность вычислений.

137

Методы приближенных вычислений

Замечание 3. Пояснения к табл. 4.2, приведенной выше, можно посмотреть в [9, с. 48], а смысл обозначений, используемых в табл. 4.2, в разделе 4 данной главы.

4.12. Лабораторные задания Задание. Решить систему линейных алгебраических уравнений, применяя один из точных методов. В вариантах заданий № 1–23 предполагается, что матрица A – симметрическая. Вариант № 1.

 1,1161   0,1254 A 0,1397   0,1490 

0,1254 1,1675 0,1768 0,1871

0,1397 0,1768 2,2168 0,2271

0,1490   0,1871  , 0,2271  1,2671 

 0,01     0,02  . b  0,03     0,04   

0,1582 1,1652 0,2071 0,2471

0,1968 0,2071 1,2168 0,2568

0,2368   0,2471  , 0,2568   1,2671 

 0,22     0,33  . b  0,44     0,55   

0,1582 1,1652 0,2071 0,2471

0,1968 0,2071 2,2168 0,2568

0,2368   0,2471  , 0,2568   1,2671 

 0,90     0,18  . b  1,32     1,42   

Вариант № 2.

 1,1161   0,1582 A 0,1968   0,2368  Вариант № 3.

 1,1161   0,1582 A 0,1968   0,2368  138

4. Точные методы решения систем линейных алгебраических уравнений

Вариант № 4.

 2,1161   0,1582 A 0,1968   0,2368 

0,1582 1,1652 0,2071 0,2471

0,1968 0,2071 1,2168 0,2568

0,2368   0,2471  , 0,2568   1,2671 

 1,25     1,50  . b  1,75     2,00   

0,1582 2,1652 0,2071 0,2471

0,1968 0,2071 1,2168 0,2568

0,2368   0,2471  , 0,2568   1,2671 

 0,15     0,20  . b  0,25     0,40   

0,1254 2,1675 0,1768 0,1871

0,1397 0,1768 1,2168 0,2271

0,1490   0,1871  , 0,2271  1,2671 

 0,36     0,37  . b  0,38     0,39   

Вариант № 5.

 1,1161   0,1582 A 0,1968   0,2368  Вариант № 6.

 1,1161   0,1254 A 0,1397   0,1490  Вариант № 7.

 2,50758  0,12305  1,01148  0,37834    1,33221  0,26142  0,44745    0,12305 , A 2,53183 0,44560   1,01148  0,26142     0,37834  0,44745 0,44560 2,00855    0,76     0,77  . b  0,78     0,79    139

Методы приближенных вычислений

Вариант № 8.

 1,2112  0,4621 0,1628    A    0,4621 1,1687 0,0157 ,  0,1628 0,0157  1,0270  

  0,27    b   0,49 .  1,24   

Вариант № 9.

 1,1161 0,1254 0,1397    A   0,1254 1,1675 0,1768 ,  0,1397 0,1768 1,2168   

 0,06    b   0,07 .  0,08   

Вариант № 10.

 1,1161 0,1254 0,1490    A   0,1254 1,1675 0,1768 ,  0,1490 0,1768 1,2168   

 3,29    b   4,44 .  5,46   

Вариант № 11.

 1,1161 0,1582 0,1968    A   0,1582 1,1652 0,2071,  0,1968 0,2071 1,2168   

 2,18    b   2,01.  2,31  

Вариант № 12.

 3,50758  0,12305  1,01148    A    0,12305 2,33221  0,26142 ,   1,01148  0,26142 2,53183    140

1,25    b  1,46 . 1,92   

4. Точные методы решения систем линейных алгебраических уравнений

Вариант № 13.

  1,0211 0,4600 0,1628    A   0,4600 1,1686 0,0057 ,  0,1628 0,0057 1,0097   

  5,47    b   1,23 .  7,33   

Вариант № 14.

 2,1161 0,1254 0,1397    A   0,1254 1,1675 0,1768 ,  0,1397 0,1768 1,2168   

 0,77    b   0,88 .  0,99   

Вариант № 15.

 5,1313 1,1617 2,1426    A   1,1617 0,8144 5,1518 ,  2,1426 5,1518 4,4656   

 5,90    b   5,40 .  2,21  

Вариант № 16.

  0,2112  1,4600 0,1628    A    1,4600 0,1687 0,0157 ,  0,1628 0,0157  1,0094  

 9,31    b    0,57 .   0,21  

Вариант № 17.

 2,50758  0,12305  1,01148    A    0,12305 1,33221  0,26142 ,   1,01148  0,26142 2,53183   

 0,76    b   0,77 .  0,78    141

Методы приближенных вычислений

Вариант № 18.

 1,1161 0,1254 0,1397    A   0,1254 2,1675 0,1768 ,  0,1397 0,1768 1,2168   

 0,36    b   0,37 .  0,38   

Вариант № 19.

 1,1161 0,1582 0,1968    A   0,1582 2,1652 0,2071,  0,1968 0,2071 1,2168   

 0,15    b   0,16 .  0,17   

Вариант № 20.

 2,1161 0,1582 0,1968    A   0,1582 1,1652 0,2071,  0,1968 0,2071 1,2168   

 0,125    b   0,150 .  0,175   

Вариант № 21.

 1,1161 0,1582 0,1968    A   0,1582 1,1652 0,2071,  0,1968 0,2071 2,2168   

 0,090    b   0,018 .  0,132   

Вариант № 22.

 1,1161 0,1582 0,1968    A   0,1582 1,1652 0,2071,  0,1968 0,2071 1,2168    142

 0,22    b   0,33 .  0,34   

4. Точные методы решения систем линейных алгебраических уравнений

Вариант № 23.

 1,1161 0,1254 0,1397    A   0,1254 1,1675 0,1768 ,  0,1397 0,1768 2,2168   

 0,01    b   0,02 .  0,03   

Литература 1. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. М. : Наука, 1987. 598 с. 2. Волков Е.А. Численные методы. М. : Наука, 1987. 248 с. 3. Турчак Л.И. Основы численных методов. М. : Наука, 1987. 318 с. 4. Калиткин Н.Н. Численные методы. М. : Наука, 1978. 512 с. 5. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1976. Т. 1. 302 с. 6. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1966. Т. 1. 632 с. 7. Демидович Б.П., Марон И.А. Основы вычислительной математики. М. : Наука, 1966. 658 с. 8. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М. : Мир, 1969. 167 с. 9. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. М. : Наука, 1972. 367 с. 10. Деммель Дж. Вычислительная линейная алгебра. М. : Мир, 2001. 430 с. 11. Каханер Д., Моулер К., Нэш С. Численные методы и программное обеспечение. М. : Мир, 1998. 575 с. 12. Голуб Дж., Ван Лоун Ч. Матричные вычисления. М. : Мир, 1999. 548 с.

143

Методы приближенных вычислений

5. ИТЕРАЦИОННЫЕ МЕТОДЫ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ 5.1. Классификация итерационных методов. Исследование сходимости стационарных итерационных методов Итерационные методы широко применяются при решении СЛАУ

Ax  b ,

(5.1)

где

A  (aij ), i, j  1, n, x  ( x1 , x2 ,…, xn )T , b  (b1 , b2 ,…, bn )T . В этих методах решение СЛАУ (5.1) с невырожденной матрицей A получается как предел итерационной последовательности {xk }0 , определяемой по формуле

xk 1  Fk ( x0 , x1 ,…, xk ) ,

(5.2)

где k  0 – номер итерации, начальное приближение x0 – задано, а вектор-функции Fk определяют тот или иной итерационный метод и зависят, вообще говоря, от матрицы A , вектора правой части b и номера итерации k [1, с. 54–56]. Определение 1. Если Fk не зависят от номера итерации k , то итерационный метод называется стационарным (в противном случае – нестационарным). Определение 2. Если функции Fk зависят только от xk и не зависят от остальных приближений к решению x0 , x1 ,…, xk 1 , то ме144

5. Итерационные методы решения систем

тод называется двухслойным, или одношаговым, или методом первого порядка [1, с. 54]. Наибольшее распространение на практике получили линейные стационарные методы первого порядка, представимые в виде

xk 1  B  xk  C  b ,

(5.3)

где B, C – квадратные матрицы, связанные с исходной матрицей A некоторым соотношением. Выведем его. Если рассматривать x  B  x  C  b как эквивалентную форму записи СЛАУ (5.1), то точное решение x  A 1  b должно удовлетворять эквивалентной СЛАУ. Тогда имеем

A 1  b  B  A 1  b  C  b . Отсюда получаем

BC A  E .

(5.4)

Если в формуле (5.4) считать известной матрицу C , то B  E  C  A будет определять множество итерационных методов решения СЛАУ (5.1) при различных матрицах C . К настоящему времени широкое распространение получили следующие итерационные методы: Якоби, простой итерации, Зейделя, релаксации, Ричардсона и др. [1–5]. Прежде чем обсуждать конкретные итерационные методы, остановимся на основных вопросах, которые приходится разрешать при использовании этих методов на практике: 1) Каким образом задавать матрицу B и каким свойствам она должна удовлетворять? 2) Каким следует выбирать начальное приближение x0 ? 3) При каких условиях последовательность векторов {xk }0 будет сходиться к точному решению x ? 4) Какой будет погрешность полученного итерационным методом приближенного решения? Введем понятие сходимости итерационного метода. 145

Методы приближенных вычислений

Определение 3. Будем говорить, что итерационный метод сходится, если z k  0 при k   , где zk  xk  x – вектор погрешности приближенного решения xk , а под нормой понимается одна из норм векторов, согласованных с нормой матрицы A [6]. За сходимость итерационного метода (5.3) отвечает матрица B , свойства которой определены теоремой [1, с. 56–57; 2, c. 105–107]. Теорема 1. Стационарный линейный процесс

xk 1  B  xk  C  b , k  0 , сходится при любом начальном векторе x0 и любой правой части

b тогда и только тогда, когда все собственные значения матрицы B по модулю меньше единицы. При доказательстве сформулированной теоремы потребуется несколько вспомогательных утверждений. Лемма 1. Для стремления B k к нулю при k   необходимо и достаточно, чтобы все собственные значения матрицы B были по модулю меньше единицы. С доказательством леммы 1 можно ознакомиться, например, в [2, с. 87–88]. Лемма 2. Для стремления B k к нулю при k   достаточно, чтобы какая-либо норма матрицы B была меньше единицы. Доказательство [Там же, с. 89]. Для любого определения нормы матрицы имеем неравенства: k

0  B k  B k  B k 1  B  …  B . Если B  1 , то 0  B k

стремится к 0 при k   , т.е. B k стре-

мится к 0, что и требовалось доказать. Теорема 2. Для того чтобы сходился матричный ряд

E  B  B2  Bk  ,

(5.5) необходимо и достаточно, чтобы все собственные значения матрицы B были по модулю меньше единицы. При выполнении это146

5. Итерационные методы решения систем

го условия матрица E  B имеет обратную и справедливо равенство

E  B  B 2    B k    E  B  . 1

(5.6)

Доказательство [2, с. 89–90]. А. Необходимость. Пусть ряд (5.5) сходится. Тогда B k стремится к 0 при k   . А это равносильно тому, что собственные значения  i , i  1, n , матрицы B

удовлетворяют неравенству

 i  1 . Тем самым необходимость условий теоремы доказана. Б. Достаточность. Пусть собственные значения матрицы B удовлетворяют неравенству i  1, i  1, n . Собственные значения матрицы E  B есть 1   i , i  1, n , и отличны от нуля. Известно, что определитель матрицы с точностью до знака совпадает с произведением всех ее собственных значений и поэтому 1 det  E  B  будет не равен нулю. Тогда матрица E  B  существует. Имеем

E  B  B

2

   B k  E  B  E  B k 1 .

Умножим (5.7) на E  B 

1

(5.7)

справа, получим

E  B  B 2    B k   E  B   B k 1   E  B  . 1

1

Отсюда при k   , так как B k 1  0 , следует

E  B  B 2    B k    E  B 

1

и теорема 2 доказана. Теперь докажем теорему 1. А. Необходимость. Пусть для любого начального приближения x0 по формуле (5.3) найдена последовательность  xk 1 , причем

 xk 1 при k  

сходится к точному решению x . Тогда 147

Методы приближенных вычислений

x xk1  B x Cb B xk Cb  Bx xk   Bk1 x x0 .

(5.8)

При k   разность x  xk 1 стремится к 0. Тогда и произведение B k 1   x  x0  при любом векторе  x  x0  должно стремиться

к нулю. Отсюда получаем, что B k 1  0 . Это возможно (в силу леммы 1) при выполнении неравенства i  1, i  1, n . Б. Достаточность. Пусть все собственные значения матрицы B удовлетворяют условию

 i  1, i  1, n .

(5.9)

Выразим xk 1 через x0 , пользуясь формулой (5.3). Получим

xk 1  B  xk  C  b  B  B  xk 1  C  b   C  b  B 2  xk 1 

 E  B  C  b    B k 1  x0  E  B    B k  C  b .

(5.10)

Из (5.9), (5.10), с учетом условий теоремы 2, следует, что при k   B k 1  0 и имеет место сходимость

E  B    B k  E  B  B 2    B k    E  B  . 1

Из (5.10) тогда имеем

xk 1  E  B   C  b  x . 1

Итак, теорема 1 доказана полностью. Теорема 1 дает необходимые и достаточные условия сходимости стационарных двухслойных итерационных методов. Однако она предполагает знание собственных чисел матрицы B , что затрудняет использование теоремы на практике. Существуют более простые и удобные для практических целей достаточные условия сходимости. Укажем их. Теорема 3. Для того чтобы последовательность приближений {xk }0 в методе

xk 1  B  xk  C  b , k  0 , 148

5. Итерационные методы решения систем

сходилась, достаточно, чтобы какая-либо норма матрицы B была меньше единицы. Доказательство [2, c. 107]. Пусть B  1 и рассматривается норма матрицы, согласованная с нормой вектора, т.е.

Bx  B  x ,

(5.11)

где x – любой вектор размерности n . Пусть x – собственный вектор, соответствующий  – собственному значению матрицы B . Тогда

Bx  x и

Bx    x .

(5.12)

Из (5.11), (5.12) следует, что

B . Другими словами, любая норма матрицы превосходит по модулю любое собственное значение, в том числе и максимальное. Если B  1 , то все собственные значения матрицы B по модулю меньше единицы. А тогда по теореме 1 последовательность {xk }0 сходится. Теорема 3 доказана. Воспользовавшись определением норм матрицы и теоремой 3, получаем, например, следующие два достаточных условия сходимости стационарных одношаговых методов: n

1)

b

ij

j 1

n

2)

b i 1

ij

 1, i  1, n;

(5.13)

 1, j  1, n.

(5.14)

В практических расчетах необходимо иметь правило оценки погрешности x  xk 1 . 149

Методы приближенных вычислений

Теорема 4. Если какая-либо норма матрицы B , согласованная с нормой вектора x , меньше единицы, то для погрешности приближенного решения в методе (5.3) справедлива следующая оценка: k 1

x  xk 1  B

B

 x0 

k 1

 C b

1 B

.

(5.15)

Доказательство. Выше доказано, что для xk 1 справедлива формула (5.10)

xk 1  B k 1  x0  E  B    B k  C  b . Так

как

по

условию

B  1,

теоремы

то

x   E  B  B    C  b . Тогда имеем 2

x  xk 1  B k 1  B k  2    C  b  B k 1  x0 и

x  xk 1  B  B

k 1

 x0 

k 1

B

 B k 1

k 2

 С b

1 B

  С b  B

k 1

 x0 

.

Получена оценка (5.15) и теорема 4 доказана. Замечание 1. Доказанные выше теоремы имеют место при любом начальном векторе x0 . В расчетах часто полагают

x0   0, 0, , 0  , или x0  1,1, ,1 , или x0  C  b . В последT

T

нем случае оценка (5.15) примет вид

x  xk 1  B

150

k 1

 1  C  b  1   1 B 

  . 

5. Итерационные методы решения систем

Замечание 2. Итерационный процесс, определяемый формулой (5.3), называют в литературе методом простых итераций [5, с. 91– 99]. Переход от СЛАУ (5.1) к эквивалентной записи

x  B  x  C b

(5.16) может быть произведен многими способами. Рассмотрим некоторые из них.

5.2. Метод Якоби Пусть в системе (5.1) матрица A имеет вид

A  L  D  P, где

 a11  0 D    0  0  a21 L    an1

0   a22 0  0 0  ,       0 0  0 ann  0 0  0 0  0 0  0 0 ,       an 2 an3  an ,n 1 0   0 a12 a13  a1,n 1 a1n    0 0 a23  a2,n 1 a2 n   P .         0  0 0  0 0 0

0

0

Предполагаем, что aii  0, i  1, n . Тогда СЛАУ (5.1) можно записать так: 151

Методы приближенных вычислений

L x  D x  P x  b или

x   D 1   L  P   x  D 1  b .

(5.17)

Сравнивая (5.17) и (5.16), находим, что

B   D 1   L  P  , C  D 1 . На основе формулы (5.17) можно записать итерационный метод, который называют методом Якоби:

xk 1   D 1   L  P   xk  D 1  b , k  0. Пусть

(5.18)

xk  x1 k  , x2 k  , , xn k  Т. Тогда матричную формулу

0  1 a11    (5.18) с учетом вида матриц L, P и D        0  1a  nn   1

можно записать покомпонентно:

a1n ( k )  ( k 1) b1 a12 ( k ) a13 ( k )  x1  a  a  x2  a  x3    a  xn , 11 11 11 11  a2 n ( k )  ( k 1) b2 a21 ( k ) a23 ( k )  x2  a  a  x1  a  x3    a  xn ,  22 22 22 22   an ,n 1 ( k )  ( k 1) bn an1 ( k )  xn  a  a  x1    a  xn 1 nn nn nn  или

xi( k 1) 

n a bi i 1 aij ( k )   x j   ij x (jk ) , i  1, n. aii j 1 aii j  i 1 aii

Нетрудно видеть, что матрица В имеет представление 152

(5.19)

5. Итерационные методы решения систем

  0   a21  B   a22     an1  a  nn

a12 a11

a13 a11

 

0

a23 a22

 

an 3 ann

 

 

an 2 ann

a1,n 1 a11 a2,n 1 a22  an ,n 1 ann

a1n   a11  a   2n  a22  .     0   

Согласно теореме 3 для сходимости метода Якоби достаточно, чтобы B была меньше 1. Если потребовать выполнения неравенств (5.13), то получим достаточное условие сходимости метода Якоби n

a j 1 i j

ij

 aii , i  1, n .

(5.20)

Неравенство (5.20) означает диагональное доминирование в исходной матрице A , которое достаточно для сходимости метода Якоби. Заметим, что диагонального преобладания в исходной матрице A следует добиться, прежде чем проводить вычисления по формулам (5.19). Поясним сказанное на примере. Пример 1. Пусть требуется методом Якоби найти решение 1 СЛАУ с точностью   10 :

100  x1  30  x2  70  x3  60;,  15  x1  50  x2  5  x3  40;, 6  x  2  x  20  x  28. 2 3  1

(5.21)

Здесь

 100 30 70   60      A   15 50 5  , b   40  .  6  28  2 20     153

Методы приближенных вычислений

 1   Точное решение x  1 , в чем можно убедиться непосредствен   1   ной подстановкой в СЛАУ. Решение. Так как в исходной матрице A диагонального преобладания нет (неравенства (5.20) не выполняются для первого уравнения), произведем подобные преобразования СЛАУ (5.21). Это можно сделать многими способами. В рассматриваемом примере достаточно сложить первые два уравнения. Будем тогда иметь

115  x1  20  x2  75  x3  20;,  15  x1  50  x2  5  x3  40;, 6  x  2  x  20  x  28. 2 3  1 Итерационный процесс можно проводить по следующим формулам:

 ( k 1) 20 20 ( k ) 75 ( k )  x1  115  115  x2  115  x3 ,;   ( k 1) 40 15 ( k ) 5 ( k )   x1   x3 ,;  x2  50 50 50   ( k 1) 28 6 ( k ) 2 ( k )  x3  20  20  x1  20  x2 ,; k  0  или

 x1( k 1)  0,17391  0,17391  x2( k )  0, 65217  x3( k ) ,;  ( k 1) (k ) (k )  x2  0,8  0,3  x1  0,1  x3 ;,  ( k 1) (k ) (k )  x3  1, 4  0,3  x1  0,1  x2 ,; k  0. Выпишем вид матрицы B :

154

5. Итерационные методы решения систем

0,17391 0, 65217   0   B   0,3 0 0,1  .  0,3  0,1 0   Несложно увидеть, что B  1 . В самом деле, n

B 1  max  bi , j  max(0,82608;0, 4;0, 4)  0,82608  1 i 1,3

j 1

и n

B 2  max  bij  max  0, 6;0, 27391;0, 75217   0, 75217  1. j 1,3

i 1

Таким образом, достаточные условия сходимости метода Якоби выполняются. Положим

 0,17391   x0  C  b   0,8   1, 4    и получим несколько последующих приближений. Будем иметь:

 x1(1)  1, 2260;,  (1)  x2  0, 7122;,  (1)  x3  1, 2678;,  x1(4 )  1,1917;,  (4)  x2  0,9662;,  (4)  x3  1, 0014;,

 x1(2 )  1,1246;,  (2)  x2  1, 041;,  (2)  x3  0,961;,  x1(5)  0,9950;,  (5)  x2  1, 0574;,  (5)  x3  0,9459;,

 x1(3)  0,9817;,  (3)  x2  1, 0413;,  (3)  x3  1, 2829;,  x1(6 )  0,9747;,  (6)  x2  1, 0039;,  (6)  x3  0,9958.

Приближения к точному решению рассматриваемой СЛАУ (5.21) различаются между собой на пятой и шестой итерациях в сотых долях, так что счет можно прекратить. Кроме того, 155

Методы приближенных вычислений

x  x6  max xi  xi(6)  0,03, i 1,3

т.е. требуемые условия задания выполнены. Установим теперь необходимые и достаточные условия сходимости метода Якоби. Согласно теореме 1 все собственные значения матрицы B   D 1   L  P  должны быть по модулю меньше единицы. Это равносильно требованию: все корни характеристического уравнения

 D 1   L  P     E  0 или

L PD  0

(5.22)

должны быть по модулю меньше единицы. Уравнение (5.22) с учетом вида матриц L, P, D примет вид

a11   a21  an1

a12 a13 a22   a23   an 2 an3

  

a1n a2 n 

 0.

(5.23)

 ann  

Таким образом, можно считать доказанной следующую теорему. Теорема 5. Метод Якоби (5.18) сходится к решению системы (5.1) тогда и только тогда, когда все корни уравнения (5.23) по модулю меньше единицы.

5.3. Метод Зейделя В методе Якоби при получении компонент нового приближения xk 1 к искомому решению все вычисления в формулах (5.19) производятся через компоненты вектора xk , хотя при вычислении 156

5. Итерационные методы решения систем

x2( k 1) уже найдено значение x1( k 1) , а при определении xn( k 1) известны значения x1( k 1) , x2( k 1) ,…, xn( k11) . Этот факт используется в методе Зейделя, который иначе еще называют методом Гаусса– Зейделя или последовательных смещений. Выведем расчетные формулы метода Зейделя. По-прежнему будем исходить из матричной формулы

 L  D  P x  b . Предполагая, что det  L  D   0 , будем иметь  L  D   xk 1   P  xk  b или

xk 1    L  D   P  xk   L  D   b . 1

1

(5.24)

Формула (5.24) есть матричная форма записи метода Зейделя. Сравним ее с матричной записью метода Якоби. Получим

B    L  D   P, C   L  D  . 1

1

Тогда согласно теореме 1 для сходимости метода Зейделя необходимо и достаточно, чтобы все собственные значения матрицы B были по модулю меньше 1 или, что то же, все корни характеристического уравнения

det   L  D   P    E  0 1

(5.25)

были по модулю меньше 1. Уравнение (5.25) эквивалентно следующему:

det  P   L  D   λ  =0.

(5.26)

Тогда справедлива теорема. Теорема 6. Метод Зейделя (5.24) сходится в том и только в том случае, когда все корни уравнения

157

Методы приближенных вычислений

a11  

a12

a13

a1n

a21   a22   a23  a2 n 0      an1   an 2   an 3    ann  

(5.27)

по модулю меньше 1. Запишем расчетные формулы метода Зейделя через компоненты векторов. Будем иметь

a1n ( k ) b1 a12 ( k ) a13 ( k )  ( k 1)  x1   a x2  a x3    a xn  a ,; 11 11 11 11  a2 n ( k ) b2  ( k 1) a21 ( k 1) a23 ( k )  x2   a x1  a x3    a xn  a ,;  22 22 22 22   an ,n 1 ( k 1) bn an1 ( k 1) an 2 ( k 1)  ( k 1)      x x x xn 1   n 1 2  ann ann ann ann  или i 1

aij

j 1

aii

xi( k 1)  

x (jk 1) 

n

aij

a

j  i 1

x (jk ) 

ii

bi , aii

(5.28)

i  1, n, k  0. Здесь aii  0, i  1, n. Вычисления по формулам (5.28) проводятся до тех пор, пока не будут выполнены условия

max xi( k 1)  xi( k )   , i 1, n

где  – принятая точность вычислений. В методе Зейделя имеются достаточные условия сходимости

B    L  D   P  1. Здесь под нормой понимается одна из 1

норм матрицы. 158

5. Итерационные методы решения систем

Достаточные условия сходимости метода Якоби определяются неравенствами (5.20). При выполнении условий (5.20) сходится и метод Зейделя. Более того, он сходится быстрее, чем метод Якоби. Докажем это. Теорема 7. Если в матрице A имеет место диагональное преобладание, то метод Зейделя (5.28) сходится быстрее, чем метод Якоби (5.19). Доказательство [5, с. 108, 109]. СЛАУ (5.1) в методе Зейделя представляется в эквивалентной записи:

x   L  D  P  x   L  D b. 1

1

(5.29)

Вычтем (5.24) из (5.29). Получим

x  xk 1    L  D   P   x  xk  , k  0. 1

(5.30)

Обозначим вектор ошибок через k :

k  x  xk . Его компоненты имеют вид i( k )  xi  xi( k ) , i  1, n,; k  0. По аналогии с формулой (5.19) имеем

xi 

n a bi i 1 aij   x j   ij x j , i  1, n. aii j 1 aii j i 1 aii

(5.31)

Тогда, вычитая из (5.31) равенства (5.28), получим i 1

i( k 1)  

aij

j 1 aii

 (jk 1) 

n

aij

a

j  i 1

(jk ) , i  1, n; k  0.

ii

Отсюда получаем оценку i1

aij

j 1

aii

i(k 1)  

n

(jk 1)  

aij

j i 1 aii

(jk )  max (jk 1) i  max (jk ) i , i  1, n, (5.32) j

j

где

159

Методы приближенных вычислений i 1

aij

j 1

aii

i  

, i 

n

aij

j  i 1

aii

, i  1, n.

Пусть k  max  j . Тогда (5.32) можно переписать так: (k )

j

i( k 1)  k 1   i  k i , i  1, n.

(5.33)

Пусть m  1, 2, , n есть значение индекса i , при котором справедливо, что

(mk 1)  max i( k 1)  k 1 . i

Тогда из (5.33) находим

k 1   m k 1  m k или

k 1 

m k . 1  m

(5.34)

При выполнении условий (5.20) диагонального доминирования в матрице A имеем

 i  i  1; i  1, n и

i   i  i . 1  i Тогда абсолютная погрешность приближений по методу Зейделя, как следует из (5.34), убывает со скоростью геометрической прогрессии со знаменателем, который меньше, чем в методе Якоби. Теорема доказана. Покажем ускорение сходимости итерационного процесса в методе Зейделя на примере. Пример 2. Найти решение СЛАУ 160

5. Итерационные методы решения систем

115  x1  20  x2  75  x3  20,  15  x1  50  x2  5  x3  40, 6  x  2  x  20  x  28 2 3  1 1

методом Зейделя с точностью   10 . Решение. Вычисления по методу Зейделя будем проводить по формулам

 x1( k 1)  0,17391  0,17391  x2( k )  0, 65217  x3( k ),;  ( k 1) ( k 1) (k )  x2  0,8  0,3  x1  0,1  x3 ;,  ( k 1) ( k 1) ( k 1)  x3  1, 4  0,3  x1  0,1  x2 ,; k  0.  0,17391   Положим x0   0,8  . Последующие приближения будут  1, 4    иметь значения:

 x1(1)  1, 2260;,  (1)  x2  1, 0278;,  (1)  x3  0,9294;,

 x1(2)  0,9588;,  (2)  x2  0,9947;,  (2)  x3  1, 0129;,

 x1(3)  1, 0074;,  (3)  x2  1, 0009;,  (3)  x3  0,9977;,

 x1(4)  0,9986;,  (4)  x2  1, 0003;,  (4)  x3  1, 0004.

Очевидно, что x3 и x4 различаются между собой в тысячных долях, поэтому в методе Зейделя счет можно прекратить после третьей итерации. В этом случае получаем

161

Методы приближенных вычислений

x  x3  max xi  xi(3)  0, 007  101,; i 1,3

x3  x2  max xi(3)  xi(2)  0, 048  101. i 1,3

Итак, по сравнению с методом Якоби, в данном примере число итераций в методе Зейделя меньше в два раза. В дальнейшем будут обсуждаться другие примеры систем вида (5.1), для которых метод Зейделя сходится.

5.4. Метод релаксации Рассмотрим обобщение метода Зейделя, которое, благодаря наличию числового параметра  , позволяет в некоторых случаях ускорить итерационный процесс, и носит название метода релаксации. Представим СЛАУ (5.1) в виде

 1  1   L    D  P  1     D   x  b .     Отсюда можно получить следующую итерационную формулу:

1     1   L   D   xk 1    P  1    D   xk  b , k  0. (5.35)        Здесь  – числовой параметр, именуемый параметром релаксации. Формулу (5.35) можно записать в эквивалентном виде:

 D   L   xk 1     P     1  D   xk   b .

Отсюда, учитывая вид матриц L, P, D, получаем следующие расчетные формулы метода релаксации:

xi( k 1)  xi( k ) 

i 1 n  ( k 1) (k )  bi   aij x j   aij x j  , aii  j 1 j i 

i  1, 2, , n, k  0, x1(0) , , xn(0)  заданы. 162

(5.36)

5. Итерационные методы решения систем

Нетрудно видеть, что при   1 формулы (5.36) переходят в формулы (5.28) метода Зейделя. Чтобы получить условия сходимости метода релаксации, установим аналогию с методом Якоби. Требуем, чтобы

1   det  L   D   0. Тогда из (5.35) имеем    1

1   xk 1   L   D   

1

  1  1     P  1   D  xk   L   D  b. (5.37)       

Сравнивая (5.37) с (5.3), находим, что 1

1     1  B    L   D    P  1    D  ,        1

1   C   L   D .    Вид матрицы B можно упростить. Учтем, что P  A  L  D. Тогда получим 1

1   B  E  L  D  A    или B  E  C  A,

(5.38)

где 1

1   С   L  D .    Как следует из теоремы 1, для сходимости метода релаксации необходимо и достаточно, чтобы все собственные значения матрицы B были по модулю меньше 1. Очевидно, что собственные значения будут зависеть от параметра релаксации  и наиболее быстрая сходимость последовательности  xk 0 достигается тогда, 

163

Методы приближенных вычислений

когда спектральный радиус матрицы B минимальный. К сожалению, до сих пор задача подбора оптимального значения  в общем случае не решена. В практических расчетах используют метод проб и ошибок. Можно подбирать параметр  , требуя B  1. В дальнейшем будет показано, что   0, 2  , если СЛАУ (5.1) имеет положительную симметричную матрицу. Заметим, что при  1, 2  метод (5.36) называют методом последовательной верхней релаксации (или SOR-методом), а при значениях   0,1 – методом нижней релаксации. Наибольшее распространение на практике получил метод верхней релаксации ввиду его лучшей эффективности. Проиллюстрируем на тестовом примере применение трех итерационных методов (Якоби, Зейделя, релаксации) и дадим сравнительный анализ результатов. Пример 3. Требуется найти четыре приближения к решению СЛАУ по каждому из методов: Якоби, Зейделя, релаксации. Результаты сравнить с точным решением. Решение. Рассмотрение проведем на следующем тестовом примере:

2  x1  x2  4;,   x1  2  x2  5. Здесь матрица СЛАУ является симметричной и положительно определенной, а точное решение

1 x   .  2 Примем, что

 2  x0   .  2,5  Вычисления по методу Якоби проводим по формулам 164

5. Итерационные методы решения систем

 x1( k 1)  2  0,5  x2( k ) ,;  ( k 1) (k )  x2  2,5  0,5  x1 , k  0. Получаем следующие приближения к точному решению:

 0, 75   1, 25   0,9375   1, 0625  x1    , x2    , x3    , x4   .  1,5   2,125   1,875   2, 0312  Оценим x  x4 , пользуясь формулой

x  x4  max xi  xi(4)  max  0,0625; 0,0312  0,063. i 1,2

В методе Зейделя итерационные формулы имеют вид:

 x1( k 1)  2  0,5  x2( k ) ,;  ( k 1) ( k 1)  x1  2,5  0,5  x1 ;, k  0. Пользуясь ими, получаем приближения к решению исходной СЛАУ:

 0,75   0,9375   0,9844   0,9961 x1    , x2    , x3    , x4   .  2,125   2,0312   2,0078   2,0019  Тогда

x  x4  max  0, 004; 0, 002   0, 004. Согласно изложенной выше теории итерационные формулы метода релаксации в рассматриваемом примере приобретают вид

 x1( k 1)  1    x1( k )    2  x2( k ) 2  ,;     ( k 1) (k ) ( k 1) 2  , k  0.  x2  1    x2    2,5  x1 Чтобы проводить по ним вычисления, требуется знать параметр релаксации  . Найдем его, требуя, чтобы B была меньше 1. Здесь 165

Методы приближенных вычислений 1

1   B  E   L   D   A,   

 0 0 L ,  1 0

 2 0 D .  0 2

В итоге находим, что

     1  2  . B     2 2     1      2 2 4  Примем, что 2

B  max  bij . i 1,2

Имеем, что B(1) 

1 ;, 2

j 1

B(1, 02)  0,53;,

B(1,1)  0, 65. При-

мем   1,02. Тогда получаем

 0,725   0,939   0,9866   0,9971 x1    , x2    , x3    , x4   .  2,1302  2,0285  2,0062  2,0014 Следовательно,

x  x4  max  0, 003; 0, 0014   0, 003. Видно, что в рассматриваемом тестовом примере незначительное ускорение сходимости расчетов дает метод релаксации.

5.5. Единая каноническая форма записи итерационных методов На примере метода простой итерации и метода Зейделя можно показать, что один и тот же итерационный метод можно записать различными способами. Поэтому имеет смысл ввести какую-либо стандартную форму записи итерационных методов. 166

5. Итерационные методы решения систем

В рассмотренной системе (5.1) будем считать A линейным оператором в конечномерном пространстве H , в котором определено скалярное произведение. Введем так называемую единую каноническую форму записи для итерационных методов. Для любого двухслойного итерационного метода каноническая форма записи имеет вид:

B

xk 1  xk

 k 1

 A  xk  b , k  0,1, 2, ,

(5.39)

для всех x0  H . Здесь k – номер итерации; x0 – начальное приближение; 1 , 2 ,, k1 , – итерационные параметры, k 1  0; A – оператор из (5.1), а B – линейный оператор, имеющий обратный B 1 . Пусть для простоты B не зависит от номера итерации k . Осуществим классификацию методов. Если B  E ( E – единичный оператор), то метод вида

xk 1  xk  A  xk  b , k  0,1, 2, , для всех x0  H (5.40) k 1 называется явным. Для нахождения ( k  1) -го приближения к решению выразим

xk 1 из (5.40): xk 1  xk  k 1   A  xk  b  .

(5.41)

В более общем случае, когда B  E , метод (5.39) называется неявным итерационным методом. Для нахождения xk 1 используется уравнение

B  xk 1  B  xk  k 1   A  xk  b  , k  0,1, .

(5.42)

Точность итерационного процесса (5.39) определяется величиной погрешности zk  xk  x , где x – точное решение исходной 167

Методы приближенных вычислений

СЛАУ. Подставляя в (5.39) xk  zk  x , получим однородное уравнение для погрешности zk

B

zk 1  zk  A  zk  0, k  0,1, ; z0  x0  x . k 1

(5.43)

Определение 4. Говорят, что итерационный метод сходится в

H D , если

lim zk k 

D

 0,

где

z

D

 Dz , z  ,

D  D*  0,

D : H  H [3]. В процессе определения приближенного решения xk , как правило, задается некоторая точность   0, с которой надо найти приближенное решение xk . Вычисления прекращаются, если выполняется следующее условие:

xm  x

D

   x0  x

D

.

(5.44)

Если m  m() – наименьшее из чисел, для которых неравенство (5.44) справедливо, то общее число арифметических операций, требуемых для определения приближенного решения СЛАУ (5.1), определяется по следующей формуле:

Nm ()  m()  n0 . Здесь n0 – число операций, затрачиваемых на выполнение одной итерации. Минимизировать N m () можно путем подбора матри-

цы B и параметров k  .

Рассмотрим простейшие итерационные методы, исходя из единой канонической формы (5.39).

168

5. Итерационные методы решения систем

5.6. Метод простой итерации в канонической форме В операторной форме метод записывается следующим образом:

xk 1  xk  A  xk  b , 

(5.45)

k  0,1,, для всех x0  H или, используя обозначения параграфа 5.2, метод простой итерации для каждой компоненты решения можно записать следующим образом: n

xi( k 1)  xi( k )    aij  x(jk )   bi ,

(5.46)

j 1

i  1, 2, , n;   0 – итерационный параметр. Из уравнений (5.40) и (5.45) следует, что метод простой итерации представляет собой явную двухслойную схему с постоянным параметром k1   . Можно использовать следующий вариант указанного метода:

xi( k 1)  xi( k ) 

 aii

 n     aij  x (jk )  bi  ,  j 1 

или в канонической форме:

D

xk 1  xk  A  xk  b , k  0,1;   1. 

Формально схема (5.47) неявная

B  D  E ,

(5.47) но так как

D   aij  ij  – диагональная матрица, то xk 1 определяется по явным формулам.

169

Методы приближенных вычислений

5.7. Каноническая форма записи метода Зейделя Этот метод достаточно широко применяется на практике, особенно тогда, когда информации о матрице A недостаточно. Приведем две формы записи метода Зейделя: i

 aij x(jk 1)  j 1

n

a x

j i 1

ij

i 1

n

j 1

j i

(k ) j

 bi , aii  0, i  1, n ,

(5.48)

 aij x(jk )   aij x(jk 1)  bi , i  1, n .

(5.49)

Компоненты вектора xk 1 последовательно определяются из формул (5.48) и (5.49). Покажем, как это можно осуществить на примере формулы (5.48). Вначале находим x1( k 1) , затем x2( k 1) , , xn( k 1) :

x1( k 1) 

n  1    b1   a1 j  x (jk )  , a11  j 2 

n i 1     bi   aij  x (jk )   aij  x (jk 1)  , i  2, n . j  i 1 j 1   Из (5.49) для i  n, n  1, ,1 последовательно находятся

xi( k 1) 

1 aii

n 1     bn   anj  x (jk )  , j 1   i  1 n  1     bi   aij  x (jk )   aij  x (jk 1)  , i  n  1, ,1 . aii  j 1 j i 1 

xn( k 1) 

xi( k 1)

1 ann

Представим матрицу A в виде суммы трех матриц A LDP,

 

где D – диагональная матрица размерности n  n ; L  aij

нижняя треугольная матрица (поддиагональная с нулями на главной диагонали), т.е. 170

5. Итерационные методы решения систем

0, j  i, aij    aij , j  i;, P   aij  – верхняя треугольная матрица, т.е.

0, j  i, aij   aij , j  i. Тогда метод Зейделя можно записать в матричной форме. В самом деле, в силу определения L, D, P имеем i 1

 L  x i   aij  x j ,  D  x i  aii  xi , j 1 n

n

j  i 1

j i

 P  x i   aij  x j ,   P  D   x i   aij  x j . Тогда (5.49) можно переписать в виде

 P  D   x    L  x  ( k 1)

(k )

i

i

 bi , i  1, 2, , n ,

или в векторной форме:

 P  D   xk 1  L  xk

 b.

Очевидно, что

 P D  xk1  L xk   P D  xk1  xk   L P D   xk   P D  xk1  xk   A xk .

Используя последнее равенство, запишем метод Зейделя в канонической форме [3, c. 97]:

 D  P    xk 1  xk   A  xk

 b , k  0,1, 2, .

(5.50)

Сравнивая (5.50) с канонической формой для любого двухслойного метода (5.39), нетрудно видеть, что методу Зейделя (5.50) соответствует

B  D  P,   1 . 171

Методы приближенных вычислений

Последнее означает, что схема (5.50) является неявной. Так как B  D  P – треугольная матрица, то итерация xk 1 определяется по явной формуле. Второй вариант метода Зейделя можно, по аналогии с предыдущим, записать в виде

 D  L    xk 1  xk   A  xk

 b , k  0,1, ,

(5.51)

если B  D  L – нижняя треугольная матрица.

5.8. Метод верхней релаксации в каноническом виде Для ускорения итерационного процесса в методе Зейделя его необходимо привести к методу верхней релаксации. С этой целью вводится итерационный параметр ω и (5.51) записывается в виде

 D   L  

xk 1  xk  A  xk  b , k  0,1, , 

(5.52)

для всех x0  H . Сравнивая (5.52) и каноническую форму (5.39), получим, что

B  D   L,   . Для проведения вычислений по формуле (5.52) преобразуем ее к более удобному для этой цели виду. Имеем очевидное соотношение xk 1  xk 1 D     A  xk   L   D   xk 1   A  L    xk        1     1    L   D   xk 1   P  1    D   xk .       

 D   L  

Из него следует, что

1     1   L   D   xk 1   P  1    D   xk  b .        172

5. Итерационные методы решения систем

Выразим из полученного векторного уравнения компоненты вектора xk 1 : i 1 n    bi   aij x (jk 1)   aij x (jk )  , i  1, n. j 1 j i   Если в последней формуле положить   1 , получится формула

xi( k 1)  xi( k ) 

 aii

метода Зейделя. Скорость сходимости метода верхней релаксации зависит от параметра ω. Далее будет показано, что для сходимости метода должно выполняться условие 1    2 .

5.9. О сходимости стационарных итерационных методов Стационарным итерационным методом называется метод вида

B

xk 1  xk  A  xk  b , k  0,1,, 

(5.53)

в котором B и  не зависят от номера итерации k , x0  H – задано. К числу стационарных неявных методов относится и метод Зейделя, и метод верхней релаксации. Для существования обратного оператора B 1 достаточно, чтобы оператор B был положительным. Пусть B  D   L . Покажем, что B  0. Если оператор A – положительный и самосопря* женный, т.е. A  A  0 , то имеем

L  x, x   P  x, x ,  P

*

 L.

Кроме того, A  L  D  P , следовательно

 A x, x   L  x, x   D  x, x   P  x, x 

или

 A  x , x    D  x , x   2   L  x , x . 173

Методы приближенных вычислений

Из последнего соотношения следует, что

 L  x, x  

1   A  D   x , x . 2

Подставляя полученное выражение в формулу

 B  x , x    D  x , x     L  x , x  , будем иметь

B  x , x   1     D  x , x      A  x , x   0, 

2

2

если 0    2 . Для погрешности zk  xk  x справедливо однородное уравнение

B

z k 1  z k  A  z k  0, k  0,1,; z 0  x0  x. 

(5.54)

Теорема 8. Пусть A – самосопряженный положительный оператор и выполнено условие

 B   A. 2

(5.55)

Тогда итерационный метод (5.53) сходится в H A , т.е.

z k  xk  x

A

 0 при k  .

(Доказательство теоремы можно найти в [3, с. 102–104].) Доказательство. Воспользуемся разностным уравнением (5.54) для погрешности и подставим в него z k 

z k 1  z k  z k 1  z k   . 2 2 

В результате получим

  z z 1   B   A   k 1 k   A   z k 1  z k   0. 2   2  174

5. Итерационные методы решения систем

Умножим полученное выражение скалярно на

2

z k 1  z k  2   z k 1  z k . 

Тогда первое слагаемое примет вид

   z z z z 2      B   A   k 1 k , k 1 k 2    

 . 

Второе слагаемое, учитывая, что A  A* , можно записать следующим образом:

 A z

k

 zk 1  , zk 1  zk    A  zk 1 , zk 1    A  zk , zk  

  A  zk , zk 1    A  zk 1 , zk    A  zk 1 , zk 1    A  zk , zk  . В результате получается энергетическое тождество

   z z z z 2      B   A   k 1 k , k 1 k 2    

   z k 1 

2 A

2

 z k A . (5.56)

Согласно теореме выполнено условие (5.55). Тогда первое слагаемое в левой части тождества (5.56) будет неотрицательно и, отбрасывая его, получим следующее неравенство:

z k 1

2 A

2

 zk A .

Отсюда можно записать такую цепочку неравенств:

0  z k 1

A

 zk

A

   z0 A ,

из которой видно, что последовательность

 z  – невозрастаюk A

щая и ограниченная снизу нулем. На основании теоремы Вейерштрасса z k A будет сходиться при k   .

Докажем далее, что

 Q  B A. 2

Он

lim z k k 

положителен

A

 0 . Рассмотрим оператор в

силу

(5.55).

Оператор

175

Методы приближенных вычислений

 1 Q0  B0   A   Q  Q * [3, с. 41] положительно определен, 2 2 т.е. существует такое   0 , что Q  x , x   Q0  x , x     x 2 для всех x  H .

Тогда из тождества (5.56) получается следующее неравенство:

2  z k 1  z k  Так как последовательность

2

2

 z k 1

A

2

 zk A .

(5.57)

 z  сходится, то существует k A

lim z k 1  z k  0.

(5.58)

k 

С помощью (5.54) определяем

1 1 A  zk    B   zk 1  zk  ,; zk    A1  B   zk 1  zk  ,   1  A  zk , zk   2   A1  B   zk 1  zk  , B   zk 1  zk   ;,  1 2 2 2 zk A  2 A1  B  zk 1  zk . (5.59)  Из последнего неравенства и из (5.58) следует, что

lim z k k 

A

 0.

И теорема 8 доказана. Замечание. Из неравенства (5.57) следует, что

z k 1

2 A

 zk

2 A

2

Получим оценку для z k 1  z k

z k 1  z k 176

2

2 2  z k 1  z k . 

из (5.59):

2  zk

A

1

2 A

 B

2

.

5. Итерационные методы решения систем

С помощью последней оценки можно усилить предыдущее неравенство:

z k 1

2 A

 2  1  1  A  B 

  z k 2  

2 A

.

Обозначим

2  1 

2 A1  B

2

.

Последнюю оценку перепишем в виде

z k 1

2 A

2

  2  z k A , где  2  1.

Выполнение этого неравенства означает, что итерационный метод (5.53) сходится при условии (5.55) со скоростью геометрической прогрессии. С помощью теоремы 8 докажем сходимость ранее рассмотренных методов. Метод простой итерации Для этого метода B  E . Проверим справедливость достаточного

условия

сходимости

(5.55).

Так

как

E

A , A

то

 1    B   A  E   A      A. Тогда при x  0 имеем 2 2 A 2   1       A  x , x   0 , если будет выполняться неравенство:   A 2      1    0 . Отсюда следует, что метод простой итерации будет A 2 177

Методы приближенных вычислений

сходиться для всех значений  , удовлетворяющих следующему неравенству:

2 . A



Метод Зейделя Для метода Зейделя B  D  L,   1. Рассмотрим оператор

 1 B   A  B   A. 2 2 Очевидно, что

1 1 D 1 B   A  D  L    D  P  L     L  P. 2 2 2 2 * Так как A  A  0 , то  L  x , x    P  x , x  . Отсюда следует, что

1  1   1   B  2  A  x , x   2   D  x , x   2   L  P   x , x      1    D  x , x   0, 2 если D  0 . Покажем, что D  0 вытекает из условия A  0 . Действитель-

T

но, пусть A  0 и    ,0,,0 . Тогда 1

 A  ,   D  ,   a11  1 2  0,

т.е. a11  0.

По такой же схеме можно показать, что все aii  0 и, следовательно, D  0 . Итак, метод Зейделя всегда сходится, если A – самосопряженный, положительный оператор.

178

5. Итерационные методы решения систем

Приведем без доказательства теорему 9 [3, c. 104, 105], которая дает оценку скорости сходимости метода Зейделя. Теорема 9. Метод Зейделя сходится со скоростью геометрической прогрессии со знаменателем q  1 , если

A  A*  0, и n

a j 1 j i

ij

 q  aii , i  1, n; q  1.

Приведенное условие означает, что матрица A с диагональным преобладанием. Метод релаксации Для этого метода B  D   L,   . Определим оператор

     B   A  D   L    L  P  D   1    D    L  P  2 2 2  2 и вычислим скалярное произведение

        B   A   x , x   1    D  x , x . 2    2   

Очевидно, что 1 

   D  x , x   0, если 0    2 . 2

Итак, метод релаксации сходится при любых значениях   0,2 , если A  A  0 . Чтобы применить тот или иной итерационный метод на практике, необходима информация о скорости сходимости метода, т.е. нужна информация о числе итераций n  n0 () , которые требуют*

179

Методы приближенных вычислений

ся для решения задачи с заданной точностью   0 . Рассмотрим этот вопрос на примере неявной схемы метода простой итерации.

5.10. О скорости сходимости неявного метода простой итерации Число итераций n0 () в методе зависит от параметра  , который подбирается из условия минимума числа итераций n  n() , при котором справедливо неравенство

xn  x

D

   x0  x

D

.

Здесь D – некоторый положительный и самосопряженный оператор. Рассматривается неявная схема метода простой итерации

B

xk 1  xk  A  xk  b , k  0,1,…, для всех x0  H , 

где A, B – положительные, самосопряженные операторы. Заметим, что методы Зейделя и верхней релаксации не относятся к этому семейству схем, поскольку для них оператор B не является самосопряженным. Введем обозначения: пусть k определяется по формуле

k  B 1  rk , где rk  A  xk  b . Тогда для k справедливо однородное уравнение

k 1  k  A  k  0, k  0,1, ,;  0  B 1   A  x0  b  , B

где rk  A  xk  b – невязка, k  B 1  rk – поправка. 180

(5.60)

5. Итерационные методы решения систем

Покажем это. Из неявного метода простой итерации определяется

xk 1  xk    B 1   A  xk  b   xk    k ,

A  xk 1  b  A  xk  b    A  k ;, rk 1  rk    A  k . Из очевидного соотношения

rk  B   B 1  rk   B  k

следует (5.60). Будем предполагать, что выполнены следующие операторные неравенства:

1  B  A   2  B, 1  0,  2  1  0,

(5.61)

y1  (B  x , x )  (A  x , x )  (B  x , x )

(5.62)

или

для всех x  H , где 1 ,  2 – известные постоянные. Приведем без доказательства теорему 10, позволяющую оценить скорость сходимости неявного метода простой итерации. Теорема 10. Пусть выполнены условия (5.61), (5.62). Тогда минимальное число итераций по методу

B

xk 1  xk  A  xk  b , k  0,1,…, для всех x0  H 

достигается при

  0 

2 . 1   2

(5.63)

При этом выполняется неравенство

A  xn  b

B 1

 0n  A  x0  b

0 

1   , 1  



B 1

, n  1, 2,…,;

1 . 2

(5.64) (5.65)

181

Методы приближенных вычислений

Доказательство теоремы можно найти в [3, с. 109]. Там же получены оценки для числа итераций

1 ln    n    1  ln    0 

(5.66)

и более удобная для оценок формула

n  n0    

1  1  ln   ,   1 , 2 2   

(5.67)

причем n0    , вообще говоря, нецелое. Получим оценку числа итераций для явного метода простой итерации на следующей модельной задаче [3, с. 109–111]. Рассмотрим систему линейных алгебраических уравнений вида

v j 1  2  v j  v j 1 h2

 b j , j  1, N  1;

1 v0  1 , vN   2 , h  . N

(5.68)

Перепишем (5.68) в матричной форме:

A v  b ,

(5.69)

где v   v1 , v2 , , vN 1  – вектор размерности N  1 , а A – трехT

диагональная матрица размерности  N  1   N  1 . Матрице A из системы (5.69) соответствует оператор A , действующий в пространстве H   функций, заданных во внутрен-

них узлах сетки h  x j | x j  j  h, j  1, N  1 . Если  v  vxx ,

182

5. Итерационные методы решения систем

 2 1  1 2 1  A   2  . . h   0 0  0 0  b   b1 , b2 , , bN 1

0  1 . . . 0 0 0 . . . . . ,  0 . . . 1 2 1  0 . . . 0 1 2  T  , b  b , i  2, N  2; 0 . . . 0

i

0

i

  b1  b1  21 , bN 1  bN 1  22 . h h

vxx 

v j 1  2  v j  v j 1

, v j  v  x j  , а v – функция, заданная на 0

h2 h  x j | x j  j  h, j  0, N

 и обращающаяся в нуль на границе

сеточной области при j  0, N , то 0

0

0

A  v    v, v    H , v   0

(  – подпространство функций, заданных на h и обращающихся в нуль в граничных узлах x0 , xN ). Вводя скалярное произведение в H   аналогично [3, с. 108], можно показать, что A – самосопряженный, положительно определенный оператор, т.е. A  A* ,

4 h  sin 2 , A    E. 2 h 2 4 h A  , где   2  cos 2 , Кроме того, h 2 v   v, v  , A  max  j .

 A  v, v    

2

v , 

причем

1 j  N 1

183

Методы приближенных вычислений

Для

явного

метода

простой

 E  A   E, т.е. 1  ,  2  ,

итерации



B  E

имеем

1   h 2  h 2  tg 2  . 2 2 4

Тогда число итераций для этого метода оценивается следующим образом:

1 ln   2  1 n     n0         ln   . 2 2   10  h  1 4 1 1 1 10  e10 , то  10  e10 и ln    10. Тогда 2  e  2 n     n0     2 ; n0     2  N 2 . В частности, для N  10 имеh ем n0     200; для N  100 n0     20000, т.е. метод простой Если  

итерации существенно зависит от числа N разностных уравнений. Задача (5.68) моделирует и более сложные случаи, так как аналогичное разностное уравнение соответствует уравнению Лапласа в двумерном и трехмерном случаях. Замечание 1. Если xk 1 вычисляется через xk 1 и xk , то итерационный метод называется двухшаговым (или трехслойным). Примером такой схемы является трехслойная схема с постоянными параметрами

xk 1  1      E  0  A   xk    xk 1  1     0  b , k  1, 2,.

5.11. Двухслойная итерационная схема с чебышевскими параметрами Дано уравнение

A x  b , A : H  H. 184

(5.70)

5. Итерационные методы решения систем

Рассматривается итерационная схема с переменными параметрами k  [3, с. 113]

B для

всех

xk 1  xk  A  xk  b , k  0,1, , k 1

x0  H .

zk  xk  x

Погрешность

k  B 1   A  xk  b  , k  0,1, ,

с

(5.71) и

начальным

поправка условием

0  B 1  A  x0  b  удовлетворяют однородному уравнению

B

zk 1  z k  A  z k  0, k  0,1, , z0  x0  x . k 1

(5.72)

Условие окончания итерационного процесса в (5.72) имеет вид

zn

D

   z0

D

или

n

D

   0

D

.

(5.73)

Выразим zk 1 из (5.72). Получим

zk 1  Sk 1  zk , Sk 1  E  k 1  B 1  A,

(5.74)

где Sk 1 – оператор перехода с k-го на (k+1)-й слой. Применяя рекуррентную формулу (5.74), получим

zk  Sk  Sk 1  S2  S1  z0 . Обозначим через Tk  Sk  Sk 1  S2  S1 разрешающий оператор схемы (5.72). Тогда для k  n

zn

D

 qn  z 0

D

, qn  Tn

D

.

(5.75)

Условие окончания итерационного процесса (5.72) будет выполняться, если

qn  Tn

D

.

(5.76)

185

Методы приближенных вычислений

Предположим, что в (5.71) матрица A – положительно определенная, и для решения СЛАУ применим явный нестационарный итерационный метод Ричардсона

xk 1  xk  A  xk  b , k  0,1, , n  1 , k 1

(5.77)

где x0 – задан. Укажем способ определения оптимального набора параметров 1 , 2 ,, n , для которых xn  x будет минимальна. Для этого сформулируем теорему [4]. Теорема 11. Пусть A – симметричная положительно определенная матрица, а  min  A   0 и  max  A   0 – ее наименьшее и наибольшее собственные значения. Пусть задано число итераций n . Среди методов вида (5.77) наименьшую погрешность xn  x имеет метод, для которого

k 

0 , k  1, 2,…, n , 1  0  vk

(5.78)

где

0 

  A 2 1 , 0  ,  min , min  A max  A max  A 1

 k  cos

 2  k  1   , 2 n

(5.79)

k  1, 2,, n.

Если выбирать k в соответствии с (5.78) и (5.79), то для погрешности будет справедлива оценка

xn  x  qn  x0  x , где

186

(5.80)

5. Итерационные методы решения систем

qn 

2 1n , 1  12n

1 

1  1 

,



 min  A  .  max  A 

(5.81)

Доказательство теоремы можно найти в [4, с. 108, 109]. Итерационный метод (5.77) с параметрами k , определенными в соответствии с (5.78), (5.79), называется явным итерационным методом с чебышевским набором параметров. Отметим, что для k  1 метод (5.77)–(5.79) совпадает с методом простой итерации

xk 1  xk  A  xk  b ,  где    0 

2 .  min  A   max  A

Из теоремы 11 следует, что   0 является оптимальным значением параметра τ в методе простой итерации. Для n  1 оценка (5.80), (5.81) получается в виде

x1  x   0  x0  x . Для любой n-й итерации справедлива оценка

xn 1  x  0  xn  x или xn  x   0n  x0  x . Определим число итераций, при котором достигается заданная точность  в явном методе с чебышевским набором параметров. Из (5.80) следует оценка

xn  x    x0  x , если qn   , где qn определяется в соответствии с (5.81). Итак, приходим к такому неравенству:

 1  12n 2 2 1n   и  qn  . 1n  1  12n  

(5.82)

187

Методы приближенных вычислений n

Из (5.81) следует, что 1  1, тогда z  1  1. Разрешая неравенство (5.82) относительно z, получим

2 z 2   z  1  0. 

(5.83)

Перепишем (5.83) в виде 2   z  1 1    

2     z  1 1      

   0.  

Отсюда следует, что

z

1  1  2 1  1  2 , z .  

Очевидно, что если

1  1  2 1  1  2 . z , то тем более z    Первое неравенство перепишем в виде

1 1  1  2  . 1n  Оно будет справедливо, если потребовать

1 2  ., 1n  откуда получаем, что

n  n0    

ln  2   . ln 1 1 

Для самого неблагоприятного случая, когда η мало, получается следующее неравенство:

188

5. Итерационные методы решения систем

n0   

ln2   . 2 

Рассмотрим применение метода Ричардсона и метода простой итерации к ранее приведенной в параграфе 5.4 системе линейных алгебраических уравнений. Пример 4. Дана СЛАУ

2  x1  x2  4,   x1  2  x2  5.  2 1  симметричная. Определим ее соб1 2  

Матрица системы A  

ственные значения из характеристического уравнения

det A    E  det

2 1  0. 1 2

Раскрывая определитель, получим:

2  4    3  0. Отсюда следует, что

1, 2  2  4  3,;

1  3;,

 2  1.

Для действительной матрицы A справедливо неравенство A  0 , так как  i  0, i  1,2. Можно доказать, что существует

0 x  H , x  0.

константа

такая,

что

A  x, x    

x

2

для

всех

В самом деле, так как все собственные значения матрицы A положительные, то в качестве  можно взять минимальное собственное значение.

189

Методы приближенных вычислений

Итак, матрица A приведенной системы симметричная и положительно определенная, т.е. для нее выполнены условия теоремы 11. Запишем метод Ричардсона

xk 1  xk T  A  xk  b , k  0,1, 2,; x   x1 , x2  ; k 1  2 1 A ,  1 2

x, x  

x 

b   4,5  ; T

2

x j 1

2 j

, x j – j-я компонента вектора x , j  1,2.

Параметры k будем определять по формулам

k  

0 2 1  , , k  1, n;  0  , 0  1   min  A   max  A 1  0  tk

 min  A ,  max  A

2  k  1   ,

k  1, n. 2n n  7. Пусть Для оценки (5.80) из теоремы 11 q определяется из соотношения x n  x  q n  x0  x , n t k  cos

qn 

1  2  1n , где 1  . 2n 1  1 1 

Для проведения расчетов разрешим схему метода Ричардсона относительно xk 1 и распишем покомпонентно:

 x1( k 1)  x1( k )  k 1   2  x1( k )  x2( k )  4  ,   ( k 1) (k ) (k ) (k )  x2  x2  k 1   x1  2  x2  5  . 190

5. Итерационные методы решения систем

За начальное приближение выбираем вектор

x0  2;2,5 . T

Результаты численных расчетов оформлены в виде табл. 5.1. Здесь k – номер итерации. Т а б л и ц а 5.1 (k ) 1

x

k 0 1 2 3 4 5 6 7

x

2 1,15965 1,10676 1,06248 1,03136 1,01126 1,00211 0,99990

k

(k ) 2

2,5 1,82772 1,89424 1,93728 1,96876 1,98863 1,99805 1,99980

0,5 0,33614 0,35976 0,41087 0,5 0,63852 0,8209 0,97554

Справедлива оценка

x7  x  q 7  x0  x , где x7  x  0,00022;,

x0  x  1,11803,; q7  0,0002 .

Метод простой итерации для указанной системы имеет вид

 x1( k 1)  x1( k )  0   4  2  x1( k )  x2( k )  ,   ( k 1) (k ) (k ) (k )  x2  x2  0   5  x1  2  x2  ;  0  0,5;, x0  2;2,5 ;, k  0,1, . T

Результаты расчетов по методу простой итерации приведены в табл. 5.2. Для метода простой итерации справедлива оценка

1  . 1  0  0,5;, x12  x  0, 00023;,

xk  x  0k  x0  x , 0  В

нашем

случае

x0  x  1,11803,;   0,00024 . 12 0

191

Методы приближенных вычислений Т а б л и ц а 5.2

k

x1( k )

x2( k )

0

0 1 2 3 4 5 6 7 8 9 10 11 12

2 0,75 1,25 0,9375 1,0625 0,98437 1,01562 0,99609 1,00391 0,99902 1,00099 0,99976 1,00012

2,5 1,5 2,125 1,875 2,03125 1,96875 2,00781 1,99219 2,00195 1,99802 2,00049 1,9995 1,9998

0,5

Из сравнения табл. 5.1 и 5.2 следует, что метод Ричардсона схо(7)

(7)

дится быстрее метода простой итерации (в самом деле, x1 и x2 из табл. 5.1 отличаются от точного решения на  0,0002 , а в табл. 5.2 – на  0,008 ).

5.12. Лабораторные задания Задание. Решить СЛАУ двумя итерационными методами по выбору. Доказать сходимость выбранных методов и получить оценку погрешности решения. Вариант № 1.

 1,1161   0,1254 A 0,1397   0,1490  192

0,1254 1,1675 0,1768 0,1871

0,1397 0,1768 2,2168 0,2271

0,1490   0,1871  , 0,2271  1,2671 

 0,01     0,02  b  . 0,03     0,04   

5. Итерационные методы решения систем

Вариант № 2.

 1,1161   0,1582 A 0,1968   0,2368 

0,1582 1,1652 0,2071 0,2471

0,1968 0,2071 1,2168 0,2568

0,2368   0,2471 , 0,2568   1,2671 

 0,22     0,33  b  . 0,44     0,55   

0,1582 1,1652 0,2071 0,2471

0,1968 0,2071 2,2168 0,2568

0,2368   0,2471  , 0,2568   1,2671 

 0,90     0,18  b  . 1,32     1,42   

0,1582 1,1652 0,2071 0,2471

0,1968 0,2071 1,2168 0,2568

0,2368   0,2471  , 0,2568   1,2671 

 1,25     1,50  b  . 1,75     2,00   

0,1582 2,1652 0,2071 0,2471

0,1968 0,2071 1,2168 0,2568

0,2368   0,2471 , 0,2568   1,2671 

 0,15     0,20  b  . 0,25     0,40   

Вариант № 3.

 1,1161   0,1582 A 0,1968   0,2368  Вариант № 4.

 2,1161   0,1582 A 0,1968   0,2368  Вариант № 5.

 1,1161   0,1582 A 0,1968   0,2368 

193

Методы приближенных вычислений

Вариант № 6.

 1,1161   0,1254 A 0,1397   0,1490 

0,1254 2,1675 0,1768 0,1871

0,1397 0,1768 1,2168 0,2271

0,1490   0,1871  , 0,2271  1,2671 

 0,36     0,37  b  . 0,38     0,39   

Вариант № 7.

 2,50758 0,12305 1, 01148  1,33221 0, 26142 0,12305 A  1, 01148 0, 26142 2,53183   0,37834 0, 44745 0, 44560

0,37834   0, 44745  , 0, 44560   2, 00855 

 0, 76    0, 77   b .  0, 78     0, 79  Вариант № 8.

 3, 2 1,5 0,5    A   1, 6 2,5 1  ,  1 4,1 1,5  

 0,9    b   1,55  .  2, 08   

Вариант № 9.

 8, 64 1, 71 5, 42    A   6,39 4, 25 1,84  ,  4, 21 7,92 3, 41   194

 10, 21    b   3, 41  .  12, 29   

5. Итерационные методы решения систем

Вариант № 10.

 1, 02 0, 25 0,3    A   0, 41 1,13 0,15  ,    0, 25 0,14 1, 21 

 0,515    b   1,555  .    2, 78 

Вариант № 11.

2,18 5, 684   8, 714   A   1,351 10, 724 5, 224  ,    2, 489 0, 459 6, 799 

 49,91    b   50,17  .    32, 68 

Вариант № 12.

6  10 2   A   1 10 9 ,    2 7 10 

 2,8    b   7 .    17 

Вариант № 13.

 4, 289 0,125 2,387    A   1, 748 5,929 0, 741 ,  3, 205 0,311 4, 007   

 6,801    b   6,936  .  7,523   

Вариант № 14.

 1, 208 1, 207 0, 293    A   2, 421 1, 207 0,322  ,  0, 284 1,147 0, 284   

 3, 001    b   4, 272  .  1,999    195

Методы приближенных вычислений

Вариант № 15.

 3,849 0, 244 1, 234    A   0,843 3, 427 0, 741 ,    1, 284 0, 296 2, 783 

 5,571    b   6, 752  .    3, 475 

Вариант № 16.

 0,141 1, 282 3, 244    A   0,992 2, 004 1, 748  ,  2, 425 0, 708 1,923   

 2, 244    b   2, 24  .  7, 481   

Вариант № 17.

 4,881 0, 729 1, 283    A   0, 234 3, 724 1, 207  ,  1,102 0,884 3,982   

 7, 622    b   8,889  .  6,852   

Вариант № 18.

 3, 782 0,993 1,147    A   0, 734 5, 729 2,324  ,  1, 283 0,926 3, 426   

 5,922    b   8, 787  .  5, 635   

Вариант № 19.

 1,144 0, 742 2,324    A   0,326 4, 706 1,822  ,  3,941 0, 647 0, 786    196

 3, 048    b   5,943  .  4,981  

5. Итерационные методы решения систем

Вариант № 20.

 2,134 0, 745 1,189    A   0,105 1, 424 0, 606  ,  1, 776 0,808 1,134   

 4, 068    b   2,135  .  3, 718   

Вариант № 21.

 1, 766 0, 424 6,344    A   4, 248 0,141 0,926  ,  0, 341 5, 628 1, 724   

 5,362    b   3, 644  .  6,831   

Вариант № 22.

 1,524 0,996 3, 284    A   6, 224 0, 729 2,114  ,  2,111 7,982 1,146   

 4,162    b   8, 010  . 10, 666   

Вариант № 23.

 2,31 31, 49 1,52    A   3, 49 4,85 28, 72  ,  24, 21 2, 42 3,85   

 40,95    b   42,81  .  30, 24   

Вариант № 24.

 3, 49 4,85 28,92    A   24, 41 2, 42 3,85  ,  2,31 31, 49 1,52   

 42,81    b   30, 24  .  40, 75    197

Методы приближенных вычислений

Литература 1. Березин И.С., Жидков Н.П. Методы вычислений. М. : ГИФМЛ, 1960. Т. 2. 620 с. 2. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1976. Т. 1. 304 с. 3. Самарский А.А. Введение в численные методы. М. : Наука, 1992. 271 с. 4. Самарский А.А., Гулин А.В. Численные методы. М. : Наука, 1989. 432 с. 5. Вержбицкий В.М. Основы численных методов. М. : Высшая школа, 2002. 840 с. 6. Точные методы решения систем линейных алгебраических уравнений : метод. указания. Томск : Том. гос. ун-т, 1990. 34 с.

198

6. Вычисление собственных значений и собственных векторов

6. ВЫЧИСЛЕНИЕ СОБСТВЕННЫХ ЗНАЧЕНИЙ И СОБСТВЕННЫХ ВЕКТОРОВ МАТРИЦ 6.1. Общие замечания. Сведения из алгебры В данной главе рассматривается теоретически и практически важная задача линейной алгебры, называемая проблемой собственных значений и собственных векторов матриц. Дадим следующие определения. Определение 1. Собственным значением (или характеристическим числом) квадратной матрицы A называется такое число  , что для некоторого ненулевого вектора X имеет место равенство

AX  X .

(6.1)

Определение 2. Любой ненулевой вектор X , удовлетворяющий этому равенству, называется собственным вектором матрицы A , соответствующим (или принадлежащим) собственному значению  . Очевидно, что все собственные векторы матрицы A определяются с точностью до числового множителя. Ценность сведений о собственных значениях матрицы A не вызывает сомнений. В самом деле, сходимость и скорость сходимости метода простой итерации, применяемого для приближенного решения системы линейных алгебраических уравнений

X  BX  b ,

(6.2)

существенно зависят от величины максимального по модулю собственного значения матрицы B [3, с. 136]. Заметим, что задача нахождения собственных значений и собственных векторов матрицы имеет значение не только как вспомогательная. Многие прикладные задачи физики, механики, 199

Методы приближенных вычислений

астрономии, радиофизики приводят исследователя к проблеме определения нетривиального решения однородной системы линейных алгебраических уравнений вида (6.1) и тех значений числового параметра  , при которых такое решение существует [1, с. 219]. Проблема собственных значений играет значительную роль во всех явлениях неустойчивых колебаний и вибраций, так как частота колебаний определяется собственными значениями некоторой матрицы, форму же этих колебаний указывают собственные векторы этой матрицы [1]. Анализ собственных значений матриц является важной темой научно-технических исследований. Условием существования нетривиального решения у системы (6.1) (или, что то же, ( A  E ) X  0 , где E – единичная матрица) является требование:

a12  a11    a a22   det A  E  det  21     an 2  an1

a1n   a2 n    0.      ann    

(6.3)

Обычно это уравнение называется характеристическим (или вековым) уравнением матрицы A . Левая часть этого уравнения

det A  E  ( 1) n ( n  P1 n 1  P2  n  2    Pn )

(6.4)

называется характеристическим полиномом матрицы. Вместо полинома вида (6.4) рассматривают полином, отличающийся от характеристического множителем (1) . Этот полином имеет вид n

P( )   n  P1 n 1  P2  n  2    Pn и обычно называется собственным многочленом матрицы. Собственные значения матрицы есть корни её собственного многочлена P() .

200

6. Вычисление собственных значений и собственных векторов

Совокупность всех собственных значений 1 ,, n матрицы

A , где каждое i выписано столько раз, какова его кратность как корня P() , называется спектром этой матрицы. Собственные векторы матрицы A есть нетривиальные решения однородной системы (6.1), в которой вместо  подставлены собственные значения i матрицы. В случае, когда для данного i система (6.1) имеет несколько линейно независимых решений, этому собственному значению соответствует несколько собственных векторов. Если A – вещественная матрица, то комплексному собственному значению соответствуют собственные векторы, координаты которых – комплексные числа. Задачу нахождения собственных значений и собственных векторов матрицы A условно можно разбить на 3 составные части: 1) построение собственного многочлена P() матрицы A ; 2) решение характеристического уравнения P()  0 и вычисление собственных значений  i , i  1, n , матрицы А; 3) отыскание нетривиальных решений системы линейных алгебраических уравнений

( A  E) X  0 , другими словами, нахождение собственных векторов матрицы A :

X 1 , X 2 , , X n . Заметим, что в некоторых случаях (например, в степенном методе) первую часть из 3 указанных выше можно не выполнять при решении задачи о нахождении собственных значений и соответствующих им собственных векторов. Как правило, это можно сделать, используя различные свойства собственных значений и собственных векторов матрицы А. Следует заметить, что каждая из 3 составных частей или этапов нахождения собственных значений и собственных векторов мат201

Методы приближенных вычислений

рицы A есть достаточно сложная вычислительная задача. Действительно, технически сложно реализуется 1-й этап, так как  входит в каждую строку и каждый столбец определителя. Непосредственное вычисление коэффициентов многочлена P() квадратной матрицы порядка n связано с вычислением 2n  1 определителей различных порядков [1]. Последнее обстоятельство для достаточно больших n сопряжено с большими затратами времени и памяти ПЭВМ. Из теоремы Виетта имеем

1   2     n  P1 , 1   2   n  (1)n 1  Pn .

(6.5)

Тогда в силу (6.3) получаем, что

P1  a11  a22    ann , Pn  ( 1) n 1  det A , откуда имеем

1   2     n  a11  a22    ann  SpA, 1   2   n  det A .

(6.6)

Итак, сумма всех собственных значений матрицы A совпадает с её следом SpA , а произведение – со значением определителя этой матрицы. Трудности 2-го и 3-го этапов связаны с трудностями решения алгебраических уравнений высоких степеней и нахождения нетривиальных решений однородных систем линейных алгебраических уравнений [1, с. 222]. Методы решения проблемы собственных значений и соответствующих им собственных векторов делятся на две группы: 1) точные (или прямые); 2) итерационные. К числу точных методов принадлежат: 202

6. Вычисление собственных значений и собственных векторов

1) метод Крылова [1, с. 224–232]; 2) метод Данилевского [1, с. 233–240]; 3) метод Самуэльсона [1, с. 265–266]; 4) интерполяционный метод [1, с. 241–242]; 5) метод Леверье [1, с. 243–244]; 6) метод Д.К. Фаддеева [1, с. 142–144]; 7) метод окаймления [1, с. 246–247; 2, с. 145–146]; 8) метод ортогонализации [1, с. 257–259; 2, с. 146–155]; 9) метод Хессенберга [1, с. 260–264; 2, с. 156–160] и др. [6; 15, с. 316–347]. Среди итерационных методов решения проблемы собственных значений и собственных векторов назовём степенной метод [1, с. 268–286], метод вращений [1, с. 289–303], треугольный степенной метод [2, с. 187–191] и др. [2, с. 192–204]. В методах первой группы вначале строится собственный многочлен матрицы, т.е. вычисляются коэффициенты P1 , P2 ,, Pn . Затем, определив корни этого многочлена, получают собственные значения матрицы A , а по ним – соответствующие собственные векторы. Заметим, что при нахождении собственных векторов во многих случаях не решают однородную систему линейных алгебраических уравнений (6.1), а используют промежуточные вычисления 1-го этапа [1, с. 222–223]. Название методов 1-й группы – точные – объясняется тем, что в случае точного задания элементов матрицы (рациональные числа) и при точном проведении вычислений эти методы приводят к точным значениям коэффициентов многочлена P() , а координаты собственных векторов при этом выражаются через соответствующие собственные значения. Основная идея прямых методов состоит в том, что исходная матрица с помощью некоторых преобразований приводится к матрице более простого вида и собственные значения её находят как корни характеристического многочлена одним из известных методов [5, с. 111]. Прямые методы чувствительны к влиянию ошибок округления, и это сужает область их применения [Там же, с. 112]. 203

Методы приближенных вычислений

В методах второй группы собственные значения матрицы определяются непосредственно, без использования собственного многочлена P() . Собственные векторы вычисляются одновременно. Вычислительные схемы в этих методах носят итерационный характер и основаны на многократном умножении матрицы на вектор. Скорость сходимости такого итерационного процесса определяется величиной отношения модулей различных соседних собственных значений. Как правило, итерационные методы позволяют найти с достаточной точностью только первые, например наибольшие по модулю собственные значения и соответствующие им собственные векторы. Поэтому II группа методов чаще всего применяется для решения так называемой частичной проблемы собственных значений. Суть проблемы – в определении одного или нескольких собственных значений матрицы A и соответствующих собственных векторов. Точные методы позволяют решать как полную, так и частичную проблемы собственных значений. Под полной понимается проблема нахождения всех собственных значений матрицы A и принадлежащих им собственных векторов. Полная проблема собственных значений в некоторых случаях может быть решена и специальными итерационными методами [1, с. 223]. Эти методы, естественно, более трудоемки, чем соответствующие точные методы, и их использование стало возможным с появлением быстродействующих современных ПЭВМ [Там же]. Преимущество итерационных методов перед точными состоит в том, что они позволяют находить все собственные значения без предварительного построения собственного многочлена P() матрицы. Это имеет большое значение, так как ошибки определения коэффициентов многочлена P() сильно влияют на точность определения i , а значит, и соответствующих им собственных векторов. Отметим также, что для итерационных методов характерна простота и единообразие производимых действий. Последнее особенно ценно при использовании современных ПЭВМ [Там же]. Полная и частичная проблемы собственных значений сильно различаются и по методам их решения, и по области приложений. 204

6. Вычисление собственных значений и собственных векторов

Решение полной проблемы собственных значений даже для матриц не очень высокого порядка связано с большим объемом вычислений. Поэтому возможность решения частичной проблемы собственных значений другими методами, минуя трудности решения полной проблемы, представляют большую ценность для практики.

6.2. Методы решения полной проблемы Изложение вычислительных методов решения полной проблемы собственных значений начнем с рассмотрения точных методов. Будем для простоты рассматривать матрицы с вещественными элементами. Первым рассмотрим метод Данилевского.

6.2.1. Метод Данилевского Этот простой и экономичный способ нахождения всех собственных значений и соответствующих им векторов был создан в 30-х гг. XX в. А.М. Данилевским. Метод основан на известном факте из линейной алгебры о том, что преобразование подобия S 1 AS не меняет характеристического многочлена матрицы A [2, с. 130]. В этом легко убедиться:

det S 1 AS  E  det S 1 AS  S 1 ES   det S 1  det A  E  det S  det A  E (так как det S 1  det S  const  0 , то при записи характеристического уравнения на эту величину можно сократить). При удачном подборе преобразования можно получить матрицу, собственный многочлен которой может быть выписан непосредственно по её виду. В методе Данилевского предлагается приводить исходную матрицу A с помощью преобразования подобия S 1 AS к так называемой канонической форме Фробениуса: 205

Методы приближенных вычислений

 P1 P2 P3  1 0 0 0 1 0           0 0 0 0 0 0 

 Pn  2  0  0

Pn 1 0

0 

 

1 0

0 1

Pn   0 0   .   0 0 

Для матрицы  характеристический многочлен может быть легзаписан, если последовательно разлагать определитель det    E по элементам первого столбца. В результате получим

ко

det   E  (1) n  n  P1 n 1  P2 n  2    Pn 1  Pn    (1) n Pn (). Из последнего соотношения видно, что элементы 1-й строки матрицы в форме Фробениуса  являются коэффициентами её собственного многочлена и, следовательно, собственного многочлена исходной матрицы A . Матрицы  и A связаны между собой 1 преобразованием подобия   S  A  S . Решив полученное уравнение Pn ()  0 , находим собственные значения матрицы A . Далее неособенная матрица S, полученная в методе Данилевского, используется при нахождении собственных векторов матрицы A . Построение матрицы S в методе Данилевского осуществляется последовательно с помощью n  1 преобразований подобия, которые переводят строки матрицы A , начиная с последней, в соответствующие строки матрицы  . В методе Данилевского, в зависимости от элементов матрицы A, могут иметь место два случая: регулярный и нерегулярный. Рассмотрим регулярный случай. Что касается нерегулярного случая, то его подробный анализ можно найти, например, в [1, с. 237– 239; 2, с. 136–137]. 206

6. Вычисление собственных значений и собственных векторов

Рассмотрим матрицу A  (aij ), i  1, n; j  1, n . Предположим, что элемент an, n1 матрицы A отличен от 0 (регулярный случай). Разделив (n  1) -й столбец этой матрицы на данный элемент и вычитая этот столбец из i -го столбца матрицы, предварительно умножив его на элемент an ,i , i  1, 2, n  2, n , приводим последнюю строку матрицы A к виду в форме Фробениуса. Указанное преобразование эквивалентно умножению матрицы A справа на матрицу 0 0  1  1 0  0      0 0 Sn1   0  a a a   n1  n2  n3 a a a  n,n1 n,n1 n,n1  0 0 0 

0

0

0  1

0  0

an,n2 an,n1

1 an,n1

0

0

    

  0   .  0  a   n,n  an,n1  1  0

После умножения A  Sn 1 последняя строка матрицы принимает нужный вид, однако указанное преобразование не будет преобразованием подобия для матрицы A . Чтобы получить преобразование подобия, умножим A  Sn 1 слева на матрицу S n11 . Такая матрица существует, так как det S n 1  1 an , n 1  0 . Легко проверить, что матрица S n11 имеет вид  1   0   1 S n 1     0   an,1  0 

0

0

0

0

1  

0  

  

0  

0  

0 an ,2

0  1 an ,3  an, n  2

0

0

0

0 an,n 1 0

0   0     . 0   an ,n  1 

207

Методы приближенных вычислений

Заметим, что преобразование S n11  A  S n 1 не меняет последней строки матрицы A  Sn 1 . Итак, после первого шага метода Данилевского получается матрица вида

 a11(1) a12(1) a13(1)  (1) (1) a23(1)  a21 a22      Sn11ASn1  A(1)           (1) (1) (1)  an1,1 an1,2 an1,3  0 0  0

 a1,(1)n2  a2,(1)n2    

 

a1,(1)n1 a2,(1)n1   

 an(1)1,n2 an(1)1,n1  0 1

a1,(1)n   a2,(1)n     ,   an(1)1,n  0 

здесь

aij(1)  aij  ai,n1 

anj an,n1

, i  1,, n  2, n; j  1,, n  2, n;

  anj  anj   an,2  a2 j  a2,n1  an(1)1, j  an,1  a1 j  a1,n1          a a n n n n   , 1 , 1      anj  a , j  1,, n  2, n; ai(1,n)1  i ,n1 , an,n1  an1, j  an1,n1    an,n1  an,n1  i  1,, n  2, n. Пусть далее элемент an(1)1, n  2 матрицы A(1) не равен нулю. Тогда на втором шаге метода Данилевского выполняются аналогичные первому шагу преобразования, а именно; (n–1)-я строка матрицы A(1) приводится к нормальной форме Фробениуса, причем n-я строка матрицы A(1) сохраняется неизменной. В результате преобразования на втором шаге будем иметь 208

6. Вычисление собственных значений и собственных векторов

S n12  Sn11  A  Sn 1  Sn  2  Sn12  A(1)  Sn  2  A(2) ,

1 где S n  2

0  1  1  0        (1)  an 1,1 an(1)1,2  0  0  0 0 

A(2)

 a11(2)        (2)  an  2,1  0   0

0 0   an(1)1,3 0 0

0 0  

    an(1)1,n  2  0  0

a12(2)

 

    (2)  an  2, n  2 1  0 

an(2) 2,2 0 0

0  1  1  0        Sn2  (1) a a(1) – (1)n1,1 – (1)n1,2  an1,n2 an1,n2  0  0  0 0 

a1,(2)n  2

  

0 0 

a(1) – n(1)1,n3 an1,n2  

0 0

0 0   an(1)1,n 1 1 0

a1,(2)n 1   an(2) 2, n 1 0 1

     , (1)  an 1,n  0  1  0 0  

a1,(2)n       , an(2) 2,n  0   0 

         . an(1)1,n1 an(1)1,n  1  – – an(1)1,n2 an(1)1,n2 an(1)1,n2   0 1 0  0 0 1  0 0 

0 0 

0 0 

Формулы для вычисления элементов матрицы A(2) получаются аналогично формулам для элементов aij(1) , только надо учитывать, 209

Методы приближенных вычислений

что элемент an(1)1, n  2  0 расположен в ( n  2) -м столбце и в

(n  1) -й строке и потому индексы i и j будут меняться с учетом этого факта (сами формулы можно посмотреть в [1, с. 233–235]). Процесс последовательного преобразования матрицы A к виду Фробениуса  продолжается до тех пор, пока не получим на ( n  2) (n  1) -м шаге, что элемент a2,1 матрицы A( n  2) не равен нулю. Осуществим преобразование 2-й строки матрицы A( n  2) к виду Фробениуса с помощью подобного преобразования:

1 1

( n  2)

S A

( n 1)

 S1  A

 a11( n 1)   1       0 

a12( n 1)  a1,( nn1)1 0 

 

0 

 0

 

 1

a1,( nn1)   0       0 

 P1 P2  Pn 1 Pn    0 1 0  0           S 1 AS .         0 0  1 0   Заметим, что

 1  ( n  2)  a21  0  S1          0  210

( n  2) a22 ( n  2) a21

( n  2) a23 ( n  2) a21

 

a2,( nn2)1 ( n  2) a21

1

0

0

 

 

 

 

 0

 0

 

 0

a2,( nn 2)  ( n  2)  a21  0    ,      1 

6. Вычисление собственных значений и собственных векторов

( n  2)  a21   0 1 S1        0 

( n  2) a22 1   0

( n  2) a23 0   0

 a2( nn 2)   0     .     1  

Итак, исходная матрица A с помощью преобразования подобия с неособенной матрицей S  Sn1  Sn2  S1 приведена к нормальной форме Фробениуса. По виду первой строки матрицы  можно записать собственный многочлен матрицы A :

P()   n  P1 n 1    Pn 1  Pn . Контроль

правильности

определения

коэффициентов

Pi , i  1,, n, характеристического многочлена можно осуществить, сравнивая элемент P1 со следом матрицы (как известно, они должны совпадать), а также сравнивая Pn и значение определителя матрицы A . Опишем теперь алгоритм нахождения собственных векторов матрицы A . Если определены собственные значения  i (i  1, n) матрицы

A и известны неособенные матрицы Si , i  n  1,1 , преобразования подобия, с помощью которых приводят исходную матрицу A к форме Фробениуса  , то можно при нахождении собственных векторов матрицы A обойтись без решения системы линейных алгебраических уравнений

AX i   i X i , i  1, n. Как уже было сказано, матрицы, связанные преобразованием подобия, имеют одинаковые спектры [1, с. 239]. Но собственные 211

Методы приближенных вычислений

векторы этих матриц, соответствующие одним и тем же собственным значениям, будут, вообще говоря, различны. Однако между ними существует следующая связь: если X – собственный вектор матрицы A , соответствующий собственному значению  , а вектор Y – собственный вектор, принадлежащий тому же собствен1 ному значению подобной ей матрицы   S AS , тогда вектор SY будет собственным вектором матрицы A , соответствующим собственному значению  . Справедливость этого утверждения почти очевидна. В самом 1 деле, Y  Y или, учитывая, что   S AS , имеем S 1 ASY  Y . Отсюда, после умножения слева на S , получим ASY  SY . Таким образом, зная собственные векторы Y матрицы  , легко можно определить собственные векторы X матрицы A . Пусть  – собственное значение матрицы  . Тогда Y  Y или

 P1 P2  1 0      0 0 

 Pn 1 Pn   y1   y1     y   0 0  2   y2           .              y   1 0  yn   n

Распишем последнее соотношение:

P1 y1  P2 y2    Pn yn  y1 , 

y1 y2

y 2 , y3 ,

            yn . yn 1  212

6. Вычисление собственных значений и собственных векторов

В полученной системе уравнений одну из неизвестных компонент yi вектора Y задаем произвольно, например yn  1 . Затем последовательно определим

yn 1  , yn  2   2 , , y2   n  2 , y1   n 1. Первое уравнение системы тогда можно переписать в виде

P ()   n  P1 n 1  P2  n  2    Pn 1  Pn  0.

Итак, вектор  n 1 ,  n  2 , , ,1

T

является собственным векто-

ром матрицы в форме Фробениуса, соответствующим данному  . Так как в процессе определения P1 ,, Pn последовательно построили Sn1 , Sn2 ,, S1 (регулярный случай), то, исходя из ранее полученного соотношения X  SY , можем последовательно определить компоненты вектора X :

X  Sn 1Sn  2  S1Y . Отметим, что при умножении S1 на Y 0 меняется лишь первая компонента вектора Y , а умножение Si на Si 1  S1Y изменит лишь i -ю компоненту у последнего вектора.

6.2.2. Интерполяционный метод В этом методе определитель, из которого получается характеристический многочлен, не приводится к специальному виду [2, с. 139–141; 15, с. 324–330]. Рассмотрим матрицу A n-го порядка и запишем вековой определитель

D ( )  det  A  E  . Известно, что полином степени n , соответствующий D() , вполне определяется своими значениями в ( n  1) точке и может 213

Методы приближенных вычислений

быть восстановлен по этим значениям с помощью какой-либо интерполяционной формулы. Выберем в качестве i : 0  0, 1  1,, n  n ( n  1 значение

i можно задавать произвольно). Учитывая, что старший коэффициент искомого характеристического многочлена равен (1) , для определения его остальных коэффициентов достаточно вычислить n значений определителя D() . n

Вычислим значения D(i ) при выбранных значениях  i , i  1, n. Для того чтобы определить коэффициенты Pj , j  1, n , будем решать следующую систему линейных алгебраических уравнений:

D ( i )  ( 1) n   in  P1 in 1    Pn 1 i  Pn  , i  1, n. В качестве методов решения этой системы можно использовать правило Крамера, прямые и итерационные методы решения систем линейных алгебраических уравнений [4, с. 268–304; 7; 10, с. 372–441]. Кроме того, для построения многочлена можно воспользоваться различными интерполяционными формулами для случая равноотстоящих и неравноотстоящих узлов [10, с. 46–126; 15, с. 324–330]. Построенный многочлен и является характеристическим многочленом, а его корни – собственными значениями матрицы A . Как следует из вышесказанного, теоретически интерполяционный метод прост. Практически его реализация требует большого числа операций. Заметим также, что метод интерполяции не позволяет каким-то образом упростить задачу определения собственных векторов матрицы, тогда как, например, методы Данилевского и Крылова существенно упрощают решение этой задачи [2, с. 141]. Достоинством указанного метода является широкая область его применимости, а также то, что с его помощью можно «развернуть» определитель в случае, когда его элементами являются известные алгебраические многочлены переменной  [Там же]. 214

6. Вычисление собственных значений и собственных векторов

6.2.3. Метод вращений Прежде чем привести общую схему метода вращений, а также QR-алгоритма, отметим, что основные понятия, используемые в этих методах, такие как ортогональная, эрмитова матрица, треугольная матрица, матрица отражений и другие, можно найти, например, в [5, с. 9–29; 9, с. 265–267]. Среди итерационных методов особое место занимает метод вращений (метод Якоби) решения полной проблемы собственных значений вещественной симметричной матрицы [5, с. 112]. Метод основан на построении последовательности матриц, которые ортогонально подобны исходной матрице и имеют монотонно убывающие до нуля суммы всех внедиагональных элементов. Без существенных изменений метод вращений переносится на эрмитовы и косоэрмитовы матрицы. Ограничимся рассмотрением случая вещественной симметричной матрицы A . Случай комплексной эрмитовой матрицы можно посмотреть в [Там же, с. 126, 127]. Итерационный процесс осуществляется следующим образом. На 1-м шаге в матрице A определяется максимальный по абсолютной величине элемент aij (i  j ) . Далее строится матрица вращения

1     Tij ()      0 

     0        cos    sin    i-я строка;         sin   cos    j-я строка.             1    i-й столбец

j-й столбец

215

Методы приближенных вычислений

Угол  подбирается таким образом, чтобы у матрицы

A(1)  TijT ATij  (aij(1) ) элемент aij(1) , i  j , обратился в нуль. В целом метод заключается в построении последовательности матриц

A(1) , A(2) ,, A( k ) ,, каждая из которых получается из предыдущей при помощи шага, аналогичного вышеуказанному. Опуская для простоты записи индекс k у матрицы, исследуем результат преобразования

A  TijT ATij ,

 через a , a . Из формулы обозначая элементы матриц A и A ij ij  будем иметь: для A

akl  akl , k  i, j; l  i, j; ail  ail cos  ajl sin , l  i, j; a jl  ail sin  ajl cos , l  i, j; ali  ali cos  alj sin , l  i, j; alj  ali sin  alj cos , l  i, j; aii  (aii cos  aji sin )  cos  (aij cos  ajj sin )  sin ; a ji  (aii sin  aji cos )  cos  (aij sin  ajj cos )  sin ; a jj  (aii sin  aji cos )  sin  (aij sin  ajj cos )  cos ; aij  (aii cos  aji sin )  sin  (aij cos  ajj sin )  cos . С учетом симметрии матрицы A легко проверить, что

 a k l

216

2 kl

  akl2  2aij2  1 (a jj  aii ) sin 2  2aij cos 2 . 2 k l 2

6. Вычисление собственных значений и собственных векторов

Из последнего соотношения следует, что для уменьшения суммы квадратов внедиагональных элементов матрицу Tij необходимо выбрать таким образом, чтобы выполнялись два условия:

aij2  max akl2 , k l

(a jj  aii ) sin 2  2aij cos 2  0. Из второго условия следует, что

tg2  Отсюда

2aij aii  a jj

  sin   sin  1  arctgP  , 2

, 

 . 4

cos   cos 1  arctgP , 2 где P 

2aij aii  a jj

.

В [5, с. 23–29], доказано, что A( k ) сходится к диагональной матрице  при k   . Тогда приближенными значениями собственных чисел матрицы A будут диагональные элементы матрицы A(k) , а приближенными значениями собственных векторов – столбцы матрицы [5, с. 25–26]: k

Tk   Ti , j .  1

6.2.4. QR-алгоритм Существует ряд хорошо отработанных алгоритмов и программ решения полной проблемы собственных значений, основанных на различных модификациях QR-алгоритма. Поэтому рекомендуется в случае решения этой проблемы пользоваться стандартными программами решения таких задач. 217

Методы приближенных вычислений

QR-алгоритм был одновременно предложен В.Н. Кублановским и Д. Френсисом в 1961 г. [2, с. 194–196; 5, с. 178–181]. Пусть A – произвольная вещественная матрица. В соответствии с леммой из [9, с. 267] эту матрицу можно представить в виT де A  U T  An 1 , где U – ортогональная, U – транспонированная к U матрица, а An1 – правая треугольная матрица. Обозначив

Q1  U T , R1  An 1 , получим, что A  Q1  R1 . Из этого равенства имеем

R1  Q11  A . 1

Поэтому матрица A1  R1  Q1  Q1  A  Q1 подобна матрице A . Далее строим последовательность матриц Ak по такому правилу: представляем матрицу Ak в виде произведения ортогональной и правой треугольной матрицы

Ak  Qk 1  Rk 1 и полагаем Ak 1  Rk 1  Qk 1. В силу того что Ak 1  Qk11  A  Qk 1 , все матрицы Ak подобны между собой и подобны исходной матрице A . Построение последовательности матриц Ak осуществляется с помощью матриц отражений. Более подробно с алгоритмом построения этой последовательности можно познакомиться, например, в [9, с. 265–268]. Если требуется определить не только собственные значения матрицы A , но и её собственные векторы, то в процессе построения последовательности матриц Ak следует запоминать ортогональные матрицы Pk  Q1  Qk , вычисляемые по рекуррентной формуле Pk 1  Pk  Qk 1 . 218

6. Вычисление собственных значений и собственных векторов

Указанный метод выгодно применять для верхних почти треугольных матриц, так как в ходе преобразований их структура не разрушается и это позволяет в 2 раза уменьшить время расчета по сравнению с общим случаем. По устойчивости и характеру сходимости QR-метод аналогичен ортогональному степенному методу [8, с. 187].

6.2.5. Итерационные методы решения полной проблемы Имеется несколько методов, основанных на бесконечном количестве преобразований подобия, приводящих матрицу к некоторым специальным формам, для которых полная проблема собственных значений легко решается. Итерационные методы сложнее прямых. В случае матриц произвольного вида они заметно уступают прямым методам по скорости решения задачи. Дадим краткую характеристику основным методам. Метод обобщенных вращений (развит Эберлейном и В.В. Воеводиным в 1962–1965 гг.). Основан на преобразовании матрицы к квазидиагональной форме, когда по главной диагонали расположены клетки, порядки которых равны кратности соответствующих собственных значений, а все остальные элементы матрицы равны нулю (имеется в виду приближенное равенство в силу итерационности метода). Для случая, когда все собственные значения матрицы простые, процесс сходится к диагональной матрице. Ортогональный степенной метод [5, с. 167–177; 8, с. 187] предложен В.В. Воеводиным в 1962 г. Он основан на преобразовании матрицы к квазитреугольной форме, когда на главной диагонали стоят клетки, а ниже них все элементы равны 0. У матриц такого вида собственные значения равны собственным значениям диагональных клеток, а собственные векторы определяются сложнее и менее точно. Этот метод устойчив и всегда сходится. Скорость сходимости линейная. Требуемое число итераций велико, особенно если среди собственных значений есть близкие друг к другу. 219

Методы приближенных вычислений

Треугольный степенной метод был предложен Бауэром в 1953 г. и основан на преобразовании матрицы к квазитреугольной форме [2, с. 187–192; 5, с. 182–188]. Сходимость метода линейная, но на каждую итерацию затрачивается меньшее число действий, чем в ортогональном степенном методе. С другой стороны, треугольный степенной метод менее устойчив, особенно если собственные значения матрицы – комплексные числа или в расчетах появляются матрицы с близкими к нулю главными минорами. Идея преобразования матрицы к квазитреугольной форме лежит в основе  P -алгоритма, предложенного Х. Рутисхаузером и Ф. Бауэром в 1955 г. [1, с. 566–568; 5, с. 193–195]. Алгоритм разработан только для вещественных матриц с вещественными собственными значениями. Метод всегда сходится, причем вблизи решения сходимость квадратичная. Итак, по скорости данный метод превосходит ортогональный степенной, зато уступает ему по устойчивости. LR-алгоритм предложил Х. Рутисхаузер в 1955 г. [5, с. 189–192; 15, с. 561–565]. Метод рассчитан только на вещественные матрицы с вещественными собственными значениями. Алгоритм близок к треугольному степенному методу, сходится медленно и не всегда устойчив. Зато в случае почти треугольных матриц LR-алгоритм 2 требует всего 2n действий на 1 итерацию, а для ленточных матриц дает еще большую экономию.

6.3. Итерационные методы решения частичной проблемы собственных значений Изложение итерационных методов, решающих частичную проблему собственных значений матрицы A порядка n  n , можно найти, например, в [4, с. 421–434; 8, с. 189–193; 9, с. 310–314; 10, с. 580–598; 11, с. 166–172; 12, с. 152–153; 13, с. 149–157; 14, с. 65– 73]. Классическим итерационным методом, который может быть полезным для разреженных матриц большой размерности, являет220

6. Вычисление собственных значений и собственных векторов

ся степенной метод [9, с. 310–313; 11, с. 166–169; 13, с. 149–155]. Этот метод применяется для нахождения одного или нескольких наибольших по модулю собственных значений и соответствующих им собственных векторов. Рассмотрим некоторые частные случаи применения степенного метода.

6.3.1. Нахождение максимального по модулю собственного значения Допустим, что квадратная матрица A порядка n обладает полной системой n линейно независимых собственных векторов X 1 , X 2 , , X n , соответствующих собственным значениям

1 , 2 ,, n , т.е. справедливо AX i   i X i , i  1, n.

(6.7)

Такой случай возможен, когда все собственные значения различны между собой или матрица A – симметричная. Пусть все i упорядочены так, что выполняются неравенства

1   2   3   4     n .

(6.8)

Зададим произвольный вектор

Y (0)  ( y1(0) , , yn(0) )T  0 и разложим его по векторам базиса X 1 , X 2 , , X n . Имеем

Y (0)  1 X 1   2 X 2     n X n ,

(6.9)

где 1 ,, n – координаты Y (0) в базисе

X 1 , X 2 , , X n ,

n

 i 1

2 i

0

и пусть 1  0 . 221

Методы приближенных вычислений

С помощью вектора Y (0) построим итерационную последовательность

Y (0) , Y (1)  AY (0)  A(1 X 1    n X n ), Y (2)  AY (1)  A2 (1 X 1    n X n ),

(6.10)

……………………………………………………. Y ( k )  AY ( k 1)  Ak (1 X 1    n X n ), ……………………………………………………. Как следует из (6.7),

Ak X i   ik X i , i  1, n. Тогда

Y ( k )  11k X 1  2  2k X 2    n  nk X n

(6.11)

и при k   , в силу (6.8), первое слагаемое в (6.11) будет главным. Для определения 1 запишем (6.11) через компоненты векторов. Обозначим

Y ( k )   y1( k ) , , yn( k )  , T

X i   x1i , x2i , , xni  . T

Тогда векторное равенство (6.11) равносильно n численным равенствам

y1( k )  11k x11  2  2k x12     n  nk x1n , ……………………………………………………. ys( k )  11k xs1  2  2k xs 2    n  nk xsn ,

(6.12)

……………………………………………………. yn( k )  11k xn1   2  2k xn 2     n  nk xnn . Найдем, далее, отношения соответствующих компонент вектора Y ( k 1) к компонентам Y ( k ) . Будем иметь 222

6. Вычисление собственных значений и собственных векторов

ys( k 1) 11k 1 xs1   2  2k 1 xs 2    n  nk 1 xsn   ys( k ) 11k xs1   2  2k xs 2    n  nk xsn 

11k 1 xs1 1  2k 12 s    nk 1ns  11k xs1 1  2k 2 s    nk ns 

,

(6.13)

s  1, n.

Здесь введены обозначения

i 

i x , is  i si , i  2, n. 1 1 xs1

Так как i  1, i  2, n , то при k   из (6.13) получаем

 .

ys( k 1) ys( k )  1  O 2

k

Следовательно, для достаточно больших k можно приближенно принять

1 

ys( k 1) . ys( k )

(6.14)

Отметим, что все проведенные выше выкладки справедливы в предположении, что xs1  0, 1  0 . Обычно несколько компонент вектора X1 не равны 0. Тогда по формуле (6.14) можно вычислить отношения при нескольких значениях s . Если эти отношения оказываются одинаковыми в пределах принятой точности вычислений, то счет прекращают. При этом 1 будет найдено с некоторой заданной точностью. Изложенный вычислительный процесс позволяет одновременно с наибольшим собственным значением 1 найти соответствующий ему собственный вектор X1 . В самом деле, из (6.11) имеем

Y ( k )  1k 1 X 1   2 k2 X 2     n nk X n  .

(6.15) 223

Методы приближенных вычислений

Отсюда при больших k следует, что

X1 

1 Y (k ) ,  k 1 1

т.е. собственный вектор X1 определяется с точностью до константы через Y ( k ) . Если 1  1 , то Y ( k )  0 , а если 1  1 , то Y ( k )   при k   . По этой причине векторы Y ( k ) нуждаются в нормировке. Это можно сделать несколькими способами. Например, вместо Y ( k ) можно строить последовательность векторов z ( k )  k Y ( k ) , где норми-

рующий множитель k  1 Y ( k ) , а Y ( k )  Y ( k ) , Y ( k )

12

.

Основным достоинством степенного метода является тот факт, (1)

(2)

(k )

что итерационная последовательность Y , Y ,, Y , получается только с помощью умножения матрицы A на вектор. Никаких преобразований самой матрицы A при этом не требуется. 2 Одна итерация степенного метода требует 2n арифметических действий [8, с. 191]. Метод не является универсальным, так как не лишен недостатков [8, с. 190–191; 11, с. 168–169]. Перечислим их: а) степенной метод может очень медленно сходиться. Как видно из (6.13), скорость его сходимости определяется отношением 2 1 . Если  2 1  1 , то сходимость будет медленной. Эту трудность можно обойти с помощью итераций со сдвигом [8, с. 191–193]; б) если 1   2   3     n , то последовательность (6.10) вообще не сходится; в) чтобы использовать степенной метод для вычисления других собственных значений матрицы после того, как приближенно найдено 1 , надо блокировать уже найденное значение 1 . На одном из способов, позволяющих это сделать, остановимся ниже; 224

6. Вычисление собственных значений и собственных векторов

г) в силу медленной сходимости степенной метод применяют к разреженным матрицам, содержащим много нулевых элементов; д) если в (6.9) 1  0 , то из-за погрешностей округлений через несколько итераций у вектора X1 появится ненулевая компонента. Тогда степенной метод с некоторым запаздыванием попадает на 1 – наибольшее собственное значение. Отдельного рассмотрения требует случай, когда матрица A – симметричная. Тогда, как известно, существует полная система собственных векторов X 1 , , X n , которые можно считать ортонормированными, т.е.

X ,X    ; i

j

ij

1, i  j; i, j  1, n, ij   0, i  j.

На основании (6.11) находим скалярные произведения:

Y Y

(k )

, Y ( k )   12 12 k   22  22 k     2n  2n k ,

( k 1)

, Y ( k )   12 12 k 1   22  22 k 1     2n  2n k 1.

Отсюда

Y

( k 1)

, Y ( k )  Y ( k ) , Y ( k )   1  O 2

2 k 1

.

(6.16)

Из (6.16) следует, что в случае симметричной матрицы сходимость итерационного степенного метода будет не медленнее геометрической прогрессии со знаменателем 2

2

– квадратичная сходи-

мость. Заметим, что первый из рассмотренных алгоритмов вычисления 1 имеет линейную скорость сходимости.

225

Методы приближенных вычислений

6.3.2. Нахождение второго по величине собственного значения Пусть 1   2   3     n и первое наибольшее по модулю собственное значение 1 и соответствующий ему собственный вектор X1 найдены. Из формулы (6.11) имеем

Y ( k )  11k X 1  2  2k X 2    n  nk X n

(6.17)

и

Y ( k 1)  11k 1 X 1   2  2k 1 X 2     n  nk 1 X n .

(6.18)

Из (6.18) вычтем (6.17), умноженное на 1 , чтобы исключить члены, содержащие 1 . Получим

Y ( k 1)  1Y ( k )  2k2  2  1  X 2    n nk  n  1  X n .

(6.19)

Полагаем, что в (6.19) k равно k  1 . Будем иметь

Y (k ) 1Y (k 1)  22k 1  2 1  X 2 nnk 1  n 1  X n . (6.20) Используя ранее введенные обозначения, равенства (6.19), (6.20) можно записать для s-й составляющей Y

( k 1)

, Y ( k ) , Y ( k 1) :

ys( k 1)  1 ys( k )  2 k2   2  1  xs 2    n  nk   n  1  xsn ;, ys( k )  1 ys( k 1)  2  2k 1   2  1  xs 2    n  nk 1   n  1  xsn . Из последних двух равенств получаем

 

ys( k 1)  1 ys( k ) 1 3s 3k   ns nk k    2 1  O 3  , 2 (k ) ( k 1) k 1 k 1   1  3s 3   ns n ys  1 ys где 226

6. Вычисление собственных значений и собственных векторов

i 

i  x (  1 ) , is  i si i , i  3, n. 2  2 xs 2 ( 2  1 )

Отсюда, так как 3  1 , имеем приближенное правило для вычисления  2 (если 2 xs 2  0 ):

 2   ys( k 1)  1 ys( k ) 

y

(k ) s

 1 ys( k 1)  .

(6.21)

Как показано в [13, с. 157], величина  2 , определяемая по формуле (6.21), содержит меньше верных знаков, чем 1 . О числе верных знаков в  2 можно судить, вычисляя значения  2 при разных s и сравнивая их между собой. Что касается собственного вектора X 2 , соответствующего  2 , его с точностью до константы можно найти из (6.19):

X2 

1 ( k 1) Y  1Y ( k )  ,  c

где

c  2 k2 ( 2  1 ) .

6.3.3. Нахождение кратного наибольшего собственного значения Рассмотрим реализацию степенного метода в случае, когда

1  2    r и 1   r 1     n . Тогда из (6.11) будем иметь

Y ( k )  1k  1 X 1   2 X 2     r X r    r 1 rk 1 X r 1     n  nk X n .

(6.22)

227

Методы приближенных вычислений

Отсюда для s-й компоненты вектора Y ( k ) , в принятых ранее обозначениях, получим

ys( k )  1s 1k   r 1, s  rk 1    ns  nk ,

(6.23)

1s  1 xs1     r xsr , is  i xsi , i  r  1, n . При k   на основании формулы (6.23) находим

ys( k 1)

y

(k ) s

 1  O r 1

k 1

,

r 1   r 1 1 ,

и тогда при достаточно большом значении k получаем

ys( k 1) 1  ( k ) . ys К недостаткам рассмотренного случая степенного метода следует отнести то, что он позволяет найти лишь один собственный вектор, соответствующий 1 . Из (6.22) при больших k имеем

Y ( k )  1k  1 X 1     r X r  . Отсюда находим один собственный вектор для 1 . Остальные r  1 собственных векторов можно найти, изменяя r  1 раз начальный вектор Y (0) и проделывая описанные выше вычисления. Кроме рассмотренных случаев применения степенного метода есть и некоторые более сложные случаи. С ними можно ознакомиться, например, в [9, с. 311–313; 10, с. 584–598; 11, с. 170–172; 13, с. 152–156].

6.4. Лабораторные задания Задание. 1. Построить характеристический многочлен матрицы, используя методы: Данилевского, интерполяционный, вращений, QR-раз228

6. Вычисление собственных значений и собственных векторов

ложений (два любых по выбору). Определить все собственные значения матрицы и соответствующие им собственные векторы. 2. Степенным методом найти наибольшее по модулю собственное значение матрицы и соответствующий ему собственный вектор. Решение варианта задания Пример 1. Методом Данилевского и интерполяционным методом решить полную проблему собственных значений матрицы

 1, 6 2,3 1, 2    A   2,3 0, 6 1,5  .  1, 2 1,5 3,8   

(6.24)

Решение. Воспользуемся удобной вычислительной схемой [4, с. 407–410] метода Данилевского, представленной ниже в виде табл. 6.1. В этой таблице не приведены расчетные формулы для контроля правильности приведенных вычислений. В табл. 6.2 и 6.3 приводятся результаты вычисления коэффициентов характеристического уравнения и собственных векторов матрицы A соответственно. Т а б л и ц а 6.1 Номер строки

S 1

Столбцы матрицы 2

1

3

1

a11

a12

a13

2

a21

a22

a23

3

a31

a32

a33

I 4

S2 1 2

S

a31

S 21  

a31 a32

a11(1)  a11  a12  S21

S22 

1 –1 a32

a12(1)  a12  S 22

S23  

a33 a32

a13(1)  a13  a12  S23

229

Методы приближенных вычислений

Номер строки 5

S 1

6

a32

1 a21(1)  a21  a22  S21

a33

a31(1)  a31  a32  S21

(1) a32  a32  S22

a33(1)  a33  a32  S23

a21(1)  a11(1)  a31  a21(1) 

(1) a22(1)  a12(1)  a31  a22 

(1) a23(1)  a13(1)  a31  a23 

a32  a31(1)  a33

a32  a32(1)  a33

(1) a32  a33  a33

5

II

О к о н ч а н и е т а б л. 6.1 Столбцы матрицы 2 3 (1) (1) a23  a23  a22  S23 a22  a22  S 22

S1 S11

S11 

1 –1 a21(1)

S12  

a22(1) a21(1)

S13  

a23(1) a21(1)

7

a21(1)

a11(2)  a11(1)  S11

a12(2)  a12(1)  a11(1)  S12

a13(2)  a13(1)  a11(1)  S13

8

a22(1)

a21(2)  a21(1)  S11

a22(2)  a22(1)  a21(1)  S12

a23(2)  a23(1)  a21(1)  S13

9

a23(1)

a31(2)  a31(1)  S11

a32(2)  a32(1)  a31(1)  S12

a33(2)  a33(1)  a31(1)  S13

a11(2)  a11(2)  a21(1)  a21(2) 

a12(2)  a12(2)  a21(1)  a22(2) 

a13(2)  a13(2)  a21(1)  a23(2) 

a22(1)  a31(2)  a23(1)  P1

a22(1)  a32(2)  a23(1)  P2

a22(1)  a33(2)  a23(1)  P3

7

Т а б л и ц а 6.2 № строки 1 2 3 I

S 1

S2 S 21

4 5 6 5 II 7 8 9 7

230

1,2 1,5 3,8

S1 S11

2,442 6,240 –5,582

1 1,6 2,3 1,2

Столбцы матрицы 2 2,3 0,6 1,5

–0,8



3 1,2 1,5 3,8

5,1 4,4 6,5

0,667–1

–2,533

–4,333

–4,333

–0,24 1,82 0 2,442

1,533 0,4 1 6,240

–4,627 –0,02 0 –5,582

–3,333 2,200 1 3,100

–4,867 1,8 0 3,100

0,41–1

–2,555

2,286

–1,269

–1,269

–0,098 1 0 6,00

2,147 –0,00 1 –0,340

–5,176 0,000 0 –12,638

–3,127 1,000 1 –6,978

–3,029 0,000 0 –6,978

6. Вычисление собственных значений и собственных векторов

Контроль правильности вычислений в методе Данилевского аналогичен контролю в методе Гаусса [7]. В строках 1–3 табл. 6.1 находятся элементы матрицы aij ; i, j  1, 2,3 . Коэффициент P1  a11 , полученный в столбце 1 табл. 6.1, должен совпадать со следом матрицы A , т.е. (2)

P1  a11  a22  a33 . Коэффициент P3  a13(2) должен совпадать с det A . Из строки 7 табл. 6.2 выпишем коэффициенты характеристического уравнения:

P1  6,00001;, P2  0,34002;, P3  12,63785. Коэффициент P1 должен совпадать со следом SpA матрицы, а

P3 – со значением det A . Убедимся в этом. Очевидно, SpA  6; det A  12, 638 . Последняя проверка подтверждает правильность полученных значений Pi , i  1, 3 . Запишем характеристическое уравнение матрицы A :

3  6,000012  0,34002  12,63785  0 . Решая его, определим

1  5,52436;, 2  1, 29326;, 3  1,76892. Собственный вектор X i , соответствующий собственному значению i , определяется из соотношения

X i  S2 S1Y (i ) , где Y

(i )

 S11 S12 S13       , i ,1 , S1   0 1 0  , 0 0 1   2 i

T

1 0 0   S2   S21 S22 S23  .  0 0 1   231

Методы приближенных вычислений

Sij , i  1, 2; j  1,3 определяются по формулам, приведенным в табл.

6.1.

Следовательно,

Xi  x , x , x (i ) 1

(i ) 2

(i ) T 3

отдельные

компоненты

вектора

находятся по формулам

x1(i )  S11i2  S12i  S13 , x2(i )  S21 x1(i )  S22 i  S23 , x3(i )  1, i  1,3. Их значения помещены в табл. 6.3. Т а б л и ц а 6.3

i

i

1

5,52436

2

–1,29326

3

1,76892

S1

S2

Y (i )

Xi

0,4095 –2,55529 2,28583 0,4095 –2,55529 2,28583 0,4095 –2,55529 2,28583

–0,8 0,66667 –2,53333 –0,8 0,66667 –2,53333 –0,8 0,66667 2,53333

30,51855 5,52436 1 1,67252 –1,29326 1 3,12908 1,76892 1

0,66683 0,61613 1 6,27538 –4,73352 1 –0,95292 –0,59171 1

Применим теперь для решения поставленной задачи интерполяционный метод. Алгоритм решения полной проблемы собственных значений матрицы третьего порядка вида (6.24) состоит из следующих этапов: 1. Задаем, например, значения i : λ0 = –1, λ1 = 0, λ2 = 1, λ3 = 2. 2. Вычисляем значения

P ( i ) : P(1)  5, 298; P(0)  12, 638; P (1)  7,978; P (2)  2, 682. 232

6. Вычисление собственных значений и собственных векторов

3. Вычисляем коэффициенты при соответствующих степенях  , используя интерполяционную формулу Лагранжа [10, с. 54]:

3 () P( j ), j  0 (   j )3 (  j ) 3

L3 ()  

3 ()  (   0 )(  1 )(   2 )(  3 ). 3 Если коэффициент при  обозначить как P1 при  2  P2 , при 

обозначить как P3 , а свободный член – через P4 , то формулы, по которым вычисляются соответствующие Pi , i  1, 4 , имеют вид 3

P1   C j ; P2  C0 ( 1   2   3 )  C1 ( 0   3   2 )  j 0

C2 ( 0  1   3 )  C3 ( 0  1   2 ); P3  C0 ( 1 2  1 3  2  3 )  C1 ( 0  2  2  3  0  3 )  C2 ( 0 1  1 3  0  3 )  C3 ( 0 1  1 2  0  2 ); P4  C0 1 2  3  C1 0  2  3  C2 0 1 3  C3 0 1 2 ,; где

C0 

P(0 ) P(1 ) , C1  , (0 1 )(0 2 )(0 3 ) (1 0 )(1 2 )(1 3 )

C2 

P(3 ) P(2 ) , C3  . (2 0 )(2 1)(2 3 ) (3 0 )(3 1)(3 2 )

В результате расчетов по приведенным формулам получаем

P1  1;, P2  6;, P3  0,34000;, P4  12,63800. 4. Характеристическое уравнение матрицы A запишется следующим образом:

3  62  0,34000  12,63800  0 . 233

Методы приближенных вычислений

5. Результаты, связанные с определением собственных значений и соответствующих им собственных векторов, получены ранее в методе Данилевского. Пример 2. Степенным методом найти наибольшее собственное значение матрицы

 2 6 1   A   5 1 2   3 4 1    и соответствующий ему собственный вектор.

 (1,1,1)T и построим итерационную (0) (1) (0) (2) (1) последовательность Y , Y  AY , Y  AY ,. Тогда приРешение. Выберем Y

(0)

ближения к наибольшему собственному значению вычисляются по формуле

1(i ) 

yi( k 1) , i  1,3, yi( k )

где yi( k 1) , yi( k ) – одноименные координаты векторов Y

( k 1)

, Y (k ) .

2 Считаем до тех пор, пока с точностью   10 не выполнится

1(1)  1(2)  1(3) , хотя для определения 1 можно использовать любую координату вектора Y ( k ) , k  0 . В частности, при достаточно большом k можно взять среднее арифметическое соответствующих отношений. Результаты вычислений представлены в табл. 6.4. Поскольку итерационный процесс в данном примере сходится медленно (лишь на 32-й итерации можно высказать мнение о 1 ), в табл. 6.4 представлена лишь часть промежуточных результатов. Из табл. 6.4 видно, что в процессе счета компоненты Y ( k ) сильно возрастают по модулю. Поэтому периодически производилась 234

6. Вычисление собственных значений и собственных векторов

нормировка по правилу: каждая компонента Y ( k ) делилась на Y ( k )  max yi( k ) . 1 i  3

Т а б л и ц а 6.4 6 –1 –4 1 6 17 161 20417 4699617

–1 2 1 1 –6 –51 –287 –55423 –9910559

y1( k 1) y1( k )

y2( k 1) y2( k )

y3( k 1) y3( k )

Y (0) Y (1) Y (2) Y (3) Y (6) Y (9)

2 5 –3 1 7 56 265 56337 9501465

7 8 4,732 6,379 5,309

6 2,833 9,471 4,190 5,814

–6 8,5 5,627 5,875 5,569

Y (12)

1,828  109

7,576  108

1,841  109

5,909

5,114

5,652

(15)

3,254  10

1,498  10

3,344  10

5,549

6,041

5,641

(18)

6,061  10 178,3729 32878,59 0,9794 5796,847

2,626  10 80,2084 14446,24 0,4362 2563,7017

6,155  10 –182,470 –33480,75 –1 –5910,483

5,757

5,478

5,702

5,629 5,708 5,693 5,686

5,814 5,602 5,641 5,660

5,664 5,688 5,683 5,681

A

Y

Y Y (21) Y (24) Y (27) Y (32)

11

13

11 13

11

13

В итоге на 32-й итерации имеем

1(1)  1(3)  5, 68 . Это значение и принято за максимальное собственное значение матрицы A . В качестве собственного вектора X1 можно взять Y (32) . Нормируя его, получаем

 0, 9807    X 1   0, 4338  .  1   

235

Методы приближенных вычислений

Убедиться в правильности полученного решения можно, потре2 бовав выполнения с точностью   10 равенства

AX 1  1 X 1 . Проверка дает

 5,56    AX 1   2, 47  ,  5, 67   

 5,57    1 X 1   2, 46  ,  5, 68   

что подтверждает правильность полученного собственного значения 1 . Кроме того, можно непосредственным развертыванием определителя

det A  E  0 получить характеристическое уравнение. В рассматриваемом случае оно имеет вид

f ()  3  22  26  29  0.

(6.25)

Наибольшее собственное значение 1  5,68 при подстановке в уравнение (6.25) дает

f (5, 68)  0, 04 , т.е. удовлетворяет характеристическому уравнению с точностью   102 . Исследуем причину медленной сходимости процесса. Исключая значение 1  5,68 из уравнения (6.25), получим квадратное уравнение

2  3,68  5,0976  0, корни которого находятся без труда и равны 2  4,75;, 3  1,07. 236

6. Вычисление собственных значений и собственных векторов

Таким образом, все собственные значения матрицы A располагаются так:

1   2   3 . При этом отношение  2 1  0,84 близко к единице. Именно этим фактом объясняется медленная сходимость степенного метода при вычислении 1 . Замечание. Для ускорения сходимости итерационного процесса в данном примере можно было использовать итерации со сдвигом 2 [8, с. 191–193],  – процесс ускорения сходимости и практической оценки погрешности [9, с. 274–277], или следующий прием [4, с. 424, 425]: составляем последовательность матриц k

k 1

k 1

A2  A  A, A4  A2  A2 , A8  A4  A4 , , A2  A2  A2 . Отсюда находим

Y ( m )  AmY (0) , Y ( m 1)  AY ( m ) , m  2k , k  0. Затем вычисляем

1(i ) 

yi( m 1) , i  1, n . yi( m )

В качестве собственного вектора X1 берем Y ( m )  AmY (0) .

6.5. Варианты заданий Вариант № 1.

 4,1313 0,1041 1,1617    A   0,1041 2,1844 0,9864  .  1,1617 0,9864 2,8114    237

Методы приближенных вычислений

Вариант № 2.

 4, 6313 0,1041 1,1617    A   0,1041 2,1844 0,9864  .  1,1617 0,9864 2,8114    Вариант № 3.

 0, 2112 0, 0353 0, 2303    A   0, 0353 0,1687 0, 0460  .  0, 2303 0, 0460 0, 0094    Вариант № 4.

 1, 2112 0, 0353 0, 2303  A   0, 0353 0,1687 0, 0460  .  0, 2303 0, 0460 1, 0094    Вариант № 5.

 0, 2112 0, 4600 0,1628    A   0, 4600 0, 4487 0, 0157  .  0,1628 0, 0157 1, 0094   Вариант № 6.

 0, 2112 0, 4600 0,1628    A   0, 4600 1,1687 0, 0157  .  0,1628 0, 0157 0, 0094   238

6. Вычисление собственных значений и собственных векторов

Вариант № 7.

0, 6969   0, 4600 0,1628   A   0,1628 0, 0157 0, 0892  .  0, 6969 0, 0892 0,1988    Вариант № 8.

 1, 2112 0, 0353 0, 2303    A   0, 0353 0,1687 1, 0460  .  0, 2303 1, 0460 0, 0094    Вариант № 9.

 2,50758 0,12305 1, 01148    A   0,12305 2,33221 0, 26142  .  1, 01148 0, 26142 1,53183    Вариант № 10.

 4,1313 1,1617 2,1426    A   1,1617 0,8144 3,1518  .  2,1426 3,1518 1,8114    Вариант № 11.

 0,1041 1,1617 0,1415    A   1,1617 0,9864 0,1617  .  0,1415 0,1617 2, 6114    239

Методы приближенных вычислений

Вариант № 12.

 4,1313 1,1617 2,1426    A   1,1617 1,8144 3,1518  .  2,1426 3,1518 0,8114    Вариант № 13.

 0, 2112 1, 0353 0, 2303    A   1, 0353 0,1687 0, 0460  .  0, 2303 0, 0460 0, 0094    Вариант № 14.

 3,50758 0,12305 1, 01148    A   0,12305 1,33221 0, 26142  .  1, 01148 0, 26142 1,53183    Литература 1. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы высшей математики. Минск : Выш. шк., 1972. Т. 1. 584 с. 2. Крылов В.И., Бобков В.В., Монастырный П.И. Начала теории вычислительных методов. Линейная алгебра и нелинейные уравнения. Минск : Наука и техника, 1985. 279 с. 3. Самарский А.А., Гулин А.В. Численные методы. М. : Наука, 1989. 430 с. 4. Демидович Б.П., Марон И.А. Основы вычислительной математики. М. : ГИФМЛ, 1960. 658 с. 5. Воеводин В.В. Численные методы алгебры. Теория и алгоритмы. М. : Наука, 1966. 248 с. 6. Воеводин В.В. Линейная алгебра. М. : Наука, 1980. 400 с.

240

6. Вычисление собственных значений и собственных векторов

7. Точные методы решения систем линейных алгебраических уравнений : метод. указания. Томск : Изд-во ТГУ, 1990. 34 с. 8. Калиткин Н.Н. Численные методы. М. : Наука, 1978. 512 с. 9. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. М. : Наука, 1987. 600 с. 10. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1966. Т. 1. 632 с. 11. Волков Е.А. Численные методы. М. : Наука, 1987. 248 с. 12. Турчак Л.И. Основы численных методов. М. : Наука, 1987. 320 с. 13. Крылов В.И., Бобков В.В, Монастырный П.И. Вычислительные методы. М. : Наука, 1976. Т. 1. 304 с. 14. Сборник задач по методам вычислений / под ред. П.И. Монастырного. Минск : Изд-во БГУ, 1983. 287 с. 15. Фаддеев Д.К., Фаддеева В.Н. Вычислительные методы линейной алгебры. М. : Наука, 1963. 734 с.

241

Методы приближенных вычислений

7. ЭЛЕМЕНТЫ ТЕОРИИ ПРИБЛИЖЕНИЯ ФУНКЦИЙ 7.1. Задачи теории приближения функций и методы их решения Рассмотрение проведем на примере функции f  x  , обладающей достаточной гладкостью и определенной для x   a, b . В теории приближения функций решаются следующие задачи. Задача 1. Пусть функция f  x  задана таблицей своих значений

 x ; f  x  i

i

i  0, n

, где a  x0  x1    xn  b . Требуется так аппрокси-

мировать (приблизить) данную функцию f ( x) другой функцией   x  , имеющей аналитическое выражение, чтобы f  x  и   x  были близки в метрике некоторого пространства. Тогда   x  можно использовать для вычисления значений f  x  в точках x  xi , i  0, n .

Задача 2. Пусть функция f  x  имеет сложное аналитическое выражение, а требуется многократно вычислять ее значения. Тогда определяют f  x  таблицей ее значений  xi ; f  xi i  0, n и по ним заменяют f  x  более простой функцией   x  так, чтобы f  x  и   x  были близки в некоторой метрике.

Возможна и более общая задача, подобная задаче 1 [1, с. 21, 22]. Задача 3 (общая задача теории приближения). Пусть в k 0 точx0,1 , x0,2 ,, x0, k заданы значения функции ках

0

f  x0,1  , f  x0,2  ,, f x0, k0 ; в k1 точках x1,1 , x1,2 , , x1, k1 заданы значе-

242

7. Элементы теории приближения функций

ния первой производной функции f   x1,1  , f   x1,2  , ,

 

f  x1,k1

и

т.д., в km точках xm,1 , xm,2 ,, xm, k заданы значения m-ой производm

 x  , f  x  ,, f  x  . Всего дано k  k    k исходных данных  x ; f    x  , i  0, m , j  1, k . Точки x назыной

f

 m

 m

m ,1

 m

m ,2

m , km

0

1

m

i

i, j

i, j

i

i, j

вают узлами аппроксимации. Требуется по исходным данным приблизить f  x  некоторой функцией   x  так, чтобы с помощью   x  находить значения функции f  x  и ее производных до по-

рядка k  m в точках x  xi , j . Задача 4. Требуется вычислить определенный интеграл b

I   f  x  dx , a

который не берется в элементарных функциях. Тогда поступают, например, так: по таблице  xi ; f  xi  , i  0, n , где a  x0  x1     xn  b , заменяют f  x  более простой функцией   x  . Затем по-

лагают b

I     x  dx . a

Кроме указанных выше задач в теории приближения функций рассматриваются и другие, например, задача сглаживания, численного дифференцирования [2, с. 617–628]. В зависимости от метрики пространства, по которой оценивается близость f  x  и   x  , различают следующие методы приближения функций: 1) интерполирования; 2) сплайн-функций; 3) наименьших квадратов; 4) наилучшего среднеквадратичного приближения.

243

Методы приближенных вычислений

7.2. Интерполирование функций одной переменной алгебраическими многочленами Термин «интерполирование» означает способ приближенного или точного нахождения какой-либо величины по известным отдельным значениям этой же или других величин, связанных с ней [2, с. 622]. Вопросам интерполирования функций как классическому разделу курса «Методы вычислений» посвящено много литературы, например [1, 3–7]. Было бы нецелесообразно рассматривать приближение какой-то одной функции. Поэтому в дальнейшем, если не оговорено противное, будем приближать класс функций f  x  , x   a, b , обладающих достаточной для рассмотрения гладкостью.

Пусть на  a, b заданы n  1 различных точек a  x0  x1    xn  b ,

именуемых узлами интерполяции, и в них определены значения функции f  x0  , f  x1  ,, f  xn  .

Требуется заменить f  x  на близкую к ней функцию   x  так, чтобы выполнялись условия интерполяции f  xi     xi  i  0, n .

(7.1)

Тогда с помощью   x  можно находить значения f  x  для точек x, не совпадающих с узлами интерполяции. При этом если x принадлежит  a, b , то говорим об интерполяции; если x не принадлежит  a, b , то об экстраполяции. В вычислительной практике наиболее распространено интерполирование алгебраическими многочленами по системе функций i  x   x i , i  0, n , являющихся системой Чебышева на  a, b  [1, с. 24]. 244

7. Элементы теории приближения функций

Определение 1. Система функций k  x  , k  0, n , называется системой Чебышева на  a, b , если при любом расположении узлов

xk   a, b  ,

xk  x j

k j,

при

справедливо неравенство

det  A  0 . Здесь A – матрица размерности

 n  1   n  1 следую-

щего вида:  0  x0  1  x0     x  1  x1  A 0 1      0  xn  1  xn 

 n  x0     n  x1   .      n  xn  

(7.2)

Алгебраический многочлен по системе функций i  x   x i , i  0, n , можно записать в виде   x   a0 0  x   a11  x     an n  x  .

(7.3)

Если аппроксимировать этим многочленом функцию f  x  , заданную таблицей своих значений  xi ; f  xi  , i  0, n , то для определения коэффициентов a0 , a1 , , an из условий (7.1) получается СЛАУ: n

 a   x   f  x  , i  0, n . j 0

j

j

i

i

(7.4)

Ответ на вопрос, будет ли СЛАУ (7.4) однозначно разрешима, дает следующая теорема [3, с. 151–152]. Теорема 1. Для того чтобы для любой функции f  x  , определенной на  a, b , и любого набора n  1 различных узлов xi на

 a, b  ,

i  0, n , существовал обобщенный интерполяционный мно-

гочлен (7.3), необходимо и достаточно, чтобы система функций i  x  , i  0, n , являлась системой Чебышева на  a, b . При этом интерполяционный многочлен будет единственным. 245

Методы приближенных вычислений

Доказательство. Очевидно, что интерполяционный многочлен (7.3) полностью определяется своими коэффициентами a0 , a1 , , an . Для их нахождения имеется СЛАУ (7.4). Чтобы она имела единственное решение относительно ai , i  0, n , необходимо и достаточно, чтобы определитель 0  x0  1  x0   n  x0    x  1  x1   n  x1   0 1     0  xn  1  xn   n  xn 

не равнялся нулю. Тогда, согласно данному выше определению 1, система i  x  , i  0, n , является системой Чебышева на  a, b . И теорема доказана. Замечание 1. Можно доказать, что справедливо следующее свойство системы функций Чебышева на  a, b [4, с. 49, 50]: для того чтобы система функций k  x  , k  0, n , была системой Чебышева на  a, b , необходимо и достаточно, чтобы любой интерполяционный многочлен по этой системе, у которого хотя бы один коэффициент отличен от нуля, имел на  a, b не более n нулей. Некоторые авторы принимают это свойство за определение системы Чебышева на  a, b [4, с. 49]. Очевидно, что необходимое условие системы Чебышева на  a, b – линейная независимость функций k  x  . Можно привести примеры других систем Чебышева на  a, b , кроме i  x   x i , i  0, n : 1) 1,sin x,cos x,sin 2 x, cos 2 x, – на отрезке периодичности  0, 2 ; 2) 1, eb x , eb x , , где bi  – некоторая числовая последовательность попарно различных вещественных чисел. 1

246

2

7. Элементы теории приближения функций

Приведем пример системы, не являющейся системой Чебышева на  1,1 : 0, 1  x  0, 0  x   1 , 1  x     x,0  x  1.

Предлагаем читателям убедиться в этом факте самостоятельно.

7.2.1 Интерполяционный многочлен Лагранжа Построим алгебраический многочлен степени n, решающий задачу интерполяции (7.1) по системе функций i  x   x i , i  0, n . Тогда для определения коэффициентов a0 , a1 , , an требуется решить СЛАУ a0  a1 x0  a2 x02    an x0n  f  x0  ,  2 n  a0  a1 x1  a2 x1    an x1  f  x1  ,    a0  a1 xn  a2 xn2    an xnn  f  xn  . 

(7.5)

Определитель  СЛАУ (7.5) есть определитель типа Вандермонда и отличен от нуля, так как     xi  x j  , i j

а все xi – различны. Тогда (7.5) имеет единственное решение, которое может быть получено, например, по правилу Крамера: ai 

i , i  0, n , 

где x02  x0i 1 x1 x12  x1i 1 i       1 xn xn2  xni 1 1 1

x0

f  x0  x0i 1  f  x1  x1i 1     f  xn  xni 1 

(7.6) x0n x1n 

.

xnn

247

Методы приближенных вычислений

Следовательно, интерполяционный многочлен иметь вид n

 x   i 0

i i x . 

 x

будет (7.7)

Заметим, что при больших значениях n решать СЛАУ (7.5) по правилу Крамера неэффективно. Видоизменим запись многочлена (7.7). Для этого разложим  i по элементам i-го столбца. Будем иметь n

i    j ,i f  x j  , i  0, n ,

(7.8)

j 0

где  ji – алгебраические дополнения элементов i-го столбца определителя  i . Таким образом, получим n

n

  x    i 0 j 0

 j ,i 

f  x j  xi

или n

 x   f  xj  S j  x ,

(7.9)

j 0

где n

S j  x   i 0

 j ,i 

xi .

(7.10)

Очевидно, что S j  x  есть многочлены степени n, не зависящие от f  x  и целиком определяющиеся набором узлов интерполяции. Так как по построению требуется, чтобы   xi   f  xi  , i  0, n ,

то из (7.9) выводим замечательное свойство многочленов S j ( x) : 0, i  j, S j  xi     1, i  j.

248

(7.11)

7. Элементы теории приближения функций

Другими словами, многочлены S j  x  обращаются в нуль в узлах x0 , x1 ,, x j 1 , x j 1 ,, xn , а в узле x j их значение равно единице. Тогда S j  x   C j  x  x0     x  x j 1    x  x j 1     x  xn  , j  0, n ,

где C j – пока неопределенный коэффициент. Коэффициент C j определяется из условия S j  xj   1

и имеет представление:

C j  1/  x j  x0     x j  x j 1    x j  x j 1     x j  xn  .

Получаем, что многочлены S j  x  задаются формулой n

S j  x   i 0 i j

x  xi , j  0, n . x j  xi

(7.12)

Окончательно находим следующую запись интерполяционного многочлена   x  , решающего задачу интерполяции по системе линейно независимых функций 1, x, x 2 , , x n : n

 x   f  xj   j 0

x

 x  x0    x  x1     x  x j 1    x  x j 1     x  xn  j

 x0    x j  x1     x j  x j 1    x j  x j 1     x j  xn 

(7.13) .

Отметим, что многочлен (7.13) был впервые построен Лагранжем в 1795 г. В дальнейшем будем обозначать его через Ln  x  , а выражение (7.13) назовем интерполяционной формулой Лагранжа. Итак, имеем

249

Методы приближенных вычислений

 x  x1     x  xn    x0  x1     x0  xn   x  x0    x  x2     x  xn   f  x1     x1  x0    x1  x2     x1  xn   x  x0     x  xn 1   f  xn  .  xn  x0     xn  xn 1  Ln  x   f  x0 

(7.14)

Существуют различные формы записи многочлена Лагранжа [1, с. 21–55; 3, с. 127–136; 4, с. 53–102; 5, с. 49–64; 6, с. 31–54; 7, с. 331–371]. На некоторых из них остановимся в дальнейшем. Запишем (7.13) в более компактной форме, если обозначим n  x    x  x0    x  x1     x  xn  .

Тогда (7.13) можно представить так: n

Ln  x    j 0

f  x j   n  x 

 x  x     x  j

n

.

(7.15)

j

Здесь производная от n  x  , вычисленная в точке x j , определяется формулой n  x j    x j  x0    x j  x1     x j  x j 1    x j  x j 1    x j  xn  .

Сравнивая формулу (7.15) с (7.9), находим еще одно представление многочленов S j  x  :

S j ( x) 

n ( x ) . ( x  x j ) n ( x j )

(7.16)

Выведем «барицентрическую» форму записи многочлена Лагранжа [8, с. 104]. Так как интерполяционная формула (7.15) верна для любой функции f  x  , то для f  x   1 получаем n

 j 0

Если положить 250

n  x 

 x  x     x  j

n

j

1.

(7.17)

7. Элементы теории приближения функций

Aj 

1 , n  x j 

(7.18)

то из (7.17) находим Aj

n

n  x    j 0

x  x 

1.

j

Отсюда выражаем n  x  : n  x  

n

1 Aj

 xx j 0

.

(7.19)

j

На основе формул (7.15), (7.18), (7.19) записываем «барицентрический» вид многочлена Лагранжа: f  x j  Aj

n

Ln  x  

 j 0

n

x  xj Aj

 xx j 0

.

(7.20)

j

Замечание 2. Если построен многочлен Лагранжа n-й степени

Ln  x  , а требуется получить Ln 1  x  , то необходимую вычисли-

тельную работу следует проводить сначала. Поясним сказанное на примере линейной и квадратичной интерполяции. Линейная интерполяция (n = 1). Имеем таблицу исходных данных  xi , f  xi  , i  0,1 . Из формулы (7.14) выводим L1  x   f  x0 

x  x0 x  x1  f  x1  x0  x1 x1  x0

(7.21)

или L1  x   a0  a1 x ,

где a0 

f  x0   x1  x0  f  x1  x1  x0

, a1 

f  x0  x0  x1

f  x1  x1  x0

. 251

Методы приближенных вычислений

Квадратичная интерполяция (n = 2). Имеем 3 узла x0 , x1 , x2 и значения функции в них. Тогда из (7.14) получаем многочлен Лагранжа 2-й степени L2  x   f  x0 

 x  x0    x  x2   x  x1    x  x2   f  x1   x x x x     0 1  0 2   x1  x0    x1  x2   x  x0    x  x1   f  x2   x2  x0    x2  x1 

(7.22)

или L2  x   a0  a1 x  a2 x 2 ,

где a0 

f  x0   x1  x2

f  x1   x0  x2

f  x2   x0  x1

,

 x0  x1    x0  x2   x1  x0    x1  x2   x2  x0    x2  x1  f  x0    x1  x2  f  x1    x0  x2  f  x2    x0  x1  ,   a1    x0  x1    x0  x2   x1  x0    x1  x2   x2  x0    x2  x1  f  x0  f  x1  f  x2  . a2     x0  x1    x0  x2   x1  x0    x1  x2   x2  x0    x2  x1  Видим, что с ростом значения n объем вычислительных затрат существенно возрастает. Пример 1. Построить интерполяционный многочлен Лагранжа, приближающий таблично заданную функцию: xi

100

121

144

f  xi 

10

11

12

Решение. Согласно формуле (7.22) имеем L2  x   10

252

 x  121   x  144   x  100    x  144   11  100  121  100  144  121  100   121  144   x  100    x  121 12 144  100   144  121

7. Элементы теории приближения функций

или L2  x  

10  x 2  265 x  17424  11 x 2  244 x  14400    924 483 12  x 2  221x  12100   1012

или L2  x   0, 0000941x 2  0, 0684172 x  4, 0993700 .

Если не требуется строить многочлен Лагранжа, а лишь с его помощью получать значения в заданных точках, то можно использовать интерполяционную схему Эйткена [4, с. 55–57; 7, с. 340–345].

7.2.2. Интерполяционная схема Эйткена Пусть имеются исходные данные: различные узлы x0 , x1 , , xn и значения функции в них yi  f  xi  , i  0, n . Все xi   a, b . Требуется найти значения функции f  x  в точках x  xi , i  0, n . Опишем вычислительную схему Эйткена решения поставленной задачи, которая носит итерационный характер и проста в применении. Рассмотрим L0,1  x  

y0

x0  x

y1

x1  x

y1

x1  x

y2

x2  x

x1  x0

, L1,2  x  

x2  x1

, …, Ln 1, n  x  

yn 1 yn

xn 1  x xn  x

xn  xn 1

.

Нетрудно видеть, что L0,1  x0   y0 , L0,1  x1   y1 , L1,2  x1   y1 , L1,2  x2   y2 , …,

Ln 1, n  xn 1   yn 1 ,

Ln 1, n  xn   yn . Следовательно,

L0,1  x  , L1,2  x  , …, Ln 1, n  x  есть всевозможные многочлены Ла-

гранжа 1-й степени, решающие задачу интерполяции для заданной табличной функции. С их помощью можно получить всевозможные многочлены 2-й степени 253

Методы приближенных вычислений

L0,1  x 

L0,1,2  x  

L1,2  x 

x0  x

L1,2  x  x2  x x2  x0

, L1,2,3  x  

x1  x

L2,3  x  x3  x x3  x1

, …,

Ln  2, n 1  x  xn  2  x Ln  2, n 1, n  x  

Ln 1, n  x 

xn  x

xn  xn  2

и т.д., а затем многочлен Лагранжа n-й степени, построенный по исходным данным  xi , yi  , i  0, n , вида L0,1,2,, n 1  x  x0  x L0,1,2,, n  x  

L1,2,, n  x 

xn  x

xn  x0

.

(7.23)

Все вычисления можно поместить в табл. 7.1 (n = 4). Т а б л и ц а 7.1

Li 1,i  x 

Li  2,i 1,i  x 

Li 3,i  2,i 1,i  x 

xi

yi

x0

y0

x1

y1

L0,1  x 

x2

y2

L1,2  x 

L0,1,2  x 

x3

y3

L2,3  x 

L1,2,3  x 

L0,1,2,3  x 

x4

y4

L3,4  x 

L2,3,4  x 

L1,2,3,4  x 

Li  4,i 3,i  2,i 1,i  x 

L0,1,2,3,4  x 

Отметим достоинства описанной схемы Эйткена: 1) добавление одного или нескольких узлов в конце таблицы не приводит к проведению расчетов с самого начала. Достаточно продлить таблицу вниз и вправо; 2) вычисления носят итерационный характер и их можно проводить с заданной точностью ε, постепенно наращивая степень многочлена; 3) если результаты вычислений по схеме Эйткена помещать в нижнюю треугольную матрицу с элементами aij , то 254

7. Элементы теории приближения функций

ai , j 

ai 1, j 1  xi  x   ai , j 1  xi  j  x  xi  xi  j

, j  i , i  1, n ,

(7.24)

где ai ,0  yi , i  1, n .

Пример 2. С помощью схемы Эйткена вычислить значение функции f  x   x в точке x  110 , если функция задана таблицей xi yi

100 10

121 11

144 12

169 13

Решение. Проведем вычисления по описанной выше схеме, помещая результаты в табл. 7.2. Т а б л и ц а 7.2

xi

yi

Li 1,i 110 

Li  2,i 1,i 110 

Li 3,i  2,i 1,i 110 

100 121 144 169

10 11 12 13

10,4762 10,5217 10,6400

10,4865 10,4946

10,4876

Если проводить вычисления с точностью   102 , то за ответ L0,1,2 110   10, 4865 , можно принять так как L0,1,2 110   L0,1,2,3 110   0, 001 . При этом

110  10, 4881 .

7.3. Погрешность интерполяционного многочлена Лагранжа Пусть для таблично заданной функции f  x  построен многочлен Лагранжа Ln  x  . Тогда полагаем 255

Методы приближенных вычислений

f  x   Ln  x   rn  x  ,

где rn  x  – погрешность интерполирования [3–8]. Поставим задачу оценки величины rn  x  в предположении, что f  x   C n 1  a, b  и x  xi , i  0, n (если x  xi , то rn  x   0 по по-

строению многочлена Ln  x  ). Теорема 2. Пусть f  x   C n 1  a, b и x0 , x1 , xn – различные узлы из  a, b . Тогда, если Ln  x  – единственный многочлен такой, что Ln  xi   f  xi  , i  0, n ,

то для любого x   a, b rn  x  

f n 1    x  

 n  1!

n  x  .

(7.25)

Здесь     x    a, b  . Доказательство. Рассмотрим вспомогательную функцию P  z   f  z   Ln  z   k  n  z  ,

(7.26)

где z   a, b , n  z    z  x0    z  x1     z  xn  , k  const – пока не определена. Нетрудно видеть, что P  xi   0 , i  0, n (в силу построения Ln  x  и свойств n  z  ). Подберем константу k так, чтобы выпол-

нялось P  x  0 ,

где x   a, b – точка, в которой проводится оценка погрешности. Из (7.26) следует, что k

256

f  x   Ln  x  n  x 

.

(7.27)

7. Элементы теории приближения функций

Итак, имеем, что P  z  обращается в нуль в (n+2)-х точках: x0 , x1 , , xn , x . Тогда по теореме Ролля производная P  z  обращается

в нуль в (n+1)-й точке: x01 , x11 , , xn1 , xi    a, b  , i  0, n . 1

Вторая производная P  z  обращается в нуль по теореме Ролля в n точках: x0 2 , x1 2 ,, xn 21 , xi    a, b  , i  0, n  1 . 2

В конечном итоге получаем, что P n1  z  обращается в нуль в точке     x    a, b  . Таким образом, P

n 1

  

f

    k  n  1!  0 .

n 1

Отсюда k

 .  n  1!

f

n 1

(7.28)

Из (7.27) – (7.28) находим f  x   Ln  x  

   x .  n  1! n

f

n 1

Теорема доказана. На основе формулы (7.25) можно получить оценку погрешности по модулю и по норме C  a, b . Пусть M n 1  x   max f  n 1  x  . x a , b 

Тогда справедлива оценка f  x   Ln  x  

M n 1 max   x  n   1! xa ,b n

257

Методы приближенных вычислений

или max f  x   Ln  x  

x a , b

M n 1 max   x  .  n  1! xa,b n

(7.29)

Пример 3. Построить многочлен Лагранжа первой степени для функции f  x   x на промежутке 100,121 . Оценить погрешность линейной интерполяции в точке x  110 и на всем промежутке. Решение. Воспользуемся формулой (7.21). Тогда при x0  100 , x1  121 имеем L1  x   10

x  121 x  100  11 100  121 121  100

или L1  x  

x  110 . 21

Отсюда находим L1 110   10, 47619 и L1 110   110  0,012 .

(7.30)

Для оценки погрешности в точке x  110 применим теперь формулу (7.25). Вычислим f  x 

1  12 1 3 x , f   x    x 2 2 4

и найдем M 2  max

x100,121

3  1 1 f   x   100 2  10 3 . 4 4

На основе (7.25) получаем оценку погрешности в точке x  110 : 110  L1 110  

1 1 10 3  110  100   110  121  0, 0137 . 4 2!

(7.31)

Сравнивая (7.30) и (7.31) между собой, замечаем, что фактическая погрешность в точке меньше теоретической оценки погрешности в точке. 258

7. Элементы теории приближения функций

Получим оценку с помощью неравенства (7.29). Будем иметь max

x100,121

x  L1  x  

1 1  10 3  max  x  100    x  121  0, 0138 . 4 2! x100,121

Замечание 3. Оценка погрешности (7.29) может быть улучшена за счет уменьшения max n  x  . Для этого достаточно задать узлы x a , b 

интерполяции как корни многочленов Чебышева [1, с. 45–49; 3, с. 132–134; 4, с. 57–64; 6, с. 37–43; 7, с. 384–392].

7.4. Многочлены Чебышева. Минимизация оценки погрешности интерполяции Остановимся на многочленах Чебышева 1-го рода, которые определяются формулой Tn  x   cos  n arccos x  , n  0, x   1,1,

(7.32)

и играют важную роль в оптимизации вычислительных алгоритмов. Из формулы (7.32) при n  0 и n  1 имеем, что T0  x   1 , T1  x   x .

Если воспользоваться тождеством cos  n  1   2 cos  cos n  cos  n  1  ,

то при

  arccos x

с учетом (7.32) получаем рекуррентную формулу Tn 1  x   2 xTn  x   Tn 1  x  , n  1, 2, .

(7.33)

Отсюда находим, что Tn  x  – алгебраические многочлены, например, T2  x   2 x 2  1 , T3  x   4 x3  3x и т.д. 259

Методы приближенных вычислений

Сформулируем главные свойства многочленов Чебышева: 1) при четном (нечетном) n многочлен Tn  x  является четной (нечетной) функцией; 2) старший коэффициент многочлена Tn  x  при n  1 равен 2 n 1 ;

3) многочлен Tn  x  имеет n вещественных корней на проме-

жутке  1,1 , выражаемых формулой xm  cos

4)

max Tn  x   1 ,

x 1,1

 2m  1  , 2n

причем,

m  0, n  1 , n  1 ;

Tn  xm    1 , m

где

xm  cos

m , n

m  0, n ;

5) многочлен Tn  x   21n Tn  x  , n  1 , среди всех многочленов n-й степени со старшим коэффициентом, равным единице, имеет на  1,1 наименьшее значение максимума модуля. Другими словами, не существует такого многочлена Pn  x  степени n со старшим коэффициентом, равным единице, чтобы было справедливо неравенство max Pn  x   max Tn  x   21 n .

x 1,1

x 1,1

Замечание 4. Многочлены Tn  x  по свойству 5 называют многочленами, наименее уклоняющимися от нуля. Замечание 5. Многочлен Tn 1  x  имеет корни xm  cos

 2m  1  , 2  n  1

m  0, n ,

которые расположены на  1,1 неравномерно. С доказательством указанных выше свойств многочленов Чебышева 1-го рода можно познакомиться, например, в [6, с. 38–40; 7, с. 384–389]. 260

7. Элементы теории приближения функций

Применим многочлены Чебышева для минимизации оценки погрешности, определяемой неравенством (7.29). Случай отрезка [–1,1]. В качестве узлов интерполяции x0 , x1 , , xn возьмем корни многочлена Tn 1  x  , определяемые формулой xm  cos

 2m  1  , 2n  2

m  0, n .

(7.34)

Тогда многочлен n  x    x  x0  x  x1  x  xn  ,

у которого старший коэффициент равен единице, будет пропорционален многочлену Tn 1  x  (со старшим коэффициентом 2 n по свойству 2): n  x   2 n Tn 1  x  .

С использованием свойства 4 оценка погрешности интерполяции (7.29) примет вид max f  x   Ln  x  

x 1,1

M n 1 , 2n  n  1 !

(7.35)

где M n 1  max f  n 1  x  . x 1,1

По свойству 5 улучшить оценку (7.35) за счет другого выбора узлов интерполирования не удастся. Следовательно, узлы интерполяции, определяемые формулой (7.34), оптимальные. Случай произвольного отрезка [a,b]. Линейной заменой x

ba ba 2x  b  a  t или t  2 2 ba

отрезок  a, b переводится в  1,1 . При этом корнями многочлена Tn 1  x  будут

261

Методы приближенных вычислений

xm 

 2m  1  , m  0, n . ba ba  cos 2 2 2n  2

(7.36)

Если они выбраны в качестве узлов интерполирования, то будем иметь n   ba ba ba ba n  x     x  xi     t  cos  2 2 2 2n  2   2 i 0 3  ba ba ba ba ba ba   t   t cos     n  2 2 2 2 2 2 2    2

 2n  1    b  a  ba ba   cos  2 2 2n  2  2n 1

n 1

  2n  1    b  a    t  cos  2n  2  2n 1 

    t  cos    1 n 2 

n 1

Tn 1  t  .

Следовательно, с узлами интерполяции (7.36) имеет место оценка погрешности интерполяции max f  x   Ln  x  

x a , b 

M n 1  b  a   n  1! 22 n 1

n 1

.

(7.37)

Пример 4. Минимизировать погрешность при замене функции

f  x   sin x на [0,1] интерполяционным многочленом Лагранжа

1-й степени. Решение. Имеем исходные данные x0  0 , x1  1 , f  x0   0 , f  x1   0,8415 .

Нетрудно получить L1  x   0,8415 x .

Найдем оценку погрешности проведенного интерполирования по неравенству (7.29). Имеем 1 M 2  max f   x   1 , max 1  x   1    0, 25 . 0,1 x  x 0,1   2

Следовательно, 262

7. Элементы теории приближения функций

max f  x   L1  x   x 0,1

1  0, 25  0,125 . 2

Выберем теперь за узлы интерполяции корни многочлена Т1(х): 1   1  cos   0,8534 , 2 4 1 3  x1   1  cos   0,1464 . 2 4  x0 

Тогда f  x0   0, 7536 , f  x1   0,1459

и L1  x   0, 7536

x  x0 x  x1  0,1459 или L1  x   0, 0201  0,8593 x . x0  x1 x1  x0

Для оценки погрешности воспользуемся неравенством (7.37). Получим max f  x   L1  x   x 0,1

1 12   0, 0625 . 2 23

Очевидно, что интерполирование с узлами Чебышева в рассматриваемом примере уменьшает погрешность в 2 раза. Замечание 6. Если отрезок  a, b большой длины и требуется высокая точность приближения функции, то одним многочленом при оптимальном распределении узлов обычно не удается достичь заданной точности. В таких случаях можно использовать другие способы аппроксимации функций.

7.5. Интерполирование с использованием разделенных разностей Существуют другие способы записи многочлена Лагранжа, кроме приведенных выше. Интерполяционный многочлен можно рассматривать как обобщение понятия «отрезок ряда Тейлора», где обобщением понятия производной является разделенная разность [1, с. 32–42; 3, с. 129–132; 4, с. 69–76; 6, с. 48–54; 7, с. 365–371]. 263

Методы приближенных вычислений

7.5.1. Разделенные разности и их свойства Определение 2. Для любой функции f  x  и любого набора различных узлов x0 , x1 , , xn , xi   a, b , i  0, n , назовем f  x0  , f  x1  , , f  xn  разделенными разностями 0-го порядка.

Всевозможные отношения f  x0 ; x1  

f  x1   f  x0 

, f  x1 ; x2  

x1  x0 f  xn 1 ; xn  

f  x2   f  x1 

f  xn   f  xn 1 

x2  x1

, …, (7.38)

xn  xn 1

назовем разделенными разностями 1-го порядка. Отношения вида f  x0 ; x1 ; x2   f  x1 ; x2 ; x3  

f  x1 ; x2   f  x0 ; x1  x2  x0

f  x2 ; x3   f  x1 ; x2 

f  xn  2 ; xn 1 ; xn  

x3  x1

,

, …,

f  xn 1 ; xn   f  xn  2 ; xn 1  xn  xn  2

.

назовем разделенными разностями 2-го порядка. Вообще f  x0 ; x1 ;; xn  

f  x1 ; x2 ;; xn   f  x0 ; x1 ;; xn 1  xn  x0

(7.39)

есть разделенная разность n-го порядка. Разделенные разности обладают рядом свойств. Приведем без доказательства некоторые из них. Свойство 1 (основное). n

f  x0 ; x1 ; ; xn    i 0

264

f  xi  , n  xi 

(7.40)

7. Элементы теории приближения функций

где n  xi    xi  x0    xi  x1     xi  xi 1    xi  xi 1     xi  xn  .

Доказательство данного свойства проводится по индукции, и его можно найти, например, в [4, с. 70, 71]. Свойство 2. Разделенная разность есть симметрическая функция своих аргументов. Свойство 3. Константу можно выносить за знак разделенной разности. Свойство 4. Разделенная разность суммы или разности функций равна сумме разделенных разностей слагаемых или разности уменьшаемого и вычитаемого соответственно. Свойство 5. Разделенные разности n-го порядка от многочленов n-й степени постоянны, а разности более высокого порядка равны нулю. Свойства 2–4 являются следствиями основного свойства, а свойство 5 можно доказать [4, с. 71–72]. Пятым свойством удобно пользоваться при составлении таблиц разделенных разностей (табл. 7.3). Т а б л и ц а 7.3

xi

f  xi 

x0

f  x0 

x1

f  x1 

x2 x3

f  x2  f  x3 

f  xi 1 ; xi 

f  xi  2 ; xi 1 ; xi 

f  x0 ; x1 

f  x0 ; x1 ; x2 

f  x1 ; x2 

f  x1 ; x2 ; x3 

f  xi 3 ; xi  2 ; xi 1 ; xi  f  x0 ; x1 ; x2 ; x3 

f  x2 ; x3 

7.5.2. Интерполяционный многочлен Ньютона и оценка погрешности Начнем с оценки погрешности. Рассмотрим f  xi  n  x  i  0  x  xi  n  xi  n

f  x   Ln  x   f  x   

265

Методы приближенных вычислений

или n  f  x  f  xi  f  x   Ln  x   n  x     .  n  x  i 0  x  xi  n  xi  

Нетрудно увидеть, что в скобках, согласно основному свойству разделенных разностей, стоит разделенная разность (n+1)-го порядка f  x ; x0 ; x1 ;; xn  . Тогда f  x   Ln  x   n  x  f  x ; x0 ; x1 ;; xn  .

(7.41)

Ранее было получено, что f  x   Ln  x  

f

n 1

   x  

 n  1!

n

 x  ,   x    a, b  .

(7.42)

Сравнивая формулы (7.41) и (7.42) между собой, находим соотношение между разделенной разностью (n+1)-го порядка и (n+1)-й производной функции f  x ; x0 ; x1 ; ; xn  

f

n 1

  x  ,

 n  1!

  x    a, b  .

(7.43)

Очевидно, что воспользоваться формулами (7.41), (7.42) можно в тех случаях, когда f  x  известна. Запишем теперь многочлен Лагранжа через разделенные разности. Для этих целей воспользуемся тождеством Ln  x   L0  x    L1  x   L0  x     L2  x   L1  x       Ln  x   Ln 1  x   .

(7.44)

Здесь Lm  x  – многочлен Лагранжа степени m  n , построенный по узлам x0 , x1 , , xm и значениям функции f  x0  , f  x1  ,, f  xm  . При этом среди узлов нет совпадающих и Lm  xi   f  xi  , i  0, m . Рассмотрим m-ю скобку из (7.44). Знаем, что Lm  x   Lm 1  x  есть многочлен степени m, который по построению обращается в нуль в узлах x0 , x1 , , xm 1 . Тогда можно записать: 266

7. Элементы теории приближения функций

Lm  x   Lm 1  x   Bm  x  x0    x  x1     x  xm 1  ,

(7.45)

где константа Bm пока не определена. Для определения Bm вычислим значение m-й скобки в узле xm . Будем иметь f  xm   Lm 1  xm   Bm  xm  x0    xm  x1     xm  xm 1  .

(7.46)

В формуле (7.41) положим x  xm , n  m 1 . Получим f  xm   Lm 1  xm   m 1  xm   f  xm ; x0 ;; xm 1  ,

(7.47)

где m 1  xm    xm  x0    xm  x1     xm  xm 1  .

Из формул (7.46) и (7.47) с применением свойства 2 разделенных разностей находим: Bm  f  x0 ; x1 ;; xm  . (7.48) Итак, Lm  x   Lm 1  x    x  x0    x  x1     x  xm 1  f  x0 ;; xm  . (7.49) Подставим (7.49) в (7.44), последовательно полагая m  1, 2, n . Получим запись многочлена Лагранжа через разделенные разности, которая носит название интерполяционного многочлена Ньютона для неравных промежутков: Ln  x   f  x0    x  x0  f  x0 ; x1    x  x0    x  x1  f  x0 ; x1 ; x2   (7.50)     x  x0    x  x1     x  xn 1  f  x0 ; x1 ;; xn  .

Несомненно, что запись интерполяционного многочлена в виде (7.50) обладает следующими достоинствами: 1) если добавляются один или несколько узлов в конце таблицы функции, то не требуется проводить расчеты с самого начала. Достаточно досчитать недостающие разделенные разности и добавить слагаемые в (7.50); 2) процесс построения интерполяционного многочлена Ньютона или вычисления с его помощью значения в точке можно представить в виде рекуррентных формул, которые несложно реализовать на ПЭВМ. 267

Методы приближенных вычислений

В самом деле, поместим разделенные разности в нижнюю треугольную матрицу с элементами ai , j , i  1, n , j  1, i . Тогда разделенные разности 1-го порядка будут вычисляться по формуле ai ,1   f  xi   f  xi 1   /  xi  xi 1  , i  1, n .

Разделенные разности остальных порядков можно найти по рекуррентной формуле a j ,i 

ai , j 1  ai 1, j 1 xi  xi  j

, j  2, n , i  j , n .

Заметим, что заполнение матрицы идет по столбцам. С учетом принятых обозначений интерполяционный многочлен Ньютона примет вид Ln  x   a0,0  a1,1  x  x0   a2,2  x  x0    x  x1      an, n  x  x0    x  x1      x  xn 1  ,

где ai ,0  f  x i  , i  0, n .

Пример 5. Для функции f  x   x на отрезке 100,144 построить интерполяционный многочлен Ньютона 2-й степени. Найти с его помощью значение в точке x  110 . Оценить погрешность полученного результата. Решение. Определим функцию f  x  следующей таблицей: xi 100 121 144 yi 10 11 12 Заполним таблицу разделенных разностей, пользуясь изложенной выше теорией. Получим табл. 7.4. Т а б л и ц а 7.4

268

xi

f  xi 

f  xi 1 ; xi 

f  xi  2 ; xi 1 ; xi 

100 121 144

10 11 12

0,047619 0,043478

–0,000094

7. Элементы теории приближения функций

Многочлен Ньютона 2-й степени будет иметь вид L2  x   10  0, 047619  x  100   0, 000094  x  100    x  121 ,

или, после преобразований, L2  x   0, 000094 x 2  0,068393x  4,1007 .

(7.51)

Аналогичный результат был получен ранее в примере 1, где потребовалась бóльшая вычислительная работа. Из формулы (7.51) находим далее L2 110  . Получим L2 110   10, 48653 .

Значение функции f 110  110  10, 4881 . Тогда 100  L2 110   0,00157  0,002 .

Это фактическая погрешность в точке x  110 . Для теоретической оценки погрешности можно воспользоваться формулой (7.42). Получаем 100  L2 110  

M3 2 110  , 3!

где 3 M 3  max f   x   10 5 , 100,144 8

2 110   110  100   110  121  110  144  .

Следовательно, 100  L2 110  

1 10 5 10 11  34  0, 00234 . 16

При этом теоретическая оценка погрешности в точке больше практической оценки.

7.6. Конечно-разностные интерполяционные формулы Пусть функция f  x  , x   a, b , обладающая достаточной гладкостью, определена таблицей своих значений f 0  f  x0  , f1  f  x1  , 269

Методы приближенных вычислений

 , f n  f  xn  h

в

равноотстоящих

узлах

xi  a  ih ,

i  0, n ,

ba – шаг сетки. n

Если ввести новую переменную t

x  x0 , h

то многочлен Лагранжа можно записать в следующем виде [4, с. 55]: n

Ln  x0  th    f  x j  S j  t  ,

(7.52)

j 0

где S j  t  

 1

n j

Cnj t  t  1  t  n 

t  j   n!

– коэффициенты Лагранжа.

В случае равноотстоящих узлов, кроме формулы (7.52), существует многообразие интерполяционных формул, запись которых основана на понятии «конечная разность» [1, с. 30–32; 4, с. 76–81; 6, с. 47–50; 7, с. 346–352].

7.6.1. Конечные разности и их свойства Определение 3. Разности f1  f 0 , f 2  f1 , , f n  f n 1 назовем конечными разностями 1-го порядка и будем обозначать  fi  f i 1  f i , i  0, n  1 . Конечные разности 2-го порядка определяем через конечные разности 1-го порядка:  2 f i   fi 1   fi , i  0, n  2 ,

и т.д. Конечные разности n-го порядка определим формулой  n fi   n 1 fi 1   n 1 fi , i  0 .

Конечные разности удобно оформлять в виде таблицы (табл. 7.5).

270

7. Элементы теории приближения функций Т а б л и ц а 7.5

xi

fi

x0

f0

x1

f1

x2

f2

x3

f3

x4

f4

 fi

 2 fi

 f0

2 f0

 f1  f2  f3

 2 f1 2 f2

3 fi

 4 fi

3 f 0

4 f0

 3 f1

Покажем, что если при вычислении конечных разностей допущена ошибка, то она быстро распространяется по таблице. Пусть, например, при вычислении значения  f1 допущена ошибка величины ε. Тогда табл. 7.5 примет вид (табл. 7.6). Т а б л и ц а 7.6

xi

fi

x0

f0

x1

f1

x2

f2

x3

f3

x4

f4

 fi

 2 fi

 f0

2 f 0  

 f1    f2  f3

 2 f1   2 f2

3 fi

 4 fi

3 f0  2

4 f 0  3

 3 f1  

Очевидно, что с ростом порядка конечной разности возрастает модуль при этом допускаемой погрешности. Следовательно, требуется контроль за правильностью вычисления конечных разностей. Он заключается в следующем: сумма конечных разностей в столбце таблицы равна разности крайних значений предыдущего столбца [4, с. 77]. Перечислим свойства конечных разностей, доказательство которых можно найти, например, в [4, с. 78–81]. 271

Методы приближенных вычислений

Свойство 1. Конечные разности выражаются непосредственно через значения функции по формуле  k f 0  f k  kf k 1 

k   k  1 2!

f k  2     1 f 0 k

(7.53)

или k

 k f 0    1 Ckj f k  j . j

j 0

Из формулы (7.53) вытекают следующие свойства. Свойство 2. Константу можно выносить за знак конечной разности. Свойство 3. Конечная разность от суммы (разности) функций равна сумме (разности) конечных разностей слагаемых (уменьшаемого и вычитаемого). Свойство 4. Конечные и разделенные разности n-го порядка для случая равноотстоящих узлов связаны между собой формулой f  x0 ; x1 ; ; xn  

 n f0 . n !hn

(7.54)

Как следствие формулы (7.54) получаем еще одно свойство. Свойство 5. Конечная разность n-го порядка от многочлена n-й степени постоянна, а более высокого порядка равна нулю. С помощью конечных разностей можно вывести различные интерполяционные формулы, позволяющие приближать функции с равноотстоящими узлами [4, с. 84–97].

7.6.2. Первая и вторая интерполяционные формулы Ньютона Пусть

рассматриваются

узлы

x0 , x1  x0  h, x2  x0  2h, …,

xn  x0  nh , где x0 – наименьший узел, и заданы fi  f  xi  , i  0, n .

Воспользуемся формулой Ньютона, записанной через разделенные разности: 272

7. Элементы теории приближения функций

Ln  x   f  x0    x  x0  f  x0 ; x1    x  x0    x  x1  f  x0 ; x1 ; x2   (7.55)     x  x0    x  x1     x  xn 1  f  x0 ; x1 ; ; xn  .

Положим t

x  x0 h

и заменим разделенные разности по формуле (7.54). Тогда получим Ln  x0  th   f 0  t  f 0  

t  t  1

2! t  t  1 t   n  1  n!

2 f0   

(7.56)  f0 . n

Формула (7.56) носит название 1-й интерполяционной формулы Ньютона или формулы Ньютона для интерполирования «вперед». Ее удобно применять для вычисления значений в точке x, близкой к наименьшему узлу x0 . При этом в формуле используются конечные разности из табл. 7.5. Погрешность 1-й интерполяционной формулы Ньютона имеет вид rn1  x  

t  t  1 t  2     t  n 

 n  1!

h n 1 f  n 1    x   ,   x    a, b  .

Можно вывести 2-ю интерполяционную формулу Ньютона или формулу Ньютона для интерполирования «назад», если занумеровать узлы так: x0 , x1  x0  h, x2  x0  2h, , x n  x0  nh . Формула (7.55) в этом случае преобразуется: Ln  x   f 0   x  x0  f  x0 ; x0  h  

  x  x0  x  x0  h  f  x0 ; x0  h; x0  2h    

  x  x0     x  x0   n  1 h  f  x0 ; x0  h; ; x0  nh  .

Так как

f  x0 ; x0  h;; x0  nh   f x n ; x n 1 ;; x1 ; x0 ,

то 273

Методы приближенных вычислений

f x n ; x  n 1 ; ; x0 

n fn . n !h n

Следовательно, Ln  x0  th   f 0  t  f 1  

t   t  1

2! t   t  1  t   n  1  n!

 2 f 2   

(7.57)  fn . n

Формулу (7.57) рекомендуется применять для вычисления значения в точке x, близкой к x0 – наибольшему узлу. В формуле (7.57) используются конечные разности из табл. 7.7. Т а б л и ц а 7.7

xi

fi

x3

f 3

x2

f 2

x 1

f 1

x0

f0

 fi

 2 fi

 f 3

 2 f 3

 f 2  f 1

 2 f 2

 3 fi  3 f 3

Погрешность 2-й интерполяционной формулы Ньютона представима в виде rn 2   x  

t  t  1    t  n 

 n  1!

h n 1 f  n 1    x   ,   x    a, b  .

На основе формул (7.56), (7.57) можно получить интерполяционные формулы Гаусса, Стирлинга, Бесселя и др. [1, с. 52–55; 4, с. 84–97; 7, с. 356–365]. Выбор той или иной интерполяционной формулы на практике обусловливается желанием повысить точность расчетов. Этого можно достичь двумя путями: 1) увеличивать число узлов интерполирования и степень многочлена, строящегося на всем промежутке; 274

7. Элементы теории приближения функций

2) проводить интерполяцию по ближайшим к x0 узлам без увеличения степени интерполяционного многочлена. Пример 6. Пусть функция f  x   sin x задана табл. 7.8, угол x измеряется в градусах. Т а б л и ц а 7.8

x

f  x

11°

13°

15°

0,087156

0,121869

0,156434

0,190809

0,224951

0,258819

Требуется вычислить sin 60 . Решение. Примем x0  50 . Так как h  20 , то xi  x0  ih , i  0,5 . Составим таблицу конечных разностей (табл. 7.9). Т а б л и ц а 7.9

xi

f  xi 

 fi

 2 fi

3 fi

 4 fi

5° 7° 9° 11° 13° 15°

0,087156 0,121869 0,156434 0,190809 0,224951 0,258819

0,034713 0,034565 0,034375 0,034142 0,033868

–0,000148 –0,000190 –0,000233 –0,000274

–0,000042 –0,000043 –0,000041

–0,000001 0,000002

Видим, что конечные разности 3-го порядка практически постоянны. Это означает, что на отрезке [5°, 15°] функция f  x   sin x близка к многочлену 3-ей степени. Для вычисления значения f(6°) воспользуемся формулой Ньютона для интерполирования «вперед». 6 – 5 1  . Будем иметь Положим n  3 , t  2 2 1   L3  x0  h   0, 087156  0, 0173565  0, 0000185  0, 0000026 2  

(7.58)

или 275

Методы приближенных вычислений

L3 (6)  0,104528. Полученное значение совпадает с точным значением sin6° с шестью знаками после запятой. Если в формуле (7.58) отбросить последнее слагаемое, то получим L3 (6)  0,104531 и тогда

L3 (6) – sin 6  0,3  10 –5.

7.7. О сходимости процесса интерполирования Все рассмотренные способы построения алгебраических многочленов представляют собой глобальную интерполяцию, когда приближающий функцию многочлен степени n строится на всем  a, b . При этом степень n фиксируется. Представляет интерес изучение вопроса о сходимости интерполяционного процесса: будет ли стремиться к нулю погрешность f  x   Ln  x  , когда n   ? Данный вопрос изучается в [1, с. 65–76; 2, с. 134–136; 4, с. 103– 106; 7, с. 392–398]. Рассмотрим бесконечную последовательность сеток с возрастающим числом узлов

 

0  x0 0 , 1  x01 , x11 , …, n  x0 n  , x1 n ,, xn n , ….

Пусть непрерывная функция f  x  , x   a, b , задается таблицами значений

 f  x  ,  f  x  , f  x  , …,  f  x  , f  x  ,, f  x  , …  0 0

1 0

1 1

 n 0

 n

1

n n

По заданным исходным данным можно построить последовательность многочленов Лагранжа Lk  x  , k  0,1, , и изучать поточечную и равномерную сходимость процесса интерполяции.

276

7. Элементы теории приближения функций

Определение 4 (поточечной сходимости). Говорят, что интерполяционный процесс для функции f  x 

сходится в точке x*   a, b  , если существует lim Ln  x*   f  x*  .

n 

Кроме поточечной сходимости существует равномерная сходимость. Определение 5 (равномерной сходимости). Говорят, что интерполяционный процесс для функции f  x  сходится равномерно на  a, b , если max f  x   Ln  x   0 при n   .

x a , b 

Сходимость интерполяционного процесса зависит от выбора последовательности сеток узлов и от гладкости функции f  x  . Известны примеры функций, для которых интерполяционный процесс расходится, например, f  x   x и f  x   1  25×2 

1

на

 1,1

(примеры Бернштейна и Рунге соответственно). Общее утверждение о сходимости процесса интерполирования содержат теоремы Фабера и Марцинкевича [3, с. 135–136]. Теорема 3 (Фабера). Какова бы ни была последовательность сеток n  , n  0,1, 2, , найдется непрерывная на  a, b функция f  x  такая, что последовательность интерполяционных много-

членов Ln  x  , n  0,1, , не сходится к f  x  равномерно на отрезке  a, b . Теорема 4 (Марцинкевича). Если f  x  непрерывна на  a, b , то найдется такая последовательность сеток, для которой соответствующий интерполяционный процесс сходится равномерно на отрезке  a, b .

277

Методы приближенных вычислений

На практике для каждой функции f  x  приходится строить свою сетку узлов, что не всегда просто сделать. Поэтому стараются избегать глобальной интерполяции многочленами высокой степени, а используют кусочно-полиномиальную аппроксимацию сплайнами [3, с. 140–148; 5 с. 51–53; 6, с. 63–68; 7, с. 431–464; 9, с. 14–85].

7.8. Интерполяционные сплайны Термин «сплайн» (от англ. spline) означает название приспособления, с помощью которого чертежники проводят гладкие кривые через заданные точки плоскости. В математике сплайн или сплайн-функции, – это кусочные многочлены с однородной структурой. В вычислительной практике наибольшее распространение получили линейные и кубические сплайны интерполяционного типа. Рассмотрим эти виды сплайнов. Пусть отрезок  a, b разбит на элементарные отрезки  xi 1 , xi  , i  1, n , точками a  x0  x1    xn  b .

Определение 6. Интерполяционным сплайном порядка m назовем функцию Si  x   Pim  x  , которая на каждом элементарном от-

резке  xi 1 , xi  , i  1, n , является многочленом степени m Pim  x   ai 0  ai1 x    aim x m

(7.59)

и удовлетворяет условиям: P1m  x0   f  x0  , Pim  xi   f  x i  , i  1, n ;

(7.60)

Pim   xi   Pi 1,m  xi  , k  0, m  1 , i  1, n  1 .

(7.61)

k

k

Заметим, что условия (7.61) означают непрерывность производных до порядка m  1 включительно в точках x1 , x2 , , xn 1 . 278

7. Элементы теории приближения функций

Чтобы построить сплайн (7.59), требуется найти  m  1  n коэффициентов ai 0 , ai1 , , aim . Определение сплайна дает m   n  1  n  1 условий для вычисления коэффициентов. Если степень сплайна m  1 , то условий (7.60), (7.61) недостаточно и следует добавить еще краевые условия, вид которых будет рассмотрен позже. Определение 7. Разность между степенью сплайна и порядком наивысшей непрерывной на  a, b производной от него называется дефектом сплайна. Остановимся на выводе интерполяционных сплайнов дефекта 1. Линейный сплайн (m = 1). На каждом отрезке  xi 1 , xi  имеем многочлен 1-й степени Pi1  x   ai 0  ai1 x , i  1, n ,

(7.62)

где 2  n коэффициентов ai 0 , ai1 пока неизвестны. Для их нахождения достаточно условий интерполяции  Pi1  xi 1   f  xi 1  ,   Pi1  xi   f  xi  , i  1, n .

Получается СЛАУ из 2  n уравнений на 2  n неизвестных ai 0  ai1 xi 1  f  xi 1  ,   ai 0  ai1 xi  f  xi  .

(7.63)

Определитель СЛАУ (7.63) отличен от нуля: 

1 xi 1 0. 1 xi

Тогда ai 0 , ai1 определяются однозначно по формулам ai 0 

xi f  xi 1   xi 1 f  xi  xi  xi 1

, ai1 

f  xi   f  xi 1  xi  xi 1

.

(7.64)

После подстановки (7.64) в (7.62) получаем линейный сплайн: 279

Методы приближенных вычислений

Pi1  x  

x  xi x  xi 1 f  xi 1   f  xi  . xi 1  xi xi  xi 1

(7.65)

Нетрудно видеть, что линейный сплайн (7.65) есть интерполяционный многочлен Лагранжа 1-й степени, построенный по узлам xi 1 , xi и значениям функции в них. В целом на всем отрезке  a, b  сплайн представляет собой ломаную. Дефект линейного сплайна равен единице, так как m  1 , k  0 . Кубический сплайн (m = 3). Построим кубический сплайн класса C 2  a, b дефекта 1. Для этого зададим на  a, b сетку узлов a  x0  x1    xn  b

и определим fi  f  xi  , i  0, n . На каждом элементарном промежутке  xi 1 , xi  запишем интерполяционный кубический сплайн вида ci d 2 3  x  xi   i  x  xi  , 2 6  x  xi , i  1, n.

Si  x   Pi 3  x   ai  bi  x  xi   xi 1

(7.66)

Здесь коэффициенты ai , bi , ci , d i пока неизвестны. Поясним смысл этих коэффициентов. Имеем Pi ,3  xi   ai и Pi ,3  xi   f i , i  1, n .

Положим a0  f  x0  и тогда, очевидно, будем иметь ai  f  xi  , i  0, n .

Вычислим Pi 3  x  , Pi 3  x  . Получим: Pi ,3  xi   bi , Pi ,3  xi   ci , i  1, n .

Следовательно, коэффициенты bi – наклоны сплайна, а коэффициенты ci – моменты сплайна. Нетрудно найти, что di  Pi ,3  xi  , i  1, n .

280

7. Элементы теории приближения функций

Итак, смысл коэффициентов установлен. Докажем теперь, что сплайн вида (7.66) существует и является единственным, и одновременно дадим алгоритм его построения. Воспользуемся определением интерполяционного сплайна. Для кубического сплайна дефекта 1 должны выполняться следующие условия: Pi ,3   xi   Pi 1,3  xi  , i  1, n  1 , k  0,1, 2 . k

k

(7.67)

При k  0 из (7.67) с учетом вида сплайна (7.66) получаем ci 1 d 2 3  xi  xi 1   i 1  xi  xi 1  , 2 6 i  1, n  1.

ai  ai 1  bi 1  xi  xi 1  

(7.68)

Обозначим hi  xi  xi 1 для i  1, n и учтем, что ai  fi , i  0, n . Тогда из (7.68), куда добавлено P1,3  x0   a1  b1  x0  x1  

c1 d 2 3  x0  x1   1  x0  x1   f 0 , 2 6

находим bi hi 

ci 2 d i 3 hi  hi  f i  f i 1 , i  1, n . 2 6

(7.69)

Из условий непрерывности 1-й производной от сплайна (рассматриваем (7.67) при k  1 ) получаем ci hi 

di 2 hi  bi  bi 1 , i  2, n . 2

(7.70)

Условия (7.67) при k  2 дают di hi  ci  ci 1 , i  2, n .

(7.71)

Уравнения (7.69)–(7.71) представляют собой СЛАУ из 3n  2 уравнений на 3n неизвестных bi , ci , d i , i  1, n . Недостающие два условия, именуемые граничными или краевыми, можно задать несколькими способами [3, с. 142; 6, с. 66; 9, с. 20]. Примем, что

281

Методы приближенных вычислений 2  f   a   P1,3  a   0,   2  f   b   Pn ,3  b   0.

(7.72)

Краевые условия (7.72) позволяют определить, что c0  cn  0 . Таким образом, приходим к замкнутой СЛАУ для нахождения коэффициентов кубического сплайна hi di  ci  ci 1 , i  1, n;  c0  cn  0,;  h2 hi ci  i di  bi  bi 1 , i  2, n,; 2   h2 h3 hi bi  i ci  i di  fi  fi 1 , i  1, n. 2 6 

(7.73)

СЛАУ (7.73) можно упростить и свести к аналогичной системе относительно c0 , c1 ,, cn . Например, с помощью последнего уравнения из (7.73) находим bi , bi 1 и подставляем в 3-е уравнение. Затем с помощью первого уравнения выражаем di , di 1 . В итоге получаем СЛАУ вида c0  0,   fi 1  fi f i  f i 1    hi ci 1  2  hi  hi 1  ci  hi 1ci 1  6   , i  1, n  1, (7.74) hi   hi 1  c  0.  n

Нетрудно видеть, что СЛАУ (7.74) имеет 3-диагональную матрицу с доминирующей главной диагональю, так как 2  hi  hi 1   hi  hi 1 .

Решать такую систему рекомендуется экономичным методом прогонки, который в данном случае будет устойчивым и даст единственное решение c0 , c1 ,, cn . После этого единственным образом будут найдены bi , d i по формулам

282

7. Элементы теории приближения функций

di 

ci  ci 1 h h2 f  fi 1 , bi  i ci  i di  i , i  1, n . 2 6 hi hi

(7.75)

Показано, что существует единственный интерполяционный кубический сплайн класса C 2  a, b , удовлетворяющий условиям (7.72). Заметим, что при hi  h 

ba n

система (7.74) упрощается и

приобретает вид c0  0,;  fi 1  2 f i  f i 1  , i  1, n  1,; ci 1  4ci  ci 1  6 h2  cn  0.

(7.76)

В этом случае имеет место теорема о сходимости процесса интерполирования кубическими сплайнами [3, с. 143–148]. Приведем теорему без доказательства. Теорема 5. Для f  x   C 4  a, b справедливы оценки f  x   Sh  x  C a ,b  M 4 h4 ,; 

f   x   Sh  x  C a ,b  M 4 h3 ,; 

f   x   Sh  x  C a ,b  M 4 h2 . 

Здесь M 4  f

 4

 x  C  a ,b  ,

S h  x    Pi 3  x  ,

i  1, n , – кубический

сплайн дефекта 1, построенный на равномерной сетке  ba n   xi xi  a  ih, i  0, n, h  . n  

Доказательство теоремы представлено в [3]. Из оценок, которые в ней даны, следует, что при h  0 ( n   ) последовательности Sh  x  , Sh  x  , Sh  x  сходятся соответственно к f  x  , f   x  , f   x  .

283

Методы приближенных вычислений

Замечание 7. При задании краевых условий, отличных от (7.72), требуется видоизменять СЛАУ (7.74). Например, если заданы краевые условия f   x0   P1,3  x0    , f   xn   Pn,3  xn    ,

то c0   , cn   и в СЛАУ (7.74) изменяются первое и последнее уравнения. Если дано  f   x0   P1,3  x0   ,   f   xn   Pn,3  xn   ,

то имеем d 2  P   x   b1  c1  x0  x1   1  x0  x1   ,  1,3 0 2   P   x   b  c  x  x   d n  x  x 2  . n n n n n n  n ,3 n 2

(7.77)

К соотношениям (7.77) следует еще добавить d1 

c1  c0 f f h h2 , b1  1 c1  1 d1  1 0 , h1 h1 2 6

c c h h2 f  f n 1 d n  n n 1 , bn  n cn  n d n  n . hn hn 2 6

(7.78)

Тогда соотношения (7.77) с учетом (7.78) дают соответственно 1-е и последнее уравнения СЛАУ (7.74):   f1  f 0  2h1c0  h1c1  6     ;, h1      f n  f n 1   . hn cn 1  2hn cn  6    h n   

(7.79)

Итак, алгоритм построения кубического сплайна класса

C 2  a, b следующий:

284

7. Элементы теории приближения функций

a  x0  x1    xn  b

1) задаем узлы сетки

и вычисляем

fi  f  xi  , i  0, n ;

2) составляем СЛАУ относительно моментов сплайна и решаем ее методом прогонки; 3) вычисляем bi , d i по формулам (7.75); 4) строим кубический сплайн дефекта 1 на  a, b : S h  x    Pi ,3  x  , x   xi 1 , xi  , i  1, n ,

где Pi ,3  x   ai  bi  x  xi  

ci d 2 3  x  xi   i  x  xi  . 2 6

Проиллюстрируем элементы изложенной теории на примере. Пример 7. Имеем таблично заданную функцию xi

0

1 2

3 4

1

f  xi 

1 4

1

2

1

0

1

Известно, что f   x0   0 , f   x4   0 . Требуется аппроксимировать функцию интерполяционным кубическим сплайном класса C 2  0,1 . Решение. В задаче рассматривается равномерная сетка с шагом h

1 . Из условия задачи имеем: 4 a0  1 , a1  2 , a2  1 , a3  0 , a4  1 .

Для определения c0 , c1 , c2 , c3 , c4 составляем СЛАУ c0  0,  c0  4c1  c2  6 f 2  2 f1  f 0 ,  h2  f3  2 f 2  f1 , c1  4c2  c3  6 h2   f 4  2 f3  f 2 , c2  4c3  c4  6 h2  c4  0.

285

Методы приближенных вычислений

После подстановки значений f i , i  0, 4 , и вычислений, получаем c0  0, 4c  c  192,  1 2 c1  4c2  c3  0, c  4c  192, 3  2 c4  0.

Отсюда находим моменты сплайна: c0  0 , c1  48 , c2  0 , c3  48 , c4  0 . Далее по формулам (7.75) вычисляем d i , bi : d1  192 , d 2  192 , d3  192 , d 4  192 , b1  0 , b2  6 , b3  0 , b4  6 .

Таким образом, интерполяционный кубический сплайн класса C 2  0,1 можно записать так: c1 d1 2 3   P1,3  x   a1  b1  x  x1   2  x  x1   6  x  x1  , x0  x  x1 ;   P x  a  b x  x  c2 x  x 2  d 2 x  x 3 , x  x  x ;   2 2  2 2 2 1 2  2,3   2 6 Sh  x     P  x   a  b  x  x   c3  x  x 2  d 3  x  x 3 , x  x  x ; 3 3 3 3 3 2 3  3,3 2 6   P4,3  x   a4  b4  x  x4   c4  x  x4 2  d 4  x  x4 3 , x3  x  x4  2 6

или 2  24  x  0, 25 2  32  x  0, 25 3 , x   0, 0, 25 ;  3 1  6  x  0,50   32  x  0,5  , x   0, 25, 0,5 ; Sh  x    2 3 24  x  0, 75   32  x  0, 75  , x   0,5, 0, 75 ;  3 1  6  x  1  32  x  1 , x   0, 75, 1 .

286

7. Элементы теории приближения функций

7.9. Метод наилучшего среднеквадратичного приближения Пусть f  x  задана в узлах x0 , x1 , , xm , xi   a, b , значениями f  x0  , f  x1  ,, f  xm  . Заменим ее интерполяционным многочле-

ном степени n:   x   c0  c1 x    cn x n .

Если m  n , то будем рассматривать задачу о наилучшем приближении [3, с. 152–154; 4 с. 270–309; 5, с. 68–74; 6, с. 68–91; 7, с. 384–430]. Для этого зададим вектор погрешности r   r0 , r1 , , rm  , T

где rk    xk   f  xk  , k  0, m ,

и определим для него одну из норм: 12

 m  r    rk2   k 0 

12

2  m       xk   f  xk     k 0 

(7.80)

или r  max rk  max   xk   f  xk  . k  0, m

k  0, m

(7.81)

Тогда задача о наилучшем приближении таблично заданной функции f  x  заключается в определении коэффициентов c0 , c1 ,, cn аппроксимирующей функции   x  так, чтобы они ми-

нимизировали норму вектора погрешности r . Если r определяется формулой (7.80), то речь идет о наилучшем среднеквадратичном приближении. Если r задается формулой (7.81), то получаем задачу о наилучшем равномерном приближении функции f  x  .

287

Методы приближенных вычислений

Остановимся на методе наименьших квадратов, решающем задачу о наилучшем среднеквадратичном приближении [3, с. 156– 161; 4, с. 270–309; 5, с. 34–35; 6, с. 68–75; 7, с. 384–403]. Пусть S  c0 , c1 , , cn   r

2

m

   c0  c1 xk    cn xkn  f  xk   . 2

(7.82)

k 0

Чтобы функция S  c0 , c1 ,, cn  имела минимальное значение относительно ci , i  0, n , необходимо потребовать выполнения условий S  0 , i  0, n . ci

Тогда после вычисления производных получим  m n 2  c0  c1 xk    cn xk  f  xk   1  0;,  k 0  m n 2  c0  c1 xk    cn xk  f  xk    xk  0;,  k 0    m n n 2  c0  c1 xk    cn xk  f  xk    xk  0  k 0

или m m m m  n 2       c m 1 c x c x  c x f  xk ;,       k k n k 1 2  0 k 0 k 0 k 0 k 0  m m m m  m n 1 2 3 c0  xk  c1  xk  c2  xk    cn  xk   xk  f  xk ;, (7.83)  k 0 k 0 k 0 k 0 k 0   m m m m  m n 2n n 1 n2 n c0  xk  c1  xk  c2  xk    cn  xk   xk  f  xk . k 0 k 0 k 0 k 0  k 0

СЛАУ (7.83) можно записать в матричном виде: AT  A  c  b ,

288

(7.84)

7. Элементы теории приближения функций

где

c   c0 , c1 , , cn  , T

T

m m  m  b    f  xk ,  xk f  xk ,,  xkn f  xk   , k 0 k 0  k 0 

 1 x0 x02   1 x1 x12  A      2  1 xm xm 

x0n   x1n  – матрица типа Вандермонда размерно  xmn  1 1  1   x x  xm  имеет размерность сти  m  1   n  1 , AT   0 1       n n n   x0 x1  xm   n  1   m  1 .

Если, по крайней мере, n  1 значений xi из заданных m  1 различны, то можно показать, что ранг матрицы AT  A равен n  1 и она положительно определена. Тогда решение СЛАУ (7.84) дает единственную точку минимума функции S  c0 , c1 ,, cn  . Следовательно, задача аппроксимации по методу наименьших квадратов имеет единственное решение. Пример 8. По методу наименьших квадратов построить многочлен 1-й степени, приближающий f  x   sin x на  0,1 . Решение. Пусть x0  0, x1  0,5, x2  1 и f 0  0, f1  0, 47943, f 2   0,84147 , где

fi  f  xi  , i  0, 2 . Построим аппроксимирующий

многочлен вида   x   c0  c1  x .

Коэффициенты многочлена найдем из СЛАУ (7.83). В рассматриваемом случае m  2 , n  1 . Тогда для c0 , c1 имеем СЛАУ 2 2  3 c c x    0 1  k  fk ,  k 0 k 0  2 2 2 2 c 0  xk  c1  xk   xk  f k  k  0 k 0 k 0

289

Методы приближенных вычислений

или 3c0  1,5c1  1,3209,  1,5c0  1, 25c1  1,08119.

(7.85)

Очевидно, что определитель системы (7.85) отличен от нуля. Единственным образом находим коэффициенты аппроксимирующего многочлена   x  : c0  0, 01956; c1  0,84148 .

Таким образом, построен аппроксимирующий многочлен   x   0, 01956  0,84148  x .

Оценим погрешность построенного приближения. Будем иметь ri    xi   fi , i  0,1, 2 , и r0  0, 01956; r1  0, 03913; r2  0, 01957 . Тогда r  r02  r12  r22  0, 0023  0, 05 .

Замечание 8. Кроме описанных выше способов приближения функций одной переменной существуют и другие. С ними можно познакомиться в рекомендованной литературе [1–9]. Там же представлены обобщения на случай функции многих переменных и решены примеры, иллюстрирующие излагаемый материал.

7.10. Лабораторные задания Задача 1. Найти с помощью интерполяции корень уравнения

f  x   0 , если f  0   12 , f 1  4 , f  2   4 ; вычислить z  30x .

Задача 2. Найти с помощью интерполяции корень уравнения f  x   0 , если f  0   5 , f  2   1 , f   0   0 . Вычислить z  x4 . Задача 3. С помощью обратной интерполяции найти корень уравнения f  x   8 , если f 1  0 , f  3  1 , f  5   2 . Вычислить z  x4 .

290

7. Элементы теории приближения функций

Задача 4. Найти d , k , e такие, чтобы разность 

1 1  1  f  x   f  x  h   df  x   kf  x  eh  3 5  7 

имела максимальный порядок по h. Задача 5. Известно, что f  2   0 , f  4   12 , f  6   16 . Найти f  5 .

Задача 6. Построить таблицу конечных разностей для f  x   x3  5 x 2  3x  4 на промежутке  0, 4 с шагом h  1 и вычис-

лить  3 f 1 . Задача 7. Для функции y  ex на 1,3 с шагом h  1 построить квадратичную интерполяцию. Указать максимальное целое C такое, что погрешность интерполяции не превосходит C 103 . Задача 8. Известно, что функция f  x  хорошо приближается

функциями вида a  bx  . Найти f   , если f  0  3 , f 1  21 , x 2 f  2   39 . c

1

Задача 9. Вычислить  k fi , если i  2 , k  6 , f n  1,5  n , n  0, 1, 2, .

Задача 10. Пусть x j  x j 1  1 . Чему равно 3T3  2  , где T3  x  – многочлен Чебышева, вычисляемый по формулам T0  x   1 , T1  x   x , Tn 1  x   2 xTn  x   Tn 1  x  , n  1 .

Задача 11. Получить модуль коэффициента при x 2 в многочлене Чебышева T8  x  , x  1 . Задача 12. Абсолютная погрешность значений f 0 , f1 , f 2 не превышает 0,019. Указать наименьшее целое C такое, что абсолютное значение погрешности при вычислении 2 f0 не превосходит C 103 .

291

Методы приближенных вычислений

Задача

13.

На

0, 2

строится

таблица

функции

f  x   2cos x  x . Найти наибольшее целое C такое, что при

h  C 104 погрешность линейной интерполяции не превосходит 104 . Задача 14. Указать число корней многочлена T7  x  , которые

меньше 0,5. Задача 15. Значение f 1,5  вычисляется интерполяцией по значениям функции f  0  , f 1 , f  2  . Получить наименьшее целое C такое, что f 1,5   L2 1,5   C 102 . При этом значения функции вычисляются с абсолютной погрешностью 101 , для x  [0,2] . Задача 16. Сформулировать задачи, приводящие к необходимости применения теории приближения, и указать методы их решения. Задача 17. Сформулировать общую постановку задачи интерполяции многочленами. Задача 18. Доказать теорему: для того, чтобы система функций

  x 

n

k

0

была системой Чебышева на  a, b , необходимо и доста-

точно, чтобы любой обобщенный многочлен по этой системе, у которого хотя бы один коэффициент отличен от 0, имел на  a, b не более n нулей. Задача 19. Доказать, что система функций 0, 1  x  0, 0  x   1 , 1  x     x,0  x  1

не является чебышевской на  1,1 . Задача 20. Доказать, что в случае равноотстоящих узлов многочлен Лагранжа имеет вид Ln  x0  th  

где 292

t  t  1 t  2   t  n  n!

Cnj n j  1 f  x j  ,  j 0 t  j n

7. Элементы теории приближения функций

t

x  x0 , x j  x j 1  h , j  1, n . h

Задача 21. Вычислить разделенную разность f  x0 ; x1 ; x2 ; x3  для

функции,

заданной

таблицей

значений:

f  0  3 ,

f 1  9 ,

f  3  21 , f  4   33 .

Задача 22. Зная f  0  3 , f 1  21 , f  3  39 , оценить погрешность приближения функции многочленом Ньютона через разделенные разности в точке x  1, 5 . Задача 23. Установить величину погрешности, возникающей при составлении таблицы конечных разностей, если f k  2  k , k  0, 1, 2, , и при вычислении f 0 допущена погрешность величины ε. Задача 24. Доказать, что f  x0 ; x1 ; x2 ; x3  

3 f0 . h 3  3!

Задача 25. Приблизить функцию f  x   2 x 2 на  0,1 функцией  x 

a0  a1 x так, что   x j   f  x j  , b0  x

j  0,1, 2 ; x0  0 ; x1  0, 5 ;

x2  1 .

Задача 26. Сформулировать задачу о наилучшем среднеквадратичном приближении и о наилучшем равномерном приближении функции, заданной таблично. Задача 27. Доказать, что на каждом элементарном промежутке  xi 1 , xi  линейный сплайн есть многочлен Лагранжа 1-й степени,

построенный по данным  xi 1 , f  xi 1  ,  xi , f  xi  . Задача 28. Установить точки, в которых Tn  xm  достигает зна-

чений  1 . Здесь m

T0  x   1 , T1  x   x ,

293

Методы приближенных вычислений

Tn 1  x   2 xTn  x   Tn 1  x  , n  1 , или Tn  x   cos  n arccos x  , n  0 , x   1.1 .

Задача 29. Доказать, что среди всех многочленов n-й степени со старшим коэффициентом, равным единице, многочлен Tn  x   21 n Tn  x  , n  1 , имеет на  1,1 наименьшее значение максимума модуля. Задача 30. Доказать, что max f  x   Ln  x  

x 1,1

M n 1 , 2n  n  1 !

если Ln  x  построен по узлам xm  cos

 2m  1  2n  2

и значениям f  xm  , m  0, n , M n 1  max f  n 1  x  . x 1,1

Задание 1. Исследовать сходимость интерполяционного процесса в точке x*   a, b  для функции y  f  x  , x   a, b , если функцию аппроксимировать одним из способов: 1) многочленом Лагранжа с произвольными узлами; 2) многочленом Лагранжа с равноотстоящими узлами; 3) многочленом Лагранжа, записанным в барицентрическом виде; 4) многочленом Ньютона через разделенные разности; 5) по интерполяционной формуле Ньютона через конечные разности для интерполирования вперед; 6) по интерполяционной формуле Ньютона через конечные разности для интерполирования назад. Задание 2. Минимизировать погрешность интерполяции, если функцию y  f  x  на  a, b приблизить многочленами Лагранжа 1, 2, 3-й степени.

294

7. Элементы теории приближения функций

Задание 3. Для заданной функции y  f  x  , x   a, b , построить линейный и кубический сплайн. Оценить погрешность полученных приближений на каждом элементарном отрезке  xi 1 , xi  , i  1, n , где a  x0  x1    xn  b .

Задание 4. Используя метод наименьших квадратов, получить эмпирическую формулу для функции y  f  x  , x   a, b . Постро-

ить график f  x  и найденной эмпирической функции. Оценить погрешность полученного приближения. Вариант № 1. f  x   cos  x  2   15 , x   1,1 . 2

Вариант № 2. f  x   1  22 x 2  , x   1,1 . 1

Вариант № 3. f  x   tg 2 x  7 x 2 , x   0,3;0,3 .

Вариант № 4. f  x   8sin 2 x  11 , x   1,1 .

Вариант № 5. f  x   ln x 

3  1 , x  1,5 . x

295

Методы приближенных вычислений

Вариант № 6. f  x   x3  4 cos 2 x , x   0,5;0,5 .

Вариант № 7. f  x   x 2  7 sin x , x   0, 2;0, 2 .

Вариант № 8. f  x   x 2  3ln  x  4  , x   0,5;0,5 .

Вариант № 9. f  x   x lg  x  3  4 , x  1,3 .

Вариант № 10. x f  x   0,5 x  cos , x  1, 2 . 2

Вариант № 11. f  x    x  0,5   2e x , x   0,1 . 2

Вариант № 12. x x   f  x   cos sin , x   0,  . 2 2  2

Вариант № 13. f  x   2sin  0,5 x  , x   1;1 .

296

7. Элементы теории приближения функций

Вариант № 14. f  x 

1 x cos  1 , x   0,  . 8 2

Вариант № 15. f  x   e  x   x  1 5 , x   0,1 . 3

Вариант № 16. f  x   e x 1  2 x  x 2  , x   0,1 .

Вариант № 17. f  x   2 x3  0,5cos x 2 , x  1, 2 . Литература 1. Крылов В.И., Бобков В.В., Монастырский П.И. Вычислительные методы. М. : Наука, 1976. Т. 1. 304 с. 2. Математическая энциклопедия. М. : Советская энциклопедия, 1979. Т. 2. 1104 с. 3. Самарский А.А., Гулин А.В. Численные методы. М. : Наука, 1989. 432 с. 4. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1966. Т. 1. 632 с. 5. Турчак Л.И. Основы численных методов. М. : Наука, 1987. 20 с. 6. Волков Е.А. Численные методы. М. : Наука, 1987. 248 с. 7. Вержбицкий В.М. Основы численных методов. М. : Высшая школа, 2002. 840 с. 8. Сборник задач по методам вычислений. Минск : БГУ, 1983. 287 с. 9. Берцун В.Н. Сплайны сеточных функций. Томск : ТГУ, 2002. 124 с.

297

Методы приближенных вычислений

8. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ 8.1. Некорректность задачи численного дифференцирования Численное дифференцирование применяется тогда, когда требуется вычислить производные от таблично заданной функции или функции, имеющей сложное аналитическое выражение. В обоих случаях использовать методы дифференциального исчисления не удается и вычисление производных проводится по формулам численного дифференцирования [1, с. 186–190; 2, с. 150–164; 3, с. 78– 92; 4, с. 55–63; 5, с. 510–532; 6, с. 120–126; 7, с. 22–26]. Остановимся на простейших формулах численного дифференцирования, которые могут быть выведены на основе определения производных. Ограничимся случаем равномерной сетки ba   , h  0 , h   xi | xi  a  ih, i  0, n, n  h  

в узлах которой определены значения функции fi  f  xi  , i  0, n . Здесь f i – приближенные значения функции, а f  xi  – точные в узле xi  h , i  0, n . Считаем, что функция f  x  , x   a, b , обладает достаточной для рассмотрения гладкостью. Пусть требуется найти f   xi  , i  0, n . На основе определения производной можно получить одну из формул численного дифференцирования: – левая разностная производная f   xi  

f i  f i 1  f x ,i ; h

– правая разностная производная f  fi f   xi   i 1  f x ,i ; h

298

(8.1)

8. Численное дифференцирование

– центральная разностная производная f   xi  

f i 1  f i 1  f x0 ,i . 2h

Оценим погрешность формул (8.1). Для этого запишем их на точных значениях функции и разложим f  xi 1  по формуле Тейлора в окрестности точки xi . Получим f  xi 1   f  xi  h   f  xi   hf   xi  

h2 f   xi   2!

h3 h 4 IV f   xi   f  xi  ,  3! 4!

(8.2)

где xi  xi  xi 1 или xi 1  xi  xi .

Подставляя разложения (8.2) в соответствующие формулы численного дифференцирования, будем иметь f  xi   f  xi 1  h f  xi 1   f  xi  h f  xi 1   f  xi 1  2h

h f   1  , xi 1  1  xi ; 2 h  f   xi   f   2  , xi   2  xi 1 ; 2 h2 f   3  , xi 1  3  xi 1 .  f   xi   6  f   xi  

(8.3)

Из формул (8.3) следует, что левая и правая разностные производные имеют первый порядок точности относительно h, если f  x   C 2  a, b  . Если f  x   C 3  a, b  , то центральная разностная производная дает второй порядок точности относительно шага h. Аналогичным способом можно найти f   xi  с погрешностью O  h2  :

f xx ,i 

f  2 f i  f i 1 1 . f x .i  f x , i   i 1  h h2

Если f  x   C 4  a, b , то 299

Методы приближенных вычислений

f  xi 1   2 f  xi   f  xi 1  h

2

 f   xi  

h 2 IV f  4  , 12

xi 1   4  xi 1 . Иначе можно говорить, что по формуле численного

дифференцирования находят f   xi  с погрешностью O  h 2  .

Отметим, что задача численного дифференцирования может стать некорректно поставленной задачей, если значения функции f i заданы с погрешностью. Поясним природу некорректности на примере левой разностной производной. Как следует из формул (8.3), погрешность левой разностной производной равна r1  

h f   1  , xi 1  1  xi . 2

Пусть при вычислении значений функции f  xi  , f  xi 1  допущены погрешности i ,  i 1 , где i 1  P , i  P , P – мало и определяется компьютером. Тогда имеем f  xi    i  f  xi 1   i 1 h

f  xi   f  xi 1  h

i  i 1 . h

При этом i  i 1 2 P  h h

и суммарная погрешность r при вычислении f   xi  равна r  r1  r2 , где r2 

 i   i 1 . h

r 

h 2P . M2  2 h

Следовательно,

300

(8.4)

8. Численное дифференцирование

Здесь M 2  max f   x  . x a , b 

В формуле (8.4) первое слагаемое при h  0 стремится к нулю, а второе слагаемое ведет себя так: пока погрешность округления сравнима с погрешностью метода, т.е. 2P h  M2 , h 2

(8.5)

погрешность убывает. Если неравенство (8.5) нарушается, погрешность устремляется к  . Из неравенства (8.5) можно найти критическое значение шага h0 : h0  2 P M 2 .

Если h  h0 , то погрешность r убывает. Если h  h0 , то погрешность r возрастает. Поведение погрешности в рассматриваемом случае схематично изображено на рис. 8.1.

Рис. 8.1

При наличии погрешности в значениях функции формулами численного дифференцирования можно пользоваться при h  h0 , где h0 определяется для каждой формулы отдельно. 301

Методы приближенных вычислений

Отметим, что при вычислении производных более высокого порядка, когда в знаменателе формулы численного дифференцирования стоит hk , k  1 , влияние погрешностей округления i сказывается еще сильнее. Например, при вычислении f   xi  по ранее приведенной формуле погрешность округления является величиной 2 O  P  h 2  . Чтобы погрешность округления была сравнима с O(h ) – погрешностью метода, надо проводить вычисления значений функции с P = O(h4). Если в ПЭВМ P  1012 , то h  103 . При этом погрешность метода и погрешности округления будут порядка 106 . Замечание 1. Вычисление производной f   x  от заданной функции f  x  является некорректной задачей и тогда, когда от ограниченной функции f  x  ее производная может быть сколь угодно большой. В качестве примера можно рассмотреть f  x   sin   x  , x   a, b ,  – любое число. Примеры некорректных задач и методы их решения можно найти в [8].

8.2. Формулы численного дифференцирования на основе теории интерполирования Будем предполагать, что функция f  x  достаточно гладкая и задана таблицей своих значений f  x0  , f  x1  ,, f  xn  в узлах a  x0  x1    xn  b . Заменим f  x  обобщенным интерполяционным многочленом   x  степени n так, чтобы   xi   f  xi  , i  0, n .

Тогда можно положить, что f  x     x   rn  x  ,

302

(8.6)

8. Численное дифференцирование

где rn  x  – погрешность интерполирования. Пользуясь формулой (8.6), можно вычислять производные k-го порядка от f  x  , k  1 : f

k

 x    k   x   rn k   x  .

(8.7)

Отбрасывая в (8.7) остаточный член rn k   x  , получаем f

k

 x    k   x  .

В общем случае оценить погрешность rn k   x  затруднительно. Поэтому рассмотрим оценку погрешности в некоторых частных случаях.

8.2.1. Безразностные формулы численного дифференцирования Примем за   x  многочлен Лагранжа L2  x  , построенный по узлам x0 , x1  x0  h, x2  x0  2h и значениям f  xi  , i  0,1, 2 . Будем иметь L2  x  

 x  x1    x  x2  2h 2 

f  x0  

 x  x0    x  x2 

 x  x0    x  x1  2h 2

h 2

f  x1  

f  x2  .

Отсюда находим выражения для первой производной от L2  x  в узлах x0 , x1 , x2 : L2  x0   L2  x1   L2  x2  

3 f  x0   4 f  x1   f  x2  2h f  x2   f  x0 

; 2h f  x0   4 f  x1   3 f  x2  2h

;

(8.8) .

Формулы (8.8) можно использовать соответственно для вычисления f   x0  , f   x1  , f   x2  . Чтобы установить погрешность, кото303

Методы приближенных вычислений

рая при этом допускается, следует воспользоваться формулой Тейлора. Например, чтобы оценить погрешность первой формулы из (8.8), раскладываем f  x1  и f  x2  в окрестности точки x0 по формуле Тейлора: h2 h3 f   x0   f   x0   O  h 4  , 2! 3! 4h 2 8h 3 f  x2   f  x0  2h   f  x0   2hf   x0   f   x0   f   x0   O  h 4  . 2! 3! f  x1   f  x0  h   f  x0   hf   x0  

Полученные разложения подставляем в 1-ю формулу из (8.8) и находим, что 3 f  x0   4 f  x1   f  x2  2h

 f   x0  

h2 f   1  , x0  1  x2 . 3

Аналогично можно показать, что f  x2   f  x0 

2h f  x0   4 f  x1   3 f  x2  2h

h2 f    2  , x0   2  x2 , 6 h2  f   x2   f   3  , x0  3  x2 . 3

 f   x1  

Заметим, что формулы численного дифференцирования (8.8) играют важную роль при численном решении краевых задач для обыкновенных дифференциальных уравнений. Формулы (8.8) и подобные им другие формулы численного дифференцирования через значения функции можно (в случае равноотстоящих узлов) получить с помощью многочлена Лагранжа для равных промежутков [2, с. 161–164]. Готовые выражения для производных первого и второго порядка при различных степенях n интерполяционного многочлена приведены в [2, с. 162–164]. Безразностные формулы численного дифференцирования на неравномерной сетке тоже могут быть получены описанным выше способом [1, с. 188–190].

304

8. Численное дифференцирование

8.2.2. Формулы численного дифференцирования через конечные разности Для получения формул численного дифференцирования в случае равноотстоящих узлов удобно использовать интерполяционные формулы, записанные через конечные разности. Например, можно рассмотреть формулу Ньютона для интерполирования вперед: Ln  x0  th   f 0  t   f 0  

t   t  1

2! t   t  1    t  n  1 n!

где fi  f  xi  , i  0, n , t 

2 f0   

(8.9)

 f0 , n

x  x0 . h

Дифференцируем (8.9) по переменной x, используя правило дифференцирования сложной функции: dLn  x  dx

dLn dt 1 dLn .  dt dx h dt

Получим f  x 

1 2t  1 2 3t 2  6t  2 3  f0   f0    f0  2! 3! h  4t 3  18t 2  22t  6 4   f 0    ;, 4! 

f   x  

 1 2 6t  6 3 12t 2  36t  22 4  f   f   f 0   ;,  0 0 h2  3! 4!  f   x  

1  3 24t  36 4   f0   f0    ; 3  4! h  

(8.10)

(8.11) (8.12)

и т.д. Формулы численного дифференцирования, отличные от (8.10)– (8.12), можно вывести, если применить другие интерполяционные формулы, например Стирлинга, Бесселя [2, с. 159, 160]. 305

Методы приближенных вычислений

Какую именно формулу численного дифференцирования рекомендовать для практических расчетов, определяется многими факторами [3, с. 59]: 1) с ростом степени n интерполяционного многочлена и гладкости функции f  x  порядок точности формулы увеличивается, а с ростом порядка производной уменьшается; 2) лучше использовать формулы численного дифференцирования, узлы которых расположены симметрично относительно точки, в которой вычисляется производная. Это позволяет повысить порядок точности формулы. Пример 1. Вычислить в точке x  0,1 первую и вторую производные функции, заданной табл. 8.1. 0,1  0 1. 0,1 Воспользуемся формулами (8.10), (8.11), поскольку точка x  0,1 близка к x0  0 .

Решение. В рассматриваемом случае n  5 , h  0,1 , t 

Т а б л и ц а 8.1

xi

fi

 fi

 2 fi

 3 fi

 4 fi

5 fi

0 0,1 0,2 0,3 0,4 0,5

1,00000 0,99500 0,98007 0,95534 0,92106 0,87758

–0,00500 –0,01493 –0,02473 –0,03428 –0,04348

–0,00993 –0,00980 –0,00955 –0,00920

0,00013 0,00025 0,00035

0,00012 0,00010

–0,00002

Применяя формулу (8.10), получим 2 1  1 3 1  6 1  2  f   0,1  10  0, 005   0, 00993   0, 00013  2 6  4 1  18 1  22 1  6   0, 00012  24 5 1  40 1  105 1  100 1  24    0, 00002  120 

306

8. Численное дифференцирование

или f   0,1  10  0,005  0, 00496  0, 00002  0, 00001  0, 000001   0, 09969.

Из формулы (8.11) имеем 6 1  6  f   0,1  100  0, 00993   0,00013  6  12 1  36 1  22 20 1  120 1  210 1  100    0, 00012   0, 00002  24 120 

или 0, 00012 0, 00002   f   0,1  100  0, 00993     0,99416 . 12 12  

Так как рассматривается таблица функции f  x   cos x , то точные значения первой и второй производной соответственно равны f   0,1   sin  0,1  0, 09983 , f   0,1   cos  0,1  0,99500 .

Видно, что погрешность в приближенных значениях первой и второй производных возникает в 4-м знаке после запятой. Замечание 2. В случае неравноотстоящих узлов, кроме многочлена Лагранжа, для получения формул численного дифференцирования можно использовать многочлен Ньютона, записанный через разделенные разности [2, с. 154–158]. Если для таблично заданной функции требуются значения 1-й и 2-й производных в узлах сетки, то для их получения удобно воспользоваться алгоритмом построения кубического сплайна через моменты [1, с. 141–143].

8.3. Метод неопределенных коэффициентов Из вышеизложенной теории следует, что безразностные формулы численного дифференцирования можно выводить на основе 307

Методы приближенных вычислений

многочлена Лагранжа. Однако с ростом степени многочлена возрастает вычислительная работа. Поэтому удобнее использовать метод неопределенных коэффициентов [2, с. 164; 3, с. 86–87; 5, с. 523, 524]. Итак, пусть функция f  x  , x   a, b , задана таблицей своих значений  xi , f  xi  , i  0, n . Здесь a  x0  x1    xn  b .

Требуется вычислить

f

k

 xi  ,

k  1 , i  0, n . Будем находить

k-ю производную через значения f  xi  с пока неопределенными коэффициентами: n

f  k   xi    c j f  x j   rn  f  .

(8.13)

j 0

Потребуем, чтобы формула (8.13) была точна ( rn  f   0 ) для функций f  x   1, x, x 2 , x n . Тогда для нахождения c0 , c1 ,, cn получаем СЛАУ: f  x   1: c0  c1  c2    cn  0;, f  x   x : c0 x0  c1 x1    cn xn  0;,  f  x   x k : c0 x0k  c1 x1k    cn xnk  k !;, f  x   x k 1 : c0 x0k 1  c1 x1k 1    cn xnk 1   k  1 ! xi ;, 

(8.14)

f  x   x n : c0 x0n  c1 x1n    cn xnn  n  n  1    n  k  1 xin  k .

Определитель СЛАУ (8.14) есть определитель Вандермонда и отличен от нуля. Следовательно, СЛАУ (8.14) однозначно разрешима относительно c j , j  0, n . Подставляя найденные из (8.14) коэффициенты c j в (8.13), получаем формулу численного дифференцирования для производной k-го порядка через заданные значения функции. 308

8. Численное дифференцирование

Пример 2. Пусть функция задана таблицей своих значений  xi , f  xi  , i  0,1, 2 , где x1  x0  h , x2  x0  2h . Требуется построить формулу численного дифференцирования для вычисления f   x1  . Решение. Положим f   x1   c0 f  x0   c1 f  x1   c2 f  x2   r2  f 

и составим СЛАУ для определения c0 , c1 , c2 . Будем иметь c  c  c  0,  0 1 2 c0 x0  c1  x0  h   c2  x0  2h   1,  2 2 2 c0 x0  c1  x0  h   c2  x0  2h   2 x1 .

Или после преобразований:  c0  c1  c2  0,   hc1  2 hc2  1,  hc  4 hc  2. 2  1

Отсюда находим c0  

1 1 , c1  0 , c2  . 2h 2h

Таким образом, f   x1  

f  x2   f  x0  2h

.

(8.15)

Чтобы установить порядок точности формулы (8.15), разложим f  x2  , f  x0  по формуле Тейлора в окрестности точки x1 : h2 h3 III f   x1   f  1  , 2! 3! h2 h3 III f  x0   f  x1  h   f  x1   hf   x1   f   x1   f  2  , 2! 3! x1  1  x2 , x0   2  x1 . f  x2   f  x1  h   f  x1   hf   x1  

(8.16)

Подставляя разложения (8.16) в (8.15), находим 309

Методы приближенных вычислений

f  x2   f  x0  2h

 f   x1  

h 2 III f    , x0    x2 . 6

Отсюда следует, что построенная формула численного дифференцирования имеет второй порядок относительно h, если f  x   C 3  a, b  .

8.4. Правила Рунге и Ромберга улучшения аппроксимации производных Существуют простые и эффективные способы уточнения значения производных при фиксированном числе узлов сетки – правила Рунге и Ромберга. Рассмотрим их суть [3, с. 87–89; 5, с. 520–523].

8.4.1. Правило Рунге Для простоты ограничимся случаем равномерной сетки ba   h   xi xi  a  ih, i  0, n, n  , h  0 . h  

Считаем, что в узлах сетки известны значения функции f  xi  , i  0, n .

Символически обозначим через F  x  значение производной какого-либо порядка в точке x от функции f  x  , а через f  x, h  – формулу численного дифференцирования, с помощью которой эта производная вычисляется с точностью O  h p  , p  0 . Тогда можно записать: F  x   f  x, h   h p Q  x   O  h p 1  , p  0 .

Здесь h p Q  x  – главный член погрешности.

310

(8.17)

8. Численное дифференцирование

Пусть эта же производная в той же точке x вычисляется с шагом h1  kh , где k = const, например, k 

1 или k  2 . Следователь2

но, имеем

F  x   f  x, kh    kh  Q  x   O  kh  p

p 1

.

(8.18)

Приравнивая правые части (8.17), (8.18) между собой, находим формулу для главного члена погрешности h pQ  x  

f  x, kh   f  x, h  1 k p

 O  h p 1  .

(8.19)

Подставляя (8.19), например, в (8.17), получаем улучшенную на порядок аппроксимацию производной F  x  по правилу Рунге: F  x   f  x, h  

f  x, kh   f  x, h  1 k p

 O  h p 1  .

(8.20)

8.4.2. Правило Ромберга Если таблица исходной функции такова, что позволяет вычислять значение некоторой производной с шагами h1 , h2 ,, hq , то уточнение ее значения может быть проведено по правилу Ромберга [3, с. 89]: f  x, h1  h1p f  x, h2  h2p  F  x 

h1p 1  h1p  q  2 h2p 1  h2p  q  2    

f  x, hq  hqp

hqp 1  hqp  q  2

1 h1p h1p 1  h1p  q  2 1 h2p h2p 1  h2p  q  2      p p 1 pq2  hq 1 hq hq

 O  h p  q 1  .

(8.21)

311

Методы приближенных вычислений

Здесь x   a, b – точка, в которой вычисляется значение производной какого-либо порядка; p – порядок точности формулы численного дифференцирования; q  2 – число шагов сетки, используемых при вычислении производной F  x  . Из формулы (8.21) следует, что точность вычислений производной можно повысить на порядок q  1 . Проиллюстрируем применение правил Рунге и Ромберга на тестовом примере. Пример 3. Пусть функция f  x   x3 на отрезке 1, 4 задана табл. 8.2. x

f  x

1

2

3

1

8

27

Т а б л и ц а 8.2 4 64

Требуется вычислить f   4  , пользуясь левой разностной производной, и произвести уточнение значения f   4  по правилам Рунге и Ромберга. Решение. 

Пусть

x4

h1  3 ,

и

f  x, h1  

f  4   f 1 3

64  1 2  21 . Положим h2  kh1  2 , тогда k  . Находим 3 3 f  x, h2  

f 4  f 2 2

64  8  28 . 2

1 3

Если h3  mh1  1 , то m  . Имеем: f  x, h3  

f  4   f 3 1

64  27  37 . 1

Уточним полученное приближенное значение f   4  по правилу Рунге (8.20). Будем иметь

312

f ym  4   21 

28  21  42 . Нетрудно 2 1 3

8. Численное дифференцирование

найти, что f m  4   3x 2

x 4

 48 . Очевидно, что уточненное значение

f ym  4  ближе к точному, чем f  x, h1  . Теперь воспользуемся пра-

вилом Ромберга (8.21). Вычислим f y  4  при p  1 , q  3 : m

2

21 3 3

28 2 22 f ym  4  

37 1 12 1 3 32

21 2  12  37  28  9  37 18  28  3  21  4  48 . 2  12  9  18  3  4

1 2 22 1 1 12

Видим, что уточненное значение производной f y  4  по правилу m

Ромберга совпало с точным значением производной f m  4 . Замечание 3. Рассмотренные способы вывода формул численного дифференцирования для случая функции одной переменной могут быть обобщены на случай частных производных [3, с. 89-92].

8.5. Лабораторные задания Задание 1. Оценить порядок точности следующих формул численного дифференцирования: 1) f   x2   2) f   x3   3) f   x1   4) f   x0  

f  x0   8 f  x1   8 f  x3   f  x4 

;

12h 2 f  x0   9 f  x1   18 f  x2   11 f  x3 

;

6h 3 f  x0   10 f  x1   18 f  x2   6 f  x3   f  x4  12 h f  x0   2 f  x1   f  x2  h2

;

;

313

Методы приближенных вычислений

5) f   x4  

11 f  x0   56 f  x1   114 f  x2   104 f  x3   35 f  x4 

6) f   x2  

12h 2

f  x0   2 f  x1   f  x2  h2

;

.

Задание 2. Показать некорректность задачи численного дифференцирования на примере формул из задания 1. Найти критическое значение шага сетки. Полученные результаты сравнить с точным значением соответствующей производной. Вариант № 1. f  x 

1 2 x x  e  x  1 , x   1,1 . 2

Вариант № 2. f  x 

x4  e x  cos x , x   0,1 . 4

Вариант № 3. f  x   0,5sin x  x3  e x , x   0,1 .

Вариант № 4. f  x   x sin x  ln x 2 , x   2,3 .

Вариант № 5. f  x   x ln x  cos x 2 , x   2,3 .

Вариант № 6. f  x   x 4  2 xe x , x   1,1 .

314

8. Численное дифференцирование

Задание 3. Найти экстремум функции из задания 2, используя следующий алгоритм: 1) составить таблицу значений функции и определить расположение экстремума; 2) на выделенном отрезке построить интерполяционный многочлен   x  ; 3) полагая f   x     x  , найти корень x   уравнения   x   0 . Тогда f    – экстремальное значение функции f  x  , x   a, b . Задание 4. Методом неопределенных коэффициентов построить формулы численного дифференцирования для вычисления: 1) f   0  , если известны f  h  , f  0  , f  h  ; 2) f   h  , если заданы f  0  , f  h  , f  2h  , f  3h  ; 3) f   0 , если заданы значения f  0  , f  h  , f  2h  , f  3h  ; 4) f   x0  , если известны значения f  x0  , f  x0  h  , f  x0  2h  ; 5) f   x0  , если заданы значения f  x0  , f  x0  h  , f  x0  2h  , f  x0  3h  ;

6)

f   x0  3h  ,

если

заданы

значения

f  x0  ,

f  x0  h  ,

f  x0  2h  , f  x0  3h  .

По построенным формулам провести серию расчетов, устремляя шаг h к нулю. Сравнить значения разностной производной с точным значением. Варианты функции f  x  даны во 2-м задании. Задание 5. Используя интерполирование алгебраическими многочленами, вычислить: 1) f   0 , если заданы значения f  h   1, 6 , f  0   1,5 , f  h   1, 4 , h  0, 05 ;

2)

f   h 2  , если известны значения

f  h   147 ,

f  0  2 ,

f  h   2 , f  2h   3 , h  0, 0625 ;

315

Методы приближенных вычислений

3)

f   h 2 ,

если даны значения

f  0   0,84 ,

f  h   1,8 ,

f  2h   1 ,

f  h   3 ,

f  2h   2, 4 , h  0,01 ;

4)

f   0 , если известны значения

f  0   8 , f  h   3 , f  2h   1 , h  1 ;

5)

f   0 ,

если

даны

значения

f  0  1 ,

f  h   0,8 ,

f  2h   0,51 , h  0,1 ;

6) f   0  , если заданы значения f  x0  , f  x0  h  , f  x0  h  , f  x   sin 2 x  e x , x0  0 , h  0,1 .

Задание 6. По правилу Рунге (Ромберга) уточнить значения производных на равномерной сетке: f  x2   f  x0 

, f  x   sin 2 x  e x , x   1,1 ; 2h f  x0   4 f  x1   3 f  x2  x2 , f  x   2 sin x  , x   0,1 ; 2) f   x2   3 2h 2 f  x0   3 f  x1   6 f  x2   f  x3  , f  x   0,5e x  cos x , 3) f   x1   6h x  1, 2 ; 1) f   x1  

4)

f   x2  

f  x0   6 f  x1   3 f  x2   2 f  x3  6h

x   0,1 ;

5)

f   x0  

x   0,1 ;

6) f   x3   x   2,3 .

2 f  x0   5 f  x1   4 f  x2   f  x3  h2

 f  x0   4 f  x1   5 f  x2   2 f  x3  h2

,

,

f  x   x3  e x ,

f  x 

x  xe  x , 2

, f  x   ln x  x 2 sin x ,

Полученные результаты сравнить с точным значением соответствующей производной.

316

8. Численное дифференцирование

Литература

1. Самарский А.А., Гулин А.В. Численные методы. М. : Наука, 1989. 432 с. 2. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1966. Т. 1. 632 с. 3. Турчак Л.И. Основы численных методов. М. : Наука, 1987. 320 с. 4. Волков Е.А. Численные методы. М. : Наука, 1987. 248 с. 5. Вержбицкий В.М. Основы численных методов. М. : Высшая школа, 2002. 840 с. 6. Сборник задач по методам вычислений. Минск : БГУ, 1983. 287 с. 7. Бахвалов Н.С., Лапин А.В., Чижонков Е.В. Численные методы в задачах и упражнениях. М. : Высшая школа, 2000. 190 с. 8. Тихонов А.Н., Арсенин В.Я. Методы решения некорректных задач. М. : Наука, 1986. 288 с.

317

Методы приближенных вычислений

9. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ 9.1. Основные подходы к построению формул численного интегрирования Рассмотрим определенный интеграл вида d

   p( x) f ( x) dx ,

(9.1)

c

где [c, d ] – любой конечный или бесконечный отрезок числовой оси, p ( x) – некоторая фиксированная функция, называемая весоd

вой, для которой

 p( x) dx  0 . Предполагаем, что для рассматриваc

емой функции

и весовой функции

f ( x)

p ( x)

существует

d

 p( x) f ( x) dx . c

Из курса математического анализа известно, что если p( x)  1 и f ( x)  C  c, d  , то

d

 f ( x) dx

существует и его значение определяется

c

по формуле d

 f ( x)dx  F (d )  F (c) , 1

1

c

где F1 – первообразная для функции f ( x) . В большинстве практических задач не удается выразить первообразную F1 через элементарные функции. Поэтому возникает необходимость в применении приближенных методов вычисления интеграла (9.1). Условно такие методы можно разбить на две группы: 1) аналитические; 2) численные. 318

9. Численное интегрирование

Идея методов первой группы заключается в том, что приближенно строится первообразная, а затем используется формула Ньютона–Лейбница. В методах второй группы значение интеграла вычисляется с помощью известных значений подынтегральной функции. В настоящей главе будут рассмотрены численные методы интегрирования функций. Наибольшее распространение в приложениях получили квадратурные формулы, позволяющие находить приближенное значение интеграла в форме линейной комбинации n значений подынтегральной функции, а именно d

n

c

k 1

 p  x  f  x  dx   Ak f  xk  . Сумму

n

 A f x  k 1

k

k

(9.2)

будем называть квадратурной суммой, а

числа xk , Ak , k  1, n , – соответственно узлами (абсциссами) и коэффициентами квадратурной суммы. Заметим что формулы вида (9.2) содержат (2n  1) параметров, которыми можно распоряжаться при построении формул: параметр n , n узлов xk , n коэффициентов Ak . Все эти параметры следует выбирать так, чтобы остаточный член квадратурной формулы (9.2) d

n

c

k 1

Rn ( f )   p( x) f ( x) dx   Ak f ( xk )

(9.3)

был по абсолютной величине меньше некоторого заданного  , 0    1 , при минимальном числе узлов xk , k  1, n . Существуют различные подходы к построению квадратурных формул вида (9.2). Рассмотрим некоторые из них [1, с. 166–173].

319

Методы приближенных вычислений

9.1.1. Первый подход. Интерполяционные квадратурные формулы Наиболее распространенный на практике приём вычисления интеграла (9.1) состоит в том, что подынтегральную функцию f ( x) на отрезке [c, d ] заменяют интерполирующей или аппроксимирующей функцией ( x) простого вида, например полиномом, и полагают d

d

c

c

   p( x) f ( x) dx   p( x) ( x) dx .

Выберем в качестве ( x) многочлен Лагранжа, построенный по узлам x1 , x2 ,…, xn и значениям функции f ( x1 ), f ( x2 ), …, f ( xn ) в этих точках, т.е. f  xk    x  , k 1  x  xk    xk  n

( x )  

где ( x)  ( x  x1 )  ( x  x2 )…( x  xn ) ,

( xk )  ( xk  x1 )  ( xk  x2 )…( xk  xk 1 )  ( xk  xk 1 )…( xk  xn ) .

Здесь xi  x j , если i  j и xi  [c, d ] , i  1, n . Затем положим f ( x)  ( x)  r ( x) . Здесь r  x  

f

n

 

n!

  x  ,     x    c, d  , есть остаток от замены

f  x  интерполяционным многочленом   x  .

Тогда получим d

d

d

c

c

c

 p  x  f  x  dx   p  x    x  dx   p  x  r  x  dx или 320

(9.4)

9. Численное интегрирование

f ( xk ) ( x)

d

d

n

c

c

k 1

d

 p( x) f ( x) dx   p  x    ( x  x )  ( x ) dx   p  x   k

k

c

f ( n ) () ( x) dx , (9.5) n!

откуда приближенно находим d

n

c

k 1

 p  x  f  x  dx   Ak f  xk  ,

(9.6)

где d

Ak   c

p( x) ( x)dx . ( x  xk )  ( xk )

(9.7)

Квадратурные формулы вида (9.6), коэффициенты которых вычисляются по формуле (9.7), будем называть интерполяционными. Интерполяционные квадратурные формулы являются точными, если подынтегральная функция f ( x) есть многочлен степени не выше n  1 , т.е. в формуле (9.5) остаточный член d

Rn ( f )   p( x) c

f ( n ) ( ) ( x) dx n!

(9.8)

обращается в нуль. Здесь     x    c, d  . Нахождение точных оценок остаточных членов по формуле (9.8) затрудняет то обстоятельство, что характер зависимости  от x не известен. Можно рекомендовать другую формулу для остаточного члена, если учесть, что существует связь между производными и разделенными разностями [1, с. 74]: f

n



n!

 f  x; x1 ; x2 ;; xn  .

Тогда d

Rn ( f )   p( x) ( x) f ( x; x1 ; x2 ;…; xn ) dx .

(9.9)

c

Укажем, что с помощью первого подхода получены интерполяционные формулы Ньютона–Котеса и их частный случай – обоб321

Методы приближенных вычислений

щенные формулы прямоугольников, трапеций, Симпсона [1, с. 182–189].

9.1.2. Второй подход. Квадратурные формулы наилучшей степени точности В предыдущем подходе рассматривались заданные узлы x1 , x2 ,…, xn , а неизвестные коэффициенты A1 , A2 ,…, An определялись

по формулам (9.7). Если считать неизвестными не только коэффициенты Ak , но и узлы xk , k  1, n , то можно требовать при этом, чтобы формула (9.6) была точна для многочленов максимально высокой степени. Квадратурные формулы, полученные таким образом, будем называть наилучшей степени точности. Степень многочлена можно легко установить. Пусть подынтегральная функция есть многочлен степени m с произвольными коэффициентами a0 , a1 ,…, am , т.е. f  x   a0  a1 x  a2 x 2    am x m .

(9.10)

Если потребовать, чтобы Rn  f  равнялся нулю для функции f  x  вида (9.10), то из формулы (9.3) следует d

n

c

k 1

 p  x  f  x  dx   A f  x  . k

k

С учетом вида f  x  имеем d

d

d

c

c

a0  p  x  dx  a1  p  x  xdx    am  p  x  x m dx  A1  a0  a1 x1    c

 a x   A2  a0  a1 x2    a1 x2m     An  a0  a1 xn    a1 xnm  . m 1 1

В силу произвольности ai , i  0, m , из последнего соотношения получаем систему нелинейных уравнений для определения x1 , x2 ,…, xn и A1 , A2 ,…, An следующего вида: 322

9. Численное интегрирование

 A1  A2    An   0 ,  A x  A x   A x   , 2 2 n n 1  1 1     m  A1 x1  A2 x2m    An xnm   n ,

(9.11)

где d

 i   p  x  x i dx , i  0, m . c

В системе (9.11) имеем m  1 уравнений и 2n неизвестных. Для ее однозначной разрешимости число уравнений и число неизвестных должны совпадать, т.е. m  2n  1 . Другими словами, квадратурная формула (9.6) будет точна для многочленов степени не больше 2n  1 , если ее коэффициенты Ai и узлы xi , i  1, n , являются решениями системы (9.11). Можно показать, что все решения системы (9.11) действительны и все xi  [c, d ], i  1, n [2, с. 597–604]. К формулам наилучшей степени точности относятся квадратурные формулы Гаусса [1, с. 189–199; 3, с. 95–108].

9.1.3. Третий подход. Квадратурные формулы с наилучшей оценкой на классе функций Рассмотрим класс F2 функций f  x  , определенных на  c, d  . В качестве F2 можно взять, например, C r , если f ( x) имеет непре-

рывную производную порядка r на  c, d  . Для каждой функции f  x   F2 погрешность квадратурной формулы имеет вид d

n

c

k 1

Rn  f    p  x  f  x  dx   Ak f  xk  .

Пусть 323

Методы приближенных вычислений

  sup Rn  f  . f F2

Поставим задачу: определить на [c, d ] узлы xk и коэффициенты Ak так, чтобы значение  было наименьшим. Такую квадратурную формулу будем называть формулой с наилучшей оценкой на классе функций. Примеры решения поставленной задачи можно найти в [1, с. 229–236] или [3, с. 133–160]. Указанные три подхода к построению квадратурных формул не являются единственными. Можно получать квадратурные формулы, выбирая узлы и коэффициенты из других соображений. Мы на этом останавливаться не будем, а перейдем к более детальному изучению квадратурных формул, полученных с помощью двух первых подходов.

9.2. Формулы Ньютона–Котеса Формулы Ньютона–Котеса принадлежат к числу интерполяционных квадратурных формул и основаны на замене подынтегральных функций интерполяционным многочленом Лагранжа. Узлы интерполирования выбираются равноотстоящими: xk  a  kh , k  1, n , h  0 – шаг.

(9.12)

В дальнейшем для простоты изложения материала будем полагать p  x   1 . Формулу Ньютона–Котеса можно получить замкнутого или открытого типа в зависимости от того, попадут или нет в число узлов интерполирования концы промежутка интегрирования c и d . Вводя обозначение c  a  1  m  h , d  a   n  m  h получим формулу открытого типа при m  1 ( c  a, d  a   n  1 h ) и замкнутого типа при m  0 ( c  a  h, d  a  nh ). В случае m  1 промежуток интегрирования разбивается на (n  1) равных частей, а для m  0 – на (n  1) равных частей. 324

9. Численное интегрирование d

В

заменим f  x  интерполяционным многочленом

 f  x  dx c

Лагранжа порядка (n  1) , построенным по значениям f  x  , заданным в узлах (9.12): n

f ( x j )( x )

j 1

( x  x j )( x j )

f ( x)  

 rn 1 ( x ) ,

(9.13)

n

где   x     x  x j  , rn 1  x   f  x; x1 ;; xn    x  – остаточный член j 1

формулы Лагранжа. Введем новую переменную по формуле x  a  hy .

(9.14)

Очевидно, если x   c, d  , то y  1  m, n  m . Используя формулу интерполяционного многочлена Лагранжа, построенного для случая равноотстоящих узлов (9.12) [1, с. 55], и переходя к новой переменной y по формуле (9.14), будем иметь:

 1  y  1 y  2   y  n  F  j   y  j  j  1! n  j ! j 1   y  1 y  2   y  n  F  y;1; 2;; n  . n j

n

f  y  

(9.15)

Здесь F ( j )  f (a  jh) . d

Подставим (9.15) в

 f  x  dx , получим c

d

   f  x  dx  h c

 1  y  1 y  2  y  n  F  j dy   y  j  j  1! n  j ! j 1

n m n



1 m

n j

nm

h

  y  1 y  2 y  n  F  y;1; 2;; n  dy .

1 m

Вынесем из-под знака интеграла члены, не зависящие от y , перепишем полученное выражение в виде 325

Методы приближенных вычислений

 1 F  j  n  m  y  1 y  2   y  n    h dy    y  j j 1  j  1 ! n  j  !1 m n j

n

nm

h

  y  1 y  2  y  n  F  y;1; 2;; n  dy .

1 m

Учитывая, что h   d  c  /  n  2m  1 , и вводя обозначение Aj n, m 

nm  1  y  1 y  2   y  n  dy,   n  2m  1 j  1! n  j ! 1 m  y  j n j

(9.16)

получим n

   d  c   Aj n, m f  a  jh   j 1

nm

h

(9.17)

  y  1 y  2   y  n  F  y;1; 2; ; n  dy.

1 m

Отметим, что коэффициенты квадратурной формулы Ньютона– n Котеса Aj ,m обладают свойством симметрии: Aj n, m  An nj 1, m .

(9.18)

Доказательство этого свойства можно найти в [1, с. 175]. Остаточный член формулы Ньютона-Котеса приведён в общем виде: n m

Rn 1 ( f , x)  h

( y  1)( y  2)…( y  n) F ( y;1; 2;…; n)dy.

1 m

Значения коэффициентов A(j ,nm) для формулы Ньютона–Котеса, вычисленные по формуле (9.16) для n  5, 6, 7, 8 , приведены в табл. 9.1 ( m  0 , формула замкнутого типа) и в табл. 9.2 ( m  1 , формула открытого типа). Значения коэффициентов A(j ,nm) для n  2, 3, 4 даны в [1, с. 176]. Каждый коэффициент A(j ,nm) представляет собой рациональную дробь, знаменатель соответствующей дроби приводится в столбце «знаменатель» табл. 9.1 и 9.2. 326

9. Численное интегрирование Т а б л и ц а 9.1

j

1

2

3

7 19 41 751

32 75 216 3 577

12 50 27 1 323

n 5 6 7 8

4

5

6

Знаменатель 90 288 840 17 280

272 2 989

Т а б л и ц а 9.2

j n 5 6 7 8

1

2

3

11 611 460 1 787

–14 –453 –954 –2 803

26 562 2 196 4 967

4

5

–2 459 –1 711

Знаменатель 20 1 440 945 4 480

Покажем, как пользоваться этими таблицами. Пусть m  1 и надо определить коэффициенты A(5) j ,1 , j  1, 2,3, 4,5 формулы (9.17). Имеем A1,1(5) 

11 (11 находим в клетке табл. 9.2, соответствую20

щей j  1 , n  5 , а 20 – в столбце «знаменатель» в строке n  5 ); 14 (определяем по аналогии с предыдущими рассуждения20 26 (5) 14 11 (5) (5) (5) (5) (в силу (9.18)), A5,1 ми); A3,1   , A4,1  A2,1  A1,1  . 20 20 20 (5) A2,1 

5

Тогда   ( d  c) A(5) j ,1 f (c  j h) , так как a  c . j 1

Если m  0 , то аналогичным способом можно для n  5 определить: (5) A1,0 

7 32 12 32 7 (5) (5) (5) (5) (5) (5) , A2,0 , A4,0 , A5,0 ,  , A3,0   A2,0   A1,0  90 90 90 90 90 5

  (d  c) A(5) j ,0 f (c  ( j  1) h) . j 1

327

Методы приближенных вычислений

Из формулы (9.17) как частные случаи вытекают формулы прямоугольников открытого типа ( m  1 , n  1); формулы замкнутого типа трапеций (m  0 , n  2) и Симпсона (m  0 , n  3). В случае формулы прямоугольников f  x  на промежутке  c, d  заменяется на многочлен нулевой степени, построенный по значению f  x  в средней точке x 

cd cd  , т.е. P0  x   f   на  c, d  . Тогда 2  2 

d

cd    R0  f , x  . 2 

 f  x  dx   d  c  f  c

Получим оценку для R0  f , x  . Предположим, что f  x   C 2  c, d  и разложим функцию f  x  в ряд Тейлора в окрестности точки 1

cd : 2

2

cd  cd    x  x    c d c d 2  2           f  x  f  f f     x   ,    1! 2!  2   2    x    c, d  .

Интегрируя обе части данного соотношения, будем иметь d

 c

cd f  x  dx   d  c  f   2

2

d

cd   1     x   f     x   dx . 2   2 c

Отсюда следует, что R0  f , x  

2

d

1  cd  x  f     x   dx .  2 c 2 

Подынтегральная функция из последнего равенства не меняет на промежутке интегрирования знак, тогда можно применить теорему о среднем. В соответствии с этой теоремой существует точка   c, d  такая, что

R0  f , x  

328

1 f    2

cd   x  2   3

3 d

c

d  c 24

3

f    .

9. Численное интегрирование

Для повышения точности формулы прямоугольников промежуток  c, d  разбивают на k равных частей длины h 

d c и к кажk

дому частичному отрезку применяют формулу прямоугольников d

 f  x  dx  c

d  c 

h   f c  2     

k

3   f  c  h    2  

2k  1   h3   f c  h    f   1   f    2     f    k   , 2    24

(9.19)

c   i  1 h  i  c  ih, i  1, k .

Так как f   1   f   2     f   k   kf     , то

d  c

R0  f , x  

3

f     ,   c, d  .

24k 2

(9.19) – обобщенная формула прямоугольников с остаточным членом R0  f , x  . Формула трапеций основана на замене подынтегральной функции f  x  на  c, d  интерполяционным многочленом Лагранжа 1-й степени, построенным по значениям f  x  в точках x0  c , x1  d : 1

P1  x    j 0

 x

 x  x    x  j

f  xj  ,

j

1

где   x    x  x0  x  x1  ,   x j     x j  xi  . i 0 i j

Имеем d

 c

1

d

f  x  dx    j 0 c

  x  f  x j  dx

 x  x    x  j

 R1  f , x  .

j

Отсюда следует, что d

 c

f  x  dx 

d

d c 1  f  c   f  d      x  c  x  d  f     x   dx , 2  2! c

329

Методы приближенных вычислений

R1  f , x  

d

1  x  c  x  d  f     x   dx ,   x    c, d  . 2! c

По теореме о среднем найдется точка   c, d  такая, что R1  f , x  

f    d 2!

  x  c  x  d  dx  

d  c

3

12

c

f    , c    d .

Погрешность формулы трапеций может быть уменьшена, если разбить промежуток  c, d  на k равных частей длины h 

d c . Отk

сюда следует, что d

h  f  x  dx  2  f  x   2  f  x   f  x     f  x    f  x   0

1

k 1

2

k

c

h3  f   1   f   2     f   k   , 12 

причем x0  c, xk  d , c   i 1 h  i  c  ih, i  1, k. d

 f  x  dx  c

d c  f  x0   2  f  x1   f  x2     f  xk 1    2k   f  xk   

d  c 12k 2

3

(9.20)

 f     ,    c, d  ;

(9.20) – обобщенная формула трапеций. Случай n  3 , m  0 соответствует формуле Симпсона, при построении которой используется многочлен Лагранжа 2-й степени. Последний строится по таблице значений функции

{x j , f ( x j )}, n  3 , j  0, 2 ( x0  c , x1 

cd , x2  d ) 2

и имеет вид 2

P2  x    j 0

на промежутке  c, d  . 330

 x

 x  x    x  j

j

f  xj 

9. Численное интегрирование

Рассуждая аналогично тому, как это делалось для обобщенных формул трапеций и прямоугольников, получим обобщенную формулу Симпсона d

 f  x  dx  c

d c f  c   4  f  c  h   f  c  3h     6k

 f  c   2k  1 h    2  f  c  2h   f  c  4h    

(9.21)

 f  c   2k  2  h    f  c  2kh   R2  f , x  ,

где R2  f , x   

d  c 2

5

5

f

IV 

 

90k 4

, h

d c , cd . 2k

Подробный вывод обобщенной формулы Симпсона представлен в [1, с. 182–189].

9.3. Квадратурная формула Гаусса d

Для вычисления интеграла

 f  x  dx

часто применяются квадра-

c

турные формулы типа Гаусса или формулы наивысшей алгебраической степени точности. В этих формулах узлы xk и коэффициенты Ak , k  1, n , подбираются таким образом, чтобы приближенное ра-

венство (9.6) было точным для всех многочленов Pm ( x ) наивысшей возможной степени m (т.е. Rn ( Pm ( x))  0 в формуле (9.3)). Квадратурная формула Гаусса представляет собой частный случай формул типа Гаусса, когда весовая функция p( x)  1 и промежуток интегрирования [c, d ] конечен. Предположения о конечности [c , d ] обеспечивает существование интегралов d

 p  x x

k

dx , k  0,1, 2,…, называемых моментами функции p( x)  1 .

c

Считаем, что промежутком интегрирования является [1,1] . 331

Методы приближенных вычислений

Пусть H – гильбертово пространство со скалярным произведением  f , g  и, соответственно, нормой f   f , f  . В случае, когда H  L2  c, d  , скалярное произведение определяется по формуле d

 f , g    f  x  g  x  dx . c

Для вывода формулы Гаусса будем использовать полиномы Лежандра: Pn ( x) 

n 2 n 1 d  ( x  1)  . 2n n ! dx n

(9.22)

Отметим некоторые важные свойства Pn ( x ) . 1. Многочлен Лежандра (9.22) ортогонален на промежутке [1,1] ко всякому многочлену степени меньше, чем n , т.е. 1

 P ( x)Q( x)dx  0 , n

1

где Pn ( x ) – многочлен Лежандра (9.22), Q( x) – многочлен, степень которого меньше либо равна  n  1 .

2. Полиномы Лежандра на промежутке  1,1 имеют n различных вещественных корней. Доказательство этих свойств приведено в [1, с. 329–330, 332–334]. Перейдем к выводу квадратурной формулы Гаусса. Ставится задача: так подобрать узлы x1 , x2 , , xn и коэффициенты A1 , A2 , , An , чтобы квадратурная формула 1

n

1

i 1

 f  x  dx   A f  x  i

i

(9.23)

была точной для всех полиномов наивысшей возможной степени точности m . В рассматриваемом случае m  2n  1 (см. второй подход). Для обеспечения равенства (9.23) необходимо и достаточно, чтобы оно было точным для 332

9. Численное интегрирование

f  x   1, x, x 2 ,, x 2 n 1 .

В самом деле, полагая 1

n

 x dx   A x k

i 1

1

k i i

, k  0,1,, 2n  1,

и f ( x) 

2 n 1

c k 0

k

xk ,

получим 1

f ( x)dx 

2 n 1

n

 C  x dx   C  A x k 0

1

1

2 n 1

k

k

k 0

1

n

2 n 1

n

i 1

k 0

i 1

k

i 1

k i i

  Ai  Ck xik   Ai f ( xi ).

(9.24)

Очевидно, что 1

k  x dx 

1

 2 , если k  четное, 1  (1) k 1    k 1 k 1 0, если k  нечетное.

(9.25)

Из (9.24) и (9.25) следует, что для решения поставленной выше задачи достаточно определить xi , Ai из системы 2n уравнений  n  Ai  2,  i 1  n  Ai xi  0,  i 1 ……………………..  n 2  Ai xi2 n  2  , 2 n 1  i 1  n  Ai xi2 n 1  0.  i 1

(9.26)

333

Методы приближенных вычислений

Решение нелинейной системы (9.26) связано с большими математическими трудностями. Поэтому используется следующий математический прием. Рассмотрим полиномы вида f  x   x k Pn  x  , k  0,1,, n  1 ,

где Pn  x  – полином Лежандра. Степени этих полиномов не превышают 2n  1 , поэтому на основании системы (9.26) для них должна выполняться формула (9.23), т.е. 1

n

 x P ( x)dx   A x P ( x ), k  0,1,…, n  1. k

n

i 1

1

k i i

n

i

В силу первого свойства полиномов Лежандра имеем 1

x

k

Pn ( x) dx  0 при k  n .

1

Поэтому n

Ax i 1

k i i

Pn ( xi )  0, k  0,1,…, n  1.

(9.27)

Равенства (9.27) будут выполняться при любых значениях Ai , если Pn ( xi )  0, i  1, 2,…, n .

Из последнего следует, что для достижения наивысшей точности квадратурной формулы (9.23) в качестве ее узлов достаточно взять нули полинома Лежандра степени n . Подставляя найденные значения xi , i  1, n , в первые n уравнений системы (9.26), получаем линейную систему n уравнений относительно коэффициентов A1 , A2 ,…, An . Определитель этой системы – определитель Вандермонда: D

1 x1

1 x2

. . . . . .

1 xn

.

.

. . .

.

x1n 1

334

x2n 1 . . . xnn 1

.

9. Численное интегрирование

D   ( xi  xl )  0 , поэтому коэффициты Ai определяются одноi l

значно. Покажем, как строится формула Гаусса для случая n  3. Имеем полином Лежандра 3-й степени 1 P3 ( x)  (5 x3  3x). 2

Корни этого полинома x1  

3 3 , x2  0 , x3  . 5 5

Система (9.26) для определения коэффициентов A1 , A2 , A3 имеет вид A1  A2  A3  2, A1 x1  A2 x2  A3 x3  0, 2 A1 x12  A2 x22  A3 x32  . 3

Подставим в полученную систему значения xi , i  1,3, и получим 3 3 2 A1  A3  (третье уравнение); второе уравнение примет вид 5 5 3

3 3 A1  A3  0 . 5 5 5 9

Отсюда A1  A3 и далее A1  A3  , A2 

8 . 9

Формула Гаусса запишется в виде 1

1

3   8 f  0  5 f 5 

 f ( x)dx  9 5 f  

1

 3     .  5  

d

Заметим, что при вычислении

 f  x  dx

можно сделать замену пе-

c

d c d c t , чтобы свести промежуток интегриро 2 2 вания [c, d ] к промежутку [1,1] .

ременной x 

335

Методы приближенных вычислений

Имеем d

1

f ( x)dx 

c

d c cd d c   f t  dt . 2 1  2 2 

Применим к этому интегралу формулу (9.23): d

f  x  dx 

c

где xi 

d c n  Ai f  xi  , 2 i 1

d c d c  ti , i  1, 2,…, n , ti – нули полинома Лежандра Pn  t  . 2 2

Остаточный член формулы Гаусса (9.23) с n узлами имеет вид Rn ( f ) 

(d  c)2 n 1 (n !)4 f (2 n ) ()

(2n)!

3

(2n  1)

, c d

[1, с. 193–195]. Т а б л и ц а 9.3

n 5

6

7

8

336

ti

Ai

t1  t5  0,90617985 t 2  t 4  0,53846931 t3  0

A1  A5  0,23692688 A2  A4  0,47862868 A3  0,56888889

t1  t 6  0,93246951

A1  A6  0,17132450

t 2  t 5  0,66120939 t 3  t 4  0,23861919

A2  A5  0,36076158 A3  A4  0,46791394

t1  t 7  0,94910791 t 2  t 6  0,74153119 t 3  t 5  0,40584515

A1  A7  0,12948496 A2  A6  0,27970540 A3  A5  0,38183006

t4  0

A4  0,41795918

t1  t 8  0,96028986 t 2  t 7  0,79666648

A1  A8  0,10122854 A2  A7  0,22238104

t 3  t 6  0,52553242

A3  A6  0,31370664

t 4  t 5  0,18343464

A4  A5  0,36268378

9. Численное интегрирование

Приведем без вывода в табл. 9.3 значения узлов ti и коэффициентов Ai , i  1, n , квадратурной формулы Гаусса для n  5 ,6 ,7 ,8 . Значения этих величин для n  1,4 можно найти в [2, с. 602]. Отметим, что квадратурные формулы Гаусса дают высокую точность при малом числе узлов интегрирования. Для иллюстрации этого факта рассмотрим следующий пример. Пример 1. Вычислить интеграл  2



 sin xdx , 0

используя квадратурную формулу Гаусса. Решение. Делаем замену переменных x

 1  t  . 4

Тогда 2



1



 sin xdx  4  sin  4 1  t  dt . 0

1

Для вычисления значения интеграла будем использовать квадратурную формулу Гаусса при n  2 . Имеем t1  t2  0,57735, A1  A2  1 . Следовательно, 1



2         sin 1 t dt Ai sin  1  ti    R2  f  ,       4 1  4  4  i 1 4

где R2 ( f ) 

 1 (4)   f () , f ( x )  sin  (1  x )  ,   ( 1,1) . 135 4 4 

Нетрудно подсчитать, что 1



   sin 1  t   dt  0,998, а R2 ( f )  0,0022 . 4 1  4 

337

Методы приближенных вычислений

Для сравнения укажем, что точное значение интеграла равно   1, 0 .

9.4. Вычисление несобственных интегралов Известно, что интеграл d

   f ( x) dx c

называется несобственным, если подынтегральная функция f  x  на [c, d ] имеет разрыв или промежуток интегрирования бесконечен. Для вычисления таких интегралов можно воспользоваться методами интегрального исчисления: сделать замену переменных; применить асимптотическое разложение подынтегральной функции. Однако удобнее всего использовать следующие методы: усечения, выделения особенностей [2, с. 618–624; 4, с. 161–172].

9.4.1. Метод усечения Рассмотрим интеграл 

   f ( x) dx

(9.28)

c

с бесконечным промежутком интегрирования и непрерывной при c  x   функцией f ( x) . Предполагаем, что интеграл (9.28) сходится, т.е. что существует конечный предел lim

d 

d

c

c

 f  x  dx   f  x  dx .

В сходимости нужно убедиться прежде, чем приступить к вычислению несобственного интеграла. Далее, чтобы приближенно вычислить сходящийся несобственный интеграл с точностью  , полагаем 338

9. Численное интегрирование 

d

c

c

d

 f ( x) dx   f ( x) dx   f ( x) dx .

(9.29)

При этом число d выбираем настолько большим, чтобы выполнялось неравенство 

 f ( x) dx  2 . d

Собственный интеграл d

 f ( x) dx c

вычисляем по одной из квадратурных формул, изложенных выше, с точностью

 . В итоге интеграл (9.28) будет вычислен с точно2

стью  , т.е. поставленная задача будет решена.

9.4.2. Метод Л.В. Канторовича выделения особенностей Пусть теперь промежуток интегрирования  c, d  конечен, но подынтегральная функция f  x  имеет на  c, d  особенность. Тогда для приближенного вычисления интеграла от разрывной функции можно применить метод Л.В. Канторовича выделения особенностей [4, с. 162–168]. Суть этого метода заключается в следующем: из подынтегральной функции f  x  выделяют в виде слагаемого некоторую функцию g  x  , которая имеет те же особенности, что и f  x  , легко интегрируется на  c, d  и при этом функция   x   f  x   g  x  является достаточно гладкой на  c, d  . Например,   x   C m  c, d  , где m  1 .

Тогда имеем 339

Методы приближенных вычислений d

d

d

c

c

c

 f ( x) dx   g ( x) dx   ( x) dx . Здесь первый интеграл легко вычисляется, а второй можно найти с помощью указанных выше формул. Можно привести следующее правило построения g  x  [5, с. 163–164]. Пусть функция f  x  представима в виде f  x    x  x0 



  x ,

где 0    1 , а   x  , c  x  d , разлагается в степенной ряд 

  x    C j  x  x0  . j

j 0

Тогда можно положить a n g  x    x  x0  C0  C1  x  x0     Cn  x  x0   ,  

( x)  ( x  x0 )  Cn 1 ( x  x0 ) n 1  … .

Очевидно, что d

 g ( x) dx c

вычисляется непосредственно, а для вычисления d

 ( x) dx c

можно применить, например, формулу Симпсона или Гаусса, так как функция   x  имеет на  c, d  n непрерывных производных. Указанный способ выделения особенностей носит название аддитивного [1, с. 243–244]. Существует еще мультипликативный способ выделения особенностей [1, с. 242–243]. Его удобно применять при вычислении несобственных интегралов тогда, когда предполагается использо340

9. Численное интегрирование

вать квадратурные формулы с весом, например квадратурные формулы Гаусса. Тогда подынтегральную функцию f  x  представляют в виде f  x  p  x  x .

При этом   x  должна иметь достаточное число производных, а p  x  принимают за весовую функцию.

Рассмотрим применение мультипликативного способа выделения особенностей на практике. Пример 2. Пусть требуется вычислить приближенно 1

 0

dx (1  x ) x

.

Решение. Подынтегральная функция имеет особенность в точке x  0 . Положим p  x 

1 x

,  x 

1 . 1 x

Тогда 1

 0

( x) x

dx

и для вычисления интеграла можно применить квадратурную формулу Гаусса, т.е. 1

n

0

k 1

   p  x    x  dx   Ak n    xk  .

Пусть n  4 . Согласно [4, с. 165] имеем следующие значения узлов xk и коэффициентов Ak , k  1, 2,3, 4 : x1  0,033648,

A1(4)  0,725368,

x2  0,276184,

A2(4)  0,627413,

x3  0,634677,

A3(4)  0,444762,

x4  0,922157,

A4(4)  0,202457.

341

Методы приближенных вычислений

Следовательно, 1

 0

dx x (1  x )

0, 7254 0, 6274 0, 4448 0, 2025     1,5709 . 1, 0336 1, 2762 1, 6347 1,9222

Иногда при вычислении сходящихся несобственных интегралов, когда f  x  имеет на  c, d  особую точку, полезным оказывается способ, основанный на самом определении такого интеграла. Описание указанного приёма имеется в [5, с. 164–165]. Заметим, что метод Канторовича применяется к вычислению несобственных интегралов и в тех случаях, когда подынтегральная функция f  x  имеет несколько особых точек на  c, d  . Тогда достаточно промежуток  c, d  разбить на части, содержащие лишь одну особую точку подынтегральной функции, и воспользоваться описанными выше приемами.

9.5. Вычисление кратных интегралов Для приближенного вычисления кратных интегралов применяются кубатурные формулы, которые могут быть построены с помощью различных подходов. Наиболее распространены следующие методы: 1) повторное применение квадратурных формул [1, с. 247–251; 2, с. 627–633]; 2) замены подынтегральной функции интерполяционным многочленом [1, с. 251–254]; 3) статистических испытаний (метод Монте-Карло) [1, с. 261– 267]. Для всех этих методов характерно то, что приближенное значение интеграла находится с помощью линейной комбинации значений подынтегральной функции в конечном числе точек из области интегрирования. При этом предполагается, что рассматриваются интегралы от ограниченных функций по конечным областям. 342

9. Численное интегрирование

Ограничимся изучением одного из простейших путей получения кубатурных формул – метода повторного применения квадратурных формул, полученных выше для приближенного вычисления однократных интегралов. Идею метода рассмотрим на примере вычисления двойного интеграла    f ( x, y)dxdy , D

где область D   x, y  c1  x  d1 , c2  y  d 2  представляет собой прямоугольник. В этом случае интеграл принимает вид d1

d2

c1

c2

   dx  f ( x, y )dy

или d1

   E ( x)dx , c1

где E  x  

d2

 f  x, y  dy .

c2

Для вычисления интеграла d1

   E ( x)dx c1

можно применить любую формулу, например формулу Симпсона. Положим hx 

d1  c1 , xi  c1  ihx , i  0, 2m, 2m

и d1

 E  x  dx 

c1

hx  E0  E2 m  2  E2  E4  …  E2 m  2   3  4  E1  E3  …  E2 m 1   ,

343

Методы приближенных вычислений

где Ei  E  xi  

d2

 f  x , y  dy , i  0, 2m . i

c2

В конечном итоге поставленная задача сводится к вычислению  2m  1 -го интеграла: Ei 

d2

 f  x , y  dy  i

c2

hy

 f  xi , y0   f  xi , y2 n   2  f  xi , y2   f  xi , y4   3 

   f  xi , y2 n  2    4  f  xi , y1   f  xi , y3     f  xi , y2 n 1    ,

где hy 

d 2  c2 , yi  c2  ihy , i  0, 2n . 2n

Описанный способ приближенного вычисления двукратных интегралов прост, легко реализуется на ЭВМ. Однако его удобно применять лишь для прямоугольных областей. Кроме того, повышение кратности интеграла и увеличение точности за счет уменьшения шага интегрирования h приводит к заметному увеличению объема вычислений.

9.6. Правило Рунге оценки главного члена погрешности Допустим, что значение интеграла d

   f  x  dx c

вычисляется с шагом h и h 2 по какой-либо формуле численного интегрирования с порядком p  0 . Тогда можно написать [6, с. 483–487; 7, с. 139–143]:

344

9. Численное интегрирование

  h  Q1 h p ,

(9.30)

p

h   h 2  Q2   , 2

где h , h 2 – значения интеграла, полученные соответственно с шагами h и h 2 , Q1 , Q2 – const. Если шаг интегрирования h мал, то можно принять Q1  Q2  Q . Следовательно, из (9.30) находим p

h h  Qh p  h 2  Q   . 2

Тогда Q

h  h 2 p

h p   h 2

или Q



h 2

 h  2 p

h p  2 p  1

.

(9.31)

Подставляя (9.31) в (9.30), получим уточненные значения интеграла по правилу Рунге:   h 2    h 

h 2  h

, 2 p 1  h 2  h  2 p 2 p 1

(9.32) .

На основе формул (9.32) можно иметь представление о точности численного интегрирования с двойным пересчетом (с шагами h и h 2 ):   h

 

  h 2 

h2

 h  2 p

2 p 1 h 2  h 2 p 1

,

(9.33)

.

345

Методы приближенных вычислений

Формулы (9.33) позволяют находить уточненные значения интеграла:  ym  h 



h2

 ym  h 2 

 h  2 p

2 p 1 h 2  h 2 p 1

,

(9.34)

.

Отметим, что для формулы средних прямоугольников и трапеций p  2 , а для формулы Симпсона p  4 (при условии, что подынтегральная функция обладает достаточной для рассмотрения степенью гладкости). Тогда во второй формуле из (9.34) обобщенная поправка Ричардсона для формулы трапеций и прямоугольников будет иметь значение h 2  h 3

,

а для формулы Симпсона – значение

h 2  h 15

. При проведении

численных расчетов можно производить двойной пересчет до тех пор, пока поправка по модулю не станет меньше  , где  – принятая точность вычислений. Пример 3. Вычислить уточненное значение интеграла 1

   x 2 dx 0

по формуле средних прямоугольников с применением правила Рунге. Решение. Очевидно, что точное значение интеграла равно 1 3 . Выберем h  1 и найдем h  hf  h 2  , где f  x   x2 . Получим h  0, 25 . Положим h1  h 2 и вычислим h 2  h1  f  0, 25   f  0, 75    0,5  0, 0625  0,5625   0,3125 .

346

9. Численное интегрирование

Тогда обобщенная поправка Ричардсона

h 2  h 3

 0, 020833 . Сле-

довательно, уточненное значение интеграла можно вычислить по второй формуле из (9.34): y  0,3125  0,02083  0,33333 . m

Видим, что уточненное значение совпадает с точным значением с 5 знаками после запятой.

9.7. Лабораторные задания d

Задание. Вычислить интеграл

 f ( x)dx , используя: c

1) формулу Гаусса при n  5 ; 2) формулу Ньютона–Котеса при n  5 ; 3) обобщенную формулу прямоугольников, трапеций или Симпсона (по выбору), вычисляя интеграл с точностью  . Для оценки точности использовать правило Рунге [4, с. 149–151]. Ниже приводятся варианты заданий.

Решение одного варианта Проиллюстрируем выполнение задания на примере вычисления интеграла e1,1x /(1 x ) dx , 2  x2 0 2

 

которое проводилось с использованием ПЭВМ. Для оценки точности при вычислении интеграла по обобщенной формуле трапеций использовалось правило Рунге, т.е. счёт проводился до тех пор, пока не выполнилось условие 2 m  m 3

 .

347

Методы приближенных вычислений

Здесь m , 2 m – приближенные значения искомого интеграла при m и 2m разбиениях отрезка  c, d  , m ,  – заданы. Ввод m,  , c, d

I0  0

h

d c m

m  2m; I 0  I1 Нет I1  I1  h / 2

I1  f  c   f  d 

Нет

i 1

xi  c  ih

I 1  I 1  2 f  xi 

Да

I 0  I1  3

Да

Вывод I1

Останов

i  m 1

i  i 1

Рис. 9.1

Блок-схемы вычисления интеграла по формуле Гаусса и Ньютона–Котеса просты, и поэтому не приводятся. Представим в виде блок-схемы алгоритм вычисления интеграла по обобщенной формуле трапеций с точностью  (см. рис. 9.1). 348

9. Численное интегрирование

После проведения расчетов по программе на ПЭВМ получены следующие результаты: а) по формуле Гаусса при n  5   1, 06441;

б) по формуле Ньютона-Котеса при n  5   1, 06505;

в) по обобщенной формуле трапеций при   103 ;   1, 06440.

9.8. Варианты заданий Вариант № 1. 2

dx

1,24 x

x (e

1

 2, 4)

.

Вариант № 2. 2

0,4

dx . x (e 0,9 x  3)

Вариант № 3. 2

 1

dx x (e0,95 x  2)

.

349

Методы приближенных вычислений

Вариант № 4. 2

e x  0,38 dx  2  sin(1 / (1,5  x2 )) . 0,4 1

Вариант № 5. 0,6

x 2  sin(0, 48( x  2)) dx 2

e x  0,38

0,4

Вариант № 6.  /2

e0,86 tg x dx  0, 26  cos x .  /5

Вариант № 7. 1,2

 1

x(3  x) dx . x 1

Вариант № 8. 2

 1

dx x (e1,24 x  2, 4)

Вариант № 9. 2

 1

350

dx x (e

0,95 x

 2)

.

.

.

9. Численное интегрирование

Вариант № 10. 3

1  e0,7/ x 1 x  2 dx . Вариант № 11. 0,6

x 2  sin[( x  1)0,65] dx . 2  e x  0,15 0,4

Вариант № 12. 2

0,46

e1,16 x dx  3,5  sin x . 0,42 Вариант № 13. 2

e x 1,2 x dx  1  sin(1 / (2,5  x2 )) . 0,4 1

Вариант № 14.

1  e0,61x dx . x2 1 3

 Вариант № 15. 1

1

sin( x  2)dx 1,5  x 2 (0, 4  cos x)

.

351

Методы приближенных вычислений

Вариант № 16. 2

e  x  0,135 x dx  2  sin(1 / (1  x2 )) . 0,4 1

Вариант № 17. 2

e  x sin 2 (0,65 x ) dx . 0 x2  3 2

Вариант № 18.

1  e0,61x 1 x  2 dx . 3

Вариант № 19. 1,8

 0

2

e  x sin(1,35 x ) dx . x 2  1, 75

Вариант № 20. 1

1

e – x sin( x  2)dx 1,5  x 2 (0, 4  cos x)

Вариант № 21  /2

 0

352

e tg0,84 x dx . 0,35  cos x

.

9. Численное интегрирование

Вариант № 22. 0,5

arctg(0,7 x ) dx . x  1, 48 0,2

Вариант № 23. 1

ln(1  x )dx . x 0,1

Вариант № 24. 2

0,46

e 1,46 x dx  3,5  sin x . 0,42 Вариант № 25. 2

e x  0,635 x dx  2  sin(1  x2 ) . 0,4 1

Вариант № 26

(1  e 1,35/ x ) dx 1 x  1, 2 . 3

Вариант № 27. 1

0,1

dx . x (1  x)

353

Методы приближенных вычислений

Вариант № 28. x (3  x ) dx . (1  x )

1,2

 1

Вариант № 29. 0,35

sin( x  1)dx 2  x 2 (0, 2  cos x)

0,1

Вариант № 30. 2

e  x sin(0, 62 x ) dx . 0 x2  1 2

Вариант № 31. 2

 0

dx x (e

0,35 x

 3)

.

Вариант № 32. 1,2

 1

x(3  x) dx . 1 x

Вариант № 33.

e(1 x )/(1 x ) dx 0 2  x2 . 2

354

.

9. Численное интегрирование

Вариант № 34. 1

2  x 2 dx

1  x 2 (1  cos 2 x)

0

.

Вариант № 35. 2

arctg(0, 44 x)dx . 2 x 0

Литература

1. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1966. Т. 1. 632 с. 2. Демидович Б.П., Марон И.А. Основы вычислительной математики. М. : Наука, 1966. 664 с. 3. Крылов В.И. Приближенное вычисление интегралов. М. : Наука, 1959. 327 с. 4. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. М. : Наука, 1972. 367 с. 5. Сборник задач по методам вычислений / под. ред. П.И. Монастырского. Минск : БГУ, 1983. 287 с. 6. Вержбицкий В.М. Основы численных методов. М. : Высшая школа, 2002. 840 с. 7. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. М. : Наука, 1987. 600 с.

355

Методы приближенных вычислений

10. ЭЛЕМЕНТЫ ТЕОРИИ РАЗНОСТНЫХ СХЕМ 10.1. Основные понятия теории разностных схем Значительная часть задач, с которыми имеет дело вычислительная математика, представляет собой различные задачи для обыкновенных дифференциальных уравнений и уравнений с частными производными. Так, например, обыкновенными дифференциальными уравнениями можно описать задачи химической кинетики, электрических цепей, движение систем взаимодействующих материальных точек и другие задачи физики, химии, техники. К дифференциальным уравнениям в частных производных приводятся задачи математической физики, гидродинамики, акустики и других областей знаний. Все методы решения дифференциальных уравнений можно условно разбить на аналитические и численные. В свою очередь аналитические методы подразделяются на точные и приближенные. Точные методы позволяют выразить решение дифференциальных уравнений через элементарные функции (в аналитическом виде). Приближенными называются методы, в которых решение получается как предел некоторой последовательности, члены которой выражаются через элементарные функции. Численные методы не позволяют найти точное решение дифференциальных уравнений в аналитической форме [1]. С их помощью получается таблица приближенных (иногда точных) значений искомого решения в некоторых точках рассматриваемой области решения, именуемых сеткой. В силу этого численные методы иначе называют разностными методами или методами сеток. Численные методы применимы к широким классам дифференциальных уравнений и всем типам краевых задач для них.

356

10. Элементы теории разностных схем

С появлением быстродействующих ЭВМ эти методы стали одним из основных способов решения конкретных практических задач вычислительной математики. Однако следует отметить, что численные методы можно применять только к хорошо обусловленным дифференциальным задачам. Другими словами, к задачам, в которых малые изменения в начальных данных приводят к малым изменениям в их решении. Поясним сказанное на примере [2, с. 58–59]. Пример 1. Рассмотрим обыкновенное дифференциальное уравнение второго порядка y   10 y   11 y  0

с начальными условиями y (0)  1, y (0)  1.

Решением данной дифференциальной задачи является функция y ( x)  C1e1 x  C2 e2 x ,

где 1 ,  2 есть корни квадратного уравнения  2  10  11  0

и равны соответственно 1  11;  2  1.

Константы C1 и C2 определяются из начальных условий, что приводит к системе двух уравнений C1  C2  1,  11C1  C2  1,

откуда следует C1  0; C2  1.

Таким образом, решением поставленной дифференциальной задачи будет функция y( x)  e x ,

357

Методы приближенных вычислений

в чем можно убедиться непосредственной подстановкой в искомое уравнение. Теперь изменим первое начальное условие на малую величину   0 , т.е. рассмотрим дифференциальную задачу  y   10 y   11y  0;   y (0)  1  , y (0)  1.

Тогда константы C1 , C2 будут определяться из системы C1  C2  1  ,  11C1  C2  1

и примут значения C1 

 11 ; C2  1  . 12 12

Решением дифференциальной задачи с измененными начальными условиями будет функция y ( x) 

 11x  11   x e  1    e , 12  12 

которая при любом   0 стремится к бесконечности при x   ,  11x e . Изобразим на рис. 10.1 пове12 дение полученных двух решений при   0, 2.

чему способствует слагаемое

Таким образом, сколь угодно малые изменения в начальных условиях вызвали сколь угодно большие изменения решения при x   , что означает плохую обусловленность поставленной дифференциальной задачи и неустойчивость решения y ( x). Отметим, что плохо обусловленные дифференциальные задачи крайне сложно решать численными методами, так как ошибки округлений и погрешность метода оказывают такое же влияние на решение, как и изменение начальных условий.

358

10. Элементы теории разностных схем

у 2,5

y ( x) 

2

 11x  11   x e  1    e 12  12 

1,5 1+ε 1

y ( x)  e  x

0,5

0

0,1

0,2

0,3

0,4

х

Рис. 10.1

В качестве упражнения рекомендуется с помощью замены y  z

свести поставленную задачу к эквивалентной системе первого порядка  y   z,   z   10 z  11y

с начальными условиями y (0)  1, z (0)  1

и решить эту систему численно любым методом (например, методом Эйлера [2, с. 32–36]), а затем проанализировать полученные результаты.

359

Методы приближенных вычислений

10.1.1. Сетки и сеточные функции Понятия сетки и сеточной функции возникают в теории разностных схем в связи с изучением численных методов решения краевых задач математической физики. Для построения численного метода необходимо написать разностную схему, приближенно описывающую дифференциальное уравнение (или систему). Этот этап связан с заменой области непрерывного изменения аргумента областью дискретного его изменения и с заменой дифференциального оператора некоторым его разностным аналогом, кроме того, записывается разностная аппроксимация для начальных и граничных условий. Результатом этой процедуры является алгебраическая система уравнений [1] или система разностных уравнений [3]. Численное решение краевой задачи для исходного линейного дифференциального уравнения сводится к решению полученной алгебраической системы. Отметим, что численные методы дают ограниченную и приближенную информацию о решении, но зато являются универсальными. Рассмотрим задачу Коши для обыкновенного ОДУ 1-го порядка: dy  f ( x, y ), dx

(10.1)

y ( x0 )  a,

(10.2)

где x  [ x0 , X ] . Предполагается, что выполнены условия существования и единственности решения задачи (10.1)–(10.2) [4]. Область непрерывного изменения аргумента x  [ x0 , X ] заменим дискретным множеством точек x j  x0  jh, j  0,1,…, N , где h  0 – малое фиксированное число. Такое множество точек называется сеткой, отдельные точки сетки называются её узлами и h – шагом сетки. Функция, значения которой определяются в узлах сетки, называется сеточной функцией. 360

10. Элементы теории разностных схем

Итак, область непрерывного изменения аргумента заменена сеткой или областью дискретного изменения аргумента. х0

х1

х2

хj хj+1

хN = X

х

Рис. 10.2

В вышеприведенном примере была рассмотрена равномерная сетка на отрезке [ x0 , X ] , который разбивался на N равных частей. Шаг сетки h  xi 1  xi  ( X  x0 ) / N . Множество всех узлов сетки будем обозначать h   x j | x j  x0  jh, j  1, 2,…, N  . Если в это множество включить граничную

точку

x0 ,

то

будем

его

обозначать

h  x j | x j  x0  jh, j  0, N .

На отрезке [ x0 , X ] вместо функции y ( x) непрерывного аргумента будем рассматривать функцию y j , j  0, N , дискретного аргумента. Отметим, что значения сеточной функции вычисляются в узлах сетки x j и сама функция зависит от шага сетки h как от параметра. Если в качестве сетки рассмотреть неравномерную сетку на отрезке, то в этом случае её узлы будут расположены произвольным образом:

ˆ h  x j j  1, N ; x1  x2    xN 1  xN  X . 

Если добавить к этому множеству узел x0 , то получим неравноˆ x , X  . мерную сетку на [ x , X ] :  0

h

0

Заметим, что шаг сетки h j  x j  x j 1 в этом случае будет зависеть от номера узла j , т.е. является сеточной функцией.

361

Методы приближенных вычислений

10.1.2. Случай равномерной сетки на плоскости Рассматривается некоторое множество функций y( x, t ) двух переменных x, t . Пусть область определения этих функций представляет собой, например, прямоугольник (рис. 10.3): G

 x, t  0  x  1,0  t  T .

y tk = k·τ

х 0

xj = j·h Рис. 10.3

Разбиваем отрезки  0,1 и  0,T  оси Ox и Ot соответственно на N и M равных частей, причем h  1/ N и   T / M . Через точки деления проводятся прямые, параллельные осям Ox и Ot . Точки пересечения этих прямых образуют узлы ( x j , tk ) сетки

h  ( x j , tk ) x j  jh, tk  k , h  1/ N ,   T / M ; j  0, N ; k  0, M .

Соседними узлами полученной сетки называют узлы, расположенные на одной и той же прямой (горизонтальной и вертикальной), расстояние между которыми равно шагу сетки (h или τ).

10.1.3. Случай сетки в двумерной области Пусть задана область G сложной формы с границей  на плоскости x  ( x1 , x2 ) . Покроем область G некоторой сеточной об-

362

10. Элементы теории разностных схем

ластью Gh . Последняя получается путем проведения прямых x1( j )  j1h1 , j1  0, 1, 2,…, h1  0; x2( j )  j2 h2 , j2  0, 1, 2,…, h2  0 . Пересечения указанных прямых дают узлы сетки  j1h1 , j2 h2  ; j1 , j2  0, 1, 2,… на плоскости  x1 , x2  . Заметим, что сетка регулярна как по направлению Ox1 , так и Ox2 (рис. 10.4). 1

2

x2

x1

Рис. 10.4

Среди узлов сеточной области будут узлы двух типов: внутренние h и граничные  h .

Те узлы  j1h1 , j2 h2  , которые попали внутрь области G , назовем внутренними, а узлы, являющиеся точками пересечения прямых x1( j1 )  j1h1 , x2( j2 )  j2 h2 ; j1 , j2  0, 1, 2,…

с границей  , назовем граничными (на рис. 10.4 граничные узлы обозначены значком *, а внутренние – ). Итак, из рис. 10.4 видно, что сетка на плоскости  x1 , x2  равномерна по x1 и x2 , однако для области G сетка h  h   h будет неравномерной вблизи границы.

363

Методы приближенных вычислений

Вернемся к ранее поставленной задаче (10.1)–(10.2). Заменим область непрерывного изменения аргумента x  0 дискретным множеством точек x j  x0  jh, j  0, N , h  ( X  x0 ) / N . Вместо функции y ( x) рассмотрим таблицу x j , y j , j  0,1, 2,…, N . Запишем уравнение (10.1) в произвольном внутреннем узле

x j  h  x j x j  x0  jh, j  1, N ; h  ( X  x0 ) / N : dy dx

 f ( x j , y ( x j )), j  0, N  1.

(10.3)

xxj

По определению производной dy dx

 lim xx j

y ( x j  h)  y ( x j ) h

h 0

Заменяя в (10.3) производную

dy dx

.

конечно-разностным отноx xj

шением, получим вместо дифференциального уравнения (10.3) разностное уравнение вида y ( x j  h)  y ( x j ) h

 f ( x j , y ( x j )), j  0, N  1.

(10.4)

Сеточную функцию, удовлетворяющую (10.4), будем обозначать y j . В результате будем иметь  y j 1  y j  f ( x j , y j ), j  0, N  1;  h   y  a.  0

(10.5)

Разностная задача (10.5) представляет собой систему линейных алгебраических уравнений. Разрешая j-е разностное уравнение в (10.5) относительно y j 1 , получим  y j 1  y j  h  f ( x j , y j ), j  0, N  1;   y0  a.

364

(10.6)

10. Элементы теории разностных схем

Построение вычислительного алгоритма завершено. Зная y0 , определяем y1 из (10.6) при j  0 : y1  y0  h  f ( x0 , y0 ) .

С учетом полученного значения y1 легко определить y2  y1  h  f ( x1 , y1 )

и т.д. Зная yN 1 , можно вычислить y N по формуле y N  y N 1  h  f ( xN 1 , yN 1 ) .

Заметим, что при построении численного алгоритма пренебрегли пределом при h  0 и тем самым допустили некоторую ошибку, называемую погрешностью аппроксимации (производной

dy dx

x xj

конечно-разностным отношением). Алгоритм оценки погрешности аппроксимации будет изложен позже, а пока отметим, что с помощью численного метода (10.6), называемого методом Эйлера, определяется таблица значений решения y j , j  1, 2,…, N , y0  a . При h  0 , т.е. при сгущении сетки, решение y j должно сходиться к решению исходной задачи (10.1)–(10.2). При этом обе функции, и непрерывного аргумента  y( x j )  и дискретного аргумента  y j  , рассматриваются как функции дискретного аргумента или сеточные функции. Если y ( x) непрерывная функция, то ей ставится в соответствие сеточная функция y ( x j ) или  y h . Если же y ( x) терпит разрыв, то таблицей её значений на [ x0 , X ] можно считать сеточную функцию

 y h 

xh/ 2

1 y ()d  . h x h / 2

Условимся, что y ( x) – непрерывная функция, а функция, совпадающая с y ( x) в точках сетки.

 y h

– сеточная

365

Методы приближенных вычислений

10.1.4. Понятие сходимости разностной схемы В связи с понятием разностной схемы рассмотрим линейное нормированное пространство функций, определенных на сетке h . Будем обозначать его U h [3]. Норма может быть определена по-разному. Например, можно рассмотреть разностный аналог нормы пространства C : y (h)

Uh

 max y j .

(10.7)

0 j  N

Часто используется норма, определяемая равенством 1/ 2

y

(h) Uh

 N 2  h yj   j 0 

.

(10.8)

Норма (10.8) эквивалентна норме 1/ 2

X  2 y ( x )    y ( x) dx  x   0 

для функций, интегрируемых с квадратом на отрезке [ x0 , X ] . Можно также принять за норму y (h)

Uh

 sup y j . 0 j  N

(10.9)

Пусть даны две произвольные сеточные функции u ( h ) и v ( h ) из U h . Определение 1. Мерой отклонения этих функций друг от друга считается норма их разности, т.е. u ( h)  v( h)

Uh

.

Перепишем исходную дифференциальную задачу в так называемой операторной форме [3, с. 82–84, 88–89]: Ly  f , (10.10)  dy  , x  x  X, где Ly   dx 0  y ( x0 ),

366

 f ( x, y ( x)), x0  x  X , f  a.

10. Элементы теории разностных схем

Запишем в операторной форме соответствующую разностную задачу, аппроксимирующую (10.10): Lh y ( h )  f ( h ) ,

где Lh y

(h)

(10.11)

 y j 1  y j  f ( x j , y j ), j  0, N  1; , j  0, N  1; ( h )   f   h a. y ;  0

Заметим, что любую краевую задачу для обыкновенных дифференциальных уравнений и для уравнений в частных производных можно записать в операторной форме в виде (10.10). Аналогичным образом можно записать в виде (10.11) соответствующую разностную краевую задачу. С учетом сказанного введем ряд важных определений, используемых в теории разностных схем. Предполагаем, что при любом достаточно малом h решение (h) y задачи (10.11) существует и принадлежит пространству U h . Определение 2. Говорят, что решение y ( h ) разностной краевой задачи (10.11) при измельчении шага сетки сходится к решению y дифференциальной краевой задачи (10.10), если [ y]h  y ( h )

Uh

 0 при h  0 .

(10.12)

Если выполнено неравенство [ y ]h  y ( h )

Uh

 C  hk ,

(10.13)

где C  0 , k  0 – некоторые постоянные, не зависящие от h , то говорят, что имеет место сходимость порядка k относительно h или что разностная схема имеет k-й порядок точности. Вопрос проверки сходимости разбивается на два более простых вопроса: 1) проверка аппроксимации задачи (10.10) задачей (10.11); 2) является ли устойчивой задача (10.11)? Ответ на эти два вопроса требует введения математически строгих понятий аппроксимация и устойчивость. 367

Методы приближенных вычислений

10.1.5. Об аппроксимации дифференциальной краевой задачи разностной Предположим, что разностная задача (10.11) имеет единственное решение y ( h) U h . Если в (10.11) вместо y ( h ) подставить се-

точную функцию  y h U h и при этом окажется, что равенство (10.11) будет точно выполнено, то ввиду единственности решения (10.11) следует, что [ y]h  y ( h ) . Описанная ситуация является идеальной с точки зрения сходимости. Как правило, систему разностных уравнений трудно построить так, чтобы [ y ]h ей точно удовлетворяла. Подставляя в (10.11) [ y ]h , получаем некоторую невязку Lh [ y ]h  f ( h )  f ( h ) .

(10.14)

За определение аппроксимации принимается стремление невязки f ( h ) к нулю при h  0 . Поясним понятие невязки на примере разностной задачи (10.11). Невязка возникает за счет аппроксимации производной dy dx

конечно-разностным отношением x xj

dy dx

y ( x j  h)  y ( x j ) h

xx j

.

(10.15)

Применим формулу Тейлора к функции y ( x j  h) в окрестности узла x j  h , предполагая, что y( x)  C 2 [ x0 , X ] : y ( x j  h)  y ( x j ) 

dy dx

xx j

h1 d 2 y  1! dx 2

xx

h2 , 2!

где x  x j  1  h, 1  (0,1) . Подставляя разложение y ( x j  h) в (10.15), получим

368

10. Элементы теории разностных схем

y ( x j  h)  y ( x j ) h

dy dx

h d2y 2 dx 2

 xxj

.

(10.16)

xx

Поэтому выражение  y ( x j  h)  y ( x j ) , j  0, N  1,  Lh  y h   h  y( x )  0

можно переписать следующим образом: Lh  y h

 h d2y  f ( x j , y ( x j ))   2 dx 2  a.

, j  0, N  1; xx

или Lh [ y]h  f ( h )  f ( h ) ,

где f

(h)

 1 d 2 y  h    ,    2 dx 2  x  x  0.

(10.17)

Будем считать, что f ( h ) и f ( h ) , заданные с помощью формул (10.11) и (10.17), принадлежат линейному нормированному пространству Fh . Под величиной невязки понимаем f ( h ) F . h

Определение 3. Будем говорить, что разностная схема Lh y ( h )  f ( h ) аппроксимирует задачу Ly  f на решении y , если f ( h )

Fh

 0 при h  0 . Если имеет место неравенство f ( h)

Fh

 C1  hk ,

(10.18)

где C1  0 , k  0 – некоторые постоянные, то будем говорить, что имеет место аппроксимация порядка hk или порядка k относительно h . 369

Методы приближенных вычислений

Если норму пространства Fh определить по формуле (10.7), то из (10.17) будем иметь f ( h )

 1 d2 y   h  2   max   2 dx  x  x . j 0 j  N  0.

Учитывая предположение относительно y( x) , имеем

d2y будет по dx 2

модулю ограничена некоторой константой C2 . Тогда f ( h )

Fh

1  h   C2  h  C3 . 2

Согласно определению 3 имеет место аппроксимация порядка 1 относительно величины h . Начальное условие при замене дифференциальной задачи разностной аппроксимируется точно, так как решение разностной задачи должно удовлетворять тому же самому условию, что и y ( x) . Заметим, что если рассматривается краевая задача 2-го или 3-го рода, когда в граничном условии содержится производная от решения, при переходе к соответствующей разностной задаче возникает погрешность аппроксимации граничных условий, влияющая на порядок аппроксимации разностной задачи.

10.1.6. Об устойчивости разностной схемы Введем очень важное в теории разностных схем понятие устойчивости [1, с. 106–107] в случае, когда Lh – не обязательно линейный оператор. Определение 4. Разностная схема (10.11) называется устойчивой, если существуют числа h0  0 и   0 такие, что при любом h  h0 и любом    Fh ,  h

370

h Fh

  , разностная задача

10. Элементы теории разностных схем

Lh z ( h )  f ( h )  ( h ) ,

(10.19)

полученная из задачи (10.11) добавлением к правой части возмущения ( h ) , имеет только одно решение z ( h ) , причем это решение отклоняется от решения y ( h ) невозмущенной задачи (10.11) на сеточную функцию z ( h )  y ( h) , удовлетворяющую оценке z (h)  y ( h)

Uh

 C  ( h )

Fh

,

(10.20)

где C – некоторая постоянная, не зависящая от h . В частности, неравенство (10.20) означает, что малое возмущение ( h ) правой части разностной схемы (10.11) вызывает равномерно малое относительно h возмущение z ( h )  y ( h) решения. Если в (10.11) оператор Lh является линейным, то приведенное определение устойчивости равносильно следующему. Определение 5. Разностная схема (10.11) с линейным оператором Lh называется устойчивой, если для любого f ( h)  Fh уравнение (10.11) имеет единственное решение y ( h) U h , причем y(h)

Uh

 C  f (h)

Fh

,

где C – некоторая постоянная, не зависящая от h . Доказательство эквивалентности приведенных выше определений устойчивости в случае линейного оператора Lh приведено в [1, с . 107–108].

10.1.7. Связь между аппроксимацией, устойчивостью и сходимостью Взаимосвязь между аппроксимацией, устойчивостью и сходимостью устанавливается с помощью теоремы, которая в зарубежных источниках носит название теоремы Лакса [5, с. 54–57]. Приведем формулировку и доказательство этой теоремы [1, с. 109]. 371

Методы приближенных вычислений

Теорема 1. Пусть разностная схема Lh y ( h )  f ( h ) аппроксимирует задачу Ly  f на решении y с порядком hk и устойчива. Тогда решение y ( h ) разностной задачи Lh y ( h )  f ( h ) сходится к  y h , причем справедлива следующая оценка:

 y h  y(h) U

h

 (C  C1 )hk ,

(10.21)

где C и C1 – числа (константы), входящие в оценки (10.20) и (10.18). Доказательство. Полагаем ( h)  f ( h) ,  y h  z ( h) , тогда оценка (10.20) может быть записана следующим образом:

 y h  y (h) U

 C  f ( h ) h

Fh

.

Учитывая (10.18), сразу получим требуемое неравенство (10.21). Теорема доказана. Устойчивость есть внутреннее свойство самой разностной схемы и никоим образом не зависит от исходной дифференциальной задачи.

10.1.8. О выборе норм Основные понятия теории разностных схем, такие как аппроксимация, устойчивость и сходимость, имеют смысл, если в пространствах сеточных функций U h , Fh каким-либо способом введены нормы. Какова степень произвола при выборе нормы в U h и Fh ? Вначале рассмотрим  U . h

В рассмотренном ранее примере при оценке порядка погрешности аппроксимации использовалась норма, введенная по формуле (10.7): y (h)

372

Uh

 max y j , 0 j  N

(10.22)

10. Элементы теории разностных схем

причем максимум берется по всем точкам сетки h , на которой определена сеточная функция y ( h) U h . Выбор нормы в пространстве U h осуществляется таким образом, чтобы при h  0 эта норма переходила бы в соответствующую норму функций, заданных на всем отрезке. Другими словами, должно выполняться равенство lim h0

 y h U

 y h

U

,

(10.23)

где y U – норма в пространстве функций, определенных на отрезке [ x0 , X ] , которому принадлежит решение y( x) задачи (10.10). Если в качестве U взять пространство непрерывных функций C , а сеточную функцию [ y ]h определить как совпадающую с y ( x) в узлах сетки, то норма (10.22) будет удовлетворять условию (10.23). В качестве нормы в пространстве U h , удовлетворяющей условию (10.23), можно выбрать следующую: y(h)  h   y j

2

.

(10.24)

j

При этом за U принимается пространство непрерывных функций, определенных на [0,1] (так как к этому промежутку можно перейти с помощью соответствующей замены переменной), с нормой 1

y 

y

2

( x)dx ,

0

а сеточная функция  y h определяется как совпадающая с y ( x) в узлах сетки. Если y ( x) – разрывная функция, но интегрируема с квадратом, то U представляет собой пространство функций с интегрируемым квадратом и

373

Методы приближенных вычислений 1

y 

y

2

( x)dx ,

0

но при этом  y( x)h  y( x j ) , а определяется по формуле

 y ( x ) h

xj h

1  hx

j

h

2

y ( x ) dx .

2

Тогда для разрывной функции y( x) также справедливо (10.23), т.е. lim  y( x)h h 0

1

Uh

y

2

( x)dx .

0

Очевидно, что из равномерной сходимости, т.е. сходимости в норме (10.22), следует сходимость в среднем, т.е. в норме (10.24). Остановимся теперь на вопросе о выборе нормы в пространстве Fh , которому принадлежит правая часть разностной схемы (10.11). Для простоты изложения предполагаем, что Lh – линейный оператор [3, с. 119]. Отметим, что не всегда можно выбрать норму так, чтобы аппроксимация и устойчивость имели место. В [3, с. 120] приводится соображение общего характера, помогающее правильно выбрать нормы в линейном пространстве Fh . Рекомендуется учитывать характер непрерывной зависимости решения дифференциальной краевой задачи Ly  f , которую аппроксимирует разностная схема Lh y ( h )  f ( h ) , от правой части f при выборе нормы  F . Приведенная рекомендация иллюстрируh

ется на двух примерах в [3, с. 120–122]. Отметим, что методы построения разностных схем, необходимый и достаточный признаки устойчивости разностной схемы по начальным данным, а также примеры, иллюстрирующие эту часть теории, рассматриваются далее.

374

10. Элементы теории разностных схем

10.2. О методах построения разностных схем Построение разностных схем осуществляется с учетом ряда требований, предъявляемых к разностной схеме. Необходимо, чтобы разностная схема удовлетворяла следующим условиям: 1) аппроксимировала с более высоким порядком исходную дифференциальную задачу; 2) была устойчивой; 3) обладала свойством консервативности, т.е. чтобы на сетке выполнялись разностные аналоги законов сохранения [1, с. 111– 114]; 4) была экономичной; 5) была легко разрешимой и т.д. Нельзя построить разностную схему, удовлетворяющую одновременно всем перечисленным требованиям. Некоторые из них вступают в противоречие друг с другом и приходится удовлетворять наиболее важным требованиям, а от каких-то нужно отказаться в угоду более существенным. Остановимся на некоторых методах построения разностных схем [1–5].

10.2.1. Метод неопределённых коэффициентов Метод неопределенных коэффициентов рассмотрим на примере задачи Коши для обыкновенного дифференциального уравнения первого порядка: dy  f ( x, y ), dx y ( x0 )  a.

x0  x  X ,

(10.25)

Для численного решения задачи (10.25) ранее методом конечных разностей была построена разностная схема [6]:  y j 1  y j  f ( x j , y j ), j  0, N  1;  h   y  a.  0

(10.26)

375

Методы приближенных вычислений

Эта схема связывает значения искомой функции y ( x) в двух узлах x j и x j 1 . Построим разностную схему (10.26) методом неопределённых коэффициентов. Для этого разностное уравнение запишем в следующем виде: Lh y ( h )  a0 y j  a1 y j 1  f j ,

(10.27)

где a0 и a1 – неопределённые коэффициенты. Постараемся подобрать их таким образом, чтобы выполнялось следующее равенство: Lh  y h

Воспользуемся

xx j

 f ( x j , y ( x j ))  O  h 2  .

формулой

y( x)  C 2  x0 , X  :

Тейлора,

y ( x j  h)  y ( x j )  h

dy dx

 xxj

(10.28)

предполагая,

h2 d 2 y 2 dx 2

,

что

(10.29)

x  x

где x  x j  1h, 1  (0,1) . Подставляя (10.29) в левую часть равенства (10.28), получим Lh  y h

x xj

 dy  a0 y ( x j )  a1  y ( x j )  h dx 

x xj

  O(h 2 )  . 

(10.30)

Определим коэффициенты a0 , a1 так, чтобы выполнялось условие аппроксимации (10.28). Вначале сгруппируем слагаемые в правой части равенства (10.30): Lh  y h

xx j

  a0  a1  y ( x j )  a1h

dy dx

 O ( h 2 )  f ( x j , y ( x j )). (10.31) x xj

Из соотношения (10.31) следует, что для выполнения условия аппроксимации необходимо, чтобы выполнялись равенства a0  a1  0,  a1h  1.

376

10. Элементы теории разностных схем

Имеем систему двух линейных алгебраических уравнений, которая, очевидно, допускает единственное решение 1 1 a0   , a1  . h h

В результате получается разностная схема y j 1  y j h

 f j , j  0, N  1 ,

совпадающая с уже ранее рассмотренной схемой (10.26). Для построения разностной схемы, связывающей значения искомой функции y ( x) в узлах x j 1 и x j 1 , методом неопределенных коэффициентов, повторим ранее приведенную процедуру. Имеем Lh y ( h )  a0 y j 1  a1 y j 1  f j .

(10.32)

Определим неизвестные коэффициенты a0 , a1 так, чтобы имело место равенство Lh  y h

xx j

 f ( x j , y ( x j ))  O  h 2  .

(10.33)

Используя формулу Тейлора, получим y ( x j  h)  y ( x j )  h y ( x j  h)  y ( x j )  h

dy dx dy dx

 x x j

 xxj

h2 d 2 y 2 dx 2

x  x

h2 d 2 y 2 dx 2

x  x

,

(10.34)

,

(10.35)

где x  x j  1h, x  x j  2 h, 1  (1, 0),  2  (0,1). Подставляя (10.34) и (10.35) в левую часть равенства (10.33), будем иметь Lh  y h

x x j

 a0  a1  y ( x j )   a0 h  a1h 

dy dx

 O(h x x j

2

)  f ( x j , y ( x j )). (10.36)

Для выполнения условия аппроксимации (10.36) необходимо выполнение следующих соотношений: 377

Методы приближенных вычислений

a0  a1  0,  (a0  a1 )h  1.

Из системы имеем, что a0  

1 1 . Подставляя полученные , a1  2h 2h

значения a0 , a1 в (10.32), запишем разностную схему: y j 1  y j 1 2h

 f j , j  1, N  1 .

(10.37)

Отметим, что в построенной разностной схеме (10.37) используется центральная разность. В ранее рассмотренной схеме применялась правая пространственная разность. Аналогичным образом можно построить разностную схему с левой пространственной разностью вида y j  y j 1 h

 f j , j  1, N .

(10.38)

Отметим, что в общем случае разностная схема может иметь шаблон, в котором узлы могут быть расположены произвольным образом друг относительно друга. При этом число неопределенных коэффициентов должно совпадать с количеством узлов. Более подробно применение данного метода к различным типам уравнений в частных производных рассматривается в [1, с. 191–200].

10.2.2. Метод полиномиальной аппроксимации Рассматриваемый метод основан на применении гладкой функции со свободными параметрами [2, 7] для нахождения производных по экспериментальным данным. В качестве такой функции обычно используются полиномы. Проиллюстрируем указанный метод для случая, когда в узлах x j 1 , x j , x j 1 заданы значения функции y j 1 , y j , y j 1 . Проведем аппроксимацию функции многочленом второй степени y ( x)  a  bx  cx 2 ,

378

(10.39)

10. Элементы теории разностных схем

причем за начало координат ( x  0 ) примем точку x j . Тогда x j 1  h, x j 1  h . Для определения a, b, c воспользуемся значениями y j 1 , y j , y j 1 . Имеем y j 1  a  bx j 1  cx 2j 1 , y j  a  bx j  cx 2j , y j 1  a  bx j 1  cx 2j 1

или, с учетом x j  0 , y j 1  a  bh  ch2 , y j  a,

y j 1  a  bh  ch2 .

Складывая первое и последнее равенства, получим y j 1  y j 1  2a  2ch2

или c

y j 1  2 y j  y j 1 2h 2

.

Для определения коэффициента b вычтем из третьего равенства первое. Получим y j 1  y j 1  2bh.

Отсюда b

y j 1  y j 1 2h

.

Для определения производной воспользуемся формулой dy dx

xx j

 (b  2cx ) x  x

j

0

b

или

379

Методы приближенных вычислений

dy dx

y j 1  y j 1

xxj

2h

.

Значение второй производной d2y dx 2

 2c xx j

или d2y dx 2

 x x j

y j 1  2 y j  y j 1 h2

.

Построенные формулы для первой и второй производной совпадают с формулами, полученными методом конечных разностей [8, с. 107–120, 146–151]. Если теперь аппроксимировать y ( x) полиномом первой степени, т.е. y ( x)  a  bx , то в зависимости от таблицы значений функции y j , y j 1 или y j 1 , y j , получатся формулы для аппроксимации dy dx

правой или левой пространственными разностями соответxxj

ственно. Заметим, что аппроксимационные формулы для производных, полученные при помощи полиномов выше второго порядка, уже не идентичны выражениям, полученным разложением в ряд Тейлора [7, с. 44–45]. В каждом случае погрешность аппроксимации проверяется при помощи разложения по формуле Тейлора [Там же, с. 44]. Вопрос о применении теории сплайнов при построении разностных схем рассматривается в [2, с. 145–159]. Замечание 1. Среди других методов построения разностных схем отметим проекционные методы [Там же, с. 138–144]: метод конечных элементов, метод Галеркина, метод Рэлея–Ритца и др. В их основе лежит идея аппроксимации решения дифференциального уравнения конечной линейной комбинацией заданных функ380

10. Элементы теории разностных схем

ций, называемых базисными. Интегро-интерполяционный метод (ИИМ) или метод баланса применяется при построении разностных схем, аппроксимирующих основные уравнения исходной задачи, записанные в интегральной, а не в дифференциальной форме [1, с. 111–116]. В результате применения этого метода получается консервативная или дивергентная разностная схема. Под консервативной разностной схемой понимаем схему, выражающую на сетке разностные аналоги соответствующих законов сохранения [Там же, с. 111–114]. Кроме того, при построении разностных схем для решения задачи Коши применяются: метод Эйлера, модифицированный метод Эйлера [9, с. 214–215], методы Рунге-Кутты [Там же, с. 218–230], или так называемые одношаговые методы. К числу многошаговых методов построения разностных схем принадлежат экстраполяционный и интерполяционный методы Адамса [Там же, с. 230–238]. Одним из основных методов численного решения граничных задач, как для обыкновенных дифференциальных уравнений, так и для уравнений в частных производных, является метод конечных разностей [8, с. 107–120, 146–151].

10.2.3. Метод конечных разностей Рассмотрим линейную двухточечную краевую задачу [8, с. 107– 120]: Ly  f ,

где  y   p ( x ) y   q ( x ) y , 0  x  1,  Ly   y (0),  y (1), 

(10.40)

 r ( x ), 0  x  1,  f   , , 

381

Методы приближенных вычислений

p ( x), q ( x), r ( x) – заданные функции, ,  – известные числа. Будем

предполагать, что задача (10.40) корректно поставлена. Используя метод конечных разностей, называемый иначе методом сеток, опишем алгоритм нахождения приближенного решения задачи (10.40) на ПЭВМ. Согласно методу сеток необходимо выполнить следующие действия: 1) заменить область непрерывного изменения аргумента x  [0,1] некоторой дискретной областью. Для этой цели рассмотрим, например, равномерную сетку на [0,1] с N  1 узлами:

h  x j | x j  jh, j  0, N , N  1/ h, h  0 ;

2) аппроксимировать краевую задачу (10.40) на множестве узлов x j h некоторой разностной задачей Lh y ( h )  f ( h ) ,

(10.41)

где y ( h )  U h , f ( h )  Fh , U h – пространство сеточных функций – решений задачи (10.41), Fh – пространство сеточных функций – правых частей разностной задачи (10.41); 3) решить разностную задачу (10.41) каким-либо численным методом, т.е. найти приближенные значения решения y j  y( x j ) в

узлах сетки h . Под y ( x j ) понимаем значения решения дифференциальной задачи (10.40), вычисленные в узлах x j h , y j – значение в узле x j решения разностной задачи (10.41). В рассматриваемом случае разностная задача (10.41) представляет собой систему N  1 линейных алгебраических уравнений относительно N  1 неизвестных y0 , y1 ,…, yN . 382

10. Элементы теории разностных схем

При таком подходе к решению краевых задач для обыкновенных дифференциальных уравнений необходимо решить следующие вопросы: 1) выбрать формулы численного дифференцирования, хорошо приближающие производные из (10.40); 2) определить порядок аппроксимации краевой задачи разностной схемой, устойчивость разностной схемы и сходимость решения разностной задачи к решению дифференциальной задачи; 3) показать разрешимость системы линейных алгебраических уравнений и указать метод её решения. Обсудим решение каждого из перечисленных вопросов на примере поставленной задачи (10.40). Выбор формул численного дифференцирования Аппроксимируем производные из (10.40) в узле x j по следующим формулам численного дифференцирования [8, с. 109]: y ( x j )  y ( x j ) 

y ( x j 1 )  y ( x j ) h

y ( x j 1 )  2 y ( x j )  y ( x j 1 ) h2

, j  1, N  1;

– правая разностная производная, j  0, N  1 ,

или y ( x j ) 

y ( x j )  y ( x j 1 ) h

– левая разностная производная, j  1, N ,

или y ( x j ) 

y ( x j 1 )  y ( x j 1 ) 2h

– центральная разностная производная, j  1, N  1 .

Тогда вместо краевой задачи (10.40) получим разностную задачу (10.41), где

383

Методы приближенных вычислений

Lh y ( h )

y j 1  y j  y j 1  2 y j  y j 1  pj  q j y j , j  1, N  1,  2 h h  (10.42)   y0 , y  y N 1  N  h

или

Lh y ( h )

y j 1  y j 1  y j 1  2 y j  y j 1  pj  q j y j , j  1, N  1,  2 2h h  (10.43)   y0 , y  y N 1  N , h 

а f (h)

rj , j  1, N  1,    , . 

Определение порядка аппроксимации дифференциальной задачи разностной Исследуем погрешность от замены производных из (10.40) по формулам численного дифференцирования, предполагая, что функция y ( x) обладает достаточной гладкостью. Разложим y( x j 1 ) в окрестности x j по формуле Тейлора. Будем иметь y ( x j 1 )  y ( x j  h)  y ( x j )  hy ( x j )  

2

h h3 h 4 IV y ( x j )  y ( x j )  y ( x j )  O(h5 ), 2 3! 4!

где O(h5 ) означает, что остаточный член разложения стремится к нулю при h  0 , как h5 . Тогда 384

10. Элементы теории разностных схем

y ( x j 1 )  2 y ( x j )  y ( x j 1 ) h

2

 y ( x j ) 

h 2 IV y (1 ) , 12

где x j 1  1  x j 1 . Аналогично получаем y ( x j 1 )  y ( x j 1 ) 2h

 y ( x j ) 

h2 y ( 2 ) , 6

 y ( x j ) 

h y (3 ) , 2

где x j 1  2  x j 1 ; y ( x j 1 )  y ( x j ) h

где x j  3  x j 1 ; y ( x N )  y ( xN 1 ) h  y ( x N )  y ( 4 ) , h 2

где xN 1   4  xN . Определяем теперь невязку f ( h ) по формуле Lh [ y ]h  f ( h )  f ( h ) , [ y ]h  U h ; f ( h ) , f ( h )  Fh .

При использовании правой разностной производной имеем

Lh  y h

 h 2 IV h y (1 )  y (3 ) p j ,  y ( x j )  p j y ( x j )  q j y ( x j )  12 2    y ( x0 ),  h  y ( xN )  y (4 ),  2 rj , j  1, N  1,  f  , . 

Следовательно,

385

Методы приближенных вычислений

f ( h )

 h 2 IV h (h)  y (1 )  p j y (3 )  f1 , 12 2   0  f 2( h ) , h  y ( 4 )  f 3( h ) .  2

При замене y( x j ) центральной разностной производной получаем

f ( h )

 h 2 IV h2 p j y (2 )  f1( h ) ,  y (1 )  6  12  0  f 2( h ) , h  y ( 4 )  f3( h ) .  2

Из проведенных исследований заключаем, что разностные схемы (10.42), (10.43) аппроксимируют дифференциальную задачу (10.40) на решении y( x)  C 4 [0,1] с локальной ошибкой (ошибкой на одном шаге) O (h) . Отметим, что порядок аппроксимации разностной схемы (10.43) можно повысить до второго относительно h , если аппроксимировать y ( xN ) по формуле численного дифференцирования [10, с. 57–59]: 3 y ( xN )  4 y ( xN 1 )  y ( xN  2 ) h2 y (5 ) ,  y ( xN )  2h 3

где xN  2  5  xN . Тогда невязка f ( h ) принимает вид

f ( h )

 h 2 IV h2 p j y (2 )  f1( h ) ,  y (1 )  12 6   0  f 2( h ) ,  2  h y (5 )  f3( h ) .  3

Получим оценку f ( h ) 386

Fh

из (10.44). Имеем

(10.44)

10. Элементы теории разностных схем

y ( x j ) 

y j 1  2 y j  y j 1 h

p( x j ) y ( x j )  p j

y ( xN ) 

2

y j 1  y j 1 2h

h 2 IV y 12

C

,

h2 p C  y  C , 6

3 yN  4 yN 1  yN  2 h 2  y  C . 2h 3

Здесь p j  p ( x j ), j  1, N  1,

y IV

Пусть f ( h)

Fh

C

p

C

 max p ( x) , x[0,1]

 max y IV ( x ) , y C  max y ( x) . x[0,1]

x[0,1]

 max f i ( h ) . Тогда получаем 1 i  3

f ( h )

Fh

 C  h2 ,

где C – некоторая не зависящая от h постоянная. Аналогичными рассуждениями можно показать, что в случае разностных схем (10.42), (10.43) f ( h )

Fh

 C  h.

Устойчивость разностной схемы и сходимость решения разностной задачи к решению дифференциальной. Вопросы разрешимости разностной задачи Разностную задачу (10.42) запишем в виде  y0  ;  y j 1  y j  y j 1  2 y j  y j 1  pj  q j y j  rj , j  1, N  1;  2 h h   yN  yN 1   h 

(10.45)

или 387

Методы приближенных вычислений

Ay  b,

(10.46)

где y  ( y0 , y1 ,…, yN )T , b  (, h2 r1 ,…, h2 rN 1 , h)T , 0 1  2   hp 1 2 1  q1 h  0 1 A … …  0 0  0 0

0

0

0 … 0

0

1  hp1

0

0 … 0

0

2  hp2  q2 h 2 1  hp2 0 … 0 … … … … …

0 …

0

0

0 … 1

2  hpN 1  qN 1h 2

0

0

0 … 0

1

   . 0  …  1  hpN 1   1  0 0

Матрица A системы линейных алгебраических уравнений (10.46) является трехдиагональной с доминирующей главной диагональю, если при 0  x  1 функция q ( x )  0 . Это условие гарантирует существование единственного решения разностной краевой задачи (10.42), причем, решение может быть получено методом прогонки [11, с. 18–21]. В самом деле, задачу (10.45) можно привести к виду  Aj y j 1  C j y j  B j y j 1  Fj , j  1, N  1,   y0  æ0 y1   0 , y  æ y   , N N N 1  N

(10.47)

где 1 2 pj 1 pj , Cj  2  ,  qj , Bj  2  2 h h h h h Fj  rj , æ0  0,  0  , æN  1,  N  h.

Aj 

При этом должны выполняться следующие достаточные условия устойчивости метода прогонки [10, с. 161–166]: C j  Aj  B j , æ0  1, æN  1.

(10.48)

Неравенства (10.48) справедливы, если q( x)  0 при x  [0,1] . Аналогичными исследованиями можно показать существование и единственность решения разностной задачи (10.43). Чтобы доказать устойчивость разностных схем (10.42), (10.43), требуется показать выполнение неравенства 388

10. Элементы теории разностных схем

y(h)

Uh

 C  f ( h)

Fh

.

(10.49)

Здесь C – некоторая постоянная, не зависящая ни от h , ни от f ( h ) . С доказательством устойчивости можно познакомиться в [10, с. 207–209]. Таким образом, разностная схема (10.42) аппроксимирует краевую задачу (10.40) с первым порядком относительно h и устойчива, если [Там же, с. 205]  2  h  h0  min 1, .  p C 

Тогда согласно основной теореме теории разностных схем [6, с. 14] получаем, что решение разностной задачи (10.42) будет сходиться к решению дифференциальной задачи (10.40) с первым порядком относительно h , т.е. [ y ]h  y ( h )

Uh

 Kh,

где K – постоянная, не зависящая от h . Итак, решая систему линейных алгебраических уравнений (10.47) экономичным методом прогонки, получаем приближенные значения y0 , y1 ,…, yN решения краевой задачи (10.40) в узлах сетки h . Замечание 2. Метод сеток применяется для решения краевой задачи (10.40) при q( x)  0 , когда условия (10.48) не выполняются. Однако в этом случае заранее предвидеть успешный результат трудно. Обычно проводят расчеты для разных значений шага (не менее трех) и сравнивают yi в одних и тех же узлах сетки между собой. Если разность этих значений уменьшается при измельчении шага, то решение стремится к некоторому пределу при h  0 .

389

Методы приближенных вычислений

10.3. Исследование устойчивости разностных схем 10.3.1. Достаточный признак устойчивости разностных схем решения задачи Коши Рассмотрим один из наиболее широко используемых на практике методов исследования устойчивости на примере задачи Коши для обыкновенного дифференциального уравнения первого порядка [3, с. 123]:  dy   Ay  f ( x), Ly   dx  y (0)  a,

(10.50)

где A  const, a  const, 0  x  1 . Аппроксимируем исходную дифференциальную задачу (10.50) следующей простой разностной схемой:  y j 1  y j 1   Ay j  f j , j  0, N  1,  h   ,  Lh y ( h )   h N   y  a.  0

(10.51)

Перепишем схему (10.51) в рекуррентной форме:  y j 1  (1  hA) y j  hf j , j  0, N  1,   y0  a,

(10.52)

Из (10.52) следует, что y1  (1  hA) y0  hf 0 ,

y2  (1  hA) 2 y0  h  (1  hA) f 0  f1  , y3  (1  hA)3 y0  h (1  hA) 2 f 0  (1  hA) f1  f 2  , …………………………..

(10.53)

y j  (1  hA) j y0  h (1  hA) j 1 f 0  (1  hA) j  2 f1  …  f j 1  .

Пусть нормы в пространствах U h , Fh определены такими равенствами: 390

10. Элементы теории разностных схем

 max y j ,

(10.54)

 max  a , max f j  .  0 j  N 

(10.55)

y(h)

f (h)

Fh

Uh

0 j  N

Отметим, что выражение (1  hA) j ограничено для j  N  (1  hA) j  (1  hA)

1

h

1 или h

 e A  C1.

(10.56)

Тогда из (10.53) следует, что y j  C1 a  hNC1 max f j  C1 a  C1  max f j  2  C1 f ( h ) 0 j  N

0 j  N

Fh

. (10.57)

В силу произвольности j отсюда следует y (h)

Uh

 2C1  f ( h )

Fh

,

(10.58)

т.е. используемая для решения задачи (10.50) схема (10.51) будет устойчива (в смысле определения 5 из [6]).

10.3.2. Каноническая форма записи разностной схемы Для приведения разностной схемы к канонической форме воспользуемся (10.51). Введем новые обозначения: u j  y j , Rh  (1  hA),  j  f j .

(10.59)

Тогда разностное уравнение (10.52) запишется в виде u j 1  Rh u j  h j ,  u0  задано,

(10.60)

который в дальнейшем будем называть канонической формой. Используя (10.60) и полагая j  0,1, 2,…, получим

391

Методы приближенных вычислений

u1  Rh u0  h0 ,

u2  Rh2 u0  h  Rh 0  1  , u3  Rh3u0  h  Rh2 0  Rh 1  2  , …………………. u j  Rhj u0  h  Rhj 10  Rhj  2 1  …   j 1  .

Отсюда имеем max u j  max Rhj  u0  hN max  j  .  1 j  N 0 j  N 

0 j  N

(10.61)

Заметим, что теперь в пространствах U h , Fh нормы определяются следующим образом: y (h)

Uh

(h)  max u j , f 0 j  N

Fh

 max  u0 , max  j  .  0 j  N 

Из (10.61) следует (учитываем, что hN  1 ), что y (h)

Uh

 max Rhj  2  f ( h ) 1 j  N

Fh

.

Доказательство устойчивости будет завершено, если будет показана равномерная относительно h ограниченность совокупности чисел Rhj , т.е. доказана справедливость оценки Rhj  C , j  1, 2,…, N .

Имеем j

Rhj  1  hA  (1  h A ) N  e A  C .

Это и доказывает устойчивость схемы (10.51). Для дальнейших исследований потребуется пространство сеточных функций, которому принадлежат u j и  j . Будем обозначать его через Yh . Отметим, что в общем случае числа Rhj образуют матрицу Rh и для доказательства устойчивости необходимо показать ограниченность Rh . 392

10. Элементы теории разностных схем

10.3.3. Спектральный признак устойчивости Для оценки ограниченности Rh можно воспользоваться собственными значениями матрицы Rh . Это утверждение легко вытекает из определения ненулевого собственного вектора u , соответствующего собственному значению  матрицы Rh . В самом деле, по

определению

имеем

Rh u  u .

Далее

очевидно,

j

что

j

Rhj u   j u, Rhj u   u , Rhj u  Rhj  u . Тогда Rhj   .

Таким образом, для ограниченности Rhj

необходимо, чтобы j

были ограничены степени собственных значений  , j  1, N . Для этого все собственные значения должны лежать в круге радиуса 1  C  h , т.е.   1 C  h ,

(10.62)

причем C не зависит от h . Легко видеть, что в противном случае, для достаточно малого h , будем иметь Rhj  

N

 (1  Ch)

1

1

h

 eh

ln(1 Ch )

e

 Ch  C 1  2  

C

 e 2.

(10.63)

Рассмотренный признак устойчивости не зависит ни от выбора нормы в пространстве, где действует оператор Rh , ни от способа приведения схемы к канонической форме [3, с. 138–139].

10.3.4. Исследование устойчивости на конкретных примерах Проиллюстрируем применение изложенной теории к решению конкретных примеров. Пример 2. Исследуем с помощью необходимого признака устойчивость следующей разностной схемы: 393

Методы приближенных вычислений

y j 1  y j  y j 1  y j 1 3  Ay j  0, j  1, N  1; 4 h 2h   y0  a;  y  (1  hA)a,  1 

(10.64)

аппроксимирующей дифференциальную задачу (10.50) f ( x)  0 . Запишем схему (10.64) в канонической форме:

при

u j  Rhu j 1 , j  1, N ,

где  y j 1   3  hA 2   (1  hA)a  uj    ,  j  0, Rh    , u0   . y a 0  1    j 

Определим собственные значения матрицы Rh , как корни характеристического уравнения  2  (3  hA)  2  0 .

Тогда 2

1,2 

3  hA  3  hA     2 2  2 

и 1 

3  hA 1  6hA  h 2 A2 3  hA 1  6hA  h 2 A2   . , 2  2 4 2 4

1 ( h ) при h  0 стремится к 2, т.е. при малых h имеем

1 

3  1 , 2  1 , 2

поэтому схема будет неустойчивой. При любом разумном выборе норм в этом примере неустойчивость сохраняется [3, с. 141]. Заметим, что расположение спектра оператора Rh внутри круга   1  C  h не гарантирует устойчивость. В этом случае устойчи-

394

10. Элементы теории разностных схем

вость зависит от удачного выбора норм. Проиллюстрируем этот факт на следующем примере. Пример 3. Исследовать устойчивость разностной схемы решения задачи Коши для обыкновенного дифференциального уравнения второго порядка  y   f ( x ),   y (0)  a ,  y (0)  b, x  [0,1]. 

(10.65)

Аппроксимируем задачу (10.65) следующей разностной схемой:  y j 1  2 y j  y j 1  f j , j  1, N  1;  h2   y0  a; y  y 0  1  b.  h

(10.66)

Для исследования устойчивости схемы (10.66) приведём ее к канонической форме u j  Rh u j 1  h j , вводя обозначение  y j 1  uj   .  yj 

Тогда  2 1  hf j   a  hb  Rh    ,  j    , u0   . 1 0  0   a 

Решая характеристическое уравнение  2  2  1  0 ,

получим 1,2  1 . Если f j  0 , решение задачи (10.66) имеет вид y j  y0  ( y1  y0 )  j, j  0, N .

Выберем нормы в пространствах U h , Fh , Yh одним из двух нижеприведенных способов. 395

Методы приближенных вычислений

Первый способ: uj

Yh

y (h) f (h)

(2)  max u (1) , j , uj

Uh

Fh

 max u j 0 j  N

 max u0

Yh

,

, max f m .

Yh

1 m  N 1

Второй способ: uj

Yh

y (h) f (h)

(1)  u (2) j uj  max  u (1) , j h  Uh

Fh

 max u j 0 j  N

 max u0

Yh

Yh

 , 

,

, max f m . 1 m  N 1

Нетрудно убедиться [3, с. 124, 134, 142], что для обоих случаев задания норм исследование устойчивости равносильно оценке Rhj  C , j  1, 2,…, N  1 .

(10.67)

Покажем, что при выборе норм первым способом оценка (10.67) не выполняется. 1

В самом деле, пусть u0    . Тогда u0  1 .  0  j  1

В этом случае u j    и u j  j 1 .  j  Далее имеем, что u j  Rhu j 1  …  Rhj u0 .

Очевидно,

что

Rhj u0  Rhj  u0  Rhj .

С другой стороны, Rhj u0  Rh u j 1 . Тогда Rhj  Rh u j 1  j  1 , т.е. Rhj  j  1 . Очевидно, что при h  0 имеем j  1   . Что и требовалось доказать. 396

10. Элементы теории разностных схем

Докажем теперь, что при задании норм вторым способом, устойчивость имеет место.  y1   имеем  y0 

При любом u0   uj

Yh

 Rhj u0

Yh

y0  ( y1  y0 )( j  1) y0  ( y1  y0 )  j

y  y0   max  y0  ( y1  y0 )( j  1) , 1 h 

Так как j  1 

1 , то u j h

Yh

 Rhj u0

Yh

 y0 

 Yh

 . 

y1  y0  2  u0 h

Yh

.

Из последнего неравенства имеем, что Rhj  2, j  1, 2,…, N  1 .

Отметим, что на практике ограничиваются проверкой необходимого спектрального признака устойчивости и затем осуществляют численные расчеты по схеме с использованием ПЭВМ, подтверждая результаты теоретических исследований. В качестве иллюстрации приведем пример. Пример 4. Рассмотрим задачу Коши d2y  2 dx 2

с начальными условиями y (0)  1, y (0)  0, x  [0,1].

Точное решение данной задачи имеет вид y ( x)  1  x 2 .

Для численного решения поставленной задачи применим разностную схему, построенную методом конечных разностей: 397

Методы приближенных вычислений

 y j 1  2 y j  y j 1  2, j  1, N  1;  h2   y0  1; y  y 1 0  1  0 или y1  y0  1, где x j  x0  jh, j  0, N ; h  .  h N

Из разностной схемы получаем y j 1  2 y j  y j 1  2h2 , j  1, N  1; y0  1, y1  1 .

расчетные

формулы

Результаты численных расчетов для значений x j , y j приведены в табл. 10.1. Т а б л и ц а 10.1

N

xj

Точное решение y ( x j )

Численное решение y j

Абсолютная погрешность

10

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0

1 1 0,96 0,91 0,84 0,75 0,64 0,51 0,36 0,19 0 1 0,99 0,96 0,91 0,84 0,75 0,64 0,51 0,36 0,19 0

1 1 0,98 0,94 0,88 0,80 0,70 0,58 0,44 0,28 0,1 1 0,995 0,97 0,925 0,86 0,775 0,67 0,545 0,4 0,235 0,05

0 0 0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09 0,1 0 0,005 0,010 0,015 0,020 0,025 0,030 0,035 0,040 0,045 0,050

20

398

10. Элементы теории разностных схем

N

xj

Точное решение y ( x j )

40

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0

1 0,99 0,96 0,91 0,84 0,75 0,64 0,51 0,36 0,19 0

О к о н ч а н и е т а б л. 10.1 Численное Абсолютная решение y j погрешность 1 0,9925 0,9650 0,9175 0,8500 0,7625 0,6550 0,5275 0,3800 0,2125 0,0250

0 0,0025 0,0050 0,0075 0,010 0,0125 0,0150 0,0175 0,0200 0,0225 0,0250

Из приведенных результатов видно, что с уменьшением шага сетки h результаты численных расчетов приближаются к точному решению. Пример 5. Решить численно задачу Коши  y   2 y  1,   y (0)  1, x  [0, ).

Решение. Точное решение задачи имеет вид y ( x) 

1 2 x  e  1 , 2

и при стремлении x   следует, что y  0,5 . Решим численно эту задачу с помощью следующей разностной схемы: y j 1  y j 1 2h

 2 y j  1, j  1, N  1, N – задано

или  y j 1  y j 1  4hy j  2h, j  1, N  1;   y0  1;  2 h  y1  0,5e  0,5.

399

Методы приближенных вычислений

Можно показать, что при h  0 численное решение стремится к ∞. Само решение устойчиво, в чем нетрудно убедиться. Описанное явление не связано с ошибками округлений. Исследуем метод на устойчивость. Для этого запишем схему в канонической форме. Имеем  y j 1  4 hy j  y j 1  2 h, j  1, N  1;   y j  y j .

Обозначим  y j 1  0,5e 2 h  0,5  y1  uj   u u   , ,  0   0  . 1  y0     yj 

Тогда u j  Rh u j 1  h j

и  4h 1   2 Rh    ,  j   . 1 0   0

Характеристическое уравнение det Rh  E  0

имеет вид  2  4h  1  0 . Отсюда находим 1,2  2h  4h 2  1

и 1  2h  1  4h 2 ,  2  2h  1  4h 2 .

Тогда 1  1, 2  1 при фиксированном h (если h  0, 25 , то 1  0, 62;  2  1, 62 ). При h  0 имеем, что 1  2  1 . В самом деле, воспользуемся формулой 1  x  (1  x) 1 1 3     (1  x) 2 2 2

400

1

x0

1 x 1  1  (1  x) 2  2 x  0 1! x2 x x2  O( x 3 )  1    O ( x 3 ). 2! 2 8

2

10. Элементы теории разностных схем

Тогда 1  h 2  1 

h2 и 2

h2  …  1  2h  O (h 2 ), 2 h2  2  2h  1   …  1  2h  O (h 2 ). 2 1  2h  1 

При h  0 имеем 1  1, 2  1 . Если h  0 , то 1   2  1 . Схема неустойчива. Этот факт подтверждается результатами вычислений, приведенных в табл. 10.2. Результаты численных расчетов приведены в табл. 10.2 при h  0, 25 и h  0,125 ; y ( x j ) – точное значение решения, вычисленное в соответствующих узлах сетки x j . Заметим, что в табл. 10.2 значения численного решения y j , вычисленные по схеме с шагом h  0,125 , начиная со значения в точке x j  3, 25 , меняют знак с «+» на «–». Например, при x j  3,375 имеем y j  0,164401 ; при x j  3,625 находим y j  0, 636973 и т.д.; при x j  7,875 получаем y j  5 249,304800 ; при x j  8,125 вычисляем y j  8 611, 2179 . В таблицу эти значения не включены ввиду громоздкости записи. Т а б л и ц а 10.2 Значения функции в узлах

0

1,00

2,00

4,00

0,25

yj

1

0,5902

0,6314

6,1780

411,4249 –1233,2748 5346,5240

0,125

yj

1

0,5724

0,5347

2,9605

345,5932 1523,7688 6724,3261

y( x j )

1

0,5676

0,5091

0,5001

0,500001

xj h

6,50

7,25

0,500000

8,00

0,500000

401

Методы приближенных вычислений

10.4. Лабораторные задания Задание 1. Методом неопределенных коэффициентов построить разностную схему для соответствующего дифференциального уравнения (использовать предложенный шаблон). Варианты заданий

Шаблон

Вариант № 1. y   y  sin x

i 1

i 1

i

Вариант № 2. y   (2 x 2  4) y  2

i 1

i 1

i2

Вариант № 3.

y   2 y  sin x

i2

i 1

i 1

i2

Вариант № 4. y  

y 1 4 x2

i 1

i 1

i

Вариант № 5. y   y  cos x

i 1

i 1

i

Вариант № 6. y   ( x 2  0,5) y  1

i2

i 1

i

Вариант № 7. y   ( x 2  4) y  1

i 1

i

i 1

Вариант № 8. y   y  e x

i2

i 1

i

i 1

Вариант № 9. y   y  sin x

i 1

i

i2

Вариант № 10. y   ( x 2  3) y  2

402

i2

i 1

i 1

i2

10. Элементы теории разностных схем

Вариант № 11. y   ( x  4) y  2

i2

i 1

i 1

i2

Вариант № 12. y   ( x 2  1) y  e x

i 1

i 1

i2

Вариант № 13. y   4 y  x 2  ln x

i 1

i

i 1

Задание 2. 1. Оценить погрешность аппроксимации указанной ниже дифференциальной задачи данной разностной схемой. 2. Привести разностную схему к каноническому виду и исследовать её на устойчивость с помощью спектрального признака. Вариант № 1.  d 2u 2  2  1  x  u, 0  x  1;  x , 0  x  1; dx   Lu  u (0); f   2;  du (0) 1,   ,  dx

Lh u ( h )

 ui 1  2ui  ui 1  1  xi 2  ui , i  1, N  1;   ih , i  1, N  1; h2   (h)  u0 ; f   2; u  u 1.   1 0,  h

403

Методы приближенных вычислений

Вариант № 2. u   1  x 2  u , 0  x  1;  x  1, 0  x  1;   Lu  u (0); f   2; u (1), 1,    ui 1  2ui  ui 1  1  xi 2 ui , i  1, N  1;  xi  1, i  1, N  1;  h2   (h)  u0 ; f  2; u , 1.   N 

Lh u ( h )

Вариант № 3. v  xw, 0  x  1;  x 2  3 x  1, 0  x  1;   2 v  w  w  ; cos x; 2 f  Lu   1 x  1; v(0); 3,    w(0),

Lh u ( h )

 vi 1  vi  h  xi wi , i  0, N  1;  xi2  3 xi  1, i  0, N  1;   2  wi 1  wi  vi  wi ; cos xi ; (h)  f  h 1  xi2  1; v0 ; 3.    w0 ,

Вариант № 4. v   xv, 0  x  1; sin x, 0  x  1;   tgx; 2   w  (1  x )(v  w);  Lu   f  (0); v  2;  w(0), 1,

404

10. Элементы теории разностных схем

Lh u ( h )

 vi  vi 1  h  xi vi , i  1, N ; sin xi , i  1, N ;    w w tgx ;  i i 1  (1  xi2 )(vi  wi ); f ( h )   i  h 2;  v0 ; 1.  w ,  0

Вариант № 5.

Lh u ( h )

u   Au, A  const, 0  x  1; sin x, 0  x  1; Lu   f  u (0), 4,  ui 1  ui 1 ui 1  ui   Aui , i  1, N  1; ( h ) sin xi , i  1, N  1; 3 f   2h h 4. u ,  0

Вариант № 6.

Lh u ( h )

u   Au, A  const, 0  x  1; cosx, 0  x  1; Lu   f  u (0), 2,  ui 1  ui 1 ui 1  ui   Aui , i  1, N  1; ( h ) cos xi , i  1, N  1;  f    4h 2h 2. u ,  0

Вариант № 7.

Lh u ( h )

u   Au, A  const, 0  x  1;  tgx, 0  x  1; Lu   f  u (0), 1,  ui 1  ui 1 ui 1  ui   Aui , i  1, N  1; ( h )  tgxi , i  1, N  1;  f    4h 2h 1. u ,  0

405

Методы приближенных вычислений

Вариант № 8.

Lh u ( h )

u   Au, A  const, 0  x  1; cosx, 0  x  1; Lu   f  u (0), 1, u u  ui 1  ui 1 – 3 i 1 i  Aui , i  1, N  1; ( h ) cos xi , i  1, N  1; 4 f   2h h 1. u ,  0

Вариант № 9.

Lh u ( h )

u   Au, A  const, 0  x  1; sin x, 0  x  1; Lu   f  u (0), 1, u  ui 1  ui 1  ui 1 A i , i  0, N  1; ( h ) sin xi , i  0, N  1;  f   2 h 1. u ,  0

Вариант № 10.

Lh u ( h )

u  – 5u, 0  x  1;  tgx, 0  x  1; Lu   f  u (0), 1,  ui 1  ui 1 – 5ui , i  1, N  1; ( h )  tgxi , i  1, N  1;  f    2h 1. u ,  0

Вариант № 11

Lh u ( h )

406

u   xu, 0  x  1, cosx, 0  x  1; Lu   f  u (0), 3,  ui 1  ui 1  xi ui , i  1, N  1; ( h ) cos ih, i  1, N  1;  f    2h 3. u ,  0

10. Элементы теории разностных схем

Задание 3. Методом конечных разностей решить следующие краевые задачи: Вариант № 1. y  

y  2 y  1; y (0, 5)  0, 7; 2 y (1)  3 y (1)  1, 5. x

Вариант № 2. y   xy   2 y  x  0,5; y (0,5)  0,3 y (0,5)  3, y (0,9)  1.

Вариант № 3. y   xy   y  x  0,5; y (0, 7)  2 y (0, 7)  0,8, y (1, 2)  0,9.

Вариант № 4. y   2 y   y x  1; y (0,1)  1; 2 y (0,5)  y (0,5)  2.

Вариант № 5. y   2 y   xy  0, 7; y (0,5)  0, 6; y (0,8)  0,5 y (0,8)  0,9.

Вариант № 6. y   y   2 y x  x  0,5; y (1, 2)  0, 6 y (1, 2)  1; y (1,5)  3.

Вариант № 7. y   3 y   y x  2; y (0,3)  1; y (0, 6)  2 y (0, 6)  0,5.

Вариант № 8. y   3 y   y x  x  0,9; y (1,1)  1; 2 y (1, 4)  y (1, 4)  0, 4.

407

Методы приближенных вычислений

Вариант № 9. y  

y  2 y  x 2 ; y (0, 9)  2 y (0, 9)  0, 5; y (1, 2)  1. 3

Вариант № 10. y   1,5 y   xy  0, 7; 2 y (1, 2)  y (1, 2)  0,9; y (1,5)  2.

Вариант № 11. y   2 xy   y  0,5; 2 y (0, 2)  y (0, 2)  0,9; y (0,5)  1.

Литература

1. Самарский А.А. Введение в теорию разностных схем. М. : Наука, 1971. 552 с. 2. Ортега Дж., Пул У. Введение в численные методы решения дифференциальных уравнений. М. : Наука, 1986. 288 с. 3. Годунов С.К., Рябенький В.С. Разностные схемы. М. : Наука, 1977. 439 с. 4. Дьяченко В.Ф. Основные понятия вычислительной математики. М. : Наука, 1977. 126 с. 5. Рихтмайер Р.Д., Мортон К.В. Разностные методы решения краевых задач. М. : Мир, 1972. 418 с. 6. Элементы теории разностных схем : метод. указания. Томск : Изд-во ТГУ, 1992. Ч. 1. 17 с. 7. Роуч П. Вычислительная гидродинамика. М. : Мир, 1980. 616 с. 8. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1977. Т. 2. 399 с. 9. Самарский А.А., Гулин А.В. Численные методы. М. : Наука, 1989. 430 с. 10. Волков Е.А. Численные методы. М. : Наука, 1987. 248 с. 11. Точные методы решения систем линейных алгебраических уравнений : метод. указания. Томск : Изд-во ТГУ, 1990. 34 с.

408

11. Численные методы решения задачи Коши

11. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ КОШИ ДЛЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 11.1. Общие замечания Математическое моделирование многих задач механики, физики, химии и других областей науки и техники приводит к дифференциальным уравнениям, обыкновенным или в частных производных. В настоящем пособии ограничимся рассмотрением задачи Коши для обыкновенных дифференциальных уравнений (ОДУ). Простейшее ОДУ имеет вид y   f ( x, y ( x)) . (11.1) Для него может быть поставлена задача Коши: найти решение y = y(x), x   a, b , удовлетворяющее (11.1) и начальному условию y (a)  y0 .

(11.2)

Другими словами, требуется получить интегральную кривую y = y(x), проходящую через заданную точку M(a,y0). Существование и единственность решения задачи (11.1)–(11.2) следует из теоремы Коши [1]. Приведём её без доказательства. Теорема Коши. Если правая часть f ( x, y) уравнения (11.1) и её частная производная f y( x, y ) определены и непрерывны в некоторой области изменения переменных x и y , то для всякой внутренней точки ( x0 , y0 ) этой области данное уравнение имеет единственное решение, принимающее заданное значение y  y0 при x  x0 . Если речь идёт об обыкновенном дифференциальном уравнении n-го порядка ( n  1 ) F ( x, y( x), y( x),…, y ( n ) ( x))  0 ,

(11.3) 409

Методы приближённых вычислений

то его решение (интегрирование) заключается в нахождении функций y( x) , которые удовлетворяют (11.3) для всех x  [a, b] . Общее решение уравнения (11.3) имеет вид y  y ( x, c1 , c2 ,…, cn ) . (11.4) Здесь c1 , c2 ,…, cn – произвольные постоянные, выбор которых определяет частное решение уравнения (11.3). Задача Коши для уравнения n-го порядка (11.3) формулируется так: найти частное решение y  y ( x) уравнения (11.3), удовлетворяющее n начальным условиям y(a)  y10 , y(a)  y20 ,…, y ( n 1) (a)  yn 0 .

(11.5)

По заданным условиям (11.5) определяются c1 , c2 ,…, cn из (11.4). В приложениях часто встречаются системы обыкновенных дифференциальных уравнений. Например, при изучении: движения материальной точки в сопротивляющейся среде; движения трёх материальных тел, взаимодействующих между собой по закону всемирного тяготения Ньютона; свободных колебаний маятника в сопротивляющейся среде и т.д. Задача Коши для системы дифференциальных уравнений 1-го порядка y1′  f1 ( x, y1 , y2 ,…, yn ) , y2′  f 2 ( x, y1 , y2 ,…, yn ) ,

(11.6)

—————yn’  f n ( x, y1 , y2 ,…, yn )

заключается в определении функций y1 ( x), y2 ( x),…, yn ( x) , удовлетворяющих системе (11.6) и начальным условиям y1 (a)  y10 , y2 (a)  y20 ,…, yn (a)  yn 0 . (11.7) Отметим, что уравнение (11.3), разрешённое относительно y ( n ) ( x) , может быть с помощью замены y  y1 , y   y2 ,…, y ( n 1)  yn 1

410

11. Численные методы решения задачи Коши

сведено к эквивалентной системе обыкновенных дифференциальных уравнений 1-го порядка вида (11.6). Если функции f i ( x, y1 ,…, yn ) , i  1, n , из (11.6) непрерывны в области

G  x  a  , y1  yn,0  E1 ,…, yn  yn,0  En

и удовлетворяют условию Липшица по переменным y1 ,…, yn , то решение задачи (11.6), (11.7) существует и единственно в G. Все методы решения задачи Коши для ОДУ делятся на точные, приближённые и численные. Точные методы изучаются в курсах дифференциальных уравнений и позволяют выразить решение уравнения через элементарные функции или с помощью квадратур от элементарных функций. Класс задач, решение которых можно получить точными методами, сравнительно узок. При использовании приближённых методов решение задачи Коши для ОДУ определяется как предел некоторой последовательности функций. При этом каждый член последовательности выражается через элементарные функции или квадратуры от элементарных функций. К приближённым методам относятся: метод Пикара, разложения решения в обобщённый степенной ряд, метод Чаплыгина, метод Канторовича и др. [2]. Приближённые методы удобно применять тогда, когда удаётся найти явное выражение для коэффициентов ряда. Численные методы применимы к широким классам уравнений и систем уравнений. С появлением ЭВМ эти методы стали одним из основных способов решения практических задач для ОДУ. Они не дают общего решения уравнений (11.1) или (11.6) и предназначены для вычисления приближённых (а иногда точных) значений частных решений задач (11.1)–(11.2) или (11.6)–(11.7) на заранее выбранной сетке аргумента x – конечном множестве точек xi   a, b , i  1, N . В итоге искомое решение получается в виде таблицы.

Итак, пусть требуется находить значения yi  y ( xi ) , i  1, N , приближённого решения задачи (11.1)–(11.2) в узлах сетки 411

Методы приближённых вычислений

a  x0  x1  …  xN  b .

Большинство численных методов решения задачи (11.1)–(11.2) можно представить в виде [3]: ym 1  F ( ym  q , ym  q 1 ,…, ym , ym 1 ,…, ym  s ) . Здесь F – некоторая функция указанных аргументов, которая определяется выбранным методом, видом уравнения (11.1) и построенной сеткой. Определение 1. При q  0 , 0  s  1 , численные методы называют одношаговыми, а при q  1 или s  1 – многошаговыми. Одношаговые методы называют явными при s  0 , неявными при s  1 . Многошаговые методы при s  1 называют с забеганием вперёд. С примерами указанных видов методов и со способами их построения мы познакомимся в данной главе. Численные методы можно применять только к корректно поставленным задачам. Однако формальное выполнение условий корректности может оказаться недостаточным для использования численных методов. Необходимо, чтобы задача была хорошо обусловлена (устойчива) относительно входных данных. Если это условие не учитывать, то небольшие изменения начальных условий или небольшие погрешности численных методов могут сильно исказить решение. Пример 1 (плохо обусловленная задача). Рассмотрим задачу Коши [4, с. 240] y  y  x , (11.8) y (0)  1 , x   0,100 .

(11.9)

Общее решение уравнения (11.8) имеет вид y( x, c)  1  x  ce x

(11.10)

и содержит одну произвольную постоянную. Из начального условия (11.9) находим, что c  0 . Тогда y (100)  101 . Незначительно изменим начальное условие, например, пусть y (0)  1, 000001 . Постоянная c тоже изменится слегка: c  106 . Однако 412

11. Численные методы решения задачи Коши

y (100)  101  106 e100  2,7 1037

и решение сильно изменилось. В заключение отметим, что достаточно рассмотреть методы решения Коши (11.1)–(11.2), так как задача (11.6)–(11.7) может быть записана в векторной форме  y ( x)  f ( x, y ( x)),   y (a)  y0 ,

(11.11)

где y  ( y1 , y2 ,…, yn )T , f  ( f1 , f 2 ,…, f n )T , y0  ( y10 , y20 ,…, yn0 )T . Следовательно, алгоритмы решения задачи (11.11) получаются из алгоритмов для одного уравнения формальной заменой y( x) и f ( x, y) на y ( x), f ( x, y ) .

11.2. Метод Пикара Пусть на отрезке  a, b требуется найти решение y ( x) дифференциального уравнения dy  f ( x, y ) , dx

(11.12)

удовлетворяющее при x  a начальному условию y  a   y0 .

(11.13)

Будем считать, что выполнены условия существования и единственности решения задачи Коши (11.12)–(11.13). Кроме того, предположим, что функция f ( x, y) в некоторой области изменения аргументов x и y обладает необходимой гладкостью. Метод Пикара, или метод последовательных приближений Пикара, известен из курса обыкновенных дифференциальных уравнений [1]. С помощью этого метода приближённое решение задачи Коши получается в аналитическом виде как последовательность приближений ym ( x), m  1, 2,… , к решению y ( x) задачи (11.12)– (11.13) следующим образом: 413

Методы приближённых вычислений x

ym ( x)  y0   f (t , ym 1 (t ))dt , m  1, 2,…,

(11.14)

a

y0 ( x) – задано.

Если функция f ( x, y) в некотором замкнутом прямоугольнике R

 x, y 

x  a  , y  y0   удовлетворяет условию Липшица по

переменной y f ( x, y1 )  f ( x, y2 )  L y1  y2 , L  const const,,

то независимо от выбора начальной функции последовательные приближения ym ( x) сходятся к решению задачи (11.12)–(11.13) на некотором отрезке  a, a  h [5, с. 193]. Заметим также, что если f ( x, y) непрерывна в прямоугольнике R , то имеет место следующая оценка погрешности приближённого решения:  m  y ( x)  ym ( x)  M  Lm

( x  a)m 1 , (m  1)!

(11.15)

где M  max f ( x, y) , а число h определяется из условия ( x , y )R

h  min(,

 ). M

(11.16)

Покажем применение метода Пикара на следующем примере. Пример 2. Найти три последовательных приближения решения уравнения y  x  y

с начальным условием y(0)  0 .

Решение. С учётом начального условия заменим ОДУ интегральным x

y( x)   ( x  y )dx . 0

414

11. Численные методы решения задачи Коши

В качестве начального приближения выберем y0 ( x)  0 . Построим первое приближение: x

x

0

0

y1 ( x)   ( x  y0 ( x))dx ; y1 ( x)   xdx 

x2 . 2

Далее построим второе и третье приближения: x x  x2  x 2 x3 y2 ( x)   ( x  y1 ( x)dx)    x   dx   ; 2 2 6 0 0

x x  x 2 x3  x 2 x3 x 4 y3 ( x)   ( x  y2 ( x))dx    x    dx    . 2 6 2 6 24 0 0

В силу того что f ( x, y )  x  y определена и непрерывна во всей плоскости, в качестве  и  можно брать любые числа, например α = 1, β = 0,5. Тогда справедливы следующие оценки: M  max f ( x, y )  max x  y  1,5 ; ( x , y )R

( x , y )R

L  max f y( x, y )  max 1  1 , где R   x  1, y  0,5 . ( x , y )R

 0,5    0,33 .  1,5 

Отсюда из (11.16) находим h  min 1;

В результате на промежутке  0;0,33 имеет место оценка y ( x )  y3 ( x ) 

1,5 13  x 4 1 4  x 4! 16

и, следовательно, max y ( x )  y3 ( x ) 

x 0;0,33

1 (0, 33) 4  0, 00075. 16

Заметим, что оценка погрешности, полученная по приведённой формуле, часто бывает завышена. На практике, применяя метод последовательных приближений Пикара, останавливаются на таком m , для которого значения ym и ym 1 совпадают в пределах заданной точности. 415

Методы приближённых вычислений

У метода Пикара есть существенный недостаток, препятствующий его широкому применению на практике: необходимость выполнения интегрирования при осуществлении каждой итерации. Интегрирование может вызвать значительные трудности в зависимости от вида функции f ( x, y) . Метод последовательных приближений легко обобщается на случай системы обыкновенных дифференциальных уравнений вида (11.6). Тогда расчетные формулы имеют представление x

ym ( x)  y0   f (t , ym 1 (t ))dt , a  x  b ;, 0

y0 (t )  y0 , a  t  b, m  1, 2,…,

где ym  ( y1m , y2m ,…, ynm )T , ykm – k-я компонента вектора ym . Пример 3. Методом Пикара построить несколько последовательных приближений для решения системы  dy1  dx  x  y1 y2 ,   dy2  x 2  y 2 1  dx

с начальными условиями 1 y1 (0)  1, y2 (0)  . 2

Решение. Запишем данную систему в интегральной форме: x  y ( x )  1   1 0 ( x  y1 y2 )dx,   x  y ( x)  1  ( x 2  y 2 )dx. 1  2 2 0 

1 2

Используя начальные значения y10  1, y20  , находим

416

11. Численные методы решения задачи Коши x  1   y1,1  1    x   dx, 2  0  x  y  1  ( x 2  1)dx  2,1 2  0 

или  x2 1  y1,1  1   x, 2 2  3 x  y  1   x. 2,1  3

Аналогично получаем второе приближение: x  y  1   1,2 0 ( x  y1,1 y2,1 )dx,   x  y  1  ( x 2  y 2 )dx 1,1  2,2 2  0 

или

 x 2 x 4 x5 x6      , y 1 x –  1,2 4 24 30 36  2 5  y  1  x  x  1 x3  1 x 4  x .  2,2 2 2 12 8 20 Далее вычисления становятся громоздкими и их можно прекратить.

11.3. Метод разложения решения в ряд Тейлора Более широкое применение на практике получил другой аналитический метод, основанный на идее разложения в ряд решения рассматриваемой задачи Коши (11.12)–(11.13). 417

Методы приближённых вычислений

Чаще всего для этих целей используется ряд Тейлора. Приближённое решение ym  x  исходной задачи ищется в виде m

ym  x    j 0

 x  a j!

j

y j   a  , a  x  b ,

(11.17)

где   y (0) (a)  y (a)  y , 0  (1)  y (a )  y ‘(a )  f (a, y0 ),  f (a, y0 ) f (a, y0 )  y (2) (a )  y »(a)   f ( a, y0 ),  x y    2 f (a, y0 )  2 f (a, y0 ) (3) (11.18)  2 ( , )  f a y  y (a)  y »'(a )  0 x 2 x 2  2 f (a, y0 )  f (a, y0 ) f (a, y0 )   f (a, y0 ) 2    f ( a, y0 ) ,  f ( a, y0 )   2  x   y y  y                                        m 1 m 1  y ( m ) (a)  Fm  f , f x , f y , f xx , f xy , f yy ,…,  f ,…,  f  .  x m 1 y m 1  x  a, y  y 0 

Отметим, что для производной m-го порядка конкретный вид многочлена Fm не приводится из-за его громоздкости. С увеличением m возрастает сложность применения метода, связанная с вычислением производных высокого порядка от f ( x, y) . Если правая часть уравнения (11.12) в окрестности точки (a, y0 ) есть аналитическая функция своих аргументов, то при значениях x , достаточно близких к a , существует единственное решение задачи Коши (11.12)–(11.13), которое разлагается в ряд Тейлора. Тогда частичная сумма ряда (11.17) будет являться приближённым решением этой задачи. Заметим, что с увеличением расстояния x  a погрешность y ( x)  ym ( x ) , вообще говоря, возрастает по абсолютной величине.

418

11. Численные методы решения задачи Коши

Формула (11.17) становится неприменимой, если x выходит из границ области сходимости соответствующего ряда Тейлора. В этом случае предпочтительными становятся численные методы решения задачи Коши. С их помощью можно определить значения ym  y ( xm ), m  1, 2,…, N , приближённого решения в так называемых узлах сетки: a  x0  x1  x2  …  xN  b.

Достоинством численных методов является то, что их сходимость не зависит от длины отрезка [a, b] . Аналогично метод разложения решения в ряд Тейлора применяется для решения систем обыкновенных дифференциальных уравнений. Проиллюстрируем применение этого метода к задаче Коши для ОДУ второго порядка [5]. Пример 4. Найти первые шесть членов разложения в ряд Тейлора решения y  y ( x) уравнения y   0,1( y )2  (1  0,1x) y  0

с начальными условиями y (0)  1, y (0)  2. Решение. Будем искать решение в виде (11.17): y ( x )  y (0) 

y (0) y (0) 2 y ( n ) (0) n x x  …  x  … . 1! 2! n!

Из начальных условий имеем y (0)  1, y (0)  2. Определим из уравнения вторую производную y  0,1( y)2  (1  0,1x) y .

Тогда y (0)  0,1  4  1 1  1, 4.

Дифференцируя по x уравнение, выразим y   0, 2 y y   0,1( xy   y )  y .

Тогда y (0)  0, 2  2  (1, 4)  0,1 1  2  1,54. 419

Методы приближённых вычислений

Далее, последовательно дифференцируя по x ещё два раза, получим y ( IV )  0, 2( y y   ( y ) 2 )  0,1( xy   2 y )  y , y (V )  0, 2( y y ( IV )  3 y y )  0,1( xy  3 y)  y.

Используя начальные условия и значения y (0), y (0) , определим y ( IV ) (0)  1, 224;, y (V ) (0)  0,1768.

Итак, искомое приближённое решение задачи Коши запишется в виде y( x)  1  2 x  0,7 x 2  0, 2567 x3  0,051x 4  0,00147 x5 .

11.4. Метод Эйлера Опишем простейший из численных методов – метод Эйлера нахождения таблицы численных значений решения y ( x) задачи Коши (11.12)–(11.13) для x  [a, b] . Существует несколько подходов получения расчетных формул этого метода [3]. Остановимся на одном из них. Область непрерывного изменения аргумента x заменяем дискретным множеством точек x j  a  jh , называемых узлами сетки, h

ba , x0  a , x N  b, h – шаг сетки. N

Численное решение задачи (11.12)–(11.13) представляет собой таблицу значений x j , y j , j  0,1,…, N ,

где y j – разностное или численное значение решения в узле x j . Запишем уравнение (11.12) при x  x j . По определению производной имеем

420

11. Численные методы решения задачи Коши

dy dx

x xj

 lim

y ( x j  h)  y ( x j ) h

h0

(11.19)

.

Отбрасывая предел в (11.19), заменим производную

dy dx

x x j

ко-

нечно-разностным отношением: dy dx

xxj

y ( x j  h)  y ( x j ) h

.

(11.20)

Подставляя (11.20) в (11.12), получим y ( x j  h)  y ( x j ) h

 f ( x j , y ( x j )), j  0,1,…, N  1,

y( x j ) – значение решения y ( x) задачи Коши в узле x j . Обозначим

через y j численное решение, удовлетворяющее разностному уравнению y j 1  y j

 f ( x j , y j ), j  0, N  1 ,

(11.21)

y j 1  y j  hf ( x j , y j ), j  0, N  1.

(11.22)

h

или Учитывая начальное условие (11.13), с помощью разностного уравнения (11.22) можно последовательно определить: y1  y0  hf ( x0 , y0 ), ( j  1), y2  y1  hf ( x1 , y1 ), ( j  2),  y N  y N 1  hf ( xN 1 , y N 1 ), ( j  N  1).

Итак, вычислительный алгоритм метода Эйлера (11.21) или (11.22) построен. Графической иллюстрацией приближённого решения, полученного по методу Эйлера, является ломаная, соединяющая последовательно точки M 0 , M 1 ,…, M N , называемая ломаной Эйлера (рис. 11.1). 421

Методы приближённых вычислений

Рис. 11.1

Точность построенного алгоритма определяется близостью y( x j ) и y j . Положим y j  y( x j )  y j

(11.23)

и оценим величину погрешности y j . Подставим (11.23) в разностное уравнение (11.21) и перепишем разностное уравнение в виде y j 1  y j h

 f ( x j , y ( x j )  y j ) 

y ( x j 1 )  y ( x j ) h

.

(11.24)

Далее пусть y( x)  C 3 [a, b]. Запишем разложение функции y( x j 1 ) в окрестности узла x j

по формуле Тейлора:

y ( x j 1 )  y ( x j  h)  y ( x j )  h

dy ( x j ) dx

h2 d 2 y( x ) , 2 dx 2

где x j  x  x j 1. В силу того что

d2y – ограниченная производная на [ a, b] , предыdx 2

дущее соотношение можно переписать в виде 422

11. Численные методы решения задачи Коши

y ( x j 1 )  y ( x j )  h

dy ( x j ) dx

 O ( h 2 )  y ( x j )  hf ( x j , y ( x j ))  O ( h 2 ).

Из этого разложения следует, что y ( x j 1 )  y ( x j ) h

 f ( x j , y ( x j ))  O ( h).

(11.25)

Сравнивая (11.25) и (11.24), нетрудно заметить, что точное решение исходной дифференциальной задачи удовлетворяет разностному уравнению (11.21) с точностью O ( h ). Далее подставим (11.25) в правую часть (11.24). В результате получим y j 1  y j h

 f ( x j , y ( x j )  y j )  f ( x j , y ( x j ))  O ( h). (11.26)

Из условий существования и единственности решения задачи (11.12)–(11.13), накладываемых на функцию f ( x, y) , справедливо неравенство f ( x j , y ( x j )  y j )  f ( x j , y ( x j ))  L y j ,

(11.27)

где L – константа Липшица. Используя (11.27), находим из (11.26) y j 1  (1  hL) y j  O ( h 2 ).

(11.28)

С помощью неравенства (11.28) можно дать оценку роста погрешности за один шаг. Получим оценку для ошибки, накопленной за N шагов: y N  O ( h 2 )  (1  hL ) y N 1  O ( h 2 )  (1  hL )O ( h 2 )   (1  hL ) y N  2  …  O ( h 2 )  (1  hL )O ( h 2 )  (1  hL ) 2 O ( h 2 )  …  (1  hL ) N 1 O ( h 2 )  (1  hL ) N y0 .

Просуммируем геометрическую прогрессию со знаменателем 1  hL в правой части неравенства. В результате придём к неравенству yN 

(1  hL) N  1 O(h 2 )  (1  hL) N y0 . (1  hL)  1

(11.29) 423

Методы приближённых вычислений

Оценим, какова величина ошибки при малых h для любого фикx

сированного x . Полагая x  Nh и учитывая, что (1  hL) N  (1  hL) h пропорциональна eLx при h  0 , получим из (11.29) y ( x)  e Lx O(h)  e Lx y0 .

(11.30)

Так как y0  y0  y0  0 , то из (11.30) при h  0 следует, что y (t )  0 . Итак, доказано, что при достаточно малом h таблица x j , y j , полученная методом Эйлера, сколь угодно точно аппроксимирует решение исходной задачи (11.12)–(11.13). Заметим, что не получен критерий – какой шаг h будет «достаточно малым» для достижения заданной точности. Установлен лишь факт сходимости приближённого решения к точному при h  0 . Порядок точности метода Эйлера – минимальный, y( x j )  y j  O(h) . Очевидно, что это объясняется достаточно грубым способом аппроксимации дифференциального уравнения разностным. Качество аппроксимации оценивается по точности, с которой решение исходной задачи удовлетворяет разностному уравнению. Сравнение (11.21) и (11.25) показывает, что в этом случае аппроксимация имеет порядок O ( h) . Заметим, что если вместо (11.21) использовать (11.22), то порядок аппроксимации будет O(h2 ) за счёт другой нормировки разностного уравнения (умножения его на h ). Будем использовать так называемую естественную нормировку разностного уравнения, при которой оно в пределе переходит в другое дифференциальное уравнение. Например, (11.21) (точнее, (11.25)) при h  0 переходит в (11.12), в то время как (11.22) – в равенство y  y , которое никак не отражает особенностей исходной задачи. Для того чтобы судить о достигнутой точности вычислений, необходимо провести расчеты с различными шагами сетки h и 424

11. Численные методы решения задачи Коши

сравнить результаты. С этой точки зрения более удобны методы высокого порядка точности. Примером такого метода является метод Хьюна [3]. Метод Хьюна отличается от метода Эйлера (11.21) видом аппроксимации правой части: y j 1  y j h

1  f ( x j , y j )  f ( x j 1 , y j 1 )  . 2

(11.31)

Оценим порядок, с которым разностное уравнение (11.31) аппроксимирует дифференциальное уравнение (11.12). Подставим в (11.31) вместо y j и y j 1 значения точного решения задачи (11.12)– (11.13) – y( x j ) и y( x j 1 ) . Используя разложения 2 h2 d y( x j ) y ( x j 1 )  y ( x j )  h   O (h 3 ), dx 2 dx 2  df  f ( x j 1 , y ( x j 1 ))  f ( x j , y ( x j ))  h    O ( h 2 ),  dx  x j

dy ( x j )

получим следующее соотношение:  dy h d 2 y  h df   2  f      O(h ). 2  dx 2 dx 2 dx   xj  x j

Так как y( x) удовлетворяет уравнению (11.12) и следствию из него d 2 y df  , dx 2 dx

то отсюда следует, что разностное уравнение (11.31) при y( x) удовлетворяется с точностью O(h2 ). В отличие от (11.21) разностная схема (11.31) не позволяет явно выразить y j 1 через y j . Схема Хьюна является неявной ( s  1 ). Чтобы решить разностное уравнение, надо применить тот или иной итерационный процесс, используя в качестве начального приближения y j . Однако это связано с затратами времени в зависимости от вида f ( x, y) . 425

Методы приближённых вычислений

Можно ограничиться двумя итерациями следующего вида: сначала вычисляют первое приближение y j 1 по формуле Эйлера: y j 1  y j  hf ( x j , y j ) ,

(11.32)

а затем, подставляя его в правую часть (11.31), находят значение y j 1 : y j 1  y j 

h  f ( x j , y j )  f ( x j 1 , y j 1 )  . 2

(11.33)

Фактически это означает, что вместо (11.31) используется следующее разностное уравнение: y j 1  y j h

1  f ( x j , y j )  f ( x j 1 , y j  hf ( x j , y j ))  . 2

(11.34)

Нетрудно убедиться, что разностное уравнение (11.34) аппроксимирует исходное (11.12) с точностью O(h2 ) и в то же время даёт явное выражение для определения y j 1 через y j . Отметим, что при проведении расчетов по формулам (11.32) и (11.33), можно контролировать точность получаемого решения путём сравнения значений y j 1 и y j 1 на каждом шаге вычислений. Если величина пересчёта y j 1 – y j 1 слишком велика (мала), то это является сигналом о необходимости уменьшить (увеличить) шаг сетки h . Меняя h в соответствии с указанным правилом, можно поддерживать точность вычислений на определённом уровне. Проиллюстрируем применение метода Эйлера на примере следующей задачи. Пример 5. С помощью метода Эйлера составить таблицу значений решения задачи Коши для ОДУ первого порядка dy  xy , y (0)  1, x  [0,1]. dx

Решение. Очевидно, что точное решение имеет вид x2

y ( x)  e 2 .

426

11. Численные методы решения задачи Коши

Пусть h  0,1 и рассматривается равномерная сетка 1  wh   x j | x j  jh, j  0, N ; N   . h 

Пользуясь формулой (11.22), будем последовательно получать y1 ,…, y10 . Все вычисления представлены в табл. 11.1. Т а б л и ц а 11.1

J

xj

yj

hf ( x j , y j )

0 1 2 3 4 5 6 7 8 9 10

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1

1 1 1,01 1,0302 1,06111 1,10355 1,15873 1,22825 1,31423 1,41937 1,54711

0 0,01 0,0202 0,03091 0,04244 0,05518 0,06952 0,08598 0,10514 0,12774

Точное решение

y( x j )  e

x 2j / 2

1 1,00501 1,02020 1,04603 1,08329 1,13315 1,19722 1,27762 1,37713 1,49930 1,64872

Из приведённой таблицы видно, что абсолютная и относительная погрешности, допущенные при нахождении решения, возрастают к концу таблицы. Например, в точке x5 абсолютная погрешность Ax*  1,10355 – 1,13315  0,0296, 5

а относительная  x*  5

Ax* 5

y ( x5* )

 2, 61219% .

В точке x10  1,0 , соответственно, будем иметь Ax*  0,10161 ,  x*  6,16296% . 10

10

427

Методы приближённых вычислений

В заключение отметим, что методы Эйлера и Хьюна легко обобщаются на случай системы ОДУ [3]. Например, метод Эйлера для системы N ОДУ первого порядка имеет вид  y j 1  y j  f ( x j , y j ), j  0,1,…, N  1,;  h   y (0)  y , x  [0,1], 0 

где y j  ( y1, j , y2, j ,…, yn , j )T ,

а f ( x j , y j )   f1 ( x j , y1, j , y2, j ,…, yn, j ),…, f n ( x j , y1, j , y2, j ,…, yn, j ) 

T

или с помощью обозначения f j  f ( x j , y j ) можно переписать следующим образом f j  ( f1 , f 2 ,…, f n )T .

Перепишем метод Эйлера для каждой компоненты вектора y j :  y1, j 1  y1, j  f1, j ,  h   y2, j 1  y2, j  f 2, j ,  h              yn , j 1  yn , j  f n, j , j  0, N  1,  h  y1 (0)  y1,0 , y2 (0)  y2,0 ,…, yn (0)  yn,0 .

Аналогично можно записать метод Хьюна решения задачи Коши для системы ОДУ первого порядка. Покажем применение метода Эйлера в случае решения систем ОДУ на примере. Пример 6. С помощью метода Эйлера определить численное решение задачи Коши для системы двух ОДУ: 428

11. Численные методы решения задачи Коши

 dy  dx  2 y  z ,   dz  3 z ,  dx

y (0)  2, z (0)  1, x  [0,1].

Решение. Точное решение сформулированной задачи имеет вид 2x 3x  y  e  e ,  3x  z  e .

Выберем равномерную сетку h  x j | x j  jh, j  0,10; h  0,1 и приведём результаты численного решения задачи Коши в виде табл. 11.2. Т а б л и ц а 11.2

xj

yj

zj

h(2 y j  z j )

h3 z j

y( x j )

z( x j )

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1

2 2,5 3,13 3,925 4,9297 6,20125 7,81279 9,85803 12,45712 15,76427 19,97757

1 1,3 1,69 2,197 2,8561 3,71293 4,82681 6,27485 8,1573 10,60449 13,78584

0,5 0,63 0,795 1,0047 1,27155 1,61154 2,04524 2,59909 3,30715 4,2133

0,3 0,39 0,507 0,6591 0,85683 1,11388 1,44804 1,88245 2,44719 3,18135

2 2,57126 3,31394 4,28172 5,54566 7,19997 9,36976 12,22137 15,97621 20,92938 27,47459

1 1,34986 1,82212 2,4596 3,32012 4,48169 6,04965 8,16617 11,02317 14,87973 20,08553

Сравнение численного и точного решений, значения которых в узлах сетки приведены в табл. 11.2, показывает, что абсолютная и относительная погрешности возрастают с увеличением номера узла. Например, для узла x1 : Ay*  0,07126;, Az*  0,04986;, 1

1

 y*  2,7714%;,  z*  3,69372%; 1

1

429

Методы приближённых вычислений

для узла x5 : Ay*  0,99872;, Az*  0,76876;, 5

5

 y*  13,87117%;,  z*  17,15335%; 5

5

для узла x10 : Ay*  7, 49702;, Az*  6, 29969;, 10

10

 y*  27, 2871%;,  z*  31,36432%. 10

10

Для улучшения результатов численного решения задачи имеются две возможности: 1) уменьшение шага сетки; 2) применение метода более высокого порядка точности. В обоих случаях увеличивается число арифметических операций и время расчётов.

11.5. Методы Рунге–Кутты Построим одношаговые численные методы решения задачи Коши для обыкновенного дифференциального уравнения первого порядка вида y   f  x, y  , x   a , b  , y  a   y0 .

(11.35)

Считаем, что задача поставлена корректно [1]. На [ a, b] зададим равномерную сетку ba   h   xm xm  a  m  h, m  0, N , N  , h  0  шаг сетки  . h  

Затем проинтегрируем уравнение на промежутке [ xm , xm 1 ] . Получим y ( xm 1 )  y ( xm ) 

xm 1

xm

430

f (t , y (t )) dt , m  0,1, 2,…, N  1 .

(11.36)

11. Численные методы решения задачи Коши

Теперь достаточно указать эффективный способ вычисления интеграла в (11.36), чтобы получить вычислительное правило решения задачи (11.35). Так, если заменить интеграл в (11.36) по формуле левых прямоугольников, то получается классический метод Эйлера: y ( xm 1 )  y ( xm )  h  f ( xm , ym ), m  0,1,…, N  1, y0 – задано.

Если использовать формулу правых прямоугольников или трапеций, то можно получить неявные методы Эйлера и Хьюна соответственно. Существует общий способ, предложенный Рунге и Кутта, построения явных одношаговых вычислительных правил [2, с. 151– 156; 3, с. 21–32; 4, с. 246–250; 6, с. 450–459; 7, с. 218–230; 10]. Рассмотрим его. Пусть ym  y ( xm 1 )  y ( xm ) . Тогда (11.36) примет вид y m 

xm 1

f (t , y (t )) dt .

(11.37)

xm

Чтобы перейти к промежутку интегрирования [0,1] , введём в (11.37) новую переменную  

t  xm . h

Тогда вместо (11.37) получим 1

ym  h   f ( xm    h, y ( xm    h))d  .

(11.38)

0

Задаем три группы параметров: () : 1 , 2 ,…, q ; 1,0 ;  2,0 , 2,1 ; () :  ………………  q ,0 , q ,1 ,…, q , q 1 ; 

431

Методы приближённых вычислений

( A) : A0 , A1 ,…, Aq .

С помощью ( ) и () определим величины k0  h  f ( xm , ym ) ,

k1  h  f ( xm  1  h, ym  1,0  k0 ) ,

——————————————————-kq  h  f ( xm  q  h, ym  q ,0  k0  …  q , q 1  kq 1 ) . Все они могут быть последовательно вычислены, если параметры 1 ,  2 ,…,  q , 1,0 , 2,0 , 2,1 ,…, q , q 1 известны. Величины ki  h  f ( xm  i  h, ym  i ,0  k0  i ,1  k1  …  i ,i 1  ki 1 ), i  1, q,

можно рассматривать как приближённые значения подынтегральной функции f ( xm    h, y ( xm    h)) , умноженные на h , если соответствующим образом подобрать параметры () . Тогда при помощи набора ( A) составим линейную комбинацию

q

 A k i 0

i

i

, которой

придадим смысл квадратурной суммы, полагая ym 

q

A i0

i

 ki .

(11.39)

Численный метод общего вида (11.39) для решения задачи (11.35) фактически построен. Осталось обсудить способ выбора параметров ( ) , () , ( A) . Для этих целей введём в рассмотрение погрешность приближённого равенства (11.39): q

rq (h)  ym   Ai  ki .

(11.40)

i 0

Допустим, что функция f ( x, y ( x )) обладает достаточной гладкостью. Тогда для погрешности rq (h) будет справедливо разложение

432

11. Численные методы решения задачи Коши

h j ( j) h p 1 ( p 1) rq (0)  rq (h) , ( p  1)! j 0 j ! p

rq (h)  

(11.41)

где 0    1 . Из формулы (11.41) вытекает следующее: если параметры ( ) , () , ( A) подобраны так, что справедливо rq ( j ) (0)  0 , j  0, p ,

(11.42)

то погрешность приближённого равенства (11.39) будет величиной порядка не ниже h p 1 , т.е. rq (h) 

h p 1 ( p 1) rq (h), 0    1 . ( p  1)!

Число p из равенства (11.42) называют порядком точности соответствующего численного метода. Из проведённых выше рассуждений следуют два эквивалентных приёма получения параметров ( ) , () , ( A) . 1. Величины rq ( j ) (0)  0 , j  0, p , записывают через f ( x, y ( x )) и её частные производные и требуют выполнения rq ( j ) (0)  0 , j  0, p , для любой достаточно гладкой f ( x, y ( x )) и при возможно большем p .

2. Эквивалентен первому. Параметры ( ) , () , ( A) подбирают так, чтобы разложения ym  y ( xm  h )  y ( xm )  hy ( xm ) 

h2 y ( xm )  … и 2

q

 A k i 0

i

i

по степеням h совпадали до членов с наиболее высокими степенями h . Обсуждать указанные приёмы построения вычислительных правил в общем случае трудно. Ограничимся рассмотрением конкретных примеров при q  0,1, 2,3 . 1. Метод первого порядка точности ( q  0 ). При q  0 из (11.39) имеем 433

Методы приближённых вычислений

ym  A0  k0 ,

(11.43)

где k0  hf ( xm , ym ) . Согласно формуле (11.40) погрешность в этом случае имеет вид r0 (h)  y ( xm  h)  y ( xm )  hA0 f ( xm , ym ) . Для определения значения A0 воспользуемся первым приёмом и вычислим r0, r0 ,… . Получим r0(h)  y ( xm  h)  A0 f ( xm , ym ) , r0(h)  y ( xm  h) .

Так как r0( h) не зависит от A0 , то не имеет смысла вычислять r0, r0 ,… . Ясно, что можно лишь требовать r0(0)  0 . Тогда p  1 и A0 определяется из соотношения f ( xm , ym )(1  A0 )  0 .

Следовательно, A0  1 . Из (11.43) получаем численный метод первого порядка точности для решения задачи (11.35). Согласно формуле (11.41) локальная погрешность построенного правила имеет вид r0 ( h) 

h2 h2 r0(h)  y ( xm  h), 0    1 . 2! 2!

Итак, в случае q  0 способ Рунге–Кутты построения одношаговых вычислительных правил решения задачи Коши приводит к явному методу Эйлера. 2. Метод второго порядка точности ( q  1 ). При q  1 имеем приближённое равенство ym  hA0 f ( xm , ym )  hA1 f ( xm  1h, ym  h1,0 f ( xm , ym )) . (11.44) Для определения параметров A0 , A1 , 1 , 1,0 воспользуемся вторым приёмом и разложим ym и иметь 434

1

 A k i 0

i

i

в ряд по степеням h . Будем

11. Численные методы решения задачи Коши

ym  hy ( xm ) 

h2 h3 y ( xm )  y ( xm )  … 2 3!

или ym  hf ( xm , ym ) 

h2  f x  f y f   ( xm , ym ) 2 

(11.45) 

3

h  f xx  2 f xy f  f yy f 2  f y ( f x  f y f )   O(h 4 ). ( xm , ym ) 3! 

Аналогично A0 k0  A1k1  A0 hf ( xm , ym )  A1hf ( xm , ym )   h 2 A1 ( f x 1  f y 1,0 f )( xm , ym )  

(11.46)

h3 A1 ( f xx 12  f xy 11,0 f  f yx 11,0 f  f yy 1,0 2 f 2 )( xm , ym )  O( h 4 ). 2

Сравниваем в (11.45) и (11.46) коэффициенты при h и h 2 . Получим следующие соотношения:   A0  A1  1,  1   A11  , 2  1   A11,0  2 .

(11.47)

При q  1 за счёт выбора A0 , A1 , 1 , 1,0 не удаётся добиться совпадения всех членов с h 3 в разложениях (11.45), (11.46). Следовательно, локальная погрешность любого построенного правила при q  1 есть O(h3 ) , а сам метод будет второго порядка точности. Из системы (11.47) находим 1  1,0 

1 , 2 A1

A0  1  A1 .

(11.48)

Получается, что A1 можно задавать числом, не равным нулю. Возможны следующие случаи. 435

Методы приближённых вычислений

Случай 1. Пусть A1 

1 1 . Тогда A0  , 1  1,0  1 и 2 2 ym 

(k0  k1 ) , 2

(11.49)

причём k0  hf ( xm , ym ), k1  hf ( xm  h, ym  k0 ) , а локальная погрешность имеет вид r1 ( h) 

h3 6

1   2 ,  f y  f x  f y f   2  f xx  2 f xy f  f f yy     ( xm , y ( xm )) (11.50) xm  xm  xm 1 .

Вычислительное правило (11.49) называют методом Хьюна – это аналог квадратурной формулы трапеций. Случай 2. Положим A1  1 . Тогда A0  0, 1  1,0 

h 2

1 и ym  k1 , 2

где k0  hf ( xm , ym ), k1  hf  xm  , ym  

k0 2

 . 

Получили вычислительное правило, аналогичное квадратурной формуле средних прямоугольников. Случай 3. Пусть A1 

3 . 4

Тогда A0 

(k  3k1 ) 1 2 , , 1  1,0  и ym  0 4 4 3

где k0  hf ( xm , ym ), k1  hf  xm  

2k  2h , ym  0  . В этом случае локаль3 3 

ная погрешность имеет представление r1 ( h) 

436

h3  f y  f x  f y f   ( xm , y ( xm )) . 6 

11. Численные методы решения задачи Коши

Общая схема построения вычислительных правил третьего и более высокого порядка точности остается прежней, однако выкладки становятся громоздкими. Так, например, при выводе методов третьего порядка точности ( q  2 ) для определения параметров метода получается 6 уравнений на 8 неизвестных, а в случае методов четвёртого порядка ( q  3 ) – 11 уравнений на 13 неизвестных. Другими словами, при q  2 для определения неизвестных параметров получаются системы, в которых число уравнений меньше числа неизвестных. Такие системы имеют бесконечное множество решений. Из них выбирают решения, которые приводят к наиболее простым (экономичным) алгоритмам методов РунгеКутты. Приведём без вывода примеры подобных методов [7, с. 224–230; 8, с. 294–304]. 3. Методы третьего порядка точности ( q  2 ). Случай 1. y m 

1  k0  4k1  k 2  , 6

где k  h  k0  hf ( xm , ym ), k1  hf  xm  , ym  0  , 2 2  k 2  hf  xm  h, ym  k0  2k1  .

Случай 2. y m 

1  k0  3k2  , 4

где k  h  k0  hf ( xm , ym ), k1  hf  xm  , ym  0  , 3 3  2 2   k2  hf  xm  h, ym  k1  . 3 3  

437

Методы приближённых вычислений

Случай 3. ym 

1  2 k0  3k1  4k 2  , 9

где k  h  k0  hf ( xm , ym ), k1  hf  xm  , ym  0  , 2 2.   3 3   k2  hf  xm  h, ym  k1  . 4 4   4. Методы четвёртого порядка точности ( q  3 ).

Случай 1. y m 

1  k0  2k1  2k 2  k3  , 6

(11.51)

где k  h  k0  hf ( xm , ym ), k1  hf  xm  , ym  0  , 2 2  k  h  k2  hf  xm  , ym  1  , k3  hf  xm  h, ym  k2  . 2 2 

Это одна из самых распространённых формул Рунге–Кутты, используемых в практических расчетах. Случай 2. y m 

1  k0  3k1  3k2  k3  , 8

где k h  k0  hf ( xm , ym ), k1  hf  xm  , ym  0 3 3  k 2h   k2  hf  xm  , ym  0  k1  , 3 2  

 , 

k3  hf  xm  h, ym  k0  k1  k2  .

Представленные формулы можно считать аналогом квадратурной формулы Симпсона. 438

11. Численные методы решения задачи Коши

Случай 3. ym 

1  k 0  4 k 2  k3  , 6

где k  h  k0  hf ( xm , ym ), k1  hf  xm  , ym  0  , 4 4  k  h  k2  hf  xm  , ym  1  , 2 2  k3  hf  xm  h, ym  k0  2k1  k2  .

Как следует из вышесказанного, увеличение q на единицу позволяет поднять точность методов на порядок. Однако при q  4 повысить точность в вычислительных правилах по отношению к q  3 не удаётся. Поэтому такие формулы не находят применения. Увеличения точности методов можно достичь при q  5 . Пример правил Рунге–Кутты пятого порядка точности приведен в [3, с. 31; 9, с. 78–82]. В [9, с. 56–64] наглядно представлена геометрическая интерпретация методов Рунге–Кутты первого, второго и четвёртого порядков точности. Повышение порядка точности численных одношаговых методов Рунге–Кутты приводит к быстрому возрастанию трудоёмкости вычислений, так как на одном шаге многократно приходится вычислять значения функции f ( x, y ( x )) при разных значениях аргументов. Заметим, однако, что методы более высокого порядка точности позволяют использовать больший шаг h. Этот факт может уменьшить общие вычислительные затраты. Кроме того, методы Рунге–Кутты дают возможность использования переменного шага сетки. Так как эффективная оценка погрешности методов Рунге–Кутты затруднительна, на практике обычно на каждом шаге применяют двойной пересчёт. Суть его заключается в следующем. Исходя из точного значения y (a)  y0 , вычисляют y (a  2h) двумя способами: с шагом h и с двойным шагом h1  2h . Если полученные значения различаются в пределах 439

Методы приближённых вычислений

допустимой точности, то шаг h для данного этапа расчёта выбран правильно. Полученное с его помощью значение решения можно принять за y ( x1 ) . В противном случае шаг уменьшается в два раза. Проиллюстрируем сказанное на примере. Пример 7. Используя метод Рунге–Кутты (11.51), выбрать шаг для приближённого решения задачи Коши: y   x  y , x  [0; 0,5], y (0)  1.

Решение. Покажем начало процесса. Пусть h  0,1 . Вычислим y2  y (0, 2) с шагом h и h1  2h . Последовательно получаем при h  0,1 : k0(0)  0,1(0  1)  0,1;, k1(0)  0,1(0, 05  1  0, 05)  0,11;, 0,11   k2(0)  0,1 0, 05  1    0,1105;, 2   k3(0)  0,1(0,1  1  0,1105)  0,12105.

Отсюда y0 

1  0,1  2  0,11  2  0,1105  0,12105  и y0  0,11034 . 6

Тогда y1  y0  y0  1  0,11034  1,11034 .

Получили приближённое значение решения в точке x  0,1 . Вычислим теперь значение y 2 . Имеем k0(1)  0,1(0,1  1,11034)  0,121;, 0,121   k1(1)  0,1 0,15  1,11034    0,1321;, 2   0,1321   k2(1)  0,1 0,15  1,11034    0,1326;, 2  

440

11. Численные методы решения задачи Коши

k3(1)  0,1(0, 2  1,11034  0,1326)  0,1443;, y1  

1 (1)  k0  2k1(1)  2k2(1)  k3(1)   6

1  0,121  2  0,1321  2  0,1326  0,1443  0,13245. 6

Тогда y2  y1  y1  1,11304  0,13245  1, 24279.

Здесь y2  y (0, 2) . Получим теперь это значение с шагом h1  0, 2 . Имеем k0  0, 2(0  1)  0, 2;, k1  0, 2(0,1  1  0,1)  0, 24;,

k2  0, 2  0,1  1  0,12   0, 244;, k3  0, 2(0, 2  1  0, 244)  0, 2888.

Следовательно,

y 

1  0, 2  2  0, 24  2  0, 244  0, 2888   0, 2428 6

и

y (0, 2)  1, 2428 .

Сравнивая значение 1,2428 с полученным ранее y2  1, 24279 , находим, что они совпадают с точностью   104 . Заметим, что точное решение поставленной задачи Коши есть y( x)  2e x  x  1 . Его значение при равно x  0, 2 y(0, 2)  2e0,2  0, 2  1  2 1, 2214  1, 2  1, 2428 .

Таким образом, дальнейшие расчёты на промежутке [0;0,5] можно проводить с шагом h  0,1 . Как доказано в [7, с. 221–224], если метод Рунге–Кутты аппроксимирует исходное уравнение, то он сходится при h  0 , причём порядок точности совпадает с порядком погрешности аппроксимации. Здесь под погрешностью аппроксимации понимается выражение 

где  i 

q ym 1  ym   Ai i   m , m  0, N  1, h i 0

ki  f ( xm   i h, ym  i 0 k 0  …  i ,i 1 ki 1 ) . h

441

Методы приближённых вычислений

Все методы Рунге–Кутты обобщаются на системы обыкновенных дифференциальных уравнений. Пусть дана система дифференциальных уравнений dy  f ( x, y ), x  [a, b] , dx

(11.52)

и начальные условия y (a)  y 0 .

(11.53)

Здесь y   y1 , y2 ,…, yn  , f   f1 , f 2 ,…, f n  , y 0   y1,0 , y2,0 ,…, yn,0  . T

T

T

Выберем h  0 и построим равномерную сетку ba h   xm xm  a  mh, m  0, N , N  . h 

Поставим задачу определения значения приближённого решения y m  y ( xm ),

m  1, N ,

по формулам y m 1  y m   y m ,

m  0, N  1 ,

где  y m вычисляется, например, по следующей формуле (обобщение формулы (11.51) на случай систем дифференциальных уравнений):  ym 

k0

(m) (m) (m) (m) 1 , k 0  2 k1  2 k 2  k3 6

(m)

 h f ( xm , ym ),

(m)  k0 h k1  h f  xm  , ym   2 2  (m)  (m) k h k 2  h f  xm  , ym  1  2 2  (m)

k3

m  0, N  1.

442

(m)

 h f xm  h , y m  k 2

(m)

 ,    ,  

,

(11.54)

11. Численные методы решения задачи Коши

Итак, зная y0 , по формулам (11.54) вычисляем  y0 , а затем

находим y1  y0   y0 . Принимая x1 , y1 за исходные данные и повторяя тот же процесс, находим y2 и т.д. Подобным образом любая вычислительная схема метода Рунге–Кутты для одного уравнения переносится на систему уравнений вида (11.52), (11.53). Пример 8. Методом Рунге–Кутты получить численное решение уравнения колебаний маятника в сопротивляющейся среде [2, с. 122]: d 2 d  0, 2  10sin   0 , t   0;0, 4 , 2 dt dt

(11.55)

при начальных условиях (0)  0,3;, d (0)  0. dt

(11.56)

Здесь (t ) – угол отклонения маятника, t – время. Решение. Положим z 

d . Тогда уравнение (11.55) может быть dt

представлено в виде системы d  dt  z ,   dz  0, 2 z  10 sin .  dt

Начальные условия (11.56) перепишутся так: (0)  0,3.   z (0)  0.

Пусть y  (, z )T , f  ( f1 , f 2 )T , f1  z, f 2  0, 2 z  10sin  . Тогда имеем d y  f (t , y (t )), t  [0;0, 4],   dt  y  (0, 3; 0)T .  0

(11.57)

443

Методы приближённых вычислений

Положим h  t  0,1 и поставим задачу определения приближенных значений (t ) в точках 0,1;0, 2;0,3;0, 4 с помощью формул (11.54). Для решения поставленной задачи была составлена программа на языке программирования высокого уровня (ЯПВУ), результаты работы которой представлены в табл. 11.3. В основу программы положен следующий алгоритм: 1) по исходным данным (0)  0,3; z (0)  0 сначала вычислялись  k (0)  ,   i(0)  с помощью соответствующих формул из (11.54),  ki , z  i  0,1, 2,3; ki

(0)

2) по

формулам

 

1 (0)  k0,  2k1,(0)  2k2,(0)  k3,(0)  , 6

1 (0)  k0, z  2k1,(0)z  2k2,(0)z  k3,(0)z  , определялись приращения для  и z ; 6 3) за значения z (0,1); (0,1) принимались соответственно значе-

z 

ния z (0)  z , (0)   ; 4) полученные в точке t  0,1 значения принимались за исходные данные и по ним вычислялись ki(1) , затем новые значения z ,  и т.д. до тех пор, пока не получились значения решения в точке t  0, 4 . Т а б л и ц а 11.3

t

z

z



0 0,1 0,2 0,3 0,4

0,3 0,28544 0,24352 0,17876 0,09783

0 –0,28792 –0,54295 –0,74113 –0,86376

–0,28792 –0,25503 –0,19818 –0,12263 –

–0,01456 –0,04192 –0,06476 –0,08093 –

Из табл. 11.3 видно, что значения угла отклонения (t ) маятника в сопротивляющейся среде с течением времени убывают, что соответствует физике рассматриваемого процесса. 444

11. Численные методы решения задачи Коши

С другими примерами численного решения задачи Коши в случае одного ОДУ, систем ОДУ первого порядка, дифференциального уравнения и систем дифференциальных уравнений высших порядков с применением методов Рунге–Кутты можно ознакомиться в [10, с. 133–149].

11.6. Многошаговые методы решения задачи Коши В одношаговых методах решения задачи Коши для одного уравнения y   f  x, y  , x   a, b , y  a   y0 ,

(11.58)

которую считаем корректно поставленной (см. [1]), значение ym 1 зависит только от информации о решении в предыдущей точке сетки xm , m  0,1, . Вполне вероятно, что можно добиться повышения точности, если использовать информацию о решении в нескольких предыдущих точках сетки xm , xm 1 , xm 2 ,… . Иногда оказывается целесообразным привлекать информацию с забеганием вперед за точку xm 1 . Подобные методы, поименованные ранее в многошаговые, могут быть получены несколькими способами [2, с. 156–163; 3, с. 72–93; 4, с. 250– 253; 6, с. 466–471; 7, с. 230–247; 8, с. 327–336; 9, с. 94–130]. Так как использование многошаговых методов на неравномерных сетках усложняется, ограничимся случаем равномерной сетки ba  h   xm xm  a  mh, m  0, N , N  . h  

Как и в случае одношаговых методов, проинтегрируем уравнение из (11.58) на одном шаге и сделаем замену переменных. Получим 1

y  xm  h   y  xm   h  f  xm   h, y  xm   h   d ,

(11.59)

0

где  

t  xm , xm  h , m  0, N  1 . h

445

Методы приближённых вычислений

На основании формулы (11.59) будем строить многошаговые численные методы. По введенной в [3] классификации для многошаговых методов справедлива формула ym 1  F  ym  q , ym  q 1 , , ym , ym 1 , , ym  S  ,

где принимают q  1 и S  0 , или S  1 , или S  1 . Воспользуемся этим фактом и заменим интеграл в (11.59) квадратурной суммой q

 A f x

i  S

i

m

  i h, y  xm   i h   .

Тогда на основе (11.59) получим вычислительное правило q

ym 1  ym  h  Ai y   xm   i h  .

(11.60)

i  S

Формула (11.60) содержит 2  q  S  1 неизвестных параметров Ai ,  i . Для их определения потребуем, чтобы разложения q

 ym  y  xm  h   y  xm  и h  Ai y   xm   i h  в ряд по степеням h i  S

имели совпадающие коэффициенты при одинаковых степенях. Будем иметь  ym  hy   xm  

h2 h3 y   xm   y   xm    , 2! 3!

(11.61)

q

h  Ai y   xm  i h   h  A S y   xm    S h   i  S

 A S 1 y   xm    S 1h     A0 y   xm   0 h     q

q

i  S

i  S

 Aq y   xm   q h    h  Ai y   xm   h 2  Ai i y   xm   

3

h 2

q

 A

i  S

Отсюда получаем 446

i

2 i

y   xm    .

(11.62)

11. Численные методы решения задачи Коши q

q

 A 1,  A i

i  S

i  S

i

i

1 , 2

q

 A

i  S

i

2 i

1 и т.д. 3

Вообще q

 A

i  S

i

j i

1 , j  0, 2  q  S  1  1 . 1 j

(11.63)

Обозначим через rm q,1S  погрешность многошаговых вычислительных правил, параметры которых находятся как решение системы (11.63). Она будет включать в себя остаточные члены разложений (11.61), (11.62) и может быть представлена так: 

1

rm(q,S1 )  h 2(q  S 1) y (2(q  S 1)) (xm +h)  2  q  S  1  1 !     (11.64)

q  1 2  q  S 1   Ai  i  , 0    1.   2  q  S  1 ! i  S 

Система (11.63) относительно Ai , i является нелинейной. Её можно линеаризовать, положив заранее i  i . Такой выбор  i оправдан тем, что речь идет о построении многошаговых правил, в которых наряду с xm могут использоваться узлы xm 1 , xm 2 ,…, а также xm 1 , xm 2 , … . Итак, если i  i , то для вычисления Ai получается СЛАУ: q

 A  i 

i  S

i

j

1 , j  0, q  S . 1 j

(11.65)

Погрешность при этом принимает вид: 

rm(q,S1 )  h q  S  2 y (q  S  2) (xm +h) 

1

  q  S  2  !

q 1 q  S 1  Ai  i   ,   q  S  1! i  S 

(11.66)

где 0    1 .

447

Методы приближённых вычислений

Заметим, что определитель системы (11.65) есть определитель Вандермонда и, следовательно, система относительно Ai имеет единственное решение. Рассмотренный метод численного интегрирования задачи Коши для ОДУ был разработан Адамсом в 1855 г. по просьбе английского баллистика Башфорта [2]. Впоследствии метод был забыт и заново открыт норвежским математиком Штёрмером. Определение 2. При S  0 вычислительные правила носят название экстраполяционных формул Адамса или явных многошаговых правил Адамса–Башфорта; при S  1 – интерполяционных формул Адамса или неявных формул Адамса–Моултона; при S  2 – формул типа Коуэлла с забеганием вперед. Приведем примеры многошаговых вычислительных правил, придавая S и q различные значения.

11.6.1. Экстраполяционные формулы (S = 0) Случай q = 0. Из системы (11.65) определяем A0  1 . На основе (11.60) получаем явную формулу Эйлера ym 1  ym  hf  xm , ym  ; m  0, N  1 ,

с погрешностью  rm 0,0 1 

h 2 2 y  xm   h  , 0    1 . 2

Случай q = 1. Теперь заданы  0  1 , 1  1 , а требуется найти A0 , A1 из системы  A0  A1  1,   1  A0   0   A1   1  2 . 3 1 Отсюда получаем A0  , A1   и двухшаговое явное вычисли2 2

тельное правило 448

11. Численные методы решения задачи Коши

h (11.67) 3 f m  f m 1  , m  1, N  1 . 2 Чтобы проводить по нему вычисления, кроме y0 следует знать y1 . ym 1  ym 

Погрешность правила (11.67) определяется из (11.66) с учетом значений  0 , 1 , A0 , A1 , q, S и имеет вид  rm1,0 1 

5 3  3 h y  xm   h  , 0    1 . 12

При других значениях q выкладки проводятся аналогично. Приведем без вывода примеры экстраполяционных формул при q  1 . Случай q  2 . Имеем A0 

23 5 4 , A1   , A2  12 12 3

и тогда ym 1  ym 

h  23 f m  16 f m 1  5 f m  2  , m  2, N  1 . 12

Погрешность приведенного правила есть  rm 2,0 1 

3 4 4 h y  xm   h  , 0    1 . 8

Очевидно, что для проведения расчетов по данному правилу требуется знать y0 , y1 , y2 – приближенные значения решения в узлах x0 , x1  x0  h , x2  x0  2h . Случай q  3 . Задаем  0  0, 1  1,  2  2, 3  3 и находим Ai , i  0,3 , как решения системы четырех линейных уравнений.

В результате получаем вычислительное правило ym 1  ym 

h  55 f m  59 f m 1  37 f m  2  9 f m 3  , m  3, N  1 , 24

погрешность которого имеет вид  rm3,0 1 

251 5  5 h y  xm   h  , 0    1 . 720

Чтобы проводить вычисления по представленному правилу, требуется задать приближенные значения решения yi в узлах xi , i  0,3 . 449

Методы приближённых вычислений

Примеры других явных экстраполяционных формул Адамса можно найти, например, в [9, с. 105–106].

11.6.2. Интерполяционные формулы (S = 1) Множество неявных формул Адамса–Моултона при заданных  i  i определяется разнообразием значений коэффициентов Ai ,

которые получаются из решения СЛАУ q

 A  i 

i 1

i

j

1 , j  0, q  1 . 1 j

(11.68)

Погрешность вычислительных правил следует из (11.66) и представима в виде rm 1   hq  3 y  q ,1

q  3

q 1 1 q2  Ai  i   . (11.69)     q  3 !  q  2  ! i 1 

 xm   h  

Очевидно, что q может принимать значения 1,0,1, . Случай q = –1. Тогда A1  1 ,  1  1 и ym 1  ym  hf m 1 , m  0, N  1 .

Получается неявное одношаговое правило Эйлера с погрешностью 1  rm 1,1   h 2 y  2  xm   h  , 0    1 . 1 2

Случай q = 0. Имеем  1  1,  0  0 , а коэффициенты A1 , A0 определяются из СЛАУ  A1  A0  1,   1  A1  2 .

Тогда A0  A1 

450

1 и 2

11. Численные методы решения задачи Коши

ym 1  ym 

h  f m  f m 1  , m  0, N  1 . 2

Построено одношаговое неявное правило Хьюна (аналог формулы трапеций) с погрешностью на одном шаге  rm 0,1 1  

1 3  3 h y  xm   h  , 0    1 . 12

Случай q = 1. Полагаем  1  1,  0  0, 1  1 , а A1 , A0 , A1 определяются как решения СЛАУ из трех уравнений   A1  A0  A1  1;,  1   A1  A1  ,; 2  1   A1  A1  3 .

Отсюда находим A1 

5 8 1 , A0  , A1   . 12 12 12

Из формулы (11.60) следует вычислительное правило ym 1  ym 

h  5 f m 1  8 f m  f m 1  , m  1, N  1 , 12

с погрешностью  rm1,1 1  

1 4  4 h y  xm   h  , 0    1 . 24

Случай q = 2. He будем подробно останавливаться на выводе правила в этом случае. Укажем окончательный результат: ym 1  ym 

h  9 f m 1  19 f m  5 f m 1  f m  2  , m  2, N  1 . 24

Погрешность имеет вид  rm 2,1 1  

19 5  5 h y  xm   h  , 0    1 . 720

Примеры неявных формул Адамса при других значениях q можно найти, например, в [9, с. 106–107]. 451

Методы приближённых вычислений

Сделаем несколько важных замечаний относительно использования формул Адамса в практических расчетах: 1. Как следует из приведенных выше выкладок, счет в явных и неявных формулах Адамса следует начинать с m  q . При этом кроме y0 требуется знать y1 , y2 ,, yq . Недостающие значения yi , i  1, q , можно получить любым одношаговым методом. Однако

желательно выбрать правило, согласованное по точности с формулами Адамса. 2. Интерполяционные формулы Адамса не дают явного выражения для ym 1 . Для проведения вычислений по ним требуется сначала задать ym0 1 – начальное значение решения в точке xm 1 . Это можно сделать по явной экстраполяционной формуле Адамса («прогноз»), а затем по неявной формуле уточнить («коррекция»). Вычислительный процесс тогда приобретает характер «предикторкорректор», причем коррекцию можно проводить не один раз, а до получения заданной точности. Рекомендуется использовать явные и неявные формулы Адамса одного порядка точности. 3. Так как при q  1 исходных данных в поставленной задаче недостаточно для корректного проведения расчетов, то формулы Адамса относят к классу некорректно поставленных задач. Однако замеченный недостаток легко исправляется с помощью одношаговых методов. 4. Формулы Адамса легко обобщаются на системы ОДУ и положены в основу стандартных программ для ЭВМ (с автоматическим выбором шага интегрирования h).

11.6.3. Многошаговые правила с забеганием вперед (S = 2) Построим многошаговое правило типа Коуэлла [3, с. 85–93] при S  2 и q  1 , воспользовавшись изложенной выше теорией. Полагая i  i , i  2, q , коэффициенты Ai из формулы (11.60) определяем как решения следующей СЛАУ: 452

11. Численные методы решения задачи Коши

 A2  A1  A0  A1  1;,  2 A2  A1  A1  1 ;,  2  1  4 A2  A1  A1  3 ;,  8 A  A  A  1 . 1 1  2 4

Из нее получаем A0 

13 1 13 1 , A1   , A1  , A2   . Следователь24 24 24 24

но, вычислительное правило типа Коуэлла с забеганием вперед имеет вид ym 1  ym 

h   f m  2  13 f m 1  13 f m  f m 1  , m  1, N  2 . 24

(11.70)

Погрешность построенного правила следует из (11.66):  rm1,2 1 

11 5  5 h y  xm   h  , 0    1 . 720

(11.71)

Очевидно, что явного выражения для значения ym 1 через известные значения не получилось. Однако в построенной формуле (11.70) используется информация о решении, которая симметрично расположена относительно отрезка  xm , xm 1  . Этот факт благоприятно сказывается на точности: в выражении погрешности коэффициент при h5 y 5  xm   h  оказался меньше по модулю, чем в формулах Адамса порядка точности O  h5  . В формуле (11.70) вы-

числяемое значение ym 1 выражается через значения ym , ym 1 и ym  2 . Чтобы использовать построенное правило в расчетах, требуется специальная организация вычислений. Она может быть, например, такой: 1) счет в формуле (11.70) начинаем с m  1 , вычислив с помощью одношаговых методов значение y1 ; 2) по экстраполяционной формуле Адамса при q  1 вычисляем 453

Методы приближённых вычислений

y2   y1  1

h  3 f1  f 0  2

с точностью O  h3  , где fi  f  xi , yi  , i  0,1 ; ( q  1 ) уточняем

3) по интерполяционной формуле Адамса значение y2   y1  2

h 1 5 f 2   8 f1  f 0 12

1 1 с точностью O  h 4  . Здесь f 2   f x2 , y2  , fi  f  xi , yi  , i  0,1 ;

4) по экстраполяционой формуле Адамса ( q  2 ) находим значение y3   y2   1

2

h 2 23 f 2   16 f1  5 f 0 12

2 2 с погрешностью O  h 4  , где f 2   f x2 , y2  ;

5) по формуле (11.70) получаем значение в точке x2 : y2  y1 

h 1 2  f3   13 f 2   13 f1  f 0 24

1 1 с погрешностью O  h5  . При этом f3   f x3 , y3  .

Заметим, что вычисления можно организовать и по-другому [3, с. 89–93]. Здесь описаны действия для получения значения решения в одной точке. Чтобы найти значения решения в других точках, требуется многократно повторить действия со 2-го по 5-й пункты.

11.6.4. Метод Милна Метод Милна [2, с. 168–181; 9, с. 109–110] прост и практически удобен при численном интегрировании задачи Коши для ОДУ первого порядка и систем таких уравнений. Проведем рассмотре454

11. Численные методы решения задачи Коши

ние метода на примере одного уравнения (11.58) в случае равномерной сетки с шагом h  0 . Будем считать, что каким-либо одношаговым методом получен начальный отрезок решения-значения y0 , y1 , y2 , y3 . Тогда известны yi , i  0,1, 2,3 . С помощью конечных разностей до третьего порядка включительно запишем первую интерполяционную формулу Ньютона [8] для производной y  . Будем иметь y   t   yk  t yk 

t  t  1 2!

 2 yk 

t  t  1 t  2  3!

 3 yk ,

(11.72)

x  xk , xk  h – подходящая точка. h Положим в (11.72) k  m  4 и почленно проинтегрируем в пределах от xm 4 до xm . Получим

где t 

xm

y dx 

xm  4

Так как t 

 t  t  1 2 t  t  1 t  2  3   ym  4   ym  4  dx .  ym  4  t ym  4  2! 3!  xm  4  xm

x  xm  4 , dx  hdt , то отсюда находим h

4 4 4 2  t t ym  ym  4  h  ym  4  dt ym  4  tdt   2 ym  4  dt  2 0 0 0 

t 3  3t 2  2t  dt   6 0  4

 3 ym  4 

(11.73)

20 8    h  4 ym  4  8ym  4   2 ym  4   3 ym  4  . 3 3  

Воспользуемся тем, что ym  4  ym  3  ym  4 ,

 ym  4  ym  2  2 ym 3  ym  4 , 2

 ym  4  ym 1  3 ym  2  3 ym 3  ym  4 . 3

Подставим эти выражения в формулу (11.73) и после преобразований получим первую формулу Милна 455

Методы приближённых вычислений

ym  ym  4 

4h  2 ym 3  ym  2  2 ym 1  , m  4,5, , N . 3

(11.74)

Здесь ym i  f  xm i , ym i  , i  1, 2,3 . На основе формулы (11.72), полагая k  m  2 , построим вторую формулу Милна, интегрируя по x обе части получившегося выражения в пределах от xm 2 до xm . Будем иметь xm

2   t2  t 2 t 3  3t 2  2t 3            ym  2  dt , y dx h y t y y m2 m2 x 0  m  2 2 6  m 2

так как t 

x  xm  2 , dx  hdt . h

После вычислений интегралов отсюда находим 1   ym  ym  2  h  2 ym  2  2ym  2   2 ym  2  . 3  

(11.75)

Так как по определению конечных разностей ym  2  ym 1  ym  2 ,  2 ym  2  ym 1  ym  2  ym  2 ym 1  ym  2 ,

то, подставляя эти соотношения в формулу (11.75), выводим вторую формулу Милна: ym  ym  2 

h  ym  2  4 ym 1  ym  , m  2,3, , N . 3

(11.76)

Оценим главные члены погрешностей m1 и m2 первой и второй формул Милна. Учтем, что в формуле (11.72) были отброшены конечные разности четвертого и более высокого порядка. Тогда 4

m  h  1

0

t  t  1 t  2  t  3 4!

 4 ym  4 dt 

4

1 28 4  h   t 4  6t 3  11t 2  6t   4 ym  4 dt  h ym  4 , 90 0 24 2

t 4  6t 3  11t 2  6t 4 h  ym  2 dt    4 ym  2 . 24 90 0

m   h  2

456

(11.77)

(11.78)

11. Численные методы решения задачи Коши

Примем, что конечная разность  4 ym постоянна на интервале длины 4h . Тогда получим m  28m  . 1

2

Формулы (11.74) и (11.76) в расчетах будем использовать вместе, предсказывая ym1 по формуле (11.74), а затем уточняя ym1 по формуле (11.76) (получается значение ym 2 ). Очевидно, что ym  ym   m  ym   28m  1

1

1

2

и ym  ym   m  . 2

2

Тогда ym   m   ym   28m  2

2

1

2

и m   2

ym   ym  . 29 1

2

(11.79)

Получена контрольная формула Милна ym   ym  1

m 

2

29

.

Можно доказать, что суммарная ошибка метода Милна есть величина порядка h 4 . В самом деле, если шаг h достаточно мал, то можно принять  4 ym IV   y   x  y  5   xm  . m h4

Из формул (11.77), (11.78) следует, что предельная абсолютная погрешность на  a, b приближенного решения ym  y  xm  , m  0, N ,

выражается формулой 457

Методы приближённых вычислений

E

h5 ba 4 M5N  h M5 , 90 90

где M 5  max y  5  x  . x a ,b 

Обсудим теперь алгоритм вычислений по формулам Милна (11.74), (11.76). Он состоит в следующем: 1) зная y0 , по какой-либо формуле для одношаговых методов находим y1 , y2 , y3 . Это может быть метод Рунге–Кутты третьего или четвертого порядка точности; 2) вычисляем ym1 , m  4,5, , по первой формуле Милна: ym   ym  4  1

4h  2 f m  3  f m  2  2 f m 1  , m  4,5, , N , 3

fi  f  xi , yi  , i  m  3, m  2, m  1 ;

3) найденное значение ym1 подставляем в исходное уравнение и находим

ym   f xm , ym   f m ; 1

1

4) по второй формуле Милна получаем ym 2 : ym   ym  2  2

h  f m  2  4 f m 1  f m  , m  4,5, , N ; 3

5) вычисляем m 

1  2 1 ym  ym  . 29

Если m   , где  – принятая точность вычислений, то полагаем

2 ym  ym  , ym  f xm , ym 

2

и переходим к следующей точке сетки. Если m   и точность не достигнута, следует уменьшить шаг h. При этом потребуется пересчитать начальные значения y1 , y2 , y3 , что можно отнести к недостаткам метода Милна. 458

11. Численные методы решения задачи Коши

Отметим, что метод Милна без особых проблем, так же как и методы Адамса, обобщается на случай задачи Коши для систем ОДУ. В самом деле, пусть речь идет о решении системы ОДУ нормального вида:

dy  f x, y  x  , x   a, b , dx  y1 

 f1  x, y1 , , yn    

y   n

 f  x, y ,  , y   1 n   n

где y     , f     . При этом поставлена задача Коши: найти решение y  y  x  , удовлетворяющее указанной системе ОДУ первого порядка и начальному условию:  y1,0     y2,0  y  a   y 0 , y 0     – задано.    yn,0     

Все многошаговые методы, рассмотренные выше для одного уравнения первого порядка, переносятся на системы ОДУ первого порядка, если в соответствующих формулах заменить y  x  и

f  x, y  на y  x  , f x, y  x  .

Так, например, явное двухшаговое вычислительное правило (11.67), предназначенное для системы ОДУ первого порядка, будет иметь вид y m 1  y m 

h 3 f m  f m 1  , m  1, N  1 ,  2

где

459

Методы приближённых вычислений

 f1  x, y1, m , , yn , m    y1, m       f1  x, y1, m , , yn , m    y2, m    y m     , f m     .    f x, y ,  , y   yn. m  n  1, m n,m           

Аналогичным образом можно записать двухшаговое неявное правило Адамса: y m 1  y m 

h 5 f m 1  8 f m  f m 1  , m  1, N  1 .  12 

В случае систем ОДУ первого порядка первая и вторая формулы Милна примут вид y m  y m4 

4h 2 f m  3  f m  2  2 f m 1 , m  4,5, , N ; 3

f m i  f xm i , y m i , i  1, 2,3 ; y m  ym2 

h f m  2  4 f m 1  f m , m  2,3, , N . 3

Пример 9. Методом Милна найти численное решение задачи Коши: y   x  y, x   0,1 , y  0   1.

Решение. Для численного решения поставленной задачи воспользуемся формулами (11.74), (11.76). Выберем h  0,1 и на  0,1 зададим равномерную сетку

h  xi xi  i  h, i  0,10, h  0,1 .

С помощью метода Рунге–Кутты четвертого порядка точности [13] построим начало таблицы: y0  1 , 460

11. Численные методы решения задачи Коши

y1  1,11034 , y2  1, 24280 , y3  1,39971 .

Дальнейшие вычисления проводим по формулам (11.74), (11.76) согласно описанному выше алгоритму: по первой формуле Милна значения предсказываем, а по второй – уточняем, требуя, чтобы  m   , где   103 ,  m 

1  2 1 ym  ym  , m  4,5, ,10 . 29

Все вычисления помещены в табл. 11.4. Т а б л и ц а 11.4 m 0

xm 0

ym 1,00000

Погрешность 0

1

0,1

1,11034

0,17 ⋅ 10–6

2

0,2

1,24280

0,37 ⋅ 10–6

3

0,3

1,39971

0,62 ⋅ 10–6

4

0,4

1,58364

0,43 ⋅ 10–6

5

0,5

1,79744

0,66 ⋅ 10–6

6

0,6

2,04423

0,50 ⋅ 10–6

7

0,7

2,32750

0,71 ⋅ 10–6

8

0,8

2,65108

0,56 ⋅ 10–6

9

0,9

3,01920

0,76 ⋅ 10–6

10

1,0

3,43656

0,62 ⋅ 10–6

В последнем столбце табл. 11.4 представлена погрешность – разность между численным и аналитическим решением – в узлах сетки, взятая по модулю. Точное решение поставленной задачи имеет вид y  x   2e x  x  1 .

461

Методы приближённых вычислений

Как следует из таблицы, погрешность не превосходит 105 , причем эта точность достигается всего за 1 итерацию. Пример 10. Экстраполяционным методом Адамса продолжить таблицу значений решения, полученного с помощью одношагового метода Рунге–Кутты при численном решении задачи Коши для следующей системы ОДУ:  w  z  cos x,;   z   w  sin x, x   0,1 ;  w  0   0, z  0   0. 

Используя интерполяционный метод Адамса, уточнить с заданной точностью  значения решения, найденные экстраполяционным методом Адамса. Решение. Рассматривается задача Коши для системы ОДУ первого порядка. Требуется найти вектор-функцию y  x  , удовлетворяющую системе ОДУ нормального вида

dy  f x, y  x  , x   a, b , dx

и начальному условию y  a   y0 ,

где y   y1 , y2 , , yn  , T

f   f1  x, y1 , y2 ,, yn  , f 2  x, y1 , y2 ,, yn  ,, f n  x, y1 , y2 ,, yn   . T

Для определения численного решения задачи Коши воспользуемся вышеприведенными формулами метода Рунге–Кутты  q  4  , явного и неявного методов Адамса  q  2  , записав их для случая системы двух ОДУ  n  2 . Выбирая шаг сетки h  0,1 , покроем промежуток  a, b    0,1 равномерной сеткой

462

11. Численные методы решения задачи Коши

h  xi xi  i  h, i  0,10, h  0,1 .

Запишем метод Рунге–Кутты для случая q  4 , n  2 : wi 1  wi  wi , wi  zi 1  zi  zi , zi 

h i  1  2i2  23i  i4  , 6 h i  1  2i2  23i  i4  , 6

где 1i  f1  xi , wi , zi  , 1i  f 2  xi , wi , zi  , h h h  h h h    i2  f1  xi  , wi  1i , zi  1i  , i2  f 2  xi  , wi  1i , zi  1i  , 2 2 2  2 2 2    h h h   i3  f1  xi  , wi  i2 , zi  i2  , 2 2 2   h h h   i3  f 2  xi  , wi  i2 , zi  i2  , 2 2 2  

i4  f1  xi  h, wi  h3i , zi  h3i  , i4  f 2  xi  h, wi  h3i , zi  h3i  ,

f1  x, w, z   z  cos x , f 2 ( x, w, z )  w  sin x.

Экстраполяционный метод Адамса (явный, случай q  2 ) имеет вид wi 1  wi  zi 1  zi 

h  23 f1,i  16 f1,i 1  5 f1,i 2  , 12

h  23 f 2,i  16 f 2,i 1  5 f 2,i  2  , i  2, N  1 , N  10 , 12

причем f k ,i  f k  xi , wi , zi  , k  1, 2 .

Погрешность метода оценивается по следующей формуле:  2,0 

r i 1 

3 4  4 h y  xi    h  , 0    1 , 8

463

Методы приближённых вычислений  2,0 

  2,0  где y   w, z  ; r i 1  r1,i2,0 1 , r2,i 1 T

T

.

Интерполяционный метод Адамса (случай q  2 ) рассматривается в виде wi 1  wi  zi 1  zi 

h  9 f1,i 1  19 f1,i  5 f1,i 1  f1,i  2  , 24

h  9 f 2,i 1  19 f 2,i  5 f 2,i 1  f 2,i 2  , i  2, N 1 , 24

а погрешность метода равна  2,2 

r i 1  

19 5  5 h y  xi    h  , 0    1 . 720

Вычисления по обеим формулам Адамса начинаются с i  q  2 , причем для проведения расчетов, кроме начального значения T y 0   w0 , z0  , требуется задать «начальный отрезок» значений y1 , y 2 . Недостающие значения y i   wi , zi  , i  1, 2 , можно определить T

с помощью любого одношагового метода. Например, воспользуемся вышеприведенным методом Рунге–Кутты  q  4  и определим значения решения для нашей системы (табл. 11.5). Т а б л и ц а 11.5

464

i

xi

wi

zi

0 1 2 3 4 5 6 7 8 9 10

0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0

0,0000000 –0,0998334 –0,1986693 –0,2955201 –0,3894182 –0,4794254 –0,5646423 –0,6442175 –0,7173559 –0,7833267 –0,8414708

0,00000000 0,00000000 0,00000001 0,00000002 0,00000004 0,00000006 0,00000009 0,00000012 0,00000016 0,00000020 0,00000025

11. Численные методы решения задачи Коши

Проверка полученных результатов на достоверность проводилась с помощью процедуры rkfixed в Mathcad 8. Результаты работы процедуры помещены в табл. 11.6. Т а б л и ц а 11.6 i 0

xi 0

wi 0

zi 0

l

0,1

–0,0998334

–1,0417183 ⋅ 10–9

2

0,2

–0,1986693

–7,6195823 ⋅ 10–9

3

0,3

–0,2955201

–1,9681726 ⋅ 10–8

4

0,4

–0,3894182

–3,7177137 ⋅ 10–8

5

0,5

–0,4794254

–6,0056861 ⋅ 10–8

6

0,6

–0,5646423

–8,8275752 ⋅ 10–8

7

0,7

–0,6442175

–1,2179476 ⋅ 10–7

8

0,8

–0,7173559

–1,6058374 ⋅ 10–7

9

0,9

–0,7833267

–2,0462483 ⋅ 10–7

10

1,0

–0,8414708

–2,5391631 ⋅ 10–7

В пределах точности   105 результаты совпадают. Выбираем «начальный отрезок» из табл. 11.5: w0  0 , z0  0 , w1  0, 0998334 , z1  0 , w2  0,1986693 , z2  0 . Воспользуемся явным методом Адамса. В результате получим решение, помещенное в табл. 11.7. Интерполяционный (неявный) метод Адамса, примененный для коррекции результатов, полученных по явному методу с начальным отрезком w0  0 , w1  0, 099833 , w2  0,198670 , w3   0, 295515 , 0

z0  0 , z1  0 , z2  0 , z3   0 0

и с точностью   0, 00001 , дает результаты за одну итерацию (табл. 11.8). 465

Методы приближённых вычислений Т а б л и ц а 11.7 i 0 1 2 3 4 5 6 7 8 9 10

xi 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0

yi 0,000000 –0,099833 –0,198669 –0,295515 –0,389404 –0,479398 –0,564598 –0,644153 –0,717268 –0,783211 –0,841323

zi 0,000000 0,000000 0,000000 0,000000 0,000001 0,000003 0,000007 0,000012 0,000020 0,000030 0,000043 Т а б л и ц а 11.8

I 0 1 2 3 4 5 6 7 8 9 10

xi 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0

yi 0,000000 –0,099833 –0,198670 –0,295521 –0,389420 –0,479427 –0,564644 –0,644220 –0,717358 –0,783329 –0,841474

zi 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000001 0,000001 0,000001 0,000001

11.6.5. Два подхода к исследованию устойчивости одношаговых и многошаговых методов Остановимся на устойчивости численных методов решения задачи Коши для одного уравнения. Рассмотрим m-шаговое семейство линейных методов m

m

j 1

j 0

yi 1    j yi 1 j  h   j f  xi 1 j , yi 1 j 

466

(11.80)

11. Численные методы решения задачи Коши

решения задачи Коши dy  f  x, y  , x   a , b  , dx y  a   y0 .,

(11.81) где i  m, m  1, . Отметим, что для решения задачи (11.81) с помощью одного из методов (11.80) необходимо задать начальные значения y0 , y1 , , ym 1 . Исследование устойчивости многошаговых методов осуществляется с помощью двух подходов. Первый – упрощенный подход, автором которого является шведский математик Дальквист, предложивший его в 50-х гг. XX в. Суть подхода состоит в том, что нелинейное разностное уравнение, которое аппроксимирует ОДУ (11.81), само, в свою очередь, аппроксимируется однородным линейным разностным уравнением с постоянными коэффициентами m

zi 1    j zi 1 j .

(11.82)

j 1

Уравнение (11.82) получается из (11.80) отбрасыванием второго слагаемого в правой части, поскольку сходимость численного метода исследуется при условии h  0 . Наличие множителя во втором слагаемом в (11.80) показывает, что это слагаемое играет незначительную роль, если функция f ограничена. Как известно [7], поведение решения zi разностного уравнения (11.82) и его свойства, в том числе аппроксимационные по отношению к ОДУ (11.81), непосредственно связаны с величинами корней характеристического уравнения  m  1 m 1    m 1   m  0 ,

(11.83)

через которые можно выразить фундаментальные решения уравнения (11.82) и такого же уравнения для ошибок [12]. Дадим важное определение. 467

Методы приближённых вычислений

Определение 3. Говорят, что метод (11.80) удовлетворяет условию корней, если все корни 1 ,  2 , ,  m характеристического уравнения (11.83) лежат внутри или на границе единичного круга комплексной плоскости, причем на границе единичного круга нет кратных корней [7, с. 234]. Разностный метод (11.80), удовлетворяющий условию корней, называется устойчивым методом. Существует определенное ограничение на порядок аппроксимации устойчивого метода. Приведем без доказательства следующую теорему [7]. Теорема 1. Пусть метод (11.80) удовлетворяет условию корней и имеет порядок аппроксимации p. Тогда p  m  1 при m нечетном и p  m  2 при m четном. Для явных m-шаговых устойчивых методов порядок аппроксимации не превосходит m. Теорема 2. Пусть метод (11.80) удовлетворяет условию корней и f y  x, y   L при a  x  b . Тогда при m h  xn  n h  b , n  m , и

всех достаточно малых h выполнена оценка

yn  y  xn   M max y j  y  x j   max k , 0 j  N 1

0 k  n  N

где  k – погрешность аппроксимации, y j  y  x j  , j  0, N  1 , – погрешности в задании начальных условий и М – константа, зависящая от L, b, и не зависящая от n. Доказательство приведено в [7, с. 245–247]. В довершение к сказанному, отметим, что если m  1 корней уравнения (11.83) по модулю меньше единицы, то метод (11.80) называется строго устойчивым или сильно устойчивым [11, 12]. С помощью данного определения можно достаточно грубо оценивать устойчивость или неустойчивость методов, так как в этом определении не учитывается второе слагаемое из (11.80). Применим введенное определение устойчивости к соответствующим одношаговым и многошаговым методам. Пример 11. Рассмотрим явный и неявный методы Эйлера: 468

11. Численные методы решения задачи Коши

y j 1  y j h y j 1  y j h

 f  x j , y j  , j  0, N  1 ;

(11.84)

 f  x j 1 , y j 1  , j  0, N  1 .

(11.85)

Для них характеристическое уравнение имеет вид  1  0 , и   1 – единственный корень характеристического уравнения. Следовательно, эти методы устойчивы по Дальквисту. Пример 12. Рассмотрим экстраполяционный и интерполяционный методы Адамса: y j 1  y j h

m

  i f  x j 1 i , y j 1 i  , j  m  1, m .

(11.86)

i 0

Характеристическое уравнение для метода Адамса имеет вид  m   m 1  0 .

Один корень этого уравнения равен 1, а остальные m  1 корней равны нулю. Следовательно, по теореме 1 метод Адамса строго устойчив по Дальквисту. Аналогичное утверждение имеет место для метода Коуэлла. Пример 13. Исследуем метод Милна четвертого порядка y j 1  y j  3 

4h  2 f j  f j 1  2 f j  2  , 3

y j 1  y j 1 

h  f j 1  4 f j  f j 1 . 3

(11.87) (11.88)

Метод двухшаговый: первый шаг (11.87) – прогноз, второй шаг (11.88) – коррекция. Первая из формул является четырехшаговой и характеристическое уравнение имеет вид 4  1  0 .

Корни этого уравнения 1,2  1 , 3,4  i . В силу двухшаговости формулы (11.88) характеристическое уравнение будет второй степени: 469

Методы приближённых вычислений

2  1  0 .

Корни его 1,2  1 . Обе формулы определяют разностный метод, устойчивый по Дальквисту, но не строго устойчивый. Второй подход исследования устойчивости численных методов обычно проводится на модельном уравнении вида y   p  y (p – параметр как вещественный, так и мнимый) и базируется на сведениях о решении линейных разностных уравнений m-го порядка с постоянными коэффициентами вида [12, с. 594–596]: y j 1  1 y j  2 y j 1    m y j 1 m . (11.89) Исследуем устойчивость метода Эйлера y j 1  y j  h  f  x j , y j  , j  0, N  1, y  a   y0

решения задачи Коши (11.81). Метод Эйлера на модельном уравнении

 f  x, y   p  y 

(11.90)

запи-

шется следующим образом: y j 1  y j  h  p  y j .

(11.91)

 j  yxj   yj ,

(11.92)

Введем обозначение где y  x j  – значение точного решения задачи (11.81) в узле x j , y j – решение, полученное методом Эйлера в том же узле.

Предположим, что y  x  и f  x, y  x   обладают достаточной гладкостью и выполнены следующие условия [12, с. 592–593]: f y  x, y  x    c1 , y   x   c2

для любого x   a, b , c1 , c2  0 – произвольные константы.

Разложим функцию y  x j 1  в точке x j по формуле Тейлора:

470

11. Численные методы решения задачи Коши

y  x j  h   y  x j   y  x j  h 

1 y     h 2 , 2

где    x j , x j 1  . Полученный результат используем в следующем соотношении:  j 1  y  x j 1   y j 1  y  x j   y   x j  h 

1 y     h 2  y j  2

(11.93)

–hf (xi , y j )   j  [f (x j , y (x j )) – f (x j , y )]  

1 y     h 2 . 2

Применим к разности функций в квадратных скобках формулу конечных приращений Лагранжа по второму аргументу и получим  j 1   j  h f y  x j , y j   j 

1 y     h 2 . 2

Так как для модельного уравнения f  x, y   p  y , то последнее соотношение перепишется следующим образом:  j 1  1  ph   j  O  h 2  , j  0, N  1, 0  0.

(11.94)

Второе слагаемое в (11.94) связано с погрешностью аппроксимации дифференциального уравнения (11.81) разностной схемой (11.90). Влиянием этого члена на устойчивость метода Эйлера можно пренебречь. Характеристическое уравнение (11.83) [12, с. 595] при m  1 имеет вид   1 . Отсюда его единственным корнем будет   1  p  h . Запишем фундаментальное решение [Там же, с. 596]:  j  1  p  h 

j

(11.95)

соответствующего однородного уравнения  j 1  1  p  h   j .

471

Методы приближённых вычислений

По аналогии с формулой (16.29) из [12, с. 596] частным решением неоднородного уравнения (11.94) будет j 

O  h2 

1  1  p  h 

Тогда ошибка, накопленная к (11.91), будет иметь вид

 O  h .

(11.96)

 j  1 -му шагу по методу Эйлера

 j  C  1  p  h   O  h  , j

(11.97)

причем C  0  O  h  , 0  y  x0   y0 . При j    j будет ограниченной величиной, если справедливо неравенство 1 p  h  1 .

(11.98)

Очевидно, что при p  0 неравенство (11.98) не будет выполняться ни при каких h  0 . Если p  0 , неравенство (11.98) запишется так: 1  p  h  1 или 1  1  p  h  1 .

Вначале рассмотрим неравенство 1  p  h  1 . Оно справедливо при любом h  0 . Далее имеем 1  1  p  h , или p  h  2 , или h 

2 2 , или h   . p p

Итак, метод Эйлера устойчив на модельном уравнении, если в этом уравнении p  0 , а шаг сетки удовлетворяет условию h

2 . p

В силу последнего неравенства метод Эйлера относится к условно устойчивым методам. Исследуем устойчивость неявного метода Эйлера (11.85). На модельном уравнении метод имеет следующий вид: y j 1  y j  h  py j 1 . (11.99) 472

11. Численные методы решения задачи Коши

Используя ранее введенное обозначение (11.92), запишем разностное уравнение, которому удовлетворяет  j :  j 1 

С учетом того что  

j 1  ph

O  h2  1  ph

(11.100)

.

1 , решение уравнения (11.100) может 1  ph

быть записано в виде O  h2 

j

 1  j  C    C   O h .  1   1  ph    ph 1 1     1  ph  j

Из последнего выражения для  j видно, что погрешность с увеличением j не будет возрастать, если будет справедливо неравенство 1 1. 1  ph

(11.101)

Неравенство (11.101) равносильно неравенству 1  ph  1

(11.102)

при условии, что 1  ph . Проведем анализ неравенства (11.101). Если p  0 , (11.101) будет справедливо при любых значениях h  0 . Это значит, что неявный метод Эйлера будет абсолютно устойчивым. Для значений p  0 погрешность  j будет ограниченной величиной при выполнении следующего неравенства: h

2 . p

В заключение сделаем важное замечание. Замечание. Вышеизложенные подходы к исследованию устойчивости численных методов для одного ОДУ легко обобщаются на случай системы ОДУ. Для этого вместо заданной системы ОДУ 473

Методы приближённых вычислений

рассматривают модельное уравнение вида y   py . Чтобы это уравнение моделировало систему ОДУ, необходимо его рассматривать при всех значениях р, являющихся собственными значениями матрицы Якоби  f  A    . y

11.7. Лабораторные задания Задание. Применяя одношаговые и многошаговые численные методы, найти решение задачи Коши для ОДУ и систем ОДУ. Вариант № 1. y  x 2  y 2 , y(0)  0, 4; x  [0,1].

Вариант № 2. y   cos( x  y ), y (0)  0, 4; x  [0,1].

Вариант № 3.  y   xy  z ,   z   y  z, y (0)  1; z (0)  0; x  [0,1].

Вариант № 4.  y  x 2  z,   z   y  z, y (0)  1; z (0)  0; x  [0,1].

474

11. Численные методы решения задачи Коши

Вариант № 5.  y   z 2  x,   z   xy , y (0)  1; z (0)  0, 5; x  [0,1].

Вариант № 6. y   e  x  y, y(0)  1; x  [0,1].

Вариант № 7. y   x  y, y(0)  1; x  [0,1].

Вариант № 8. y   y sin( x )  x, y (0)  0, 2; x  [0,1].

Вариант № 9. y   y cos( x )  x, y (0)  0,1; x  [0,1].

Вариант № 10.  y   x  y  z,   z   y  z ;, y (0)  1; z (0)  1; x  [0,1].

475

Методы приближённых вычислений

Вариант № 11.  y   xy  z ,   z   y  xz;, y (0)  0; z (0)  0, 5; x  [0,1].

Вариант № 12.  y   x 2  z,   z   y  x;, y (0)  1; z (0)  1; x  [0,1].

Вариант № 13.  y  y  z,   z   yz ;, y (0)  0, 5; z (0)  0; x  [0,1].

Вариант № 14. y   2 y  3x 2  2, y (0)  2; x  [0,1].

Вариант № 15. y  x  y x , y(0)  0, 2; x  [0,1].

476

11. Численные методы решения задачи Коши

Вариант № 16. y  1  0, 2 y sin( x)  y 2 , y(0)  0, 2; x  [0,1].

Вариант № 17.  y    xz,  y   z   x ;, y (0)  1; z (0)  0; x  [0,1].

Вариант № 18.  y   ( y  z ) x,   z   (  y  z ) x;, y (0)  1; z (0)  1; x  [0,1].

Вариант № 19. cos( x)   y    yz  x ,   z    z 2  2,5 x ;, 1  x2  y (0)  0; z (0)  0, 2; x  [0,1].

Вариант № 20.  y   z  (2 y  0, 25 z ) y ,  y  z   e  (2  2 z ) y;, y (0)  0, 5; z (0)  0, 5; x  [0,1].

477

Методы приближённых вычислений

Вариант № 21. y   x ln( y )  y ln( x ), y (1)  1; x  [1, 6].

Вариант № 22. y   e x  y, y (0)  0; x  [0, 2].

Вариант № 23. y  x  y , y (1)  0,5; x  [1, 2].

Вариант № 24.  y   z  0, 5,   z   y  x;, y (0)  0, 5; z (0)  0, 5; x  [0,1].

Вариант № 25. y   y sin( x)  y 2 , y (0)  0,5; x  [0,1].

Вариант № 26.  y   cos( y  2 z )  2,  2   z   x  6 y 2  x  1;,  y (0)  0,1; z (0)  0,5; x  [0,1].

478

11. Численные методы решения задачи Коши

Вариант № 27.  y   sin( x 2 )  y  z ,  2  z   x  y  z  1;, y (0)  0,5; z (0)  1; x  [0,1].

Вариант № 28.  y   ln(2 x  z ),  2 2  z   4 x  y ;, y (0)  1; z (0)  1; x  [0, 4].

Вариант № 29. y 

cos  x 

, 1  y2 y (0)  0; x  [0, 4].

Вариант № 30. y   e x ( y 2  1, 04), y(0)  0; x  [0,1].

Вариант № 31.  y   cos( y  2 z )  4,  2   z   x  4 y  x  1;  y (0)  0,1; z (0)  0,5; x  [0,1].

479

Методы приближённых вычислений

Вариант № 32.  y   x 2  2 y 2  z,   z   cos  2 z   x;, y (0)  0, 4; z (0)  0, 4; x  [0,1].

Вариант № 33. ( y  z )  2 x,  y   e  2  z   x  y;, y (0)  1; z (0)  1; x  [0,1].

Вариант № 34. y  y 2 ln  x  , x y (1)  2; x  [1, 2]. y  

Вариант № 35. y 

1  y tg  x  , cos  x 

y (0)  2; x  [0,1].

Вариант № 36.  y   y  x,   z    y  z ;, y (0)  0, 4; z (0)  0, 4; x  [0,1].

480

11. Численные методы решения задачи Коши

Вариант № 37.  y  y   x  sin  ,  2 y (1, 4)  1; x  [1, 4; 2, 4].

Вариант № 38.  y y   x  cos   , 2 y (1, 4)  1; x  [1, 4; 2, 4].

Вариант № 39. y 

cos  y 

 y2 , x 1 y (0)  0,5; x  [0,1].

Вариант № 40. 0, 2 y , x 1 y (0)  0,5; x  [0,1]. y   1  sin( x  y) 

Вариант № 41. 0,5 y , 0,1  x y (1)  1; x  [1, 2].

y   cos( x  y ) 

481

Методы приближённых вычислений

Вариант № 42. y 

1  y  ln  x 

, 2x y (1)  0; x  [1, 2].

Вариант № 43. y   0,3sin  x    y cos  x  , y (0)  0; x  [0,1].

Вариант № 44. y  y cos  x   sin  2 x  , y(0)  1; x  [0,1].

Вариант №45. y   y 2 ln  x   y  0, y (1)  1; x  [1, 2]. Литература

1. Тихонов А.Н., Васильева А.Б., Свешников А.Г. Дифференциальные уравнения. М. : Наука, 1985. 2. Демидович Б.П., Марон И.А., Шувалова Э.З. Численные методы анализа. М. : Наука, 1967. 368 с. 3. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1977. Т. 2. 400 с. 4. Калиткин Н.Н. Численные методы. М. : Наука, 1978. 512 с. 5. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. М. : Наука, 1972. 369 с. 6. Бахвалов Н.С. Численные методы. М. : Наука, 1973. 632 с. 7. Самарский А.А., Гулин А.В. Численные методы. М. : Наука, 1989. 432 с.

482

11. Численные методы решения задачи Коши

8. Березин И.С., Жидков Н.П. Методы вычислений. М. : ГИФМЛ, 1960. Т. 2. 620 с. 9. Арушанян О.Б., Залёткин С.Ф. Численное решение обыкновенных дифференциальных уравнений на фортране. М. : Изд-во МГУ, 1990. 336 с. 10. Ракитин В.И., Первушин В.Е. Практическое руководство по методам вычислений с приложением программ для персональных компьютеров. М. : Высшая школа, 1998. 383 с. 11. Годунов С.К., Рябенький B.C. Разностные схемы. Введение в теорию. М. : Наука, 1977. 439 с. 12. Вержбицкий В.М. Основы численных методов. М. : Высшая школа, 2002. 848 с.

483

Методы приближенных вычислений

12. ЭЛЕМЕНТЫ ТЕОРИИ ЧИСЛЕННОГО РЕШЕНИЯ СИСТЕМ ЖЕСТКИХ УРАВНЕНИЙ Жёсткие системы – сравнительно новый термин в вычислительной математике. Достаточно долго считалось, что жёсткие уравнения – это некоторые частные случаи дифференциальных уравнений. Однако впоследствии было установлено, что такие уравнения скорее правило при математическом моделировании процессов, описываемых в любой точке отрезка наблюдения убывающими функциями с большими по модулю производными и функциями с малыми по модулю производными. Одной из первых публикаций, где использовался термин «жесткие уравнения» и показана необходимость применения для их численного решения неявных методов, была работа К. Кертиса и Д. Гиршфельда [1]. От первоначального мнения о том, что задачи, описываемые жесткими уравнениями, встречаются редко, ученые пришли к выводу, что жесткие задачи возникают в самых различных прикладных областях, таких как биология, химия, физическая кинетика, теория ядерных реакторов, теория электрических цепей, экономика, теория управления, астрофизика и т.п. К методам решения жёстких систем, по мнению академика А.А. Самарского, надо отнести интегрирование уравнений с малым параметром при старшей производной. Эти методы получили развитие в работах отечественных ученых с конца 1940-х гг. [1, с. 5–6]. С появлением современных ЭВМ возрос интерес к методам численного решения жестких уравнений. Это видно из большого числа публикаций [2], об этом же свидетельствуют международные конференции по данной теме.

484

12. Элементы теории численного решения

12.1. Устойчивость и жёсткие уравнения Численное решение задач, описываемых обыкновенными дифференциальными уравнениями, непосредственно связано с проблемой устойчивости. В данной главе обсудим несколько аспектов этой проблемы. Рассмотрим характерный пример. Уравнение (12.1) y   1000 y с дополнительным условием y(0)  1

(12.2)

имеет решение y( x)  e1000 x ,

(12.3)

которое монотонно убывает при x   . При любых h  0 имеет место неравенство y ( x  h)  y ( x ) ,

означающее устойчивость решения y  x  . Пусть x   0,1 . Применим для решения задачи Коши (12.1), (12.2) явный метод Эйлера с постоянным шагом h и проанализируем распространение ошибки, допущенной в начальном данном. Пусть вычисления проводятся на равномерной сетке

h  xk | xk  k  h, k  0, N , N  1/ h

и yk – значение приближённого решения в узле xk  h . Согласно методу Эйлера [3, с. 214–216] имеем yk 1  yk + h(1000 yk ), k  0, N  1 ,

или yk 1  (1  1000h) yk , k  0, N  1 .

(12.4)

Если при вычислении y0  y (0) допущена ошибка, то для ограничения её распространения необходимо потребовать выполнения условия 485

Методы приближенных вычислений

1  1000  h  1 .

(12.5)

Отсюда следует ограничение на величину шага интегрирования h, называемое условием устойчивости метода Эйлера: h  0, 002 . Ясно, что для получения значений y1 ,…, y N приближённого решения в узлах сетки потребуется большой объём вычислительной работы. Попытка увеличить шаг интегрирования не удаётся, так как в этом случае численное решение носит неустойчивый характер. Конечно, в данной задаче не следует получать численное решение в большом числе узлов сетки  h , так как на отрезке  0,1 точное решение в основном близко к нулю. Однако описанная ситуация с ограничением на h особенно остро проявляется при решении систем обыкновенных дифференциальных уравнений: одни компоненты вектора решения могут быть близки к 0, а другие – нет. И тогда интегрирование должно продолжаться достаточно долго, чтобы все компоненты в решении были учтены. При этом шаг интегрирования должен оставаться малой величиной для обеспечения условия устойчивости численного решения. Поясним сказанное на примере задачи Коши для системы двух обыкновенных дифференциальных уравнений: y1  2  y1  998  y2 , y2  1000  y2 ,

y1 (0)  2,

y2 (0)  1, x   0,1 ,

которая может быть записана, как в векторной:  y  f ( y ),   y (0)  y0 ,

так и в матричной:  y   Ay ,   y (0)  y0 ,

форме. Здесь

486

(12.6)

12. Элементы теории численного решения

f  ( f1 , f 2 )T , y  ( y1 , y2 )T , y0  (2,1)T , f1 ( y1 , y2 )  2  y1  998  y2 , f 2 ( y1 , y2 )  1000 y2 ,

 f   2 998  A   – матрица Якоби.  y   0 1000 

Нетрудно убедиться в том, что точное решение системы (12.6) имеет вид [4, с. 50–51]: y1  e2 x  e1000 x , y2  e1000 x .

(12.7)

Очевидно, что слагаемое e 2 x убывает медленнее, чем e1000 x . Но именно быстрая компонента точного решения накладывает ограничение на величину шага численного интегрирования системы (12.6). Чтобы убедится в этом, сделаем подстановку y1  U ( x)  V ( x), y2  V ( x).

Тогда из (12.6) получим U   V   2(U  V )  998V ,  V   1000V , U (0)  1, V (0)  1. 

Отсюда следует, что система (12.6) распадается на два независимых уравнения: -1000V, U   2U , V  – (12.8)  U (0)  1,

V(0)  1.

Интерес представляет второе уравнение. Применяя для его численного решения явный метод Эйлера (12.4), получим жёсткое ограничение на шаг интегрирования: h  0, 002 . Обыкновенные дифференциальные уравнения, при численном решении которых шаг интегрирования необходимо выбирать очень малым для обеспечения устойчивости численного решения, принято называть жёсткими. 487

Методы приближенных вычислений

Итак, жесткие уравнения с трудом интегрируются общепринятыми явными численными методами. Требуются новые методы, позволяющие обходить указанные выше трудности с выбором шага h. Прежде чем излагать методы численного интегрирования жестких уравнений, введём некоторые определения.

12.2. Определение жесткой системы уравнений Рассмотрим систему ОДУ с постоянной матрицей Якоби dy  Ay dt

(12.9)

и с начальным условием y (a)  y0 ,

где y  ( y1 ,…, ym )T , A   aij  , i, j  1, m , x   a, b  , y0 – задано.

Определение 1 [3, с. 256]. Система (12.9) с постоянной матрицей Якоби А называется жесткой, если выполняются условия: 1) Re( k )  0, k  1, m ; 2) отношение S

max Re( k ) k 1, m

min Re( k )

– велико (>>1).

k 1, m

Число S называется числом жесткости системы (12.9). Поясним суть условий в определении 1. Условие 1 означает асимптотическую устойчивость системы (12.9) по Ляпунову. Второе условие не задаёт границу для S, начиная с которой систему (12.9) можно считать жесткой. В [1] и [5], например, описываются задачи, в которых число жёсткости S есть величина порядка О(10). Однако в задачах, воз488

12. Элементы теории численного решения

никающих при изучении уравнений химической кинетики, а также теории управления и электрических цепей, зачастую коэффициент S есть величина порядка О(106). Пользуясь определением 1, исследуем на жесткость систему (12.6). Собственные значения матрицы Якоби  2 998  A ,  0 1000 

очевидно, есть 1  2,  2  1000 . Тогда S 

1000  500 велико. 2

Следовательно, (12.6) – жесткая система ОДУ. Если рассматривается система ОДУ вида  dy   A( x) y ,  dx  y (a )  y0 ,

(12.10)

где x   a, b , то собственные значения  k   k ( x), k  1, m , матрицы A  x  зависят от x. В этом случае имеет место определение, приве-

дённое в [3, с. 251]. Определение 2. Система (12.10) называется жесткой на  a, b , если Re( k )  0, k  1, m для всех x   a, b и число   sup S ( x) x a ,b 

велико. С помощью определения 2 исследуем на жёсткость задачу В. Линдберга, поставленную в [5]. Пусть дана система ОДУ y1  104 (1  2e x )  y1  104 xe x  y2 , y2  104 xe x  y1  104 (1  2e x )  y2

(12.11)

с начальными условиями y1 (0)  1, y2 (0)  1.

489

Методы приближенных вычислений

Пусть x   0;0,7 . Очевидно, что (12.11) можно записать в виде (12.10), если 104 (1  2e x ) 104 xe x  T T y   y1 , y2  , y0  1,1 , A  x    . 4 x 104 (1  2e x )   10 xe

Собственные значения 1 ( x),  2  x  матрицы A  x  являются корнями характеристического уравнения det( A  E )  0

или  2  4 104 e x   108 (1  4e2 x )  108 x 2 e2 x  0.

Отсюда 1,2  2 104 e x  4 108 e2 x  108 1  4e2 x   108 x 2 e2 x .

Следовательно, 1 ( x )  2 10 4 e  x  10 4 1  x 2 e 2 x ,

а  2 ( x )  2 10 4 e  x  10 4 1  x 2 e 2 x .

Нетрудно видеть, что для любого х из [0; 0,7] 1 ( x),  2  x  – вещественны. При этом 1 ( x)  0 и монотонно возрастает (монотонно убывает по абсолютной величине) от значения 104 в точке x  0 до значения 555,3 в точке x  0, 7 . Аналогичный характер поведения имеет  2  x  , возрастающее от 3 104 при x  0 до 19308,1 в точке x  0, 7 . Тогда sup S ( x )  sup

x 0,0.7 

x 0,0.7 

max Re  k ( x ) k 1,2

min Re  k ( x )

 54.

k 1,2

Ясно, что система (12.11) является жесткой в смысле определения 2. 490

12. Элементы теории численного решения

Заметим, что системы ОДУ вида (12.9), (12.10) не исчерпывают множества встречающихся на практике задач. Так, в [1] рассматривается неоднородная система ОДУ вида dy  Ay  r ( x), x   a, b , dx y (a)  y0 .

(12.12)

Здесь r  x  – источниковый член, гладкая функция. Для систем вида (12.12) в [1, с. 19–20] сформулировано нестрогое определение жесткости. Определение 3. Задачу (12.12) можно назвать жесткой, если выполняются следующие условия: 1) существуют  k , для которых Re( k )  0; 2) существует  k умеренной величины, т.е.  k «мал» по сравнению с абсолютными величинами собственных значений матрицы А, удовлетворяющих условию 1; 3) не существует  k с «большой» положительной вещественной частью; 4) не существует  k с «большой» мнимой частью, для которого не выполняются условия Re( k )  0. Воспользовавшись определениями 1, 3, исследуем на жесткость следующую систему с постоянной матрицей А (при r  x   0 ):   d  1  y ( x),  y ( x)   1    0     y (0)  y0 .,

(12.13)

где y0 – задано, d – константа умеренной величины, например, d  1 , а   0 – мало, т.е. близко к нулю. Легко получить, что 1  d , а  2   1 .

Если, например, d  0,1 , а   0, 001 , то 1  0,1 , а  2  1000 . Тогда, по определению 1, система (12.13) – жесткая. 491

Методы приближенных вычислений

Как следует из определения 3, система (12.13) содержит две компоненты (быструю e  x /  и медленную edx ). Быстрая, или переходная, компонента, поскольку  мало, лишь на малом интервале изменения x влияет на решение, а затем становится пренебрежимо малой и решение полностью определяется edx . Не всегда удаётся определить этот малый интервал, именуемый пограничным слоем, заранее. Однако в литературе, благодаря его наличию в решении, появилось ещё одно определение жёсткости. Познакомиться с ним можно, например, в [6]. Рассмотренные определения жёсткости и примеры, несмотря на их простоту, хорошо демонстрируют суть явления жесткости, а именно: жесткость имеет место тогда, когда решение медленно меняется (имеет гладкий характер). Однако малые погрешности в нем приводят к быстро затухающим возмущениям. Как следствие сказанного, при численном решении жестких задач выбранный метод должен быть в состоянии подавить эти возмущения. Поскольку жесткие задачи встречаются во многих областях науки и техники [1], то для их решения были разработаны специальные методы. При этом потребовались некоторые новые определения устойчивости численных методов.

12.3. Специальные определения устойчивости Рассмотрение проведём на примере задачи Коши для модельного уравнения y   f ( x, y ), y ( a )  y0 ,

(12.14)

x  [ a, b], f ( x, y )   y.

Чтобы уравнение (12.14) моделировало жесткую систему ОДУ y   Ay , y ( a )  y0

или 492

12. Элементы теории численного решения

 y1′  f1  x, y1 ,…, ym  ,  ‘  y2  f 2 ( x, y1 ,…, ym ),  …………………………..  y ‘  f ( x, y ,…, y ), m m 1  m необходимо его рассматривать при всех , которые являются соб f  .  y 

ственными значениями матрицы Якоби A  

Допустим, что задача (12.14) решается каким-либо численным методом на равномерной сетке ba  h   xk | xk  a  k  h, k  0, N , N  . h  

Одношаговые и многошаговые методы численного решения задачи Коши для ОДУ можно объединить в одну общую формулу [7, с. 57]: n

yk 1    i yk 1 i  h  ( xk 1 , xk ,…, xk 1 n , yk 1, yk ,…, yk 1 n ), i 1

(12.15)

k  0, N  1.

Для одношаговых методов n  1 . Если  i  1 , а ( xk , yk )  f ( xk , yk ) , то получаем уже рассмотренный выше явный метод Эйлера yk 1  yk  h  f ( xk , yk ), k  0, N  1 , y0 – задано.

Если функция ( xk 1 , xk , yk 1 , yk ) 

1  f ( xk , yk )  f ( xk 1 , yk 1 ) , 2

(12.16)

то из формулы (12.15) выделяется неявный метод трапеций yk 1  yk 

h  f ( xk , yk )  f ( xk 1 , yk 1 ) . 2

Формула (12.15) превращается в линейный многошаговый метод, если n  1 , а функция  имеет вид 493

Методы приближенных вычислений n

( xk 1 , xk ,…, xk 1 n ; yk 1 , yk ,…, yk 1 n )   Bi f  xk 1 i , yk 1 i  . i 0

При этом

n

B i 0

i

 1 . На основе формулы (12.15) можно сформули-

ровать наиболее фундаментальное определение устойчивости численного метода [7]. Применим общий многошаговый метод (12.15) к решению модельного уравнения (12.14). Получим n

 y i

i 0

n

k 1 i

 h  Bi yk 1 i  0 i 0

или n

  i 0

i

 zBi  yk 1 i  0,

(12.17)

где  0  1, z  h – комплексный параметр, k  0, N  1, n  1 . Кроме фундаментального определения устойчивости метода (12.17), введённого выше, понадобятся более узкие определения, которые опираются на понятие области устойчивости численного метода [3, с. 253]. Определение 4. Областью устойчивости численного метода (12.15) называется множество точек комплексной плоскости z  h , для которых данный метод, примененный к уравнению y   y ,

(12.18)

является устойчивым. Поясним данное определение. Применим к решению уравнения (12.18) явный метод Эйлера. Получим yk 1  (1  z ) yk , k  0, N  1, z  h .

(12.19)

В случае комплексного z  z0  i  z1 условие устойчивости имеет вид 1  z  1, или (1  z 0 )2  z12  1 .

494

12. Элементы теории численного решения

Последнее неравенство означает, что областью устойчивости явного метода Эйлера является круг единичного радиуса с центром в точке  1, 0  . Применение к уравнению (12.18) неявного метода Эйлера yk 1  yk  hyk 1 , k  0, N  1,

приводит к соотношению yk 1 

1 yk . 1 z

(12.20)

Отсюда следует, что областью устойчивости неявного метода Эйлера является внешность круга единичного радиуса (1  z0 )2  z12  1

с центром в точке (1,0). Определение 5. Численный метод называется А-устойчивым, если область его устойчивости содержит левую полуплоскость Re z  0 . Суть сформулированного определения состоит в том, что если уравнение (12.18) асимптотически устойчиво ( Re   0 ) и его решение устойчиво, то А-устойчивый метод (12.17) является абсолютно устойчивым (устойчивым при любых h  0 ). Из предыдущих выкладок следует, что неявный метод Эйлера (12.20) относится к А-устойчивым методам, а явный метод (12.19) таковым не является. Из общего многошагового метода (12.17) можно выделить ещё один неявный одношаговый метод, если положить n  1 , 0  1 , 1  1 , B0  B1 

1 . 2

Тогда получим yk 1  yk 

h  yk 1   yk  2

(12.21)

или yk 1   yk ,

(12.22) 495

Методы приближенных вычислений

1  0.5 z , z   h . Из (12.22) следует, что   1 тогда и только 1  0.5 z тогда, когда Re z  0 . Таким образом, метод (12.21) является

где  

А-устойчивым. В [3] доказано, что среди методов вида (12.15) не существует явных А-устойчивых методов. Кроме того, в [5] утверждается, что среди неявных линейных многошаговых методов нет А-устойчивых методов, имеющих порядок точности выше второго. (Заметим, что метод (12.21) имеет второй порядок точности). По причине узости класса А-устойчивых методов было введено ещё одно определение устойчивости [5]. Определение 6. Численный метод называется А()-устойчивым, если область его устойчивости содержит угол arg( z )  , z   h .

Из определения 6 следует, что А()-устойчивость совпадает с А-устойчивостью, если    / 2 . Существуют и другие определения устойчивости численных методов. С ними можно познакомиться, например, в [5]. Построим А-устойчивый неявный метод второго порядка точности. Не претендуя на общность, воспользуемся следующим способом. Пусть речь идёт о решении задачи Коши y   f ( x, y ( x)), x   a, b  , y (a)  y0 .

(12.23)

Представим решение задачи (12.23) в виде интерполяционного многочлена Ньютона второй степени, записанного через разделённые разности: y ( x)  y0  ( x  x0 ) y ( x0 ; x 1 )  ( x  x0 )( x  x1 ) y ( x0 ; x 1 ; x 2 )  r ( x). (12.24) Здесь y( x 0 ; x 1) 

496

y( x 1 )  y( x 0 ) y( x 1 ; x 2 )  y( x 0 ; x 1 ) , y( x 0 ; x 1 ; x 2 )  x 1x 0 x 2 x 0

12. Элементы теории численного решения

есть разделенные разности соответственно первого и второго порядков, x 0 , x 1 , x 2 – произвольные узлы из  a, b , r  x    x  x0  x  x1    x  x2   y  x; x 0 ; x 1 ; x 2  – погрешность интер-

поляции. На основе (12.24) вычислим y ( x) . Будем иметь y ( x)  y ( x0 ; x1 )   2 x  x0  x1  y ( x0 ; x1 ; x2 )  r ( x) .

(12.25)

Пусть для простоты рассматриваются равноотстоящие узлы x0 , x1  x0  h, x2  x0  2h . Тогда для разделённых разностей справедливо представление y ( x0 ; x1 ) 

y ( x1 )  y( x0 ) y ( x2 )  2 y ( x1 )  y ( x0 ) , y ( x0 ; x1 ; x2 )  . (12.26) h 2h 2

Подставляя (12.26) в (12.25), получим y ( x2 ) 

y ( x1 )  y ( x0 ) 3  y ( x2 )  2 y ( x1 )  y ( x0 )    O (h 2 ) . 2h h

Так как y ( x2 )  f ( x2 , y2 ) ,

то окончательно получаем 3 1 y2  2 y1  y0  hf ( x2 , y2 ) . 2 2

(12.27)

Вообще, рассматривая узлы xn  2 , xn 1 , xn и значения решения yn  2 , yn 1 , yn в них, получим неявный численный метод второго по-

рядка точности ( n  2 ): 3 1 yn  2 yn 1  yn  2  hf ( xn , yn ) . 2 2

(12.28)

Нетрудно видеть, что (12.28) можно представить так: 2

 k 0

где 0 

k

yn  k  hf ( xn , yn ) ,

3 1 , 1  2 ,  2  . 2 2

497

Методы приближенных вычислений

Определение 7. Численный метод m

 k 0

k

yn  k  hf ( xn , yn )

(12.29)

называется чисто неявным. Данный метод является частным случаем метода (12.15), если в (12.15) обозначить n через m, k  1 – через n, i – через k и положить B0  1 , а B1  B2    Bm  0 . Отметим, что чисто неявные численные методы обладают хорошими свойствами устойчивости и могут быть применены при решении жестких систем уравнений. Обратимся к модельному уравнению (12.18) и исследуем метод (12.28) на устойчивость [3, с. 256–257]. Имеем 3 1 yn  2 yn 1  yn  2  zyn , 2 2

(12.30)

где z = λh. Допустим, что yn  q и запишем для (12.30) характеристическое уравнение n

1 3  2   z  q  2 q   0. 2 2 

(12.31)

Найдем множество G  G   точек комплексной плоскости z  z0  iz1 , для которых корни q1 ( z ) и q2 ( z ) уравнения (12.31) по модулю не больше единицы. Граница  области G содержит множество точек z, для которых q  1 . Найдем уравнение границы  . Для этого из уравнения (12.31) выразим z через q. Будем иметь z

3 1  2q 1  q 2 . 2 2

(12.32)

Если q  1 , т.е. q  ei , то из (12.32) получаем уравнение границы Г z

498

3 1  2 e i  e 2 i . 2 2

(12.33)

12. Элементы теории численного решения

Так как ei  cos   i sin  , то z  z0  iz1 имеет вещественную часть z0 

3 1  2 cos   cos 2 2 2

и мнимую z1 

1 sin 2  2 sin  . 2

Когда аргумент  меняется от 0 до 2 , точка z описывает замкнутую кривую  , которая расположена симметрично относительно оси z0 (рис. 12.1). z1 2

G

 4

0

z0

–2 Рис. 12.1

Область устойчивости G метода (12.30) расположена снаружи кривой  , так как для точек G выполняется условие q  1 . Область неустойчивости метода (12.30) составляют точки, расположенные внутри кривой  . Далее, полагая x  cos  и учитывая, что sin   1  cos 2  , получим

z

3 1  2( x  i 1  x 2 )  ( x  i 1  x 2 ) 2 2 2

499

Методы приближенных вычислений

или z  (1  x ) 2  i 1  x 2 (2  x).

Отсюда следует, что вся кривая  находится в правой полуплоскости. Тогда область устойчивости метода (12.30) содержит левую полуплоскость и по определению 5 метод (12.30) является А-устойчивым. Описанный выше приём построения чисто неявного метода второго порядка может быть использован и при построении неявных методов более высокого порядка. В численных расчётах используются подобные методы до десятого порядка точности [5]. Однако для их построения разработаны и другие алгоритмы. Прежде чем перейти к их рассмотрению, решим один пример.

12.4. Пример численного решения задачи Коши Используя А-устойчивый метод, найти численное решение задачи Коши  y1  2 y 1 998 y2 ,   y2  1000 y2 ,  y (0)  2, y (0)  1, x  0,1 .   2  1

(12.34)

Оценить точность полученных результатов. Решение. Для решения поставленной задачи Коши для жесткой системы ОДУ зададим на [0,1] равномерную сетку

h  xk | xk  kh, k  0, N , N  1/ h .

Будем вычислять y1,k , y2,k – значения решения задачи в узлах xk  h . Для этой цели воспользуемся А-устойчивым неявным методом Эйлера, согласно которому расчётные формулы для y1,k , y2,k приобретают вид  y1, k 1  y1, k  h(2 y1, k 1  998 y2, k 1 ),   y2, k 1  y2, k  h(1000 y2, k 1 ),

500

(12.35)

12. Элементы теории численного решения

где k  0, N  1; y1,0  2; y2,0  1 . Из второго соотношения находим, что y2, k 1 

1  y2, k , k  0, N  1 . 1  1000h

(12.36)

Отсюда следует, что y2, k 1  y2, k при любом h  0 .

Подставим выражение y2, k 1 через y2, k в первое уравнение из (12.35). Получим y1, k 1  y1, k  2hy1, k 1 

998h y2, k 1  1000h

или y1, k 1 

1  998h  y1, k  y2, k  .  1  2h  1  1000h 

(12.37)

Итак, для численного решения задачи (12.34) необходимо провести серию расчётов по формулам (12.36), (12.37), меняя h, а следовательно, и число узлов сетки. Результаты расчетов представлены в табл. 12.1. В таблице помещены значения численного решения в точке x  1 и представлены величины погрешностей r1  y1, N  y1 (1) и r2  y2, N  y2 (1)

в зависимости от шага сетки. Точное решение y1 ( x) и y2 ( x) получено ранее (формулы (12.7)). Из табл. 12.1 следует, что при измельчении шага сетки погрешность r1 стремится к нулю (погрешность r2 с самого начала расчета равна 0). Этот факт свидетельствует о сходимости численного решения к точному.

501

Методы приближенных вычислений Т а б л и ц а 12.1 Шаг

Численное решение

Погрешность

h  0, 2 ( N 5)

y1, N = 0,18593,

y1, N  y1 (1)  0,0506,

y2, N = 0

y2, N  y2 (1)  0

h  0,1 ( N  10 )

y1, N = 0,16151,

y1, N  y1 (1)  0,0262,

y2, N = 0

y2, N  y2 (1)  0

h  0, 05 ( N  20 )

y1, N = 0,14864,

y1, N  y1 (1)  0,0133,

y2, N = 0

y2, N  y2 (1)  0

h  0, 025 ( N  40 )

y1, N = 0,14205,

y1, N  y1 (1)  0,0067,

y2, N = 0

y2, N  y2 (1)  0

h  0, 0125 ( N  80 )

y1, N = 0,13870,

y1, N  y1 (1)  0,0034,

y2, N = 0

y2, N  y2 (1)  0

h  0, 00625 ( N  160 )

y1, N = 0,13702,

y1, N  y1 (1)  0,0017,

y2, N = 0

y2, N  y2 (1)  0

h  0, 003125 ( N  320 )

y1, N = 0,13618,

y1, N  y1 (1)  0,0008,

y2, N = 0

y2, N  y2 (1)  0

12.5. Метод Гира 12.5.1. Метод дифференцирования назад Рассмотрим задачу Коши для обыкновенного дифференциального уравнения первого порядка dy  f ( x, y ), dx y (a)  y0 ,

502

(12.38)

12. Элементы теории численного решения

где x  [a, b] . Пусть уравнение (12.38) удовлетворяет условиям жесткости [8]. Для интегрирования таких дифференциальных уравнений широко применяются методы численного решения, основанные на формулах дифференцирования назад [9]. В общем случае формулы имеют вид k

 j 0

k

j

yn  j  h  j f ( xn  j , yn  j ),  k  0 .

(12.39)

j 0

Они достаточно легко получаются, если производную решения в точке x  xn  k аппроксимировать с использованием односторонних формул численного дифференцирования. Последние могут быть получены различными способами. Например, по заданной таблице значений функции у(х) в узлах x  xn  j , j  0, k , строится интерполяционный многочлен Ньютона, записанный через разделённые разности: y ( x )  yn  ( x  xn ) y ( xn ; xn 1 )  ( x  xn )( x  xn 1 )   y ( xn ; xn 1 ; xn  2 )  …  ( x  xn )( x  xn 1 )  … 

(12.40)

( x  xn  k 1 ) y ( xn ;…; xn  k )  rk , n  k ( x),

где rk ,n  k ( x)  ( x  xn )( x  xn 1 )  …  ( x  xn  k ) y( x; xn ;…; xn  k ) . После дифференцирования по х получится y ‘( x)  y ( xn ; xn 1 )  (bn  bn 1 ) y ( xn ; xn 1 ; xn  2 )  …   (bn bn 1  …  bn  k  2  bn bn 1  …  bn  k  3bn  k 1  …  bn 1bn  2  …  bn  k 1 ) y ( xn ; xn 1 ;…; xn  k )  r ‘k , n  k ( x),

где bi  x  xi , i  n, n  k  1 . Подставляя x  xn  k , формулу переписывают, учитывая, что xn  i  xn  ih, i  0, k  1 в виде y ‘( xn  k )  y ( xn ; xn 1 )  (2 k  1) hy ( xn ; xn 1 ; xn  2 )  (3k 2 h 2  6 kh 2  2 h 2 )  y ( xn ; xn 1 ; xn  2 ; xn  3 )  …  (bn bn 1  …  bn  k  2  …   bn 1bn  2  …  bn  k 1 ) y ( xn ; xn 1 ;…; xn  k )  rk, n  k ( xn  k ).

(12.41)

503

Методы приближенных вычислений

Выражение в круглых скобках у предпоследнего слагаемого, в виду громоздкости преобразований, не расписывается подробно как для второго и третьего слагаемого. Существует связь между разделенной разностью k-го порядка и соответствующими значениями функции [9, с. 70], по которым она построена, выражаемая формулой nk

y( x j )

j n

( x j )

y ( xn ; xn 1 ;…; xn  k )  

,

(12.42)

где ( x)  ( x  xn )( x  xn 1 )…( x  xn  k ) . С учетом (12.42) формула (12.41) перепишется в виде y ( xn  k ) 

1 k  C j y( xn  j )  rk,n  k ( xn  k ) , h j 0

(12.43)

где C j – вполне определенные числа, а остаточный член rk,n k ( xnk ) записывается так: rk, n  k ( xn  k ) 

y ( k 1) () k h . После умножения (12.43) (k  1)!

на h формула перепишется следующим образом: k

hy ‘( xn  k )   C j y ( xn  j )  hr ‘k , n  k ( xn  k ).

(12.44)

j 0

Чтобы выразить yn  k из формулы (12.44), вводится условие нормировки. Для этого (12.44) делится на Ck и записывается с помощью обозначений, взятых из работы [4, с. 165]: k

 j 0

j

y ( xn  j )  hk f ( xn  k , yn  k )  n  k ,

(12.45)

где j 

Cj Ck

,  k  1, k 

1 , Ck

k h k 1 y  k 1 (). k  hr ‘k , n  k ( xn  k )k   (k  1)!

504

(12.46)

12. Элементы теории численного решения

Если в (12.45) отбросить остаточный член, то получится конечноразностное уравнение k

 j 0

j

yn  j  hk f ( xn  k , yn  k )  0,  k  1,

(12.47)

аппроксимирующее дифференциальное уравнение (12.38) с порядком O(hk ) [4, с. 165]. Среди методов дифференцирования назад широко используется ранее рассмотренный неявный метод Эйлера. Остановимся на применении формул (12.47) для решения задачи Коши в случае системы линейных дифференциальных уравнений с постоянными коэффициентами dy  Ay , dx

(12.48)

y ( x0 )  y 0 ,

(12.49)

где A  (aij ), i, j  1, N , y0  ( y0i ), i  1, N , причем матрица А имеет отрицательные собственные значения. Рассматривается метод второго порядка для решения задачи (12.48)–(12.49). Для этого в (12.47) k полагается равным 2:

2

 j 0

j

y n  j  h2 f xn  2, y n  2

 N    a1, j f j   j 1   f1     0,  2  1, f   ………….    …  .  N     a f   fN  Nj j    j 1 

Коэффициенты  0 , 1 ,  2 определяются из следующих соображений. В формуле (12.40) полагаем k  2 и дифференцируем её по х. В результате получаем y ‘( x)  y( xn ; xn 1 )  (bn  bn 1 )  y ( xn ; xn 1 ; xn  2 ), где b j  x  x j для j  n, n  1 . При x  xn  2 из последней формулы следует, что y ‘( xn  2 )  y ( xn ; xn 1 )  3h y( xn ; xn 1 ; xn  2 ).

505

Методы приближенных вычислений

С помощью формулы (12.42) последнее соотношение принимает вид

yn  2 –

4 1 2h yn 1  yn – f (xn 1 , yn  2 )  0. 3 3 3

Применительно к модельному уравнению

dy  y dx

(12.50) разностное

уравнение (12.50) запишется следующим образом: yn  2 

4 1 2 yn 1  yn  h yn  2  0, 3 3 3

или (1 

2 4 1 h ) yn  2  yn 1  yn  0. 3 3 3

(12.51)

Общее решение однородного разностного уравнения второго порядка (12.51) имеет вид [5, с. 165]: yn  C1q1n  C2 q2n ,

(12.52)

причем q1 , q2 – корни характеристического уравнения (1 

2 4 1 h ) q 2  q   0. 3 3 3

(12.53)

Решая уравнение (12.53), находим q1,2 

2  1  2 h 2  1  2h . , или q1,2  2 3  2h 3(1  h ) 3

Пусть   0 и h  0. Тогда если 1  2h  0 , то q1  1 , q2  1 . В самом деле, неравенство q1  1 означает, что 1  q1  1 . Докажем справедливость этого неравенства, или, что то же, 3  2h  2  1  2h  3  2h. Левая половина неравенства справедлива, так как очевидно, что 3  2h  0, а 2  1  2h  0. Теперь докажем справедливость правой половины: 2  1  2h  3  2h или 1  2h  1  2h. Неравенство справедливо при   0. Дока506

12. Элементы теории численного решения

жем далее, что 1  q2  1 или –3+2hλ  2  1  2h  3  2h. Вначале докажем, что 2  1  2h  3  2h или  1  2h  1  2h . Это неравенство справедливо, так как  1  2h  0 , а 1  2h  0 . Докажем далее, что 3  2h  2  1  2h или 1  2h  5  2h. Последнее неравенство, очевидно, справедливо при   0. Если предположить, что 1  2h  0 , то 1  2 h  i 2h   1 . Отсюда следует, что q1,2 

2  i 2h   1 3  2h 

. Оценка по модулю комплексно-сопряженных

корней q1,2 приводит к неравенству q1,2

2

4  (2h   1) (3  2h  )

2

3  2h  (3  2h  )

2

1 1   1. 3  2h  3

Итак, при любом   0 из предыдущих рассуждений следует, что q1,2  1. Следовательно, из (12.52) вытекает, что любое решение разностного уравнения (12.51) стремится к нулю при n  . Применение неявной схемы (12.50) для решения задачи (12.48)– (12.49) позволяет увеличить шаг интегрирования при решении жестких систем уравнений [4, с. 167]. Остановимся теперь на реализации неявных методов. Например, для решения разностных уравнений вида (12.51) может использоваться метод простой итерации [9, с. 426]. В [4, с. 177] показано, что необходимым условием сходимости этого метода является условие вида hL k  1. Здесь L  max  – константа Липшица. Заметим, что для жестких систем уравнений справедливо условие max  j  1 . Поэтому в силу соотношения max  j  L кон1 j  N

1 j  N

станта Липшица L для жестких систем будет велика, т.е. L>>1. Условие сходимости метода простой итерации приводит к значительному ограничению на шаг h. Поэтому при численном решении жестких систем приходится отказаться от этого метода. Перепишем (12.47) в виде 507

Методы приближенных вычислений k 1

y n  k    j y n  j  hk f ( xn  k , y n  k )  0 j 0

и для её решения применим метод Ньютона [2]: (m)

( m 1)

(m)

y n  k  y n  k  ( E  hk

 f ( xn  k , y n  k ) y

k 1

) 1 

(12.54)

( y n  k    j y n  j  hk f ( xn  k , y n  k )), (m)

(m)

j 0

m  0,1, . При использовании формулы (12.54) возможны два способа её реализации: 1) вычисляем обратную матрицу для матрицы (m)

G  ( E  hk

 f ( xn  k , y n  k ) y

),

далее определяем ( m 1)

k 1

y n  k  y n  k  G 1 ( y n  k    j y n  j  hk f ( xn  k , y n  k )); (m)

(m)

(m)

j 0

2) решаем каким-либо точным методом систему линейных уравнений вида ( m 1)

k 1

G ( y n  k  y n  k )   y n  k    j y n  j  hk f ( xn  k , y n  k )). (12.55) (m)

(m)

(m)

j 0

В [4, с. 169] для решения системы (12.55) рекомендуется использовать LU-разложение матрицы G, причем L – нижняя треугольная матрица, а U – верхняя треугольная матрица. Чтобы пояснить суть сказанного, обозначим ( m 1)

(m)

y n  k  y n  k  w, U w  z.

Тогда решение системы (12.55) получается в два этапа. Вначале находим решение z системы 508

12. Элементы теории численного решения k 1

Lz   y n  k    j y n  j  hk f ( xn  k , y n  k ) . (m)

(m)

j 0

На втором шаге ищется решение w системы U w  z с верхней треугольной матрицей. Тогда решение системы (12.55) находится ( m 1) (m) по формуле y n  k  y n  k  w . Заметим, что на каждой итерации в первом случае требуется вычислять матрицу Якоби

f y

и обра-

щать матрицу G , а во втором необходимо решать систему (12.55). В обоих случаях приходится выполнять достаточно большой объем непростых вычислений, усложняющих алгоритм решения задачи. Для упрощения процесса вычислений часто используется модифицированный метод Ньютона [4, с. 169]. Суть его состоит в том, что вычисления матрицы Якоби и обращение матрицы G (или ее LU разложения) производят лишь один раз. Поэтому все итерации для m  1, 2,… осуществляются с одной и той же матрицей G 1 или с одними и теми же матрицами L и U : (0)

( m 1)

(m)

y n  k  y n  k  ( E  hk

 f ( xn  k , y n  k ) y

) 1 

 (m) (m)    y n  k    j y n  j  hk f ( xn  k , y n  k )  , m  0. j 0   k 1

Заметим, что если при переходе от одной точки сетки к другой (например, от ( xn  k , y n  k ) к точке ( xn  k 1 , y n  k 1 )) матрица Якоби меняется мало, то одна и та же матрица G

1

(0)   f ( xn  k , y n  k )     E  h k   y  

1

(или одно и то же LU-преобразование) используется для нахождения численного решения в нескольких точках xn  k , xn  k 1 ,… . 509

Методы приближенных вычислений

Если сходимость при определении решения в некоторой точке xn  k 1 не достигается при максимально допустимом числе итераций, вновь вычисляют матрицу Якоби и находят снова обратную матрицу G

1

(m)   f ( xn  k , y n  k 1 )     E  h k   y  

1

или вновь производят LU-разложение матрицы G . При решении системы (12.55) возникает вопрос о выборе (0) начального приближения y n  k . Он имеет существенное значение не только для сходимости итерационного процесса, но и влияет на количество итераций, необходимых для достижения заданной точности. Для задания начального приближения используются различные способы. В частности, можно воспользоваться явной разностной схемой вида k 1

y n  k    j y n  j  hk 1 f ( xn  k 1 , y n  k 1 ) ,

(12.56)

j 0

при этом локальная погрешность имеет порядок O(hk 1 ) [4, с. 170]. Из (12.56) получаются формулы различных порядков. Приведем без вывода формулы второго, третьего и четвертого порядков [4]: y n  2  y n  2h f ( xn 1 , y n 1 );, 3 1 y n  2  3 y n 1  y n  3h f ( xn  2 , y n  2 );, 2 2 10 1   y n  3  6 y n  2  2 y n 1  y n  4h f ( xn  3 , y n  3 ). 3 3

y n 3  yn4

Одним из важных вопросов, возникающих при использовании метода Ньютона, является вычисление матрицы Якоби

f y

. С этой

целью применяются формулы для частных производных от правой части f ( x, y). Этими формулами не всегда удобно пользоваться 510

12. Элементы теории численного решения

[4, с. 171]. Поэтому вычисление частных производных осуществляется по формулам численного дифференцирования. Приведем пример такого применения к производной первого порядка: f i f i ( x, y1 ,.., y j 1 , y j  y j , y j 1 ,…, y N )  f i ( x, y1 ,…, y j 1 , y j ,…, y N ) (12.57)  j y y j

(формула численного дифференцирования первого порядка по y j ). Или f i 1   f i ( x, y1 ,.., y j 1 , y j  y j ,…, y N )  j y 2  y j  f ( x, y ,…, y i

1

j 1

, y  y , y j

j

j 1

,…, y )  .

(12.58)

N

Чтобы вычислить матрицу Якоби с помощью формулы (12.57), требуется N  1 вычисление правой части f ( x, y )  ( f 1 ( x, y ),…, f N ( x, y ))T ,

а с помощью формулы (12.58) производится 2N вычислений.

12.5.2. Построение метода Гира Метод Гира базируется на неявных алгоритмах и наиболее эффективен для решения жестких уравнений. Запишем неявную схему, основанную на формулах дифференцирования назад [4]: k

ym     k  i ym  i  h k f ( xm , ym ). i 1

Полагая Ci   k i , D0  k и m равным n , перепишем формулу в виде k

yn   Ci yn  i  hD0 f ( xn , yn ) . i 1

Аналогично можно получить явную схему 511

Методы приближенных вычислений k

yn    i yn  i  h1 f ( xn 1 , yn 1 ) . i 1

Рассмотрим следующий итерационный процесс: k

yn 0     i yn  i  h1 f n 1 ,

(12.59)

i 1

где f n 1  f ( xn 1 , yn 1 ) ; k

yn( m 1)   Ci yn  i  hD0 f ( xn , yn( m ) ), m  0,1, 2,… .

(12.60)

i 1

Из (12.60) следует, что k

yn( m )   Ci yn  i  hD0 f ( xn , yn( m 1) ) .

(12.61)

i 1

Перепишем (12.60) в виде k

yn( m 1)  yn( m )  yn( m )   Ci yn i  hD0 f ( xn , yn( m ) ) i 1

или, используя (12.61), получим k

k

i 1

i 1

yn( m 1)  yn( m )   Ci yn  i  hD0 f ( xn , yn( m 1) )   Ci yn  i  hD0 f ( xn , yn( m ) )

или yn( m 1)  yn( m)  D0 (hf ( xn , yn( m) )  hf ( xn , yn( m1) )), m  1, 2,… .

Определим m-е приближение для производной hy ‘( xn ) по формуле hy ‘(nm)  hf ( xn , yn( m 1) ) ,

(12.62)

причем погрешность приближения для hy ‘( xn ) будет порядка O (h k  2 ) . Поэтому yn( m 1)  yn( m)  D0 (hf ( xn , yn( m) )  hy ‘(nm) ), m  1, 2,3,…

(12.63)

Покажем, что (12.63) выполняется при m  0 . Для этого вычтем из (12.60) формулу (12.59) при m  0 и получим 512

12. Элементы теории численного решения k

yn(1)  yn(0)   (Ci   i ) yn 1  hD0 f ( xn , yn(0) )  h1 f n 1 i 1

или k

yn(1)  yn(0)  D0 (hf ( xn , yn(0) )   i 1

Ai  Ci B yn i  h 1 f n 1 ) . D0 D0

(12.64)

Для удобства дальнейшего изложения обозначим i 

(Ai – Ci ) B , 1  1 . D0 D0

Начальное приближение для производной hy ‘( xn ) зададим по формуле k

 hy ‘(0) n    i y n  i  h1 f n 1 .

(12.65)

i 1

Погрешность такого приближения имеет порядок O(hk 1 ) . С учетом (12.65) приближение yn(1) из (12.64) можно переписать в виде yn(1)  yn(0)  D0 (hf ( xn , yn(0) )  hy ‘(0) n .

(12.66)

Итак, из (12.66) следует справедливость утверждения о том, что формула (12.65) верна при m  0 , причем hy ‘(0) n определяется по формуле (12.65). Введем ряд новых обозначений. Рассмотрим векторы Yn  ( yn , hy ‘n , yn 1 ,…, yn  k 1 )T и Y ( xn )  ( y( xn ), hy ‘( xn ),…, y( xn  k 1 ))T .

Заметим, что y n аппроксимирует y ( xn ) , а hyn ‘ аппроксимирует hy ‘( xn ) . Остальные компоненты y n  i вектора Yn аппроксимируют значения точного решения y ( xn  i ) вектора Y ( xn ), i  1, 2,…, k  1 . Введем вектор вида Yn( m)  ( yn( m) , hy ‘(nm) , yn 1 ,…, yn  k 1 )T

и матрицу 513

Методы приближенных вычислений

 A1 B1 A2   1  1  2 S  1 0 0   …. …. …. 0 0 0 

…. Ak 1 ….  k 1 …. …. ….

0 …. 1

Ak   k  0 .  ….  0 

Тогда формулы (12.59) и (12.65), задающие начальное приближение для компонент yn  i , i  1,…, k , можно переписать в векторной форме: Yn(0)  SYn 1 .

(12.67)

Погрешность приближения для первой и второй компонент вектора Yn 0 имеет порядок O(hk 1 ) , а для остальных – нуль, если yn i  y ( xn  i ), i  1,…, k  1 , и O (h k  2 ) , если y ( xn i )  yn i  O(h k  2 ) . То-

гда Y ( xn )  Yn(0)  O(hk 1 ) .

(12.68)

Из (12.62) следует, что hy ‘(nm 1)  hy ‘(nm)  hf ( xn , yn( m) )  hy ‘(nm) .

(12.69)

Если ввести вектор g  ( D0 ,1, 0,…,0)T и функцию невязки F (Yn( m1) )  hf ( xn , yn( m) )  hy ‘(nm) ,

(12.70)

то корректирующие формулы (12.63) и (12.69) для решения y ( xn ) и hy ‘( xn ) можно записать в виде Yn( m1)  Yn( m)  gF (Yn( m) ) .

(12.71)

Погрешность первой компоненты вектора Yn( m 1) будет порядка O(hk 1 ) , а второй компоненты – порядка O (h k  2 ) . Для остальных

компонент погрешность того же порядка, что и для Yn(0) . Отсюда можно сделать вывод о том, что Y ( xn )  Yn( m 1)  O(h k 1 ) .

514

(12.72)

12. Элементы теории численного решения

Очевидно, что при достаточно малом h итерационный процесс (12.59), (12.60) сходится к y n . Тогда будет сходиться и итерационный процесс (12.67), (12.71): Yn( m) к Yn , а Y ( xn )  Yn  O(hk 1 ) .

Определим линейное преобразование Q , которое переводит вектор Y ( xn ) в вектор Z ( xn )  O(h( k 1) ) , где Z ( xn )  ( y ( xn ), hy ( xn ),

h 2 y ( xn ) h k y ( k ) ( xn ) T ,…, ) , k! 2!

т.е. Q  Y ( xn )  Z ( xn )  O(h( k  2) ) , или покомпонентно:  y ( xn )     hy ( xn )   y ( xn )   h 2 y ( x )     n    hy ( xn )  2!   y ( xn 1 )  Q    h3 y ( xn )  .       y ( xn  2 )  3!            k (k )   y ( xn  k 1 )   h y ( xn )    k!  

Вектор Z ( xn ) называется вектором Нордсика [2, с. 175]. Возникает вопрос о нахождении матрицы преобразования Q. Очевидно, что первые две строки имеют вид 1 0 0…0 0 1 0…0. Покажем, как определяется l-я строка матрицы Q: ql ,1 ; ql ,2 ;…; ql , k 1 (l  3) . Для этого разложим все слагаемые в левой части равенства ql ,1 y ( xn )  ql ,2 hy ( xn )  ql ,3 y ( xn 1 )  …  ql , k 1 y ( xn  k 1 )  

hl 1 y (l 1) ( xn )  O(h k 1 ) (l  1)!

515

Методы приближенных вычислений

по степеням h. Приравнивая затем коэффициенты при одинаковых степенях h по обе стороны равенства, получим k+1 уравнение с таким же числом неизвестных. Решив систему, находим элементы l-й строки матрицы Q . Остановимся подробно на случае k  3 . Определим элементы матрицы преобразования Q , исходя из системы  1   0  q3,1   q4,1

0 1 q3,2 q4,2

0 0 q3,3 q4,3

 y ( xn )  0   y ( xn )   hy ( xn )     0   hy ( xn )   h 2 y ( x )  4 n     O(h ) . q3,4   y ( xn 1 )   2     q4,4   y ( xn  2 )   h3 y ( xn )    6  

Распишем подробнее: h 2 y ( xn ) , 2 h3 y ( xn ) . q4,1 y ( xn )  q4,2 hy ( xn )  q4,3 y ( xn 1 )  q4,4 y ( xn  2 )  6 q3,1 y ( xn )  q3,2 hy ( xn )  q3,3 y ( xn 1 )  q3,4 y ( xn  2 ) 

Разложим все слагаемые в левой части последних двух равенств в окрестности точки xn по степеням h: q3,1 y ( xn )  q3,2 hy ( xn )  q3,3 { y ( xn )  hy ( xn ) 

h2 y ( xn )  2

h3 y ( xn )  O(h 4 )}  q3,4 { y ( xn )  2hy ( xn )  6 h 2 y ( xn ) 4h 3 y ( xn )}  ; 2h 2 y ( xn )  3 2 h2 q4,1 y ( xn )  q4,2 hy ( xn )  q4,3 { y ( xn )  hy ( xn )  y ( xn )  2 h3  y ( xn )  O(h 4 )}  q4,4 { y ( xn )  2hy ( xn )  6 h3 y ( xn ) 4h3 y ( xn )}  . 2h 2 y ( xn )  3 6 

516

12. Элементы теории численного решения

Отсюда получаем, приравнивая коэффициенты при одинаковых степенях h слева и справа: q3,1  q3,3  q3,4  0,  q3,2  q3,3  2q3,4  0, q  3,3  2q3,4  1 , 2  2  q 8 3,3   q3,4  0.  6 6

и q4,1  q4,3  q4,4  0,  q4,2  q4,3  2q4,4  0, q  4,3  2q4,4  0,  2  q 8 1  4,3  q4,4  . 6  6 6

Решая эту систему, определим значения коэффициентов: q3,1 

7 3 1 3 1 1 , q3,2  , q3,3  2, q3,4   , q4,1   , q4,2  , q4,3  1, q4,4   . 4 2 4 4 2 4

Запишем матрицу преобразования Q:  1   0  Q   7  4  3   4

0 0 0   1 0 0  3 1 2  . 2 4 1 1 1   2 4

С помощью этого преобразования для любого k переводим вектор Yn в вектор Z n  QYn  Q (Y ( x n )  O ( h k 1 ))  QY ( xn )  O ( h k 1 )  Z ( xn )  O (h k 1 ). (12.73)

Покомпонентно (12.73) запишется в виде 517

Методы приближенных вычислений

 y ( xn )     hy ( xn )   yn   h2    y ( xn )    hyn    yn 1  Q  2   h3   O(h k 1 ).    y ( xn )    yn  2   6           k   yn  k 1   h y(k ) ( x )   n   k! 

Применим Z

(0) n

преобразование

Q

к

(12.67).

Обозначим

 QY ; Z n 1  QYn 1 и предположим, что Yn 1  Y ( xn 1 ). Тогда (0) n

QYn(0)  QSYn 1  QS (Q 1Q)Yn 1  (QSQ 1 )QYn 1  (QSQ 1 )Z n 1 .

С учетом (12.68) будем иметь QYn(0)  Q(Y ( xn )  O(hk 1 ))  QY ( xn )  O(hk 1 )  Z ( xn )  O(h k 1 )

или Z n(0)  Z ( xn )  O(hk 1 ) . Итак, получаем, что (QSQ 1 )Z n 1  Z ( xn )  O(h k 1 ) .

(12.74)

В (12.73) заменим n на n  1 и выразим Z n 1 через Z ( xn 1 ) . Тогда из (12.74) будем иметь Z ( xn )  (QSQ 1 ) Z ( xn 1 )  O(h k 1 ) . 1

Обозначим P  QSQ и распишем (12.75) покомпонентно: y ( xn )  P11 y ( xn 1 )  P12 hy ( xn 1 )  P13 h 2  P1, k 1h k

y ( xn 1 )  …  2!

y ( k ) ( xn 1 )  O( h k 1 ), k!

hy ‘( xn )  P21 y ( x n 1 )  P22 hy ‘( xn 1 )  P23 h 2

518

y ( xn 1 )  …  2!

(12.75)

12. Элементы теории численного решения

 P2, k 1h k

y ( k ) ( xn 1 )  O (h k 1 ), k!

h 2 y »( xn ) y »( xn 1 )  …   P31 y ( xn 1 )  P32 hy ‘( xn 1 )  P33 h 2 2! 2! y ( k ) ( xn 1 )  P3, k 1h k  O(h k 1 ), k! …………………………………………………………………………………….. h k y  k  ( xn ) y »( xn 1 )  …   Pk 1,1 y ( xn 1 )  Pk 1,2 hy ‘( xn 1 )  Pk 1,3 h 2 k! 2! y ( k ) ( xn 1 )  Pk 1, k 1h k  O( h k 1 ). k!

Разлагая левые части этих равенств по формуле Тейлора и приравнивая коэффициенты при одинаковых степенях h слева и справа, получим, что матрица P является треугольной матрицей Паскаля. Покажем, как получаются элементы первых двух строк матрицы P . Имеем hy ‘( xn 1 ) h 2 y »( xn 1 ) h k y ( k ) ( xn 1 )   …   O(h k 1 )  1! 2! k! y »( xn 1 ) y ( k ) ( xn 1 ) ;  P1,1 y ( xn 1 )  P1,2 hy ‘( xn 1 )  P1,3 h 2  …  P1, k 1h k 2! k! y »( xn 1 ) y »'( xn 1 ) y  k  ( xn 1 ) h{ y ‘( xn 1 )  h }  O(h k 1 )   h2  …  h k 1 1! 2! (k  1)! y ( xn 1 ) 

y »( xn 1 ) y ( k ) ( xn 1 ) ;  …  P2, k 1h k k! 2! …………………………………………………………………………………………..  P2,1 y ( xn 1 )  P2,2 hy ‘( xn 1 )  P2,3 h 2

Отсюда, очевидно, следует, что P1,1  1; P1,2  1;…; P1, k 1  1 ; P2,1  0; P2,2  1; P2,3  2;…; P2, k 1  k ; ……………………………………………

Итак, матрица P запишется в виде 519

Методы приближенных вычислений

1  1 1 1 1 1     0 1 2 3 4 k    k ( k  1)  0 0 1 3 6   2   k (k  1)   0 0 0 1 4  P 2 .            k (k  1)  0 0 0 0 0   2   0 0 0 0 0  k    1  0 0 0 0 0 

Обозначим Z n( m)  QYn( m) . Тогда из соотношения (12.72) будет следовать Z n( m )  Q  Yn m  Q(Y ( xn )  O(h k 1 ))  QY ( xn )  O(h k 1 )  Z ( xn )  O(h k 1 ) .

Воспользуемся преобразованием Q и применим его к (12.71). Получим QYn( m1)  QYn( m)  QgF (Yn( m) )  Z n( m)  MF (Yn( m) ) ,

(12.76)

где M  Qg  (m0 , m1 ,…, mk )T , а функция невязки F определяется по формуле (12.70) и зависит от двух первых компонент вектора Yn( m) . Так как преобразование Q не меняет две первые компоненты, то эти компоненты вектора Yn( m) будут совпадать с двумя первыми компонентами вектора Zn( m) . Тогда соотношение (12.76) можно переписать в виде Z n( m 1)  Z n( m)  MF (Z n( m) ) . Ранее отмечалось, что при достаточно малом h Yn( m) сходится к Yn , поэтому будет иметь место и сходимость Z n( m) к Zn . Итак, получился сходящийся итерационный процесс: Z

520

( m 1) n

Z

( m) n

Z n(0)  PZ n 1 ,

(12.77)

 LF (Z

(12.78)

( m) n

), m  0,1,… .

12. Элементы теории численного решения

Из (12.78) вытекает соотношение Z n( m 1)  Z n(0)  M ( F (Z n(0) )  F (Z n(1) )  …  F ( Z n( m) )) .

Из сходимости процесса (12.77), (12.78) следует, что Z n( m 1) будет сходиться к Z n  Z n(0)  Mw ,

(12.79)

m

где w  lim  F ( Z n( j ) ) , причем из (12.78) получим, что m 

j 0

FZ ( n) 0.

(12.80)

Подставляя (12.79) в (12.80), будем иметь уравнение F (Z n(0)  Mw)  0 .

Для решения этого уравнения относительно w применим метод 1

( m 1)

Ньютона: w

w

( m)

 F (Z n(0)  Mw( m ) )    M  F ( Z n(0)  Mw( m ) ) . Z  

Умножая обе части последнего равенства на М, получим 1

( m 1)

Mw

 Mw

(m)

 F (Z n(0)  Mw( m ) )  M   M  F (Z n(0)  Mw( m ) ) . Z  

Прибавим к обеим частям равенства Z n(0) и введем обозначение Z n( m )  Z n(0)  Mw( m ) . В результате получим 1

Z

( m 1) n

Z

(m) n

 F ( Z n( m) )  M   M  F ( Z n( m ) ), m  0,1,… . z  

Начальное приближение Zn(0) для этого итерационного процесса задается с помощью формулы (12.77). Из (12.70) определяется  F  F F F   f , ,…, k 1    h , 1, 0,…, 0  .  z  z1 z 2 z   y 

Введем обозначение 521

Методы приближенных вычислений 1

1

 F ( Z n( m ) )    f ( xn , yn( m ) ) W  M    hm0  m1  . z y    

Тогда Z n( m 1)  Z n( m )  MWF ( Z n( m ) )

(12.81)

или   f ( xn , yn( m ) ) Z n( m 1)  Z n( m )  M  hm0  m1   (hf ( xn , yn( m ) )  hyn ) . y  

Итерационный процесс в формуле (12.81) отличается от процесса последовательных приближений (12.78) тем, что в (12.78) сначала вычисляется MF ( Z n( m ) ) , затем результат складывается с Zn( m) , а в (12.81) вначале F (Z n( m) ) умножается слева на W , потом результат умножается слева на M , после чего определяется Z n( m)  MWF ( Z n( m ) ) . Если правая часть f ( x, y) дифференциального уравнения линейна по у, то процесс последовательных приближений в (12.81) сходится за одну итерацию. Коэффициенты вектора M  (m0 , m1 ,…, mk )T для методов разного порядка аппроксимации приведены в [4, с. 181] в табл. 2. В качестве примера получим значения коэффициентов для k 3. Из формулы численного дифференцирования назад yk  3 

18 9 2 6h yk  2  yk 1  yk  fk 3  0 11 11 11 11

для k  3 имеем, что D0 

522

6 . Тогда 11 6  11    g  1 . 0   0  

12. Элементы теории численного решения

Ранее было получено, что при k  3  1   0  Q   7  4  3   4

0

0

1 3 2 1 2

0 2 1

0   0  1  .  4  1   4 

6  11    1 Тогда M  Qg или M   6  .    11  1    11 

Обсудим вопрос об оценке погрешности метода Гира при автоматическом выборе шага и порядка. По построению первые две компоненты вектора Yn равны первым двум компонентам вектора Z n (матрица Q не меняет компоненты y1 и y 2 ). Для оценки погрешности компоненты y n решения Z n уравнения (12.81) можно использовать оценку (12.46) локальной погрешности формулы (12.45) n  Ck 1hk 1 y ( k 1) ( xn )  O(hk  2 ) , где Ck 1  

k . k 1

(12.82)

Неизвестной величиной в (12.82) является y ( k 1) ( xn ) . Если заменить hk 1 y ( k 1) ( xn ) разностью назад y ( k 1) ( xn )  y ( k ) ( xn )  y ( k ) ( xn 1 ) , то будет допущена погрешность порядка O(h2 ) . Если же заменить hk 1 y ( k 1) ( xn ) на разность (h k y (k ) (xn )) , то будет допущена погреш-

ность порядка O(h k  2 ) : hk 1 y ( k 1) ( xn )  (hk y ( k ) ( xn ))  O(hk  2 ) .

523

Методы приближенных вычислений

С другой стороны, если из последней компоненты Z n, k 1 вектора Z n вычесть последнюю компоненту Z n 1, k 1 вектора Z n 1 и полу-

ченную разность умножить на k ! , то будем иметь (h k y (k ) (xn )) . h k 1 y ( k 1) ( xn )  Z n, k 1  k ! . Окончательно получим Тогда n  Ck 1Z n, n  k  k ! или покомпонентно:  nj  Ck 1Z nj, k  2  k !, j  1, 2,…, N .

Из (12.77) имеем, что последняя компонента вектора Z n(0) совпадает с последней компонентой вектора Zn 1 ; nj – абсолютная погрешность ynj . Определим относительную погрешность ynj  0 , и стандартную погрешность

 nj (max ynj )

 nj ynj

, если

, а также меру по-

0 j  N

грешности   nj j  j , если yn  Pj ; y  n  j j  n , если yn  Pj .

Запишем указанные характеристики в общем виде

 nj , где Qnj

1 для абсолютной погрешности;  j  yn для относительной погрешности; j Qn   max y j для стандартной погрешности; 0 j  N n  j j если yn  Pj , то 1, иначе yn для меры погрешности.

Контроль точности вычислений будем оценивать по норме 2

2

N  Z j  Ck 1Z nj, k 1  k !   n , k 1 2   ( C k !)     .    1 k j j  Qn Qn  j 1  j 1   N

524

(12.83)

12. Элементы теории численного решения

Введем обозначения 2

2

N  Z j     n , k 1  E  V ,   ,   j Qn  j 1   C k 1  k ! 

где ε – точность вычисления приближенного решения. Если V E, (12.84) то считаем, что на данном шаге метод не достигает заданной точности. Тогда, исключая вычисленное значение Z n из рассмотрения, выбираем новый шаг с помощью соотношения h1    h , где  выбираем так, чтобы с новым значением шага h1 достигалась заданная точность. Подставим в выражение для V вместо (h1k 1 )2  2( k 1) h2( k 1) и вынесем из под знака суммы 2( k 1) , а затем выразим  . Получим 1

 E  2 k 1   . V 

(12.85)

Вместо (12.85) можно брать меньшее значение 1

1  E  2 k 1  .   1, 2  V 

(12.86)

С учетом (12.86) вычисления по формулам (12.77), (12.81) повторяем, исходя из точки xn 1 . Для этого пересчитывается вектор Z n 1 . Новые значения компонент этого вектора вычисляются по формулам вида Z n1,i  i 1 Z n 1,i , i  1, 2,…, k  1 .

Если (12.84) не выполняется, то это значит, что полученное приближение y n удовлетворяет заданной точности и значение xn принимается за текущий узел интегрирования. 525

Методы приближенных вычислений

Далее решение определяется исходя из точки xn с шагом h1    h , где  выбирается по формуле (12.86). В методе Гира наряду с автоматическим выбором шага решается вопрос об автоматическом порядке точности метода. Для этого предполагается, что решение в точке было получено не методом порядка k , а методом порядка k  1 . В этом случае локальная поn  Ck hk y ( k ) ( xn )  O(hk 1 ) или грешность решения равна n  Ck  Z n, k 1  k ! . Оценка по норме погрешности для этого случая, по аналогии с (12.83), запишется в виде 2

2

N  Z j  Ck Z nj, k 1  k !   n , k 1 2 .   ( C k !)      k j j    Qn j 1  j 1  Qn   N

2

2

j    N  Z n , k 1   , можно получить выраже , V    j j 1  Qn  Ck  k !    ние для коэффициента  изменения шага в методе порядка k  1 :

Обозначая E  

 1   E  2k   . V 

(12.87)

Можно брать значение  меньше того, что задано в (12.87), например  1  1  E  2k    . 1,3  V 

(12.88)

Рассмотрим теперь вопрос об изменении шага интегрирования для случая, когда решение в точке xn получается методом порядка на единицу больше. Тогда погрешность решения может быть определена следующим образом: n  Ck  2 hk  2 y ( k  2) ( xn )  O(hk 3 ) .

Член hk  2 y ( k  2) ( xn ) можно выразить через конечную разность 526

12. Элементы теории численного решения

hk  2 y ( k  2) ( xn )  2 (hk y ( k ) ( xn ))  O(hk  3 ) .

Далее  2 (hk y ( k ) ( xn ))  2 ( Z n, k 1  k !)  (Z n, k 1  k !)  k !(Z n, k 1 ) . Отсюда n  Ck  2(Z n, k 1 )k ! . (12.89) Тогда норма погрешности с учетом полученных формул, по аналогии с (12.83), запишется так: 2

2

N   ( Z j  Ck  2  (Z nj, k 1 )  k !   n , k 1 ) 2 .   ( C k !)        2 k j j     Qn Qn j 1  j 1    N

Применим теперь вышеприведенные рассуждения к методу порядка k+1, используя следующие обозначения: 2

2

    N   (Z nj, k 1 )   E   .  , V    Qnj j 1   Ck  2  k !  

Тогда значение коэффициента изменения шага интегрирования в методе порядка k  1 вычисляется по формуле  1   2( k  2) E      . V 

(12.90)

Вместо (12.90) можно использовать меньшее значение для  :  1   2( k  2) 1 E   .   1, 4  V 

(12.91)

Выбором дополнительных множителей в (12.88), (12.91) отдается предпочтение методу порядка k или k  1 . Эффективное использование оценки (12.91) требует при переходе от точки xm 1 к точке xm сохранения значения Z m 1, k 1 , которое используется в 

(12.89) и при вычислении V . 

После получения , ,  выбирают тот метод, для которого соответствующая константа изменения шага максимальна. 527

Методы приближенных вычислений

Вышеперечисленная процедура выбора шага и порядка в реальных вычислениях несколько отличается [4, с. 185]. Прежде всего, отметим, что если новый шаг интегрирования h1 увеличивается менее чем в 1,1 раза по сравнению со старым значением h, то шаг не меняется. Далее изменение шага и порядка не происходит в течении k+1 шагов после последнего изменения, если используемое значение шага обеспечивает заданную точность. Если же менять шаг интегрирования чаще, то это может привести к дополнительному росту погрешности. Кроме того, если после k  1 шагов увеличение шага невозможно, то дальнейшая проверка возможности увеличения шага откладывается до 10 шагов. Это уменьшает расходы, связанные с вычислением коэффициентов изменения шага [Там же]. В итерационной формуле (12.81) вычисляется «итерационная матрица» W . Ее вычисление включает нахождение матрицы Яко F ( Z n( m ) )    M . Эти операции достаточно  Z 

би и обращение матрицы 

трудоемки. Поэтому, если матрица

f y

меняется мало, то и W ме-

няется мало от итерации к итерации и даже от одного узла интегрирования к другому. В силу сказанного применяют модификацию метода Ньютона, согласно которой итерационная матрица W определяется один раз и не пересчитывается ни в процессе итераций, ни при переходе от точки к точке до тex пор, пока не произойдет изменение шага интегрирования или порядка метода или пока не обнаружится, что матрица Якоби существенно изменилась. Об изменении матрицы Якоби судят по количеству выполняемых итераций. Если за три итерации [4, с. 186] поправка WF ( Z n( m) )  WF ( Z n(3) ) не станет достаточно малой, то считают, что матрица Якоби существенно изменилась и итерационная матрица W вычисляется вновь. Если за три итерации указанная точность коррекции не достигается, то h уменьшают до 528

h и вычисления повторяют из точки xn 1 с новым шагом. 4

12. Элементы теории численного решения

Если в процессе автоматического выбора порядка метода последний оказался очень большим, то рекомендуется [4, с. 186] уменьшить порядок метода настолько, чтобы конечные разности вели себя гладко. В методе Гира принято правило, что если в одной и той же точке подряд отвергаются три шага, то порядок метода полагается равным единице и вычисления вновь проводятся из этой точки. Метод Гира является методом переменного порядка. Первый шаг выполняется методом первого порядка. Для этого нужно знать вектор z0  ( y0 , hy0 )T . Поскольку y0 известно, то можно определить hy0  hf ( x0 , y0 ) . Если порядок метода уменьшается на 1, то это приводит к отбрасыванию последней компоненты Z n, k 1 вектора Z ( xn ) , равной h k y ( k ) ( xn ) . Если же порядок увеличивается на единицу, то необхоk! димо к вектору Z ( xn ) добавить еще одну компоненту. Она равна

h k 1 y ( k 1) ( xn ) . В качестве hk 1 y ( k 1) ( xn ) можно использовать конеч(k  1)!

ную

разность

первого

порядка

от

hk y ( k ) ( xn ) : hk 1 y ( k 1) ( xn ) 

 h k y ( k ) ( xn ) . Погрешность формулы порядка O (h k  2 ) . Недостающую (k+2)-ю компоненту Z n , k  2 вектора Z ( xn ) можно определить

так: Z n , k  2 

Z n , k 1 k 1

.

В [2, с. 206–209] на языке FORTRAN реализован простейший вариант метода Гира 4-го порядка для системы обыкновенных дифференциальных уравнений с одной коррекцией прогнозированного значения. В [4, с. 207–208] приведена подпрограмма с формальными параметрами (на языке FORTRAN), в которой реализован метод Гира. В работе [4] представлен раздел библиотеки численного анализа НИВЦ МГУ. Имеется предметная классификация раздела и целевые подпрограммы решения обыкновенных дифференциальных 529

Методы приближенных вычислений

уравнений. Раздел включает в себя основные типы задач и, в частности, задачу Коши для жестких систем, а также подпрограммы (с указанием имени), их назначение, и в скобках указывается номер пункта в приложении, где приводится их текст на Фортране [4, с. 206–208; 303–313].

12.6. Применение теории жёстких систем уравнений при решении конкретных задач Задание. На примере задачи Коши для обыкновенного дифференциального уравнения второго порядка изучить корректность постановки задачи, свести уравнение к системе обыкновенных дифференциальных уравнений, исследовать систему на жесткость и получить численное решение на заданной сетке. Сравнить численное решение с точным, проанализировав сходимость. Пример 1. Рассмотрим дифференциальное уравнение y   101 y   100 y  0 (12.92)

с начальными условиями y (0)  1, 01, y (0)  2, x   0,1 .

(12.93)

Исследуем корректность задачи (12.92)–(12.93). Ее решение представимо в виде y( x)  C1e1x  C2 e2 x ,

где 1, 2 – корни уравнения  2  101  100  0.

Имеем 1,2  

Тогда 530

101 1012   100. 2 4

12. Элементы теории численного решения

1  100,  2  1

и y( x)  C1e100 x  C2 e x .

(12.94)

Константы C1 и С2 найдем из дополнительных условий. Будем иметь C1  C2  1, 01;,  100C1  C2  2.

Из полученной системы находим, что C1  0, 01;, C2  1.

Следовательно, точное решение поставленной дифференциальной задачи запишется в виде y( x)  0,01e100 x  e x .

(12.95)

Итак, решение задачи (12.92)–(12.93) существует и единственно. Проверим непрерывную зависимость решения (12.95) от входных данных. Для этого рассмотрим возмущенные начальные данные. Пусть y (0)  1, 01  , y (0)  2,

(12.96)

где   0 – мало, например   103 . Решение уравнения (12.92) с начальными условиями (12.96) будет иметь вид (12.94), где константы C1 и С2 определяются из системы C1  C2  1, 01  ,  100C1  C2  2.

Нетрудно получить, что C1  0, 01 

 100 ,; C 2  1  . 99 99

Тогда решение задачи (12.92), (12.96) можно записать так:     100   x y ( x )   0, 01   e 100 x  1  e . 99 99    

(12.97)

531

Методы приближенных вычислений

Если составить таблицу значений модуля разности решений (12.95) и (12.97) на равномерной сетке

h  xi | xi  ih, i  0, N , N  1 h ,

то при заданном   103 значения не превосходят 103 . Следовательно, задача (12.92)–(12.93) поставлена корректно. Рассмотрим систему обыкновенных дифференциальных уравнений первого порядка, которая получается из (12.92) путем замены y   z . Имеем  y  z,   z   101z  100 y ,  y (0)  1, 01, z (0)  2. 

(12.98)

Исследуем систему обыкновенных дифференциальных уравнений первого порядка (12.98) на жесткость. Ее можно записать в виде y   Ay ,

где 1   0 y  ( y, z )T , A   .  100 101

Пользуясь определением 1, вычислим собственные значения матрицы А. Будем иметь характеристическое уравнение det( A   E )   (101   )  100  0

или  2  101  100  0.

Отсюда получаем 1  100,  2  1.

Собственные значения матрицы А отрицательны и число жесткости S  100 велико (>> 1). Итак, матрица системы имеет большой разброс собственных значений: 1   2 . Это свидетельствует о том, что в решении 532

12. Элементы теории численного решения

системы присутствует «быстрая» и «медленная» компоненты. Причем «быстрая» компонента затухает на отрезке, длина которого примерно равна

1  0, 01 . На остальной части отрезка [0,1] эта 1

компонента ничтожно мала, зато вторая составляющая решения определяет характер поведения всего решения на интервале длины 

1  1 . На основе формулы (12.95) нетрудно выписать точ2

ное решение системы (12.98). Очевидно, что оно имеет вид  y( x)  0,01e 100 x e x ,  100 x  e x .  z ( x)  e

(12.99)

Итак, на интервале [0,1] интегрирования системы (12.98) есть два промежутка с различным характером поведения решения, которые следует учитывать при численном интегрировании. На первом отрезке длины 0,01, именуемом пограничным слоем, для получения численного решения с хорошей точностью необходимо выбирать шаг интегрирования h 

1  0, 01 . Это, однако, приводит 1

к большому числу шагов при вычислениях и возрастанию времени расчета на ПЭВМ. Получим численное решение задачи (12.98) на [0,1], пользуясь явным методом Эйлера [10, с. 197–200]. Зададим h  0 и построим сетку 1  h   xn | xn  nh, n  0, N , N   . h 

Расчеты будем проводить по формулам yn 1  yn  hf1 ( xn , yn , zn ), zn 1  zn  hf 2 ( xn , yn , zn ), n  0, N  1,

(12.100)

где

533

Методы приближенных вычислений

y0  1, 01, z0  2, f1 ( x, y, z )  z , f 2 ( x, y, z )  101z  100 y.

По формулам (12.100) были получены значения уN, zN при различных h и представлены в табл. 12.2. Т а б л и ц а 12.2 Шаг сетки h = 0,2 h = 0,l h = 0,01 h = 0,001 h = 0,0001 h = 0,000033

N 5 10 100 1000 10000 30000

yN

zN

–24760,66232 34867844,35870 0,3660323 0,3676954 0,3678610 0,3678733

2476098,67232 –3486784401,35 –0,3660323 –0,3676954 –0,3678610 –0,3678733

Анализ полученных результатов и сравнение y N , z N соответственно с у(1) = 0,3678794, z(l) = –0,3678794 подтверждает достоверность исследований, проведенных выше. Очевидно, что сходимость численного решения к точному наблюдается при h = 0,001 ( N  1000 ) с точностью   103 . Если точность вычислений повышать, то существенно возрастает число шагов N. Воспользуемся неявным методом Эйлера, который является A-устойчивым [8, с. 11]. Вычисления будем проводить по формулам yn 1  yn  hf1 ( xn 1 , yn 1 , zn 1 ), zn 1  zn  hf 2 ( xn 1 , yn 1 , zn 1 ).

Здесь f1 ( xn 1 , yn 1 , z n 1 )  z n 1 , f 2 ( xn 1 , yn 1 , z n 1 )  101z n 1  100 yn 1 , n  0, N  1.

534

(12.101)

12. Элементы теории численного решения

Так как формулы (12.101) – неявные, то при расчетах требуется специальная организация вычислений. Зная у0 = 1,01, z0 = –2, по явным формулам (12.100) вычисляем yn(0)1  yn  hzn , zn(0)1  zn  h(101zn  100 yn ), n  0, N  1.

(12.102)

Затем определяем значения решения в точке xn1 , пользуясь формулами yn( m11)  yn  hzn( m1) , zn( m11)  zn  h(101zn( m1)  100 yn( m1) ).

(12.103)

Здесь m  0,1, – номер итерации на одном шаге. Вычисления по формулам (12.103) продолжаются до тех пор, пока не будут выполнены одновременно неравенства yn( m11)  yn( m1)  

и z n( m11)  z n( m1)  .

Как только будет достигнута заданная точность , переходим к следующей точке сетки. Здесь и в дальнейшем полагаем   103 . Таким образом, расчеты по формулам (12.102), (12.103) приобретают характер прогноза и коррекции: прогноз проводится по явным формулам Эйлера, а коррекция – по неявному методу Эйлера с численной реализацией методом простой итерации. Как показали вычисления, сходимость на одном шаге происходит за одну итерацию, но по-прежнему есть ограничение на длину шага сетки, вызванное условием сходимости метода простой итерации [4, с. 168]. В данном примере необходимое условие сходимости метода простой итерации имеет вид h

1 , L

где L – константа Липшица и 535

Методы приближенных вычислений

max  j  L  100 . j 1,2

Следовательно, шаг сетки h должен быть меньше 0,01 (при h  0,01 метод простой итерации не сходится). Как показали вычисления, при N  200 (h = 0,005) были получены значения yN = 0,3688058, zN = –0,3688058, отличающиеся от у(1), z(l) в четвертом знаке после запятой, точнее, на величину 9,3 104 . Если N  1000 ( h  0, 001 ), то yN = 0,3680637, zN = –0,3680637, и отличия от у(1), z(l) составляют величину 1,8 104 . При N  10000 (h = 0,0001) различия между точными и приближенными значениями решения составляют 1,8 105 . Очевидно, что повышение точности расчетов и в этом случае приводит к росту числа шагов N и возрастанию времени работы ПЭВМ. При численной реализации неявного метода Эйлера, кроме метода простой итерации, можно применять метод Ньютона. Проиллюстрируем сказанное. С этой целью запишем формулы метода Ньютона в виде [11]: yn 1  yn  hf1 ( xn 1 , yn 1 , zn 1 )  0, z n 1  zn  hf 2 ( xn 1 , yn 1 , zn 1 )  0.

(12.104)

Тогда итерационный процесс метода Ньютона может быть записан так [4, с. 168–170]:

 ( m 1) (m) f y n 1  yn( m1)   E  h xn 1 , y n 1 y 

(m)

(m)



 y n 1  y n  h f xn 1 , y n 1 .

Здесь yn 1  ( yn 1 , zn 1 )T , f  ( f1 , f 2 )T ,

536

1

   

(12.105)

12. Элементы теории численного решения

m  0,1, 2, – номер итерации, yn(0)1 , zn(0)1 – известны.

В рассматриваемом примере матрица Якоби имеет постоянные элементы 1  f  0  . y  100 101

Обозначим через G итерационную матрицу   f G   E  h  xn 1 , yn 1   , y   

которая в данной задаче имеет представление h   1 G . 100h 1  101h 

С помощью известного алгоритма находим G-1: G 1 

1 1  101h h   ,   100h 1 

где   det(G)  1  101h  100h 2 .

Тогда итерационные формулы для нахождения yn+1, zn+1 неявным методом Эйлера с применением метода Ньютона будут иметь вид ( m 1)

( m)

( m)

( m)

y n 1  y n 1  G 1 y n 1  y n  h f xn 1 , y n 1



или покомпонентно: 1 [(1  101h)( yn( m1)  yn  hf1 ( xn 1 , yn( m1) ,  zn( m1) ))  h( zn( m1)  zn  hf 2 ( xn 1 , yn( m1) , zn( m1) ))], yn( m11)  yn( m1) 

1 z  z  [100h( yn( m1)  yn  hf1 ( xn 1 , yn( m1) , zn( m1) ))    ( zn( m1)  zn  hf 2 ( xn 1 , yn( m1) , zn( m1) ))], m  0. ( m 1) n 1

(12.106)

( m) n 1

537

Методы приближенных вычислений

Для проведения расчетов по формулам (12.106) требуется знание yn(0)1 , zn(0)1 – начального приближения к решению в точке xn+1. Заметим, что от хорошего выбора начального приближения зависят сходимость итерационного метода и количество итераций на одном шаге, а также число обращений матрицы G. Задавать начальные приближения можно различными способами [4, с. 170– 171]. Например, в изучаемом примере yn(0)1 , zn(0)1 можно задавать по явным формулам Эйлера (12.102), а затем по формулам (12.106) уточнять до тех пор, пока не будет достигнута заданная точность . Таким образом, как и в случае метода простой итерации, будем иметь вычислительный алгоритм типа «прогноза» и «коррекции» (или «предиктора-корректора»). Результаты расчетов по описанному алгоритму при различных N даны в табл. 12.3, в которой указаны значения y N , z N . Т а б л и ц а 12.3 Шаг сетки h = 0,2 h = 0,l h = 0,05 h = 0,01 h = 0,001 h = 0,0001

N 5 10 20 100 1000 10000

yN

zN

0,4018778 0,3855433 0,3768895 0,3697112 0,3680633 0,3678978

–0,4018778 –0,3855433 –0,3768895 –0,3697112 –0,3680633 –0,3678978

Как следует из табл. 12.3, значения y N , z N отличаются от точных значений y 1 , z 1 в тысячных долях, начиная с h  0, 05 (N = 20). При уменьшении шага точность полученных значений y N , z N повышается. Сравнение между собой значений, приведенных в табл. 12.2 и 12.3, позволяет высказаться в пользу метода Ньютона. Тот же вывод напрашивается, если сравнить метод простой итерации и метод Ньютона.

538

12. Элементы теории численного решения

12.7. Лабораторные задания Задание. Исследовать системы обыкновенных дифференциальных уравнений на жесткость. Найти численное решение задачи Коши любым численным методом на равномерной сетке, установив экспериментально величину «пограничного слоя». Показать сходимость численного метода. Вариант № 1. dy1  0, 7 y1  100 y2 , dx dy2  1000 y2 , dx y1 (0)  1, y2 (0)  1, x  [0, 2].

Вариант № 2. dy1   y1  100 y2 , dx dy2   y1  100 y2 , dx y1 (0)  1, y2 (0)  2, x  [0,1].

Вариант № 3. dy1  y1  y2  0, dx dy2  1500 y2  0, dx y1 (1)  0,5, y2 (1)  0,5, x  [1, 6].

539

Методы приближенных вычислений

Вариант № 4. dy1  y1  y2  0, dx dy2  y1  1002 y2  0, dx y1 (0)  2, y2 (0)  2, x  [0, 2].

Вариант № 5. dy1  3000 y1  y2  0, dx dy2  y2  0, dx y1 (1)  1, y2 (1)  1, x  [1,5].

Вариант № 6. dy1  105 (1  3e  x ) y1  105 xe  x y2 , dx dy2  105 xe  x y1  105 (1  3e  x ) y2 , dx y1 (0)  1, y2 (0)  1, x  [0,1].

Вариант № 7. dy1  2 y1  998 y2 , dx dy2  1000 y2 , dx y1 (0)  2, y2 (0)  1, x  [0,1].

540

12. Элементы теории численного решения

Вариант № 8. dy1  0,5 y1  100 y2 , dx dy2  0,5 y1  100 y2 , dx y1 (2)  1, y2 (2)  1, x  [2,3].

Вариант № 9. dy1  (1  2e  x ) y1  xe  x y2 , dx dy2   xe  x y1  (1  2e  x ) y2 , dx y1 (0)  2, y2 (0)  1, x  [0, 2].

Вариант № 10. dy1  1000 y1  999 y2 , dx dy2  y1  2 y2 , dx y1 (0)  1, y2 (0)  0,1, x  [0, 2].

Вариант № 11.  y1   y1   1 y2 ,;  1  1 мало..  y2  y1   y2 , x   0,1 , y  0   1 ,   0  мало   

541

Методы приближенных вычислений

Вариант № 12.  y1  0, 06 y1  105 y2 y3 ,;  5 8 2  y2  0, 06 y1  10 y2 y3  3 10 y2 ,;  1    8 2  y3  3 10 y2 , x   0;1,5 , y  0    0  . 1     

Вариант № 13.  y1  102 y1 y2  y3 ,;  4 2 2  y2  y3  2 10 y2  10 y1 y2 ;,  y    y3  10 2 y1 y2 ,;  3 1     1  y4   y4  104 y22 ,хt   0,1 , y  0     . 0     0 

Вариант № 14.  y1  103 y1  103 y2  103 y3 ;  3  y2  1  10  y2 ,;   1      y3   y3 , x   0, 2 , y  0    1  .  0    

542

12. Элементы теории численного решения

Вариант № 15.  y1  0, 013 y1  104 y1 y3 ;  3  y2  2,5 10 y2 y3 ,;  1    4 3  y3  0, 013 y1  10 y1 y3  2,5 10 y2 y3 , x   0, 2 , y  0   1 . 1      Литература 1. Деккер К., Вервер Я. Устойчивость метода Рунге–Кутты для жестких нелинейных дифференциальных уравнений. М. : Мир, 1998. 326 с. 2. Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран, Паскаль. Томск : Раско, 1992. 270 с. 3. Самарский А.А., Гулин А.В. Численные методы. М. : Наука, 1989. 432 с. 4. Арушанян О.Б., Залеткин С.Ф. Численное решение обыкновенных дифференциальных уравнений на Фортране. М. : Изд-во МГУ, 1990. 336 с. 5. Холл Дж., Уатт Дж. Современные численные методы решения обыкновенных дифференциальных уравнений. М. : Мир, 1979. 308 с. 6. Ракитский Ю.В., Устинов С.М., Черноруцкий И.Г. Численное решение жестких систем. М. : Наука, 1979. 208 с. 7. Ортега Дж., Пул У. Введение в численные методы решения дифференциальных уравнений. М. : Наука, 1986. 288 с. 8. Элементы теории численного решения систем жестких уравнений : учеб. пособие. Томск : Изд-во ТГУ, 1997. Ч. 1. 17 с. 9. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1996. Т. 1. 632 с. 10. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. М. : Наука, 1972. 367 с. 11. Метод Гира численного решения задачи Коши для жестких систем уравнений : метод. указания. Томск : Изд-во ТГУ, 1999. Ч. 2. 21 с.

543

Методы приближенных вычислений

13. РАЗНОСТНЫЕ СХЕМЫ ДЛЯ УРАВНЕНИЙ ЭЛЛИПТИЧЕСКОГО ТИПА 13.1. Типы дифференциальных уравнений в частных производных второго порядка. Постановка граничных задач Дифференциальные уравнения в частных производных имеют широкий круг приложений в математической физике, технике, акустике и других областях знаний. Они описывают более многообразные и сложные процессы, чем обыкновенные дифференциальные уравнения. Для них характерны значительное разнообразие в постановке начальных и граничных задач и большая размерность. Чаще всего получить решение для таких уравнений в явном виде не удается, а если это возможно для некоторых уравнений, то формула часто оказывается достаточно сложной и требует больших вычислений. Поэтому для решения дифференциальных уравнений в частных производных очень эффективными являются приближенные методы. Среди них можно выделить метод сеток, вариационные методы и метод интегральных соотношений [1]. В данном параграфе основное внимание уделяется дифференциальным уравнениям в частных производных второго порядка и методу сеток. Выбор предмета исследования объясняется тем, что на примере таких уравнений легче проследить идеи приближенных методов. Дадим классификацию линейных дифференциальных уравнений в частных производных второго порядка [1, 2]. Пусть u x, y  – функция независимых перемененных x, y. Предположим, что переменные x, y меняются в некоторой выпуклой области G, ограниченной кусочно-гладким контуром  . Определение 1. Говорят, что в области G задано линейное дифференциальное уравнение второго порядка для функции u x, y  , если для любой точки x, y  из области G имеет место соотношение 544

13. Разностные схемы для уравнений

Lu  ax, y u xx  2bx, y u xy  cx, y u yy  d x, y u x   l x, y u y  g x, y u x, y   f x, y  ,

где ax, y  , bx, y  , cx, y  , d x, y  , l x, y  , g x, y  – коэффициенты уравнения, f x, y  – свободный член уравнения. Эти функции известны, и считается, что они определены в замкнутой области G  G . Введем величину x, y  по формуле  x , y   b 2  x , y   a  x , y   c  x , y  .

(13.1)

Определение 2. Говорят, что в области G уравнение Lu  f имеет эллиптический, гиперболический или параболический тип, если в любой точке x, y  из G выполняется соответственно  x , y   0 ,  x , y   0 ,  x , y   0 .

В зависимости от типа дифференциального уравнения по-разному ставятся граничные условия, связанные с ним. Задание граничных условий предназначено для того, чтобы из семейства всех функций, удовлетворяющих уравнению Lu  f , выделить однуединственную функцию – решение. Для уравнений эллиптического типа распространенными являются условия следующих трех видов: 1) граничные условия первого рода: состоят в задании значений искомой функции на границе  области G, т.е. u x, y    M  ,

(13.2)

где M   , M  – известна; 2) граничные условия второго рода: заключаются в задании на контуре  значений нормальной производной от искомой функции u x, y  , т.е. u n

 1 M  ,

(13.3)

где M   , 1 M  – определена; 545

Методы приближенных вычислений

3) граничные условия третьего рода: комбинируют на  значения искомого решения и нормальной производной от него, т.е. u    x, y   x, y u    2 M  , n  

(13.4)

где M   , x, y  , x, y  – известные функции такие, что

 x, y    x, y  2

2

 0 ,  2 M  – задана.

Задача нахождения решения уравнения Lu  f , удовлетворяющего условиям (13.2), (13.3), (13.4), называется соответственно первой, второй и третьей граничной задачей. Для случая первой граничной задачи искомое решение u x, y   C 2 G   C G  , для вто-

рой граничной задачи u x, y   C 2 G   C 1 G  , при решении третьей

граничной задачи u x, y   C 2 G   C 1 G  . Отметим, что уравнения эллиптического типа описывают стационарные процессы, которые не меняются с течением времени. Напротив, уравнения гиперболического и параболического типов описывают процессы, меняющиеся с течением времени, т.е. нестационарные процессы. Для этого типа уравнений переменную y для удобства обозначим буквой t (время). Пусть область G  G   будет прямоугольной, т.е. G  x, t , a  x  b, 0  t  T  ,    x, t  | a  x  b, t  0; x  a, x  b, 0  t  T  .

В силу того, что одним из методов решения первой граничной задачи для уравнений эллиптического типа является метод установления [1–3], дадим постановку задачи Коши и трех типов краевых условий для уравнения параболического типа. В случае задачи Коши задается условие u  x ,0     x  , (13.5) где a  x  b , т.е. требуется в области G  x, t , a  x  b, T  t  0

найти функцию u  x,t   C  G   C  G  , удовлетворяющую уравне2

нию параболического типа 546

13. Разностные схемы для уравнений

Lu  f

и при t  0 – начальному условию (13.5). При постановке соответствующей краевой задачи в области G искомая функция u  x,t   C 2  G   C  G  удовлетворяет в G уравнению Lu  f , при t  0 – начальному условию (13.5) и одному из граничных условий: а) в случае 1-й краевой задачи

u  a, t   1  t  , u  b, t   2  t  ;

(13.6)

б) для 2-й краевой задачи u x

 g1 t  , xa

u x

 g 2 t  ;

(13.7)

x b

в) для третьей краевой задачи  u    1 t ,   0 t   1 t u   x   xa    t  u   t u    2 t , 1  0 x  x b 

(13.8)

 

u  x,t   C 2  G   C1 G , причем для  0 , 1 ,  0 , 1 выполняются условия  0 t   1 t   0 ,  0 t   1 t   0 .

Заметим, что  , 1 ,  2 , g1 , g 2 ,  1 ,  2 – известные функции. Примерами уравнений эллиптического и параболического типов являются соответственно уравнение Пуассона  2u  2u   f  x, y  x 2 y 2

и уравнение теплопроводности u  2u  a  x, t  2 . t x

547

Методы приближенных вычислений

Покажем, как уравнение u t  a  u xx

(13.9)

возникает в качестве математической модели распространения тепла в тонком стержне, вытянутом вдоль оси ox [4, с. 215–218].

∆х

х

Пусть стрежень полностью теплоизолирован, за исключением концов, и поток тепла распространяется по нему только в направлении ox. Пусть c – площадь поперечного сечения стержня, а u x, t  – температура стержня в точке x в момент времени t. Известно, что количество тепла, протекающего в единицу времени через сечение, которое перпендикулярно оси стержня, есть  k  c  u x  , где k  0 – коэффициент теплопроводности. Тогда, если градиент температуры u x  0 , т.е. если температура слева выше, чем справа, то в полном соответствии с интуитивными представлениями тепло через это сечение будет течь слева направо. Рассмотрим элемент стержня длины x . В единицу времени в этот элемент через сечение x втекает количество тепла, равное величине  kcu x  x , и вытекает через сечение x  x количество тепла

 kcux  x x . Другими словами, количество тепла в элементе длины x изменяется на величину

q   kcu x  x   kcu x  x x . Далее из элементарной физики известно, что количество тепла, которым обладает элемент, пропорционально его массе и температуре и равно s  c  x    u , где s – удельная теплоемкость материала стержня,  – плотность стержня, т.е. масса в единице объема. Получаем, что производная по времени от количества тепла в элементе стержня длины x равна q, т.е. 548

13. Разностные схемы для уравнений

scxut   kcu x  x x   kcu x  x .

(13.10)

Переходя в (13.10) к пределу при x  0 , будем иметь ut 

1  ku x  x . s

(13.11)

Уравнение (13.11) сводится к (13.9), если k не зависит от x. При этом a  k /  s  . Для выделения единственного решения уравнения (13.9) необходимо задать некоторые начальные и граничные условия. Рассмотрим их. Допустим, что длина стержня равна 1 и его левый конец находится в точке x  0 . Пусть в начальный момент времени t  0 известно распределение   x  температуры в стрежне, т.е. u  x ,0     x  , 0  x  1 .

(13.12)

Допустим, что концы стержня поддерживаются при постоянной температуре u 0, t   1 , u 1, t    2 . (13.13) где 1 ,  2 – заданные константы. Соотношения (13.12)–(13.13) есть соответственно начальные и граничные условия. Следовательно, получили следующую физическую формулировку задачи: имеется стержень длины 1, концы которого поддерживаются при постоянных температурах 1 ,  2 . Начальное распределение  x  температуры вдоль стержня известно. Требуется найти температуру u x, t  любой точки стержня x в произвольный момент времени t  0. Описанная постановка задачи допускает некоторые варианты. Изменяя граничные условия или само уравнение, можно моделировать распределение температуры в неоднородном стержне, когда   x  , k  k x  , s  sx  . Тогда вместо (13.9) получается уравнение с перемененными коэффициентами. Если, например, считать, что правый конец стержня изолирован, то поток тепла обратится в нуль и граничные условия (13.13) примут вид

549

Методы приближенных вычислений

u 0, t   1 , u x 1, t   0 .

(13.14)

Возможны и другие варианты. Отметим, что уравнение теплопроводности (13.9) служит математической моделью и для целого ряда других физических процессов, например диффузии газа. Вывод уравнения (13.9) распространяется на случаи двух и трех измерений. Так, в двумерном случае вместо (13.9) получается уравнение u t  au xx  u yy  , (13.15) где a  k /  s  , k, s,  не зависят от x, y, t. Уравнение (13.15) можно рассматривать как математическую модель изменения температуры u x, y, t  в тонкой плоской пластинке. Пусть для определенности пластинка представляет собой единичный квадрат G  x, y , 0  x  1, 0  y  1 .

Простейшим видом граничных условий для (13.15) являются условия Дирихле u x, y, t   x, y  для x, y    , (13.16)   1  2  3  4 , т.е. задание температуры на всех четырех сто-

ронах пластинки. Для уравнения (13.15) начальное условие имеет вид u  x , y ,0     x , y  . (13.17) Здесь x, y  ,  x, y  – известные функции. 550

13. Разностные схемы для уравнений

Из физических соображений ясно, что при граничных условиях (13.16), каково бы ни было начальное распределение температуры (13.17), со временем должно установиться некоторое окончательное стационарное распределение. Оно определяется только граничными условиями (13.16). Во многих задачах определение такого стационарного состояния представляет основной интерес. Поскольку стационарное решение u x, y  не зависит от времени t, то оно должно удовлетворять уравнению (13.15) при u t  0 , т.е. уравнению Лапласа u xx  u yy  0 . Уравнение Лапласа является примером эллиптического уравнения. Таким образом, если в задаче о распределении температуры требуется найти только стационарное решение, то можно его находить двумя способами: 1) решать уравнение (13.15) относительно u  u x, y, t  при условиях (13.16), (13.17) до выхода на стационарный режим; 2) определять стационарное решение u  u x, y  уравнения Лапласа при условиях (13.16).

13.2. Метод сеток 13.2.1. Постановка задачи Дирихле для уравнения Пуассона В выпуклой области G с гладкой границей  определяется функция u x, y   C 2 G   C G  , удовлетворяющая в G уравнению  2u  2u  f  x, y  ,  x 2 y 2

(13.18)

а на границе области – условию Дирихле (первому условию) u x, y    x, y  , (13.19) функции x, y  , f x, y  – заданные функции из пространства C G  .

551

Методы приближенных вычислений

13.2.2. Замена дифференциальной задачи разностной Сетка и сеточные функции. Классификация узлов

Для решения задачи (13.18), (13.19) применим метод сеток. Предположим, что граница области G имеет такой же вид, как в [5, с. 7] (рис. 13.1). Покроем область G сеточной областью  h . Она получается, если проведем прямые

x 1   j1h1 , j1  0,1,2, , h1  0 ; j

y  j2   j2 h2 , j 2  0,1,2, , h2  0 . Пересечение указанных прямых дает узлы сетки  j1h1 , j2 h2  , j1 , j 2  0,1,2, , на плоскости x, y  . Из рис. 13.1 видно, что сетка регулярна как по направлению 0x, так и 0y. В [5, с. 7] отмечается, что среди узлов сеточной области будут различаться узлы двух типов: внутренние  h и граничные  h , т.е. h  h   h . К числу внутренних относят те узлы сетки, которые попали внутрь области G, а к числу граничных принадлежат узлы, являюj j щиеся точками пересечения прямых x  1   j1h1 , y  2   j2 h2 ; j1 , j 2  0,1,2, , с границей Г [5]. Заметим, что это не единственный вариант классификации узлов. В данной работе для удобства изложения метода сеток для уравнений эллиптического типа рассмотрим следующую классификацию узлов. Определение 3. Назовем соответствующий узел сетки соседним по отношению к некоторому узлу  j1h1 , j2 h2  , если он отстоит от узла  j1h1 , j2 h2  на расстоянии шага сетки в направлении соответствующей оси. Определение 4. Узел  j1h1 , j2 h2  назовем внутренним, если четыре соседних по отношению к нему узла принадлежат G . 552

13. Разностные схемы для уравнений

Узел

 j1h1 , j2 h2 

назовем граничным узлом сетки, если по край-

ней мере один из соседних с ним узлов не принадлежит G . у

0

Рис. 13.1

На рис. 13.1 «●» обозначены внутренние узлы сеточной области, а × – ее граничные узлы. Заметим, что количество внутренних узлов, расположенных на соответствующих прямых x  j  , j1  0,1,2, , или y  j  , j 2  0,1,2, , будет неодинаковым для области, изображенной на рис. 13.1. Поэтому не можем указать, до какого значения меняются j1 и j 2 . 1

2

Если область прямоугольная G   x, y  , a  x  b, c  y  d  , то

граничные узлы сеточной области  h совпадают с соответствующими узлами границы  . В этом случае число внутренних узлов  h , расположенных на прямых x  j  , j1  0,1,2, (или y  j  , j 2  0,1,2, ), будет одинаковым. Поэтому можно определить 1

2

 x , y , x j1  j1h1 , j1  0, 1,…, ( N1  1), h   j1 j2 

h1 

ba d c , y j2  j2 h2 , j2  0, 1, ,   N 2  1 , h2  . N1 N2 

553

Методы приближенных вычислений

В дальнейшем для области, изображенной на рис. 13.1, будем использовать следующее соглашение: не будем указывать количество внутренних узлов, а просто отметим, что соответствующий узел является внутренним. Например,  j , k    h . Вернемся к задаче (13.18)–(13.19). Заменим область G непрерывного изменения аргумента x, y  дискретным множеством точек x j  j  h , y k  k  l (для удобства записи переобозначим j1  j , j 2  k , h1  h , h2  l ), j , k  0,1,2, . Вместо функции u x, y  будем рассматривать сеточную функцию u j ,k , j, k  0,1,2, . Разностная схема для внутренних и граничных узлов. Исследование погрешности аппроксимации

Выберем произвольный узел x j , y k    h или шем уравнение (13.18) в узле x j , y k  :

 j, k    h . Запи-

u xx  j ,k   u yy  f j ,k .  j ,k 

(13.20)

Предположим, что решение задачи Дирихле (13.18)-(13.19) u x, y   C 4 G  . Рассмотрим соседние с узлом  j , k  узлы x j  h, y k  , x j  h, y k  , x j , y k  l  , x j , y k  l  или  j  1, k  ,  j  1, k  ,  j, k  1 ,  j, k  1 . Запишем значение решения u x, y  задачи (13.18)–(13.19) в указанных соседних точках и применим разложение по формуле Тейлора функции u в окрестности узла x j , y k  :

 

u x j  h, y k  u x j , y k  h 3  3u  3! x 3 x

554

j , yk

h u 1! x x

h 4  4u  4  4 ! x x

j , yk

j  1 h , y k

h 2  2u 2! x 2 x

j , yk

, 0  1  1;

(13.21)

13. Разностные схемы для уравнений

 

l u l 2  2u   1! y x , y  2 ! y 2 x , y  j k j k l 4  4u  , 0  1  1. 4  4 ! y x , y   l 

u x j , yk  l  u x j , yk  l 3  3u  3! y 3 x , y j k

j

k

(13.22)

1

Из формул (13.21)–(13.22) легко получить так называемые разностные соотношения, аппроксимирующие производные I, II и т.д. порядков. Из (13.21), если брать соседний узел x j  h, y k  , очевидно, что u x x

j , yk

 

u x j  h, y k  u x j , y k h

 h  u 2

2 x 2 x , y 

, x  x j   2 h, 0   2  1.

k

Будем рассматривать в качестве соседнего узел x j  h, y k  . Тогда

u  x j , y k   u  x j  h, y k  h  2 u u   ,  1  3  0. h x  x j , yk  2 x 2  x  h , y  3 j k

Если в качестве соседних взять узлы x j  h, y k  и x j  h, y k  и вычесть из разложения u x j  h, y k  соответствующее разложение u x j  h, y k  , то получим u  x j  h, y k   u  x j  h, y k  h 2  3 u u   ,  1  4  1. x  x j , yk  2h 12 x 3  x  h , y  4 j k Рассуждая аналогичным образом, можно получить из (13.22) формулу для аппроксимации производной

u : y

u  x j , yk  l   u  x j , yk  l  2 u u   ,0  2  1; y  x j , yk  l 2 y 2  x , y  l  j k 2

u  x j , yk   u  x j , y k  l  l  2 u u   ,  1  3  0; y  x j , yk  l 2 y 2  x , y  l  j k 3

555

Методы приближенных вычислений

u  x j , yk  l   u  x j , y k  l  l 2  3 u u   ,  1  4  1. y  x j , yk  2l 12 y 3  x , y  l  j k 4 Для аппроксимации производной

 2u воспользуемся формулой x 2

(13.21). Из нее, очевидно, следует u  x j  h, yk   2u  x j , yk   u  x j  h, yk   2u   2 h2 x  x , y  j k h 2  4u ,  1  5  1.  12 x 4  x  h , y  j k 5 Из (13.22), соответственно, находим

 

(13.23)

u x j , y k  l  2u x j , y k  u x j , y k  l  2u   2 l2 y x , y  j k l 2  4u  ,  1   5  1. 12 y 4 x , y   l  j k 5

(13.24)

Подставим в (13.20) формулы (13.23) и (13.24). Получим u  x j  h, yk   2u  x j , yk   u  x j  h, yk   

h2 u  x j , yk  l   2u  x j , yk   u  x j , yk  l  l2

 

(13.25)

h 2  4u l 2  4u  4   4  f  x j , yk  ,  j , k   h . 12 x  x  h , y  12 y  x , y  l  j 5 k j k 5

Из предположения о том, что u x, y   C 4 G  , следует, что

 4u и x 4

 4u будут ограничены и соответствующие члены с этими произy 4

556

13. Разностные схемы для уравнений

водными в (13.25) можно записать в виде O h 2  l 2  . Формула (13.25) представляет собой неоднородную систему линейных алгебраических уравнений, причем число уравнений совпадает с количеством внутренних узлов сетки. Если в (13.25) пренебречь членами O h 2  l 2  , то решением системы (13.25) будет сеточная функция u j ,k или разностное решение, которое отличается от решения u x j , y k  задачи (13.18)–(13.19) на величину O h 2  l 2  . Итак, для каждого внутреннего узла сетки  h можно записать разностную схему вида u j 1,k  2u j ,k  u j 1,k h2

u j ,k 1  2u j ,k  u j ,k 1 l2

 f j ,k ,  j , k    h . (13.26)

Схема имеет шаблон «крест» [6, с. 6] и, кроме значений решения во внутренних узлах, содержит его значения в граничных узлах  h . Если рассматривается область вида, изображенного на рис. 13.1, то, кроме погрешности аппроксимации для внутренних узлов, необходимо учитывать погрешность определения функции u в узлах  h , которые не попадают на  : u  j , k     j , k  

где

(13.27)

 j , k    h ,  j , k    .

Если  j , k  совпадает с соответствующим узлом  j , k  , то значение u в узле  j , k    h определяется точно. Если  j , k  не совпадает с  j , k  , то в качестве узла  j , k  берут ближайший к узлу  j, k  узел в направлении соответствующей оси (рис. 13.2). В соответствии с ситуацией, изображенной на рис. 13.2, очевидно, что u B   M , где B   h , M   , или u B   M  , где B    h , M  .

557

Методы приближенных вычислений у

δ1 В М′

А

В′

δ

х Рис. 13.2

Пусть узел M  M x j , y k   , тогда B  B x j , y k   1  , где 1 – расстояние от узла B до узла M в направлении оси y. Предположим, что u x, y   C 1 G  . Применим разложение по формуле Тейлора функции u B  в окрестности узла M. Получим u  x j  , yk   1   u  x j  , yk   

1 u  1 y  x j , y  1!

(13.28)

или

u  B  M  

11 u , 1! y  x j , y 

где

y  y k    6  l , 1   6  0 .

(13.29)

Из (13.29) видим, что погрешность, которая получается, когда u B   M , имеет 1-й порядок относительно l, так как 1 соизмеримо с l. Аналогично можно показать, что погрешность вычисления u B   M  будет O h1  . Итак, в целом погрешность метода, которая складывается из погрешности для внутренних узлов и погрешности определения значений решения для узлов из  h , будет иметь первый порядок относительно h, l, т.е. O h  l  .

558

13. Разностные схемы для уравнений

Получим формулу Коллатца повышения порядка аппроксимации в граничных узлах. Точность вычисления u j ,k при  j , k    h можно увеличить, если воспользоваться еще одним значением u x, y  в точке A (внутренний узел на рис. 13.2). Имеем M x j , y k   , B x j  , y k   , Ax j  h  , y k   , где  – расстояние от узла B  до точки M  . Тогда u  B   u  x j   , yk      M   

 u 1! x

 M

2  2u 2! x 2

,

(13.30)

M

где M~ – некоторая точка между M  и B  ,

u  A  u x j    h, y k   M  

  h  u 1!

x

 M

  h 2 2!

 2u x 2

, (13.31) ~ M

~ где M – некоторая точка между точками M  и A .

Исключая из (13.30)

u ( M  ) с помощью формулы (13.31), поx

лучим h  ( M  )    u ( A)  O (h 2 ). (13.32) h Отбрасывая в (13.32) величину O h 2  , получим разностное граничное условие, аппроксимирующее граничное условие (13.19) в узле  j , k    h с погрешностью порядка O h 2  : u(B ) 

u j ,k 

h  M     u j 1,k h

.

(13.33)

Формулы (13.27) и (13.33) можно записать для любого узла  j, k    h . Таким образом, если в практических расчетах использовать систему разностных уравнений (13.26), (13.33), то погрешность определения значений решения на сетке  h   h   h будет иметь порядок O h 2  l 2  .

559

Методы приближенных вычислений

13.2.3. Исследование корректности постановки разностной задачи Исследуем, является ли разностная задача (13.26), (13.27) корректно поставленной. Воспользуемся определением корректности из [7, с. 290], введенным по аналогии со случаем дифференциальных уравнений. Предварительно отметим, что разностная задача (13.26)–(13.27) может быть записана в компактном виде [5]: Lh u  h   f h  ,

(13.34)

где Lh u

 h

 u j 1, k  2u j , k  u j 1, k u j , k 1  2u j , k  u j , k 1 1  h  ,  j , k   h ;   Lh u   2 h  h2 l2     u ,  j , k    ,  Lh u h  j ,k  f j ,k ,  j, k    h , f h    (13.35)   j ,k ,  j, k    h .

Здесь u h   U h , f h   Fh , U h , Fh – пространства сеточных функций решений и правых частей. Определение 5. Разностная схема (13.34) называется корректно поставленной, если: 1) ее решение существует и единственно при любых правых частях f h   Fh ; 2) существует постоянная M 1  0 , не зависящая от h и такая, что при любых f h   Fh справедлива оценка u

h Uh

 M1  f 

h Fh

.

(13.36)

Свойство 2, означающее непрерывную зависимость, равномерную относительно h, решения разностной задачи от правой части, называется устойчивостью разностной схемы. Итак, согласно определению 5 исследование корректности задачи (13.26), (13.27) предполагает доказательство существования и единственности решения и выполнения неравенства (13.36). 560

13. Разностные схемы для уравнений

Поскольку разностная схема представляет собой систему разностных уравнений, в которой число уравнений равно числу неизвестных, то решение задачи существует. Однозначная разрешимость разностной задачи следует из теоремы, получившей название «принцип максимума» [1, с. 185]. Приведем эту теорему без доказательства. Теорема 1 (принцип максимума). Каждое решение разностного уравнения Lh1u h 

 j ,k 

 0 ,  j, k   h ,

принимает свое наибольшее и наименьшее значение в некоторых точках  h . С доказательством теоремы можно познакомиться в [1, с. 184–185]. Применим теперь принцип максимума к доказательству однозначной разрешимости разностной схемы (13.34), (13.35). Допустим, что разностная задача имеет два решения u1h  и u 2h  . Тогда z h   u1h   u 2h 

Lh z

h 

удовлетворят

однородной

разностной

 0 , в которой f j ,k  0 ,    0 . Покажем, что z

h 

h

задаче

 0 . Тогда

(13.34), (13.35) будет иметь единственное решение. Если бы z h  0 , то свое наибольшее и наименьшее значения z h по теореме 1 принимала бы на  h . Но z h   0 на  h . Значит, и всюду в  h   h   h будет z h   u1h   u 2h   0 , т.е. разностная задача (13.26),

(13.27) однозначно разрешима. В [1, с. 186–188] показано, что неравенство (13.36) справедливо, если нормы в пространствах U h и Fh ввести по правилу u h 

Uh

 max u j , k , f h  h

Fh

 max f j ,k  max  j ,k . h

h

При этом константа M 1 из (13.36) имеет следующий вид:  1  M 1  max 1, (a 2  b 2 ),  4 

561

Методы приближенных вычислений

где a, b определяются при построении мажоранты для сеточной функции u (h ) по правилу Гершгорина [1, с. 186–188]. Итак, проведенные выше исследования позволяют сделать вывод о корректности разностной задачи.

13.2.4. О методах решения систем разностных уравнений Перепишем разностные уравнения (13.26), записанные для внутренних узлов, в виде A j ,k u j 1,k  B j ,k u j ,k  C j ,k u j 1,k  D j ,k u j ,k 1  E j ,k u j ,k 1  f j ,k , (13.37) где A j ,k 

1 2 2 1 1 1 , B j ,k   2  2 , C j , k  2 , D j ,k  2 , E j , k  2 , h2 h l h l l

 j, k   h , а затем разрешим (13.37) относительно

u j ,k .

Получим u j ,k 

f j ,k B j ,k

A j ,k B j ,k

u j 1,k 

C j ,k B j ,k

u j 1, k 

D j ,k B j ,k

u j ,k 1 

E j ,k B j ,k

u j ,k 1

(13.38)

для любого узла  j , k    h . В случае, когда область G – прямоугольник, систему разностных уравнений (13.38) можно решать с помощью прямых методов [8] или специально разработанным методом – методом матричной прогонки [1, с. 188–191]. Значения решения в узлах  j , k    h в этом случае определяются из граничных условий Дирихле (13.19). Если область G имеет вид, изображенный на рис. 13.1, то система разностных уравнений (13.38) имеет число уравнений, совпадающее с количеством внутренних узлов, а неизвестных u j ,k будет больше. В их число будут входить также значения u j ,k для узлов  j , k    h . Чтобы замкнуть систему (13.38), добавляем к ней разностные граничные условия вида (13.27) или (13.33). 562

13. Разностные схемы для уравнений

Для решения полученной системы разностных уравнений рекомендуется использовать итерационные методы [2, с. 431–434], например, метод простой итерации [2, с. 432–433] или специально разработанный метод – метод матричной прогонки [1, с. 188–191]. Применяя к решению системы разностных уравнений (13.33), (13.38) метод простой итерации, получаем следующие итерационные формулы: u (jm,k1) 

f j ,k B j ,k

A j ,k B j ,k

u (jm1),k 

C j ,k B j ,k

u (jm1),k 

D j ,k B j ,k

u (jm,k)1 

E j ,k B j ,k

u (jm,k)1

(13.39)

для узла  j , k    h и u jm,k1 

h  M     u jm1, k h

(13.40)

для узла  j , k    h . Здесь m  0,1,2,… – номер итерации. Чтобы осуществить итерационный процесс по формулам (13.39), (13.40), необходимо задать начальные приближения для значений решения во внутренних и граничных узлах. Это можно сделать несколькими способами. Например, в качестве u j0,k для узла  j , k    h возьмем значение u j,k  для узла  j , k    из граничного условия Дирихле, причем в формуле (13.40) узел  j , k  – граничный узел  , ближайший к узлу  j , k    h в направлении соответствующей оси. Далее для узла  j , k    h можно принять u j0,k 

u min  u max , 2

где u min  min u j,k  ; u max  max u j,k  , j , k 

j , k 

т.е. при задании u j0,k в узле  j , k    h должен выполняться принцип максимума (минимума). 563

Методы приближенных вычислений

После задания u j0,k для всех

 j, k   h , по формулам (13.39),

(13.40) находим u ,  j , k    h , затем определяем u (j2,k) и т.д. Счет продолжается до тех пор, пока не выполнится неравенство (1) j ,k

max u jm,k1  u jm,k  

 j , k h

и полученное решение не будет удовлетворять разностной схеме. Здесь  – принятая точность вычислений. Как показано в [2, с. 431–433], процесс простой итерации, определяемый формулами (13.39), (13.40), сходится при любом начальном приближении.

13.2.5. Пример решения задачи Дирихле для уравнения Лапласа методом сеток Проиллюстрируем применение изложенной выше теории. Пример. Требуется найти функцию u x, y   C 2 G   C G  , удовлетворяющую уравнению Лапласа  2u  2u  0 x 2 y 2

(13.41)

для x, y   G и на границе Г области G условию u  x, y    x 2  y 2 .

(13.42)

Здесь область G представляет собой внутренность круга радиуса 4, т.е. G   x, y   R 2 , x 2  y 2  16 ,

а граница Г – окружность радиуса 4, т.е.

  ( x, y )  R 2 , x 2  y 2  16 .

Решение. Задачу (13.41), (13.42) запишем в операторном виде Lu  f , (13.43)

564

13. Разностные схемы для уравнений

где L – линейный дифференциальный оператор, действующий на функцию u по правилу  2 u  2 u  , ( x, y )  G ;  Lu   x 2 y 2 u ( x, y ), ( x, y )  , 

(13.44)

а правая часть f имеет вид ( x, y )  G;

0, f  2 2 x y ,

(13.45)

( x, y )  .

Поставленную задачу (13.41)–(13.42) или (13.43)–(13.45) будем решать методом сеток [9]. Для этих целей покроем расчетную область G  G   ортогональной сеткой. Выбирая шаги h1  h2  h по осям абсцисс и ординат и проводя прямые, параллельные осям координат, получим сетку h  ( x j , yk ), x j  jh, j  0, 1, 2,…, yk  kh, k  0, 1, 2,….

Так как оси координат являются осями симметрии для задачи (13.41)–(13.42), то её решение достаточно найти в области G 1  G1  1 , где

  ( x, y )  R

G1  ( x, y ), x  0, y  0, x 2  y 2  16 , 1

2

, x  y  16 . 2

2

На рис. 13.3 представлена сетка, построенная в области G 1 для h 1.

Точки пересечения линий сетки между собой и с границей называем узлами сетки. Узлы, попавшие на границу и отстоящие от неё менее, чем на шаг h, называем граничными. Их совокупность обозначаем через  h и на рис. 13.3 отмечаем «крестиками». Остальные узлы называем внутренними, а их совокупность обозначаем через h . На рис. 13.3 внутренние узлы выделены «кружочками». Нетрудно видеть, что в целом сетка  h   h   h не является равномерной. 565

Методы приближенных вычислений

Рис. 13.3

Следуя [5], функцию, определенную в узлах сетки  h , называем сеточной и в дальнейшем обозначаем так: u (h ) , u j ,k – приближенное (численное) решение разностной задачи; [u] h , u x j , y k  – значения точного решения в узлах сетки. Здесь j, k пробегают множество номеров узлов сетки. Заменяя в задаче (13.41)–(13.42) производные по формулам численного дифференцирования, получим следующую разностную задачу: Lh u ( h )  f

(h)

,

(13.46)

где Lh u

(h)

 u j 1, k  2u j , k  u j 1, k u j , k 1  2u j , k  u j , k 1  , ( x j , yk )  h ,   h2 h2 u , ( x , y )   , j k h  j ,k

0, ( x j , yk )  h , f (h)   2 2  x j  yk , ( x j , yk )   h .

566

(13.47)

13. Разностные схемы для уравнений

Определим порядок погрешности аппроксимации дифференциальной задачи (13.41)–(13.42) разностной задачей (13.46)–(13.47) [5, с. 11–13]. Для этой цели разложим u x j 1 , y k  , u x j , y k 1  по формуле Тейлора в окрестности точки x j , y k  , ограничиваясь четвертой производной. Подставляя полученные выражения в (13.46)– (13.47), находим, что погрешность аппроксимации f ( h ) имеет представление f ( h ) , f ( h )   1( h ) f 2 ,

где f1( h ) – погрешность уравнения, f 2( h ) – погрешность граничного условия и f1( h ) 

h2  4u  12 x 4

 ( x (1) j , yk )

h2  4u  12 y 4

, ( x j , yk(1) )

x j 1  x (j1)  x j 1 , y k 1  y k(1)  y k 1 . Погрешность граничного условия f 2( h ) требует отдельного рассмотрения. Пусть имеется фрагмент

границы (рис. 13.4). Г1

G1

А

В

М

Рис. 13.4

567

Методы приближенных вычислений

По приведенной выше классификации здесь A( x j 1 , y k ) – внутренний узел, B( x j , y k ), M ( x j  , y k ) – граничные узлы. Если граничное условие представить как u j ,k  f ( M ), M  1 ,

т.е. переслать в граничный узел В значение решения с границы 1 , то f 2( h )  

u x

, x j  x *j  x j  . ( x *j , yk )

Итак, если u ( x, y )  C 4, 4 (G ) , то f1( h )  k  h 2 , а f 2( h )  Q  h . Чтобы повысить порядок погрешности аппроксимации в граничных узлах до второго, будем использовать формулу Коллатца [1, с. 14–16]: hu( x j , yk ) u( x j 1 , yk ) u( x j , yk )   O(h2 ). (13.48) h  Тогда погрешность аппроксимации дифференциальной задачи (13.41), (13.42) разностной схемой (13.46)–(13.47), где на границе применяется формула (13.48), будем иметь в целом второй порядок относительно h. Другими словами, f ( h )

Fh

 max f1( h ) , f 2( h )  C  h 2 , C  const.

Для исследования корректности постановки разностной задачи (13.46)–(13.48) требуется показать, что её решение существует и единственно в некотором классе U h сеточных функций – решений с введенной нормой  U и при этом выполняется неравенство h

[1, с. 16–17]:

u ( h)

Uh

 M 1  f (h)

Fh

.

(13.49)

Здесь M 1  const, не зависит от шага h и правой части f (h ) . Так как разностная задача (13.46)–(13.48) представляет собой систему уравнений, в которой число уравнений равно числу неизвестных, 568

13. Разностные схемы для уравнений

то решение такой системы существует. Единственность решения вытекает из теоремы 1 «принцип максимума» [9, с. 17–18]. Докажем выполнение неравенства (13.49), т.е. устойчивость разностной схемы. Для этого определим нормы в пространствах сеточных функций U h и Fh следующим образом:

u h  f h 

Uh Fh

 max u j ,k , h

 max f j ,k  max f j ,k . h

h

В рассматриваемом примере f j ,k

h

0.

Тогда f (h)

Fh

 max f j ,k . h

Введем z ( h )  max f j ,k . h

Будем иметь

и

u

(h)

 z (h)

h

 f j ,k

Lh u ( h )  z ( h )

h

h

 max f j , k  0 h

(13.50)

0.

Тогда согласно теореме 1 заключаем, что сеточная функция u ( h )  z ( h ) принимает наименьшее и наибольшее значение в точках  h . Согласно (13.50) на  h выполнено неравенство u (h)  z (h)  0 .

Значит, u ( h )  z ( h )  0 всюду в  h . Аналогично можно показать, что u ( h )  z ( h )   0 на  h . Следовательно, на  h   h   h справедливо, что u (h)  z (h)  0 ,

569

Методы приближенных вычислений

u (h)  z (h)  0 или u ( h)  z ( h) ,

т.е. u ( h )  max f j , k  f ( h ) h

Fh

.

Отсюда получаем max u j ,k  f ( h ) h

Fh

или u (h)

Uh

 f (h)

Fh

.

Таким образом, устойчивость рассматриваемой схемы (13.46)– (13.48) показана с константой M 1  1 . В случае h  1 выпишем систему разностных уравнений (13.46)–(13.48) в явном виде. Для этой цели занумеруем точки сетки, представленной на рис.13.3, начиная с номера (0,0) и шагая слева направо и снизу вверх. Будем иметь множество номеров узлов сетки: (0,0), (1,0), (2,0), …, (0,1), (1,1), …, (2,4). Система разностных уравнений для определения значений приближенного решения в узлах сетки будет иметь вид: а) для внутренних узлов сетки

1 u00  (u1,0  u0,1 ); 2 1 u j ,0  (u j 1,0  u j 1,0  2u j ,1 ), j  1, 2,3; 4 1 u0,k  (2u1,k  u0,k 1  u0, k 1 ), k  1,3; 4 1 u j ,k  (u j 1,k  u j 1,k  u j ,k 1  u j , k 1 ), j  1, 2, k  1, 2; 4

570

(13.51)

13. Разностные схемы для уравнений

б) для граничных узлов сетки u4,0  x 2 y 2

(4,0)

 0,

u3,3  x 2 y 2

( 7 ,3)

u0,4  x 2 y 2

(0,4)

 0,

u2,4  x 2 y 2

(2, 12 )

u4,1  x 2 y 2

( 15 ,1)

,

u1,4  x 2 y 2

(1, 15 )

u4,2  x 2 y 2

( 12 ,2)

u4,3  x 2 y 2

(3, 7 )

, , ,

,

,

(13.52)

u1,3  ug (u1,4 , u1,2 , 15  3), u2,3  ug (u2,4 , u2,2 , 12  3), u3,2  ug (u4,2 , u2,2 , 12  3), u3,1  ug (u4,1 , u2,1 , 15  3). ha  d b . hd Вводя номер итерации m  0 , на основании формул (13.51)– (13.52) получаем следующие итерационные формулы, позволяющие с заданной точностью  определить значения численного решения в точках  h :

Здесь ug  a, b, d  

1 (m) ( m 1) (m) ); u00  (u1,0  u0,1 2 1 ) ) u (jm,01)  (u (jm1,0  u (jm1,0  2u (jm,1) ), j  1, 2,3; 4 1 u0,( mk1)  (2u1,( mk )  u0,( mk)1  u0,( mk)1 ), k  1, 2,3; 4

1 u (jm,k1)  (u (jm1,) k  u (jm1,) k  u (jm, k)1  u (jm, k)1 ), j  1, 2, k  1, 2; 4

571

Методы приближенных вычислений

u1(,m3 1)  ug (u1, 4 , u1(,m2 ) , 15  3); u 2( m,31)  ug (u 2, 4 , u 2( m, 2) , 12  3); u3( ,m21)  ug (u 4, 2 , u 2( m, 2) , 12  3);

(13.53)

u3( ,m1 1)  ug (u 4,1 , u 2( m,1) , 15  3), m  0. Для применения формул (13.53) в численных расчетах полагаем u (j0,k)  0 для ( x j , y k )   h . Вычисления организуем следующим об-

разом: 1) при m  0 по формулам для граничных узлов сетки рассчитываем значения решения u j ,k в точках границы; 2) по формулам Коллатца (последние четыре формулы в (13.53)) определяем значения u (jm,k1) в граничных узлах; 3) с помощью формул (13.53) находим решение u (jm,k1) во внутренних узлах сетки ( x j , y k )  h ; 4) вычисляем

max u (jm,k1)  u (jm,k)   . Если    , то вычисления

( x j , yk )h

прекращаем. Если    , то полагаем u (jm,k)  u (jm,k1) и затем продолжаем вычисления со второго пункта. По описанному алгоритму была составлена программа, по которой затем проводились численные расчеты. Результаты представлены ниже в табл. 13.1: приведены значения приближенного решения в узлах сетки  h при h  1 . Значения точного решения 1  256  ( x2  y 2 )2  , ( x, y)  G, 8 задачи (13.41)–(13.42), вычисленные в тех же узлах ( x j , y k )   h , даны в табл. 13.2. При   0,0001 процесс вычислений сходится за 73 итерации. u ( x, y )  x 2 y 2 

572

13. Разностные схемы для уравнений

Как следует из табл. 13.1, 13.2, максимум модуля разности между точным решением и приближенным достигается в узле (3,1) и составляет при h  1 величину 8,6082. Т а б л и ц а 13.1

u 0, 0  24,0835

u1, 0  24,0836

u 2, 0  22,6721

u3,0  15,6139

u4,0  0,0000

u0,1  24,0836

u1,1  24,7895

u 2,1  25,4954

u3,1  19,8918

u 4,1  15,0000

u0, 2  22,6721 u1, 2  25,4954

u 2, 2  34,6284

u3, 2  43,7614

u 4, 2  48,0000 u 4,3  63,0000

u0,3  15,6139

u1,3  19,8919

u 2,3  43,7614 u3,3  63,0000

u0, 4  0,0000

u1, 4  15,0000

u 2, 4  48,0000

Т а б л и ц а 13.2

u0, 0  32,0000

u1, 0  31,8750

u 2, 0  30,0000

u3, 0  21,8750

u 4, 0  0,0000

u0,1  31,8750

u1,1  35,5000

u2,1  32,8750

u3,1  28,5000

u 4,1  11,8750

u0, 2  30,0000

u1, 2  32,8750

u2, 2  40,0000

u3, 2  46,8750

u 4, 2  46,0000

u0,3  21,8750

u1,3  28,5000

u 2,3  46,8750

u3,3  72,5000

u 4,3  97,8750

u0, 4  0,0000

u1, 4  11,8750

u 2, 4  46,0000

Вычисления проводились и при других значениях шага h. В силу громоздкости таблицы значения полученного при этом решения не приводятся. Укажем лишь, что при h  0,5 максимум модуля разности между точным и приближенным решением равен 3,4198, а при h  0,25 составляет 1,0562. Процесс вычислений в первом случае (h  0,5) сходится за 232 итерации, а во втором (h  0, 25) – за 780 итераций. Другими словами, при измельчении шага сетки наблюдается сходимость приближенного решения к точному, хотя при этом существенно возрастает время расчета. 573

Методы приближенных вычислений

13.3. Лабораторные задания Задание. С помощью метода сеток решить задачу Дирихле для уравнения Пуассона. Численное решение определить в области G с границей Г, которая задается соответствующим образом в каждом варианте. Исследовать вопросы аппроксимации, устойчивости и сходимости численного решения к точному. Вариант № 1.  2u  2u  0,2  ln x  y ,  x 2 y 2

u   0,5( x  y ) 2 ,

где   ( x, y ) : y  0,5 x 2  3, 0  x  6 , 0  y  3 . Вариант № 2.

 2u  2u   0, 2, x 2 y 2 u   e 1,5 x

2

2 y2

,

где   ( x, y ) : y  0,15 x  0,6, 0  x  2,  0,6  y  0,6. 2

Вариант № 3.  2u  2u  0,3,  x 2 y 2 u   x 2 y 2  1,

где   ( x, y ) : y  x 2  1, 0  x  1,  1  y  1.

574

13. Разностные схемы для уравнений

Вариант № 4.  2u  2u  0,25,  x 2 y 2 u   0,25 x 2  y 2 ,

где   ( x, y ) : y  0,25 x 2 , y  2 . Вариант № 5.

 2u  2u  2  e x , 2 x y 2

u   e 0,5( x  y ) ,

где   ( x, y ) : y  0,5 x 2  3, 0  x  6 , 0  y  3 . Вариант № 6.

 2u  2u   0,5, x 2 y 2 u   e xy , 

где   ( x, y ) : 

 x2 y2   1, 0  x  3, 0  y  2 . 9 4 

Вариант № 7.  2u  2u  0,1,  x 2 y 2

u   0,5 x 2  y 2 ,

где   ( x, y ) : y  0,5 x 2  1, 0  x  2, –1  y  1 .

575

Методы приближенных вычислений

Вариант № 8.  2u  2u  0,6,  x 2 y 2 u   sin( xy),

где   ( x, y ) : x  y  1, 0  x  1, 0  y  1. 2

2

Вариант № 9.  2u  2u   e ( x  y ) , x 2 y 2 2

u   e ( x  y ) ,

где   ( x, y ) : y  0,5 x 2  2, 0  x  2, 0  y  2 . Вариант № 10.

 2u  2u   0, 4, x 2 y 2 u   e 0,4 xy ,

где   ( x, y ) : y  x 2  4, 0  x  2, –4  y  0 . Вариант № 11.  2u  2u   0,3, x 2 y 2 u   sin(0,1xy ),

где   ( x, y ) : x 2  ( y 2  9)  0, 1  x  3, 0  y  3.

576

13. Разностные схемы для уравнений

Вариант № 12.

 2u  2u   0,6, x 2 y 2 u   e x  y ,

где   ( x, y ) : y  x 2  4, 0  x  2, — 4  y  1. Вариант № 13.

 2u  2u   cos(0,1xy ), x 2 y 2

u   e2 x

2

 y2

,

где   ( x, y ) : y  0,5 x 2  1, 0  x  2, –1  y  1 . Вариант № 14.

 2u  2u   0,7, x 2 y 2

u   sin xy ,

где   ( x, y ) : x 2  y 2  2, 0  x  2, –1  y  2 . Вариант № 15.  2u  2u   0,5, x 2 y 2

u   e xy ,

где   ( x, y ) : y   x 2  0, 2, 0  x  0, 2, –1  y  0, 2 .

577

Методы приближенных вычислений

Вариант № 16.

 2u  2u   0,1, x 2 y 2 u   e 0,3( x  y ) ,

где   ( x, y ) : y  0,5 x 2  2, 0  x  2, –2  y  0 . Вариант № 17.  2u  2u   0,4, x 2 y 2 u   cos( xy),

где   ( x, y ) : x 2  y 2  1, 0  x  1, –1  y  1 . Вариант № 18.  2u  2u   0, x 2 y 2

где   ( x, y ) : x 2  y 2  4.

u   2 x 2  4,

Вариант № 19.  2 u  2u   0, x 2 y 2 26 2 u 8 x , 9 

где   ( x, y ) : 

578

 x2 y2   1 . 9 4 

13. Разностные схемы для уравнений

Вариант № 20.  2 u  2u   0, x 2 y 2 u   2 x 2  2 x  2 y  4,

где   ( x, y ) : x 2  y 2  4.

Литература

1. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1977. Т. 2. 399 с. 2. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1960. Т. 2. 620 с. 3. Дьяченко В.Ф. Основные понятия вычислительной математики. М. : Наука, 1972. 119 с. 4. Ортега Дж., Пул У. Введение в численные методы решения дифференциальных уравнений. М. : Наука, 1986. 288 с. 5. Элементы теории разностных схем : метод. указания. Томск : Изд-во ТГУ, 1992. Ч. 1. 17 с. 6. Элементы теории разностных схем : метод. указания. Томск : Изд-во ТГУ, 1993. Ч. 2. 26с. 7. Самарский А.А., Гулин А.В. Численные методы. М. : Наука, 1989. 430 с. 8. Точные методы решения систем линейных алгебраических уравнений : метод. указания. Томск : Изд-во ТГУ, 1990. 34 с. 9. Разностные схемы для уравнений эллиптического типа : метод. указания. Томск : Изд-во ТГУ, 1995. Ч. 1. 21 с.

579

Методы приближенных вычислений

14. МЕТОД СЕТОК РЕШЕНИЯ КРАЕВЫХ ЗАДАЧ ДЛЯ УРАВНЕНИЙ ПАРАБОЛИЧЕСКОГО ТИПА 14.1. Метод сеток решения задачи Коши Пусть u ( x, y ) – функция независимых переменных x, y . Пред-

положим, что  x, y  меняются в некоторой области G , ограниченной кусочно-гладким контуром  . Следуя работам [1, c. 142–144; 2, c. 692–693; 7, c. 373–376], введем необходимые понятия и определения. Определение 1. Говорят, что в области G задано линейное дифференциальное уравнение в частных производных второго порядка для функции u ( x, y ) , если для любой точки  x, y  из области G имеет место соотношение Lu  a ( x, y )u xx  2b( x, y )u xy  c( x, y )u yy  d ( x, y )u x  l ( x, y )u y  g ( x, y )u ( x, y )  f ( x, y ).

(14.1)

Формула (14.1) есть каноническая форма записи линейного дифференциального уравнения второго порядка. Для проведения классификации уравнений вида (14.1) составим следующее соотношение

( x , y )  b 2 ( x , y )  a ( x , y ) c ( x , y ) .

(14.2)

Определение 2. Говорят, что уравнение (14.1) в области G будет параболического типа, если для любой точки  x, y  из области G будет выполняться соотношение ( x , y )  0 .

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

14. Метод сеток решения краевых задач

ствующих краевых условий (если решается I, II или III краевая задача) разностными уравнениями получаем, что соответствующий численный метод сводится к решению системы линейных алгебраических уравнений и основная проблема, возникающая при реализации численного метода, заключается в решении упомянутой системы. Фактическое решение сеточных уравнений осуществляется шагами по времени, и если разностная схема явная [1, c. 148–149; 2, c. 732–733], решение находится легко. Однако при этом может возникнуть явление неустойчивости вычислительного процесса к ошибкам округления, которое не позволяет получить приближенное решение с удовлетворительной точностью. Явление неустойчивости проявляется в том, что ошибки округления, допущенные при вычислениях на некотором временном слое, затем быстро возрастают по абсолютной величине и, как правило, сильно искажают приближенное решение. Поэтому для уравнений параболического типа проблема устойчивости [1, c. 151–154; 2, c. 733–736; 3, c. 491– 495] является одной из основных наряду с проблемой сходимости [4, c. 31–33]. При численном решении параболических уравнений с соответствующими начальными и граничными условиями можно кроме явных схем использовать неявные разностные схемы. Последние в основном абсолютно устойчивы, но не всегда удобны для применения, так как требуют специальных методов для реализации (прогонки или какого-либо итерационного метода). Вначале остановимся на вопросах замены параболических уравнений сеточными уравнениями, а также на вопросах устойчивости, сходимости и оценки качества явных и неявных разностных схем. Дадим постановку задачи Коши для уравнения параболического типа. Для удобства дальнейшего изложения материала обозначим y через t (время). Пусть требуется найти функцию u ( x, t )  C12 (G )  C (G ) , удовлетворяющую уравнению [7, c. 377], 581

Методы приближенных вычислений

Lu  F ,

где  u  2u u   a (x,t ) 2  d (x,t )  g (x,t )u (x,t ),(x,t )  G; (14.3) Lu   t x x u (x,0), x  ; 

 f ( x, t ), F  u0 ( x);

G  ( x, t ) |   x  , 0  t  ,   ( x, t ) |   x  , t  0. Покроем область G равномерной сеткой h  ( x j , tk ) | x j  jh, j  0, 1, …; tk  k , k  0,1, 2,….

Рассмотрим два варианта решения задачи Коши: 1) вариант с использованием явной разностной схемы; 2) вариант, в котором применяется неявная разностная схема.

14.1.1. Построение явной и неявной разностных схем методом неопределенных коэффициентов 1. Построим явную разностную схему [6, c. 191–195] с шаблоном 2

3

0

1

методом неопределенных коэффициентов (МНК). 582

14. Метод сеток решения краевых задач

Цифрами 0,1,2,3 обозначим номера узлов, входящих в шаблон. Координаты каждого узла следующие:

0( x j , t k );1( x j  h, t k ); 2( x j , t k  h); 3( x j  h, t k ) . Запишем разностную схему с неопределенными коэффициентами  ci в виде 3

c u i 0

i i

 f 0  O(2 , h3 ).

Распишем сумму с учетом вида

(14.4)

f 0 . Получим

    c0u ( x j , t k )  c1u ( x j  h, t k )  c2u ( x j , t k   )  c3u ( x j  h, t k )   u  2u u    a( x, t ) 2  d ( x, t )  g( x, t )u( x, t)  ( x j ,tk )  x x  t  2 3 O( , h ).

(14.5)

Разложим функцию u , входящую в левую часть (14.5), в окрестности узла ( x j , t k ) по формуле Тейлора, предполагая, что

u  x, t   C23 (G ) :  u ( x j , tk ) h  2u ( x j , tk ) h 2      O(h3 )   c0u ( x j , tk )  c1 u ( x j , tk )  2 x x 1! 2    u ( x j , tk )   2u ( x j , tk ) 2   c2 u ( x j , tk )    O ( 3 )   2 t 1! t 2   (14.6) 2  u ( x j , tk ) h  u ( x j , tk ) h 2   3  c3 u ( x j , tk )    O(h )   1! 2 x x 2    u( x ,t ) 2u( x j ,tk ) u( x j ,tk )  j k  ( , ) ( , ) –   a x t  d x t  j k j k 2  t x . x   g ( x j ,tk )u( x j ,tk ) 

583

Методы приближенных вычислений

Приравнивая коэффициенты при u , а также при левой и правой частях соотношения (14.6), получим     c0  c1  c2  c3   g 0 ,  c2   1,   c1h  c3 h  d 0 ,  2 2 c h  c h  a . 3 0  1 2 2 Отметим, что в (14.7) используются обозначения

u u  2u , , в t x x 2

(14.7)

g 0  g x j , t k  , d 0  d (x j ,tk ) и a0  a ( x j , t k ) .

Решая систему (14.7) относительно неизвестных коэффициентов  c j , j  0,3 , очевидно, будем иметь d ( x j , tk ) a ( x j , tk )  1 a ( x j , tk ) 1    ; c2  ; c0   g ( x j , tk )  2  ; c1   2 2h h2 h   a (x j , tk ) d (x j , tk )  c3    . (14.8) h2 2h

Подставляя полученные значения c j , j  0,3, из (14.8) в (14.4), имеем 2 a ( x j ,tk ) 1    d ( x j , t k ) a ( x j ,t k )    g ( x ,t )   u(x ,t )       j k j k 2 2    2h  h h      a ( x j , tk ) d ( x j , tk )  1 u ( x  h, t )  u ( x j , t k  )      u ( x j  h, tk )  j k  h2 2h  

 f ( x j , t k )  O (  2 , h 3 ).

(14.9)

После несложных преобразований запишем явную разностную схему

584

14. Метод сеток решения краевых задач

u kj 1  u kj 

 a kj

u kj 1  2u kj  u kj 1

 d kj

u kj 1  u kj 1

h2 2h j  0, 1,…; k  0,1,….

 g kj u kj  f jk ,

(14.10)

Добавим к схеме (14.10) разностную аппроксимацию начального условия

u 0j  u0 ( x j ) , j  0, 1,….

(14.11)

На рис. 14.1 показана сетка, в узлах которой определяется решение разностной задачи (14.10)–-(14.11). u

A

0

x

Рис. 14.1

A – узел сетки с координатами x j , t k . Решение задачи (14.10)– (14.11) находится слоями по времени. Для определения значений решения разрешим (14.10) относительно u kj 1 . u kj 1  u kj 

 k k  k k a j  u j 1  2u kj  u kj 1   d j  u j 1  u kj 1   h2 2h

585

Методы приближенных вычислений

 g kj u kj   f jk , j  0,1,… ; k  0,1,… ,

(14.12)

и добавим начальное условие

u 0j  u0 ( x j ) ; j  0, 1,….

(14.13)

Вначале определим значения u 0j из (14.13) на нулевом временном слое. Далее, полагая k  0 , находим из (14.12) u1j  u 0j 

Затем

 0 0  0 0 a j  u j 1  2u 0j  u 0j 1   d j  u j 1  u 0j 1    g 0j u 0j   f j0 , 2 h 2h j  0, 1,….

при

k  1,2,…

определяем

значения

решений

u 2j ,

j  0,1,… , u 3j , … . 2. Методом неопределенных коэффициентов построим неявную разностную схему с шаблоном: 0

3

1

2

0( x j , t k ) ; 1( x j  h, t k ) ; 2( x j , tk  ) ; 3( x j  h, t k ) . Схема с неопределенными коэффициентами имеет вид 3   ci ui  f 0  O(2 , h3 )

(14.14)

i 0

или ее можно записать более подробно:     c0 u  x j , tk   c1u  x j  h, tk   c2 u  x j , tk     c3u  x j  h, tk    u   2u u    a ( x, t ) 2  d ( x, t )  g ( x, t )u ( x, t )   x ,t   O (2 , h3 ). (14.15) x x  t  j k

586

14. Метод сеток решения краевых задач

Предположим, что u ( x, t )  C23 (G ) . Разлагая функцию u , входящую в левую часть соотношения (14.15), по формуле Тейлора в окрестности узла x j , t k и приравнивая коэффициенты при

u,

u  2u u , , в левой и правой частях (14.15), будем иметь x x 2 t

 u  x j , tk  h1  2u  x j , tk  h 2    3    c0u  x j , tk   c1 u  x j , tk   O ( h )  x x 2 1! 2!    u  x j , tk  1   c2 u  x j , tk    O ( 2 )   1! t    u  x j , tk  h1  2u  x j , tk  h 2    c3 u  x j , tk     O(h 2 )   2 x 1! x 2!   

u ( x j , tk ) t

 a ( x j , tk )

 2 u ( x j , tk ) x

2

 d ( x j , tk )

 g ( x j , t k )u ( x j , t k ) ,

    c0  c1  c2  c3   g 0 ,   c1h  c3 h  c0 ,  c2   1,  2 2 c h  c h  a . 3 0  1 2 2

u ( x j , tk ) x

(14.16)

Из системы (14.16) легко определяем 2a ( x j , t k ) 1  d ( x j , tk ) a ( x j , tk )  , c0   g ( x j , tk )   , c1    2  h 2h h2 a ( x j , tk ) d ( x j , tk ) 1   .  c2   , c3   h2 2h  Подставляя полученные значения коэффициентов в (14.14), запишем неявную разностную схему:

587

Методы приближенных вычислений

u kj  u kj 1

 a kj

u kj 1  2u kj  u kj 1

 d kj

u kj 1  u kj 1

 g kj u kj  f jk , (14.17)  h2 2h j  0, 1, 2,… ; k  1, 2,…. Разностная аппроксимация начального условия имеет вид

u 0j  u0 ( x j ), j  0, 1,….

(14.18)

На методах реализации неявных разностных схем остановимся позже. Рассмотрим наиболее типичное уравнение параболического типа – уравнение теплопроводности в однородной среде или уравнение диффузии u ( x, t )  2u   2 ( x, t ) 2 , a  x  b , 0  t  T , (14.19) t x k , k – коэффициент теплопрогде u( x, t ) – температура;  2  c водности, c – удельная теплоемкость;  – плотность; a , b – левый и правый концы отрезка изменения пространственной переменной x ; t  0 – момент начала процесса, t  T – момент окончания процесса; в случае уравнения диффузии u – это концентрация d диффундирующего вещества;  2  , d – коэффициент трения, c c – коэффициент пористости среды [7, c. 378–379].

14.2. Постановка краевых задач для уравнения теплопроводности Постановка задачи Коши для параболического уравнения была приведена выше. Сформулируем три типа краевых задач для уравнения теплопроводности [1, с. 159; 5].

588

14. Метод сеток решения краевых задач

Первая краевая задача

В области G  ( x, t ) a  x  b, 0  t  T

требуется найти

функцию u ( x, t )  C12 (G )  C (G ) , удовлетворяющую уравнению теплопроводности u  2u   2 ( x, t ) 2  f ( x, t ) , a  x  b , 0  t  T , (14.20) t x начальному

u ( x,0)  u0 ( x), a  x  b,

(14.21)

u (a, t )  1 (t ),0  t  T ;

(14.22)

u (b, t )  2 (t ),0  t  T .

(14.23)

и граничным условиям

Отметим, что u0 ( x) , 1 (t ) , 2 (t ) – заданные функции. Вторая краевая задача В области G определяется функция

u ( x, t )  C12 (G )  C 1 (G ) , удовлетворяющая уравнению теплопроводности u  2u   2 ( x, t ) 2  f ( x, t ) ; a  x  b , 0  t  T , (14.24) t x начальному

u ( x,0)  u0 ( x), a  x  b,

(14.25)

и граничным условиям u ( a, t )  1 (t ),0  t  T ; x

(14.26)

589

Методы приближенных вычислений

u (b, t )  2 (t ),0  t  T . x

(14.27)

Третья краевая задача В области G ищется функция u ( x, t )  C12 (G )  C 1 (G ) , удовлетворяющая уравнению теплопроводности u  2u   2 ( x, t ) 2  f ( x, t ) , a  x  b , 0  t  T , t x начальному u ( x,0)  u0 ( x), a  x  b, и граничным условиям u (a, t ) 1   0u (a, t )  1 (t ),0  t  T ; x 1

u (b, t )  0 u (b, t )  2 (t ),0  t  T ; x

(14.28)

(14.29)

(14.30)

(14.31)

отметим, что  0 , 1 , 0 , 1 – заданные числа, причем  02  12  0 , 02  12  0 . Опишем физический процесс для случая первой краевой задачи. Это процесс передачи тепла по длинному тонкому стержню, лежащему вдоль оси ox от точки x  a до x  b (ось стержня и ось ox совпадают). Предполагается, что в точке x  a температура

изменяется со временем по закону 1 (t ) , а в точке x  b – по закону 2 (t ) . В начальный момент времени функция u0 ( x) задает начальное распределение температуры вдоль стержня. Тогда распределение температуры вдоль него в последующие моменты времени определяется решением первой краевой задачи (14.20)– (14.23), причем u ( x, t ) означает температуру стержня в некоторой 590

14. Метод сеток решения краевых задач

точке x в момент времени t . По аналогии с первой краевой задачей можно описать физические процессы для второй и третьей краевых задач соответственно.

14.2.1. Численное решение первой краевой задачи Применим метод сеток для численного решения задачи (14.20)– (14.23). Для этого покроем область G равномерной сеткой h  h   , где

h  x j x j  a  jh, j  0, N ;

ba T ,M  . h  Для аппроксимации уравнения теплопроводности можно воспользоваться явной разностной схемой (14.10):   tk tk  k , k  0,1,…, M  , N 

u kj !  u kj 

   kj 

2

u kj 1  2u kj  u kj 1 h2

k  0, M  1,

 f jk , j  1, N  1 ;

(14.32)

или неявной разностной схемой (14.17): u kj  u kj 1 

   kj 

2

u kj 1  2u kj  u kj 1

Аппроксимация члена

h2

 f jk , j  1, N  1 , k  1, M . (14.33)

 2u в узле x j , t k  имеет одинаковый вид x 2

как в явной, так и в неявной схемах. Схемы различаются за счет аппроксимации члена

u x ,t  . t j k 591

Методы приближенных вычислений

В явной схеме используется разность вперед, а в неявной – разность назад. Можно также применять центральную разность для аппроксимации u kj 1  u kj 1 u .  t  x j ,tk  2 Тогда получим так называемую схему Ричардсона k k k u kj 1  u kj 1 2 u j 1  2u j  u j 1    kj   f jk , j  1, N  1 , h2 2 k  1, M  1.

(14.34)

Запишем разностную аппроксимацию краевых условий: u 0j  u0 ( x j ), j  0, N ;

(14.35)

u0k 1  1 (tk 1 ), u Nk 1  2 (tk 1 ), k  0, M  1.

(14.36)

Выберем из этих трех разностных схем наилучшую с точки зрения погрешности аппроксимации и устойчивости. Вначале рассмотрим вопрос о погрешности аппроксимации схемы Ричардсона (14.34). Перепишем разностные схемы (14.32)–(14.34) в обозначениях А.А. Самарского [4]: (14.37) ut   2 u xx  f ,  x, t  h ; u t   2 u xx  f ,  x, t   h ;

(14.38)

u   u xx  f ,  x, t   h , и добавим начальное условие

(14.39)

u ( x,0)  u0 ( x) , x  h ,

(14.40)

0 t

2

 uˆ  u u u , ut  где ut  ,    uˆ  u kj ! , u  u kj , u  u kj 1 .

 uˆ  u 0 , ut  

u xx 

u j 1  2u j  u j 1 h2

,

Определение 3. Схема (14.37)–(14.40) устойчива, если для решения этой задачи справедлива оценка

592

14. Метод сеток решения краевых задач

u (t )

(1)

 C1 u0  C2 max f (t ) 0  t  T

(2)

, t   ,

(14.41)

где C1 ,C2 – положительные постоянные, не зависящие от  и h ;

 (1) ,  ( 2 ) – некоторые нормы на слое (на сетке h ). Пусть f  0 . Тогда оценка

u (t ) (1)  C1 u0 , t   ,

(14.42)

выражает устойчивость схемы (14.37)–(14.40) по начальным данным. Если u0 ( x)  0 , то неравенство

u (t ) (1)  C2 max f (t ) ( 2 ) 0  t  T

(14.43)

означает устойчивость схемы по правой части. Оценка (14.41) для решения задачи (14.37)–(14.40) выражает устойчивость схемы по начальным данным и по правой части. Представим решение задачи (14.37)–(14.40) в виде суммы u  u  u~ , где u – решение однородного уравнения с начальным условием ut   2 u xx ,

u ( x,0)  u0 ( x),

(14.44)

a u~ – решение неоднородного уравнения с однородным начальным условием ut   2 u xx  f ,

u ( x ,0)  0.

(14.45)

Для исследования устойчивости схемы (14.32) по начальным данным надо для решения задачи вида (14.44) получить оценку (14.42) в сеточной норме L2 (h ) . Для этого будем искать решение задачи u в виде гармоники. Сеточная норма определяется следующим образом: N 1

u

1

 u , u  (u, u ) ; u , v    u j v j h . j 1

593

Методы приближенных вычислений

В случае системы дифференциальных уравнений в частных производных, когда решение соответствующей разностной задачи есть вектор-функция, т.е. u  (u1 ,…, u N )T , при исследовании устойчивости разностной схемы по начальным условиям получается так называемая матрица или оператор перехода с k-го на (k+1)-й временной слой G ( ) [3, с. 518–519; 14, с. 145–149], т.е. u k 1  G ()u k .

14.2.2. Теория устойчивости разностных схем по начальным данным Приведем без доказательства некоторые условия устойчивости, полученные Дж. фон Нейманом и его учениками [8]. Теорема 1 (необходимый признак устойчивости фон Неймана). Если разностная схема устойчива, то собственные значения  j матрицы перехода G ( ) схемы удовлетворяют условиям 0    t ,  j  1  c при   j  1, n.

(14.46)

Здесь 1 ,  2 ,…,  n – собственные значения матрицы перехода G ( ), c – постоянная, не зависящая от шагов сетки. Условие (14.46) является необходимым условием устойчивости фон Неймана. В простейших задачах условие (14.46) применяется в виде  j  1 . В некоторых задачах бывает так, что компоненты точного решения с ростом времени t возрастают экспоненциально, а условие  j  1 не допускает такого роста. В этих случаях используется условие (14.46). Приведем без доказательства еще два условия, которые являются не только необходимыми, но и достаточными условиями устойчивости [8]. 594

14. Метод сеток решения краевых задач

Теорема 2. Если матрица перехода G ( ) является нормальной, то условие фон Неймана является не только необходимым, но и достаточным условием устойчивости. Утверждение теоремы 2, в частности, справедливо при значении n  1 . Отсюда следует, что для разностных схем, аппроксимирующих одно дифференциальное уравнение, необходимое условие устойчивости по начальным данным будет и достаточным. Теорема 3. Если элементы матрицы G ( ) равномерно ограничены при всех 0    t и все ее собственные значения  j , за ис-

ключением, быть может, одного, принадлежат некоторому кругу, лежащему внутри единичного круга, т.е. для 0    t ,  j    1 при j  2, n , то условие фон Неймана будет не только необходимым, но и достаточным для устойчивости.

14.2.3. Исследование вопросов аппроксимации, устойчивости и сходимости разностной краевой задачи первого рода Обозначим разность между численным решением соответствующей разностной задачи u kj и точным решением u ( x j , t k ) исходk ной задачи через z j , т.е.

u kj  u  x j , tk   z kj .

(14.47)

Подставляя (14.47) в (14.34), будем иметь z kj 1  z kj 1

где 1 x j , tk

2

   kj 

2

z kj 1  2 z kj  z kj 1 h2

 1  tk , x j  ,

(14.48)

 – функция погрешности аппроксимации, причем 595

Методы приближенных вычислений

1  x j , tk    ( x j , tk )  

u ( x j  h, tk )  2u ( x j , tk )  u ( x j  h, tk )

2

u ( x j , tk  )  u ( x j , tk  ) 2

h2  f ( x j , tk ) .

(14.49)

Предположим, что функция u ( x, t )  C34 (G ) . Разлагая функцию u , входящую в (14.49) в окрестности узла ( x j , t k ) по формуле Тейлора, получим

1  x j , tk     x j , tk  3

u  x j , tk   hu   x j , tk   2 h2

h2 u   x j , tk  2 

4

h h u   x j , tk   u (IV)  x, tk   2u  x j , tk   u  x j , tk   hu   x j , tk  6 24   h2 h2 h3 h4 u   x j , tk   u   x j , tk   u (IV) x , tk u  x j , tk    u  x j , tk  6 24  2   2 2 2 3 2 u x j , tk    u  x j , t   u  x j , tk    u  x j , tk   u x j , tk  6 2  2  2 3  u x j , t  6  f  x j , tk  , 2 где x  x , x  h , x  x  h, x , t   t , t    , t   t  , t  , 

 

j

j

j

j

k

k

k

k

 2u  2u u u , u   2 и т.д., u  , u  2 и т.д. x t t x По теореме о среднем [13] найдутся такие x  x j  h, x j  h  и

u 

t   tk  , tk    , что функцию погрешности можно записать в виде 596

14. Метод сеток решения краевых задач

1 ( x j , tk )    x j , tk 

2

 2 u ( x j , tk )

u ( x j , tk )

 f ( x j , tk )  x t h 2  2 ( x j , t k )  4 u ( x , t k )  2  3u ( x j , t )   x 4 t 3 12 6 или, учитывая, что 2

u  2u   2 ( x, t ) 2  f , t x получим h22 ( x j , tk ) 4u( x , tk ) 2 3u( x j , t ) (14.50) 1 ( x j , tk )   . x4 t 3 12 6 Таким образом, разностная схема (14.34) аппроксимирует уравнение теплопроводности со вторым порядком как по , так и по h . Аналогичным образом можно показать, что для явной схемы (14.32) функция погрешности аппроксимации  2 ( x j , tk )  O(  h 2 )

и для неявной разностной схемы (14.33) 3 ( x j , tk )  O(  h 2 ) . Сравнивая (14.32), (14.33) и (14.34) с точки зрения погрешности аппроксимации, нетрудно видеть, что предпочтительной является схема Ричардсона – трехслойная разностная схема, имеющая второй порядок погрешности и по , и по h . Исследуем названные схемы на устойчивость по начальным данным. Например, применим распространенный прием исследования разностных схем с постоянными коэффициентами, называемый методом гармоник [9, с. 272–282]. Метод не является достаточно обоснованным (не учитывается влияние граничных условий и правой части), но позволяет найти необходимые условия устойчивости [3, с. 490–491; 9, с. 275]. Методом гармоник исследуем устойчивость явной схемы (14.32) по начальным данным. Будем искать решение задачи Коши k k k u kj 1  u kj 2 u j 1  2u j  u j 1 (14.51)    kj  ,  h2 597

Методы приближенных вычислений

u 0j  u0 ( x j ) , в виде

u kj   k eij ,

(14.52)

где  – число, которое должно быть определено, i   1 ,   0, 2 . Подставляя (14.52) в (14.51), получим k i ( j 1)   2eij  ei ( j 1)   2  e  k 1eij   k eij    kj  h2 

или, сокращая на  k eij левую и правую части последнего соотношения, будем иметь

 1  j   2  h

k 2

e

i

 e  i  2 

или  k 2 i   j  (e  ei  2). h2 Отсюда, используя тригонометрическую формулу  1

(14.53)

ei  e i  2 cos  , получим  k 2 2 (14.54)   j  sin 2 . h2 Необходимое условие устойчивости фон Неймана имеет вид  1 4

  1 или 1  4

 k 2 2   j  sin 2  1 . h2

Из определения модуля следует 2   1  1  4 2   kj  sin 2  1 . h 2 598

(14.55)

14. Метод сеток решения краевых задач

Сначала рассмотрим правое неравенство 2   1  4 2   kj  sin 2  1 . h 2 Последнее неравенство, очевидно, справедливо при любых , h  0 . Теперь рассмотрим левое неравенство из (14.55): 2   1  1  4 2   kj  sin 2 2 h или 2   4 2   kj  sin 2  2 . 2 h Отсюда следует, что  k 2 2 1   j  sin 2  2 . h2 Последнее неравенство можно преобразовать к виду  k 2 2  k 2 1   j  sin 2  h2   j   2 . h2 Окончательно необходимое условие устойчивости примет вид  k 2 1 (14.56)  j   2 . h2 Для случая одного уравнения необходимое условие устойчивости является и достаточным. Итак, явная схема (14.32) – условно устойчива. Покажем, как проводится исследование устойчивости неявной разностной схемы (14.33) по начальным условиям. Методом гармоник решение находится в виде (14.52). Подставляя последнее в (14.33), будем иметь



k

  k 1  eij 

   kj   k eij 2

e

i

 e  i  2  h2

.

599

Методы приближенных вычислений

Сокращая обе части последнего соотношения на  k 1eij , получим

 j   1   4 2  sin 2 . 2  h Отсюда находим множитель перехода  : 1 .   k 2 2 1  4 2   j  sin 2 h k

2

(14.57)

Очевидно, что   1 при любых , h  0 . Из этого делаем вывод о том, что условие устойчивости выполняется для значений  , определяемых соотношением (14.57), при любых шагах по времени и пространству. Следовательно, неявная разностная схема абсолютно устойчива [4]. Абсолютная устойчивость неявной разностной схемы является основным преимуществом таких схем. При выборе временного шага  руководствуются единственным соображением – необходимой точностью расчета, а не требованием устойчивости [9]. В работе А.А. Самарского и А.В. Гулина рассматривается обобщение двух вышеприведенных схем – однопараметрическое семейство схем с весами: u kj 1  u kj 

 u xxk ,1j  1    u xxk , j  f jk ,

j  1, N  1, k  0, М  1,

u 0j  u0 ( x j ) , j  0, N , где  – произвольный действительный параметр [9]. Шаблон у приведенного семейства разностных схем состоит из шести точек. При значении   0 из этого семейства выделяется явная схема; при   1 – чисто неявная; при   0,5 получается симметричная схема (неявная). В [Там же, с. 278] дана оценка погрешности аппроксимации однопараметрического семейства схем при различных значениях  . 600

14. Метод сеток решения краевых задач

Кроме того, показано, что все схемы семейства со значениями   0,5 являются абсолютно устойчивыми [9, с. 279]. С помощью метода гармоник можно показать, что явная схема Ричардсона не является устойчивой и поэтому не может быть использована при численном решении краевых задач для уравнения теплопроводности. Поэтому с учетом погрешности аппроксимации и устойчивости схемы (14.32) и (14.33) имеют преимущество перед схемой Ричардсона (14.34). Сравнение схем (14.32) и (14.33) с точки зрения погрешности аппроксимации не дает преимущества ни одной из них, так как и та и другая имеют первый порядок по  и второй – по h . Явная схема – условно устойчива, неявная – абсолютно устойчива. С этих позиций – неявная схема предпочтительнее. Но неявную схему сложнее реализовать, так как она требует специальных методов для проведения вычислений (прогонки или итерационных методов). Реализация явной схемы осуществляется достаточно просто.

14.2.4. Алгоритм численного решения первой краевой задачи Для численного решения первой краевой задачи u  2u   2 ( x , t ) 2  f ( x, t ) , a  x  b , 0  t  T ; t x u ( x,0)  u0 ( x), a  x  b; u (a, t )  1 (t ),0  t  T ; u (b, t )  2 (t ),0  t  T

(14.58) (14.59) (14.60) (14.61)

выберем явную разностную схему (14.32) (можно с такой же вероятностью взять неявную схему (14.33), но ее будем применять при численном решении третьей краевой задачи). Запишем разностную краевую задачу, аппроксимирующую дифференциальную задачу (14.58)–(14.61): 601

Методы приближенных вычислений

u kj 1  u kj 

   kj 

2

u kj 1  2u kj  u kj 1 h2

 f jk , j  1, N  1 ; k  0, M  1 ; (14.62)

u 0j  u0 ( x j ), j  0, N ;

(14.63)

u0k 1  1 (tk 1 ), k  0, M  1 ;

(14.64)

u

k 1 N

 2 (tk 1 ), k  0, M  1 .

(14.65)

Для удобства проведения вычислений разрешим (14.62) относиk 1 тельно u j :  k 2 k   j   u j 1  2u kj  u kj 1    f jk ; h2 j  1, N  1 , k  0, M  1;

u kj 1  u kj 

(14.66)

u  u0 ( x j ), j  0, N ;

(14.67)

u0k 1  1 (tk 1 ), k  0, M  1 ;

(14.68)

k 1 N

(14.69)

0 j

u

 2 (tk 1 ), k  0, M  1 .

Алгоритм решения задачи (14.66)–(14.69) таков: сначала определяем значения решения на нулевом временном слое с помощью начального условия (14.67). Далее переходим на первый временной слой. Для этого в (14.66) полагаем k  0 : u1j  u 0j 

 0 2 0 u  2u 0j  u 0j 1    f j0 , j  1, N  1 .  2  j   j 1 h

Значения u10 – на левой границе и u1N – на правой границе определяем с помощью (14.68) и (14.69) соответственно. Затем переходим на второй временной слой, полагая в (14.66) k  1, и определяем u 2j через соответствующие значения u 1j , полученные на предыдущем шаге. Значения u 02 и u N2 определяем из (14.68) и (14.69) при k  1 . Этот процесс вычислений продолжается до k  M  1 включительно по ранее изложенной схеме. 602

14. Метод сеток решения краевых задач

Итак, рассмотрен алгоритм численного решения задачи (14.62)– (14.65) на равномерной сетке с помощью явной схемы. Шаг по времени  выбирается из условия устойчивости (14.56).

14.3. Метод сеток решения третьей краевой задачи для уравнения теплопроводности 14.3.1. Постановка задачи и выбор численного метода В области G   x, t  0  t  T , a  x  b с границей Г   x, t  t  0; a  x  b;0  t  T ; x  a , x  b требуется определить функцию u ( x, t )  C12 (G )  C 1 (G ) , удовлетворяющую уравнению теплопроводности u  2u   2 ( x, t ) 2  f , t x

(14.70)

u ( x,0)  u0 ( x)

(14.71)

начальному условию и соответствующим граничным условиям  u    0 (t )u    x  

xa

 1 (t ) ,

(14.72)

 u  (14.73)  0 (t )u  x b  1 (t ) .   x  Для численного решения задачи (14.70)–(14.73) покроем область G сеточной областью с равномерной сеткой h  h   , где

 1 ba  h   x j x j  a   j   h, j  1, N , h  , 2 N   

603

Методы приближенных вычислений

h  tk tk  k , k  0, M , M 

 На рис. 14.2. показаны области G и h .

T . 

t

M T

2

 0

x1

a

x0

x1

x2 …

xN 1

b

xN

x

Рис. 14.2

На рис. 14.2 значком «o» обозначены внутренние узлы сеточной области, значком «×» – граничные узлы и значком «□» – фиктивные узлы. Фиктивные узлы имеют координаты

x1, tk 1  , xN , tk 1  , 604

14. Метод сеток решения краевых задач

где x1  a 

h h , xN  b  . 2 2

Как видим, пространственная сетка на величину

h смещена отно2

сительно границ x  a и x  b . Множество граничных узлов обозначим  h . Запишем неявную разностную схему, аппроксимирующую уравнение теплопроводности, а также разностные аналоги для начальных и граничных условий: u kj  u kj 1 

   kj 

2

u kj 1  2u kj  u kj 1 h2

 f jk ,

j  1, N  1, k  1, M ;

(14.74)

u 0j  u0 ( x j ) , j  0, N ;

(14.75)

u0k  uk1 u k  uk1   0k 0  1k , k  1, M ; h 2

(14.76)

u Nk  u Nk 1 u k  u Nk 1  0k N  1k , k  1, M . h 2

(14.77)

14.3.2. Оценка погрешности аппроксимации неявной разностной схемы Оценим порядок погрешности аппроксимации разностной схемы (14.74)–(14.77). Для этого перепишем разностную задачу в операторной форме

Lh u ( h )  F ( h ) ,

(14.78)

где

605

Методы приближенных вычислений

Lh u ( h )

 u kj  u kj 1 u kj 1  2u kj  u kj 1 k 2   , j  1, N  1, k  1, M ;  j   h2  u 0j , j  0, N ;   uk  uk u k  uk1 1   0k 0 , k  1, M ;  0 2  h uk  uk u k  u Nk 1 N 1 , k  1, M ,  0k N  N 2 h 

F (h)

 f jk ,  u0 ( x j ),  k 1 ,  k 1 .

Предположим, что u ( x, t )  C24 (G ) . Рассмотрим    u( x j , tk )  u( x j , tk  ) 2 u ( x  h, t )   ( x j , tk )  ( j 2 k    h   2u( x j , tk )  u( x j  h, tk ) ),  h2  Lh [u]h  u( x j ,0),  h h  u ( a  h , tk )  u ( a  h , tk ) u ( a  , tk )  u ( a  , t k ) 2 2 2 2   0 (tk ) ,  h 2  h h  u(b  h , tk )  u(b  h , tk ) u(b  , tk )  u(b  , tk ) 2 2 2 2  0 (tk ) .  h 2

(14.79)

Разлагая функцию u , входящую в (14.79), в окрестности узла  x j , tk  в ряд Тейлора для базовой схемы,  x j ,0  – для начального условия,  a, tk  – для левого граничного условия и  b, tk  – для правого граничного условия, будем иметь

606

14. Метод сеток решения краевых задач

 u ( x j , tk ) 2  2u ( x j , t )   u ( x j , tk )  u ( x j , tk )   t t 2 2      u ( x j , tk ) h 2  2u ( x j , tk )    u ( x , t ) h j k   ( x , t ) 2 x x 2 2    j k 2  h  3 3 4 4  h  u ( x j , tk ) h  u ( x , tk )   2u ( x j , tk )  u ( x j , tk )  6 x3 24 x 4   2 h   u ( x j , tk ) h 2  2u ( x j , tk ) h3  3u ( x j , tk ) h 4  4u ( x , tk )     h x x 2 x3 24 x 4 2 6  , 2 h  u ( x j , 0)  0,   h u h 2  2u h3  3u ( x , tk ) h u h 2  2u   u   u  2 3 2 2 x 8 x 48 x  2 x 8 x   h h  Lh [u ]h    3  h u h 2  2u ( x* , tk )  h ( x , tk )     u 2 x 8  x 2 48       t ( )  , 0   x a t t k k  h 2  2        h u   u h 2  2u ( x** , tk ) 2 x   ,  x  a ,t tk   0 (tk ) x 2 16 2      h u h 2  2u h3  3u ( xˆ , tk ) h u h 2  2u        u u  2 3  2 x 8 x 48 x 2 x 8 x 2   h    3 3 ˆ h u (b, tk )   h  u ( xˆ , tk )    u (b, tk )  2 x  48 x 3  x b ,t t  0 (tk )    k h 2       

607

Методы приближенных вычислений

  h 2  2 u ( x , tk ) h u (b, tk ) h 2  2 u ( x , tk )   u (b, tk )     8 x 2 2 x 8 x 2 .  2     

Полученные соотношения можно переписать в следующем виде:    2  u 2    u  x j , t  h 2 2    2 ( x, t )  u2     ( x j , tk )  24 x   , x j ,tk  2 t 2  t     4u  x, t   4u x, t  k k   ,     x 4 x 4    u ( x j , 0)  0,  3 3  u h 2   u  x , tk   u  x , tk     Lh [u ]h     0 (t )u   a ,tk      48  x3 x3   x     2u  x* , tk   2u  x** , tk    h2  ,    ( ) t 0 k  2 2     16 x x     3 ˆ  3   u h 2   u  xˆ, tk   u xˆ, tk     0 (t )u  b ,t     3 x3   x  k 48  x       2   2u  x, t   2u x , tk   h  k (14.80)  ,   16 0 (tk )  x 2  x 2   

 

~ x  x j  h, x j , где t   tk  , tk  , ~ x  xj, xj  h , ~

h h h h    x   a, a   , x   a  , a  , x *  (a, a  ) , x **  (a  , a ) , 2  2 2 2   608

14. Метод сеток решения краевых задач

h h    h    h    xˆ   b, b   , xˆˆ   b  , b  , x   b, b   , x   b  , b  . 2 2  2 2      По теореме о среднем найдутся такие точки: h h h h   1   x j  h, x j  h  ,  2 , 3   a  , a   ,  4 , 5   b  , b   , 2 2 2 2  

что (14.80) можно переписать в виде 2   4u (1 , tk )   u  x j , t  h 2 2  f  x j , tk   ( , ) ,   x t j k 2 t 2 12 x 4  u0 ( x j )  0,  3 Lh [u ]h    2 u  3 , tk  h 2  u   2 , tk  h 2 ( ) , t   1 (tk )  0 k 24 8 x 3 x 2  3   2 u   5 , tk  h 2  u   4 , tk  h 2 1 (tk )  ( ) . t   0 k 24 8 x 3 x 2 

 ( h ) Обозначим вектор погрешности (невязки) F :

 ( h )    2u  x j , t  h 2 2  4u  1 , tk  ,0, F       x j , tk   2 12 t 2 x 4  3  2 u  3 , t k  h 2  u   2 , tk  h 2   t ,   0 k x 3 x 2 24 8 3  2 u  5 , tk   h 2  u   4 , tk  h 2   t    . k 0 24 8 x3 x 2   ( h ) Компоненты F имеют следующие значения: T

1 F

(h)

(14.81)

2  4u  1 , tk    u  x j , t  h 2 2     x j , tk  , 2 12 t 2 x 4

2 F ( h )  0,

609

Методы приближенных вычислений

3 F ( h ) 

3  2 u  3 , tk   h 2  1  u   2 , tk    ( t )   , 0 k 8 3 x3 x 2 

3  2 u  5 , tk   h 2  1  u   4 , tk    ( t )   . 0 k x 3 x 2 8 3   ( h ) Оценим норму невязки F в пространстве C (h ) :

4 F ( h ) 

F ( h )  max 1 F ( h ) ,  2 F ( h ) , 3 F ( h ) ,  4 F ( h ) ,

где 1 F ( h )  max  x , th

2  4 u  x, t    u  x, t  h 2 2   x , t    2 t 2 12 x 4

 2 u  x, t  h 2  4 u  x, t   2  max  max   x, t  max  x ,th 2 x ,th t 2 12 x ,th x 4   M1  h2 M 2     h2  M 3 ,

M1 

 2 u  x, t   4 u  x, t  1 1 2 max , M  max  x , t max ,   2 x ,th 2 x ,th t 2 12 x ,th x 4

M 3  max( M1 , M 2 ) . 2 F ( h)  0 ;

3 F

 h2

(h)

3  2 u  x, t   h 2  1  u  x, t   max   0 (t )   x ,t h 8  3 x 3 x 2  

 3u  x , t   2 u  x, t  1 2 1 max  h max  ( t ) max  0 x ,t h 24 x ,th x3 8 t , xh x 2  h2 M 4  h2 M 5  M 6h2 ,

M4 

610

 3u  x, t   2 u  x, t  1 1 max ; M  max  ( t ) max ; 5 0 x ,t h 24 x ,t h x 3 8 t h x 2

14. Метод сеток решения краевых задач

M 6  max( M 5 , M 4 ). Аналогичным образом можно показать, что 3 F ( h )  h 2 M 9 ,

где

M 9  max(M 7 , M 8 ) , M7 

 2 u  x, t  1  3u  x, t  1 , max M  max  ( t ) max . 8 0 x ,t 8 t x 2 24 x ,t h x 3 h

h

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

14.3.3. Метод прогонки для определения численного решения Перепишем схему (14.74), собрав коэффициенты при u kj1 , u kj ,

u kj1 таким образом, чтобы при u kj1 и u kj1 они равнялись единице. Для этого обе части (14.74) умножим на

h2

 

k 2 j

. В результате

будем иметь

Akj u kj1  B kj u kj  C kj u kj1  D kj ,

(14.82)

где

Akj  C kj  1 , B kj  2 

h2  

k j

2

, D kj  

h2  

k j

2

u kj 1 

h2

 

k 2 j

f jk ,

(14.83)

j  1, N  1 , k  1, M . 611

Методы приближенных вычислений

Система (14.82) имеет трехдиагональную матрицу, следовательно, для решения соответствующей краевой задачи можно использовать метод прогонки [4]. Добавим к формулам (14.82) и (14.83) разностные краевые условия (14.75)–(14.77), предварительно преобразовав их:

u

u 0j  u0 ( x j ) , j   1, N ;

(14.84)

uk1  W0k u0k  V0k , k  1, M ;

(14.85)

 R u  S , k  1, M ,

(14.86)

k N 1

k N

k N

k N

где W0k 

2  h 0k 2h1k k , ; V   0 2  h 0k 2  h 0k

(14.87)

RNk 

2  h0k 2h1k k , S .   N 2  h0k 2  h0k

(14.88)

Как известно [4], метод прогонки состоит из двух этапов: прямой прогонки и обратной прогонки. Прогонка осуществляется по следующей формуле: u kj1  Pjk u kj  Q kj , (14.89)

j  N , N  1,…,0; k  1, M ; Pjk , Q kj – прогоночные коэффициенты, которые определяются на первом этапе метода прогонки. Для этого подставляем (14.89) в (14.82) и выражаем u kj через u kj1 . Будем иметь

Akj Pjk u kj  Q kj  B kj u kj  C kj u kj1  D kj или

A P k j

k j

 B kj u kj  C kj u kj1  D kj  Akj Q kj .

Из последнего соотношения выражаем u kj :

u kj  Pjk1u kj1  Q kj1 , 612

(14.90)

14. Метод сеток решения краевых задач

где k j 1

P



C kj Akj Pjk  B kj

,Q

k j 1

D kj  Akj Q kj Akj Pjk  B kj

или k j 1

P

 D kj  Akj Q kj C kj k , Q j 1   k B j  Akj Pjk B kj  Akj Pjk

(14.91)

j  0,1,…, N  1 ; k  1, M . Для того чтобы воспользоваться формулой (14.91), необходимо определить P0k , Q0k . Очевидно, что эти прогоночные коэффициенты определяются по формулам (14.85) (из левого граничного условия), т.е. P0k 

2  h 0k 2h1k k , Q   , k  1, M . 0 2  h 0k 2  h0k

(14.92)

Остальные прогоночные коэффициенты находятся по формулам (14.91). P1k , Q1k определяются через P0k , Q0k ; P2k , Q2k – через

P1k , Q1k и т.д. После завершения первого этапа метода прогонки (прямой прогонки), проводится второй этап (обратная прогонка), на котором определяются значения решения по формуле (14.89). При j  N имеем

u Nk 1  PNk u Nk  QNk .

(14.93)

В (14.93) содержатся две неизвестные величины: u Nk 1 , u Nk . Добавим к (14.93) правое граничное условие (14.86). Исключая из полученной системы u Nk 1 , находим

u Nk 

S Nk  QNk . PNk  RNk

(14.94) 613

Методы приближенных вычислений

Далее с помощью прогоночной формулы (14.89) последовательно определяются u Nk 1 , u Nk 2 ,…, uk1 , k  1,2,…, M . Метод прогонки осуществляется шагами по времени. Сначала при k  0 вычисляются коэффициенты A0j , B 0j , C 0j , D 0j ,

j  1, N  1 . Далее, при k  1 , находим прогоночные коэффициенты P01 , Q01 по формулам (14.92), а затем P11 , Q11 ,…, PN1 , Q1N по формулам (14.91). На втором этапе находим u1N из (14.94), а затем с помощью прогоночной формулы определяем u1N 1 , u 1N 2 ,…, u11 . После этого вычислительный процесс повторяется на втором временном слое k  2 , далее для k  3,…, k  M . Возникает вопрос об устойчивости метода прогонки. Устойчивость метода прогонки зависит от того, обращается ли в ноль знаменатель B kj  Akj Pjk в формулах (14.91) для нахождения

Pjk1 , Q kj1 . Покажем, что для возможности применения метода прогонки достаточно, чтобы коэффициенты системы (14.82)–(14.88) удовлетворяли условиям

Akj  0 , C kj  0 , B kj  A kj  C kj , j  1, N  1;

(14.95)

P0k  1 , PNk  1 .

(14.96)

Методом математической индукции докажем, что

Pjk  1 ,

j  1, N . Согласно (14.87) справедливо неравенство P0k  W0k  1 при условии, что  0k  0 . Предположим, что Pjk  1 для некоторого j. Докажем, что Pjk1  1 . 614

14. Метод сеток решения краевых задач

Действительно, из формул (14.91) следует, что k j 1

P

C kj

B kj  Akj Pjk

C kj B kj  Akj Pjk

.

(14.97)

Из (14.95) имеем C kj  B kj  A kj . Тогда можно продолжить цепочку неравенств (14.97): k j 1

P

C kj B kj  Akj Pjk

B kj  Akj B kj  Akj Pjk

 1.

Последнее неравенство справедливо, так как в силу наших предположений Кроме того, очевидно, что Pjk  1. B kj  Akj Pjk >0, j  1, N  1 . В формуле (14.94) для нахождения u Nk в знаменателе стоит разность PNk  RNk . Очевидно, что BNk 1  ANk 1 PNk 1  0 , 2  h0 k  0 , PNk  RNk  0 . Прогоночный коэффициент

P0k определяется по формуле

(14.92). Очевидно, что P0k  1 , если коэффициент  0  tk   0 . Следовательно, устойчивость метода прогонки при условиях (14.95)–(14.96) имеет место.

14.4. Решение уравнения теплопроводности с переменными коэффициентами методом сеток Дадим постановку первой краевой задачи для уравнения теплопроводности с переменными коэффициентами [9]: ( x , t )

u   u    k ( x, t )   f ( x, t ) , a  x  b , 0  t  T , t x  x 

615

Методы приближенных вычислений

u ( x,0)  u0 ( x), u (a, t )  1 (t ) ,

(14.98)

u (b, t)  2 (t ) , где ( x, t ) , k ( x, t ) , f ( x, t ) – достаточно гладкие функции, удовлетворяющие условиям

0  C1  k ( x, t )  C2 , ( x, t )  C3  0 .

(14.99)

Рассмотрим дифференциальное выражение

 u  (14.100)  k ( x, t )  x  x  из (14.98) и, фиксируя время t , аппроксимируем (14.100) следуюLu 

щим разностным соотношением: u j 1u j u j u j 1  1 . (14.101) (t)u  a(x j ,t)ux  a x j 1,t a(x j ,t) j h h  x, j h  

Для разностного коэффициента теплопроводности

a( x j , t )

должны выполняться условия второго порядка аппроксимации a( x j 1 , t )  a( x j , t )  2k ( x j , t )  O( h 2 ) , a ( x j 1  h, t )  a( x j , t ) h Эти условия выполняются для [4]:

 k ( x j , t )  O (h 2 ) .

h a( x j , t )  0,5  k ( x j , t )  k ( x j 1 , t )  , a( x j , t )  k ( x j  , t ), 2 2k ( x j 1 , t )k ( x j , t ) . a( x j , t )  k ( x j 1 , t )  k ( x j , t ) Запишем явную разностную схему, аппроксимирующую задачу (14.98):   x j , tk 

616

u kj 1  u kj 

 a  x j , tk  u xk

x, j

 f ( x j , tk ) , j  1, N  1;

14. Метод сеток решения краевых задач

u0k  1 (tk ) , u Nk  2 (tk ) , u 0j  u0 ( x j ) .

(14.102)

При этом выполняется первый порядок аппроксимации по  и второй относительно h . При исследовании устойчивости разностных схем с переменными коэффициентами используется принцип замороженных коэффициентов [9], в соответствии с которым задача сводится к уравнению с постоянными коэффициентами. Исследуем устойчивость явной разностной схемы (14.102) с f ( x j , tk )  0 :   x j , tk 

u kj 1  u kj 

 a  x j , tk  u xk

x, j

.

(14.103)

«Заморозим» коэффициенты ( x j , tk ) , a ( x j , tk ) , т.е. будем считать, что они постоянные: ( x j , tk )    const , a( x j , tk )  a  const. Перепишем уравнение (14.103) в виде 

u kj 1  u kj 

 au xx , j

или u kj 1  u kj 1

 u xx , j , 1 

a . 

Ранее было показано, что схема устойчива при выполнении условия

1 

h2 2

или  a h2 .  2 

(14.104)

В соответствии с принципом замороженных коэффициентов схема (14.103) устойчива, если условие (14.104) справедливо при 617

Методы приближенных вычислений

всех допустимых значениях a ( x j , tk ) ,   x j , tk  , другими словами, если неравенства

 a ( x j , tk ) ( x j , tk )

h2 2

(14.105)

выполнены при всех tk , x j . С учетом условий (14.99) неравенство (14.105) можно записать в виде С   3 . h 2 2С2 Далее сформулируем для нелинейного уравнения теплопроводности:

u   u    k (u )   f (u ) , t x  x  первую краевую задачу u ( x,0)  u0 ( x) , u (a, t )  1 (t ) , u (b, t )  2 (t ) ,

(14.106)

Для нелинейных уравнений не используют явные схемы, так как заранее неизвестны пределы изменения функции k (u ) . Аппроксимируем уравнение теплопроводности из (14.106) чисто неявной разностной схемой ukj 1  ukj 1  ukj11  ukj 1 ukj 1  ukj 11  k   aj1  aj   f (uj ), (14.107)   h h h  k  0, M  1 , j  1, N  1 ,

u 0j  u0 ( x j ) , u0k  1 (tk ) , u Nk  2 (tk ) , j  0, N , k  1, M , где a j  0,5  k (u kj )  k (u kj 1 )  , k  1, M .

618

14. Метод сеток решения краевых задач

Данная разностная схема имеет первый порядок аппроксимации по τ и второй – по h и является абсолютно устойчивой. Решение задачи (14.107) можно определить с помощью метода прогонки. Для реализации неявной схемы (14.107) можно также применить какой-либо итерационный метод, например следующий: (u kj 1 )( m 1)  u kj 

(u kj 11 )( m )  (u kj 1 )( m ) (u kj 1 )( m )  (u kj 11 )( m )  1   a j 1  aj   h  h h  k  f (u j ), (14.108)

j  1, N  1 ; k  0, M  1 ; u

k 1 0

 1 (tk 1 ) , u Nk 1  2 (tk 1 ) .

Здесь m – номер итерации, причем в качестве начального приближения для u kj 1 выбирается u kj . В случае гладких коэффициентов при k (u )  C1  0 часто достаточно провести две-три итерации.

14.5. Реализация алгоритма на конкретном примере Для иллюстрации метода прогонки решим следующую задачу теплопроводности [7, с. 401–402]. Пример. С помощью неявной разностной схемы определить численное решение задачи теплопроводности в стержне. Решение. Считаем, что начальная температура стержня равна 2, а температура левого и правого конца равна 1. Этот физический процесс описывается первой краевой задачей [Там же]:

u  2u , a  x  b, 0  t  T ,  t x 2 u ( x,0)  2 , a  x  b ; u ( a, t )  1 , 0  t  T ; u (b, t )  1 , 0  t  T . 619

Методы приближенных вычислений

Здесь  2 ( x, t )  1 , u0 ( x)  2 , 1 (t )  2 (t )  1 , a  0, b  1, T  2, f (t , x)  0.

Для аппроксимации уравнения теплопроводности будем использовать разностную схему u kj  u kj 1  Ее можно переписать в виде

u kj 1  2u kj  u kj 1 h2

.

 k     u j 1  1  2 2  u kj  2 u kj 1  u kj 1 , j  1, N  1 . (14.109) 2 h h  h 

Формула (14.109) выражает решение на k-м временном слое через решение на (k–1)-м слое. Запишем разностную аппроксимацию начальных

u 0j  2 , j  0, N ,

(14.110)

u0k  1 , k  1, M ;

(14.111)

u  1 , k  1, M ,

(14.112)

и граничных условий

k N

Соотношения (14.109)–(14.112) образуют неявную двухслойную схему. Она имеет первый порядок аппроксимации по  и второй – по h . Схема абсолютно устойчива и является сходящейся. Для реализации неявной схемы используем метод прогонки, изложенный в подпараграфе 14.3.3:

u kj1  Pjk1u kj  Q kj1 , j  N ,1 , k  1, M , есть прогоночная формула. Вводя обозначения

AC 

 , h2

 , запишем формулы (14.91), полученные в 14.3.3, для h2 нахождения прогоночных коэффициентов B 1 2

620

14. Метод сеток решения краевых задач

Pjk 

u kj 1  AQ kj 1 C k Q , ,  j B  APjk1 B  APjk1

j  1, N  1 , k  1, M ; P0k  0 , Q0k  1. Результаты численного решения задачи (14.109)–(14.112) приведены в табл. 14.1. Т а б л и ц а 14.1

j k 10 20 30 40 50 60 70 80 90

0

1

2

3

4

5

6

7

8

9

10

1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00

1,15 1,06 1,02 1,01 1,00 1,00 1,00 1,00 1,00

1,29 1,11 1,05 1,02 1,01 1,00 1,00 1,00 1,00

1,40 1,16 1,06 1,02 1,01 1,00 1,00 1,00 1,00

1,47 1,19 1,07 1,03 1,01 1,00 1,00 1,00 1,00

1,50 1,20 1,08 1,03 1,01 1,00 1,00 1,00 1,00

1,47 1,19 1,07 1,03 1,01 1,00 1,00 1,00 1,00

1,40 1,16 1,06 1,02 1,01 1,00 1,00 1,00 1,00

1,29 1,11 1,05 1,02 1,01 1,00 1,00 1,00 1,00

1,15 1,06 1,02 1,01 1,00 1,00 1,00 1,00 1,00

1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00

Расчеты проводятся при h = 0,1; τ = 0,018; N = 10; M = 110. В табл. 14.1 приведены значения с двумя знаками после запятой. При k = 100 и k = 110 значения такие же, как при k = 90. Расчеты, проведенные на сетке, состоящей из большего количества узлов (N = 100, N = 200 и т.д.), дают ту же качественную картину, что и при N = 10. Следует отметить, что на каждом временном слое решение является симметричным. Характер поведения численного решения соответствует физике рассматриваемого процесса.

14.6. Лабораторные задания Задание 1. Найти численное решение первой краевой задачи для уравнения теплопроводности

621

Методы приближенных вычислений

u  2u   f ( x, t ) , x  [a, b] , t  [to , T ] , t x 2 u ( x, t0 )  c , a  x  b , u ( a, t )  c , u (b, t )  c  rt , to  t  T . с помощью: 1) явной разностной схемы с шаблоном

2) неявной разностной схемы с шаблоном

Схемы строятся с использованием МНК. Шаг пространственной сетки h 

ba , n  10 . Временной шаг  выбирается с учеn

том условия устойчивости. Для этого необходимо провести исследование устойчивости соответствующей разностной схемы по начальным данным методом гармоник. Показать сходимость разностной задачи к решению дифференциальной задачи. Вариант № 1.

a  0, b  1, t0  0, T  2, c  0,5, r  1; f ( x, t )  x  0, 25t. Вариант № 2.

a  1, b  2, t0  0, T  3, c  1, r  0,5; f ( x, t )  x  t. 622

14. Метод сеток решения краевых задач

Вариант № 3.

a  0,5, b  1,5, t0  0, T  2, c  0, 7, r  0,1; f ( x, t )  x 2  0,1t. Вариант № 4.

a  0, b  1, t0  0, T  3, c  0, 01, r  0,1; f ( x, t )  0,5 x  0,5t. Вариант № 5.

a  2, b  3, t0  0,1, T  2,1, c  1, r  0, 01; f ( x, t )  0,5 x  0, 4t. Вариант № 6.

a  0, 2, b  1, 2, t0  0, T  2, c  0, r  0,5; f ( x, t )  x 2  0, 01t. Вариант № 7.

a  3, b  4, t0  0, T  2, c  0,5, r  1; f ( x, t )  x  0, 01t. Вариант № 8.

a  1, b  3, t0  0, 7, T  2, 7, c  0, 4, r  0, 05; f ( x, t )  0, 2 x  0, 01t.

623

Методы приближенных вычислений

Вариант № 9.

a  2, b  3, t0  0, 2, T  3, 2, c  0, 2, r  0, 2; f ( x, t )  x  0, 01t. Вариант № 10.

a  0, b  1, t0  0, T  2, c  0,1, r  0,5; f ( x, t )  x  0,5t. Задание 2. Определить методом сеток решение третьей краевой задачи для уравнения теплопроводности

u  2u   2 2 , a  x  b , to  t  T ; t x u ( x, t0 )  e  cx , a  x  b;  u    0 (t )u    x    u    0 (t )u    x  

x a

 1 (t );

x b

 1 (t ) ,

используя явную и неявную разностные схемы и взяв h  0,1,

  0, 01. Исследовать вопросы аппроксимации, устойчивости и сходимости используемых разностных схем. Сравнить численные решения между собой. Вариант № 1.

a  0, b  1, t0  0, T  2,  2  3  0,1 j , j  5,  0  0,1, 1  0, 2, 0  0,5, 1  0,8, c  2,5. 624

14. Метод сеток решения краевых задач

Вариант № 2.

a  0, b  1, t0  0, T  2,  2  3  0,1 j , j  4,  0  0, 2, 1  0,3, 0  0, 6, 1  0,9, c  2, 6. Вариант № 3.

a  0, b  1, t0  0, 2, T  2, 2,  2  3  0,1 j , j  3,  0  0,15, 1  0, 25, 0  0,55, 1  0,85, c  2, 7. Вариант № 4.

a  1, b  2, t0  0, T  2,  2  3  0,1 j , j  2,  0  0, 2, 1  0, 4, 0  0, 7, 1  0, 7, c  2,8. Вариант № 5.

a  1, b  2, t0  0, T  2,  2  3  0,1 j , j  1,  0  1, 1  1,1, 0  1, 1  0,5, c  2,9. Вариант № 6.

a  0,5, b  1,5, t0  0,1, T  2,  2  2  0, 05 j , j  1,  0  0,5, 1  0, 75, 0  0, 75, 1  0,5, c  3. Вариант № 7.

a  1,5, b  2,5, t0  0, T  2,  2  2  0, 05 j , j  1,  0  2, 1  1, 75, 0  0, 25, 1  0, 75, c  2. 625

Методы приближенных вычислений

Вариант № 8.

a  0, 7, b  1, 7, t0  0,5, T  2,5,  2  3  0,1 j , j  2,  0  1, 1  1, 2, 0  0,35, 1  0,1, c  2,5. Вариант № 9.

a  1, b  1,5, t0  0, T  2,  2  2  0,1 j , j  5,  0  1, 1  1, 0  1, 25, 1  1, 25, c  2, 75. Вариант № 10.

a  0, 65, b  1, 65, t0  0, T  2,  2  2  0,1 j , j  4,  0  0, 2, 1  0,5, 0  0,3, 1  0, 6, c  3,5. Задание 3. Для аппроксимации первой краевой задачи в случае уравнения теплопроводности

u ( x, t )  2u ( x, t )   f ( x, t ) , a  x  b , 0  t  T ; t x 2 u (a, t )  1 (t ) , u (b, t )   2 (t ) , 0  t  T ; u ( x, 0)  ( x ) , a  x  b ,

на сетке ba  h  ( x j , tk ) x j  a  j h, tk  k ,   0, j  0, N , k  0, M , h   N   используется разностная схема с весом   kj 1   kj     kj 1  (1 – ) kj   kj , j  1, N  1 , k  0, M  1 ,   0k  1 (tk ) ,  kN   2 (tk ) , k  1, M ;

 0j  ( x j ) , j  0, N , 626

14. Метод сеток решения краевых задач

где  kj 

 kj 1  2 kj   kj 1

. h2 1. Укажите, при каких  разностная схема становится явной с шаблоном

неявной с шаблоном

2. Покажите, что погрешность аппроксимации дифференциальной задачи, разностной при   0,5 и kj  f ( x j , tk  0,5), есть величина O(2  h 2 ) в норме C ( wh ) ( L2 ( wh )) . 3. Покажите, что при

  * 

2 h 2  f ( x j , tk  0,5) 1 1 h2  , kj  f ( x j , tk  0,5)  2 12  12 x 2

погрешность аппроксимации дифференциальной задачи разностной схемой есть величина O(2  h 4 ) [4, с. 73–75, 79]. Задание 4. Методом сеток определить решение u ( x, t ) задачи

u ( x, t )  2u  2   t  1 et , 0  x  1 , 0  t  2 ; t x u ( x,0)  x , 0  x  1;

u (0, t )  t , u (1, t )  1  te  , 0  t  2;   0, 01k , k  1,2,…,10 . Используйте неявную разностную схему. Примените метод прогонки и обоснуйте его сходимость.

627

Методы приближенных вычислений

Задание 5. С помощью метода сеток найти u ( x, t ) – решение задачи

u 1  2u  , 0  x  1, 0  t  2 , t  x 2 удовлетворяющее следующим краевым условиям: u ( x,0)  e x , 0  x  1 , u (0, t )  et , u 1, t   e ( t 1) , 0  t  2,   1,5. Используйте явную разностную схему с шаблоном

Шаг пространственной сетки h  0,1 ; шаг по времени определите из условия устойчивости, полученного методом гармоник. Замечание. Дополнительные варианты задач для уравнений параболического типа можно найти в [10–12]. Литература 1. Крылов В.И., Бобков В.В., Монастырский Л.И. Вычислительные методы. М. : Наука, 1977. Т. 2. 399 с. 2. Вержбицкий В.М. Основы численных методов. М. : Высшая школа, 2002. 840 с. 3. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. М. : Наука, 1987. 598 с. 4. Самарский А.А. Введение в теорию разностных схем. М. : Наука, 1971. 552 с. 5. Березин И.С., Жидков Н.П. Методы вычислений. М. : Наука, 1960. Т. 2. 520 с. 6. Годунов С.К., Рябенький В.С. Разностные схемы. Введение в теорию. М. : Наука, 1977. 439 с. 7. Киреев В.И., Пантелеев А.В. Численные методы в примерах и задачах. М. : Высшая школа, 2004. 480 с. 8. Рихтмайер Р.Д., Мортон К. Разностные методы решения краевых задач. М. : Мир, 1972. 418 с.

628

14. Метод сеток решения краевых задач

9. Самарский А.А., Гулин А.В. Численные методы. М. : Наука, 1989. 430 с. 10. Сборник задач по методам вычислений / под ред. П.И. Монастырного. М. : Наука, 1994. 319 с. 11. Воробьева Г.Н., Данилова А.Н. Практикум по численным методам. М. : Высшая школа, 1979. 184 с. 12. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. М. : Наука, 1972. 368 с. 13. Волков Е.А. Численные методы. М. : Наука, 1982. 248 с. 14. Меркулова Н.Н., Михайлов М.Д. Методы приближенных вычислений. Томск : ТГУ, 2007. Ч. 2. 285 с.

629

Методы приближенных вычислений

15. МЕТОД УСТАНОВЛЕНИЯ Решение краевых задач для уравнений эллиптического типа можно свести к решению родственных задач для параболических уравнений до выхода решения на стационарный режим (до установления), используя при этом разностные схемы, разработанные для параболических уравнений. Изучению такого способа решения краевых задач посвящен данный раздел [2–4, 6].

15.1. Итерационный метод решения разностной задачи Дирихле Пусть в прямоугольной области G  0  x  a, 0  y  b с

границей  требуется найти функцию u ( x, y )  C 2, 2 G   C (G ) , удовлетворяющую в области G уравнению Пуассона

 2u  2u   f ( x, y ) , x 2 y 2

(15.1)

а на границе области – условию Дирихле (первому граничному условию):

u ( x, y )

 ( x, y ) ,

(15.2)

функции ( x, y ) , f ( x, y ) – заданные функции на C (G ) . Для численного решения задачи (15.1)–(15.2) с помощью метода сеток была построена разностная схема вида

u j 1, k  2u j , k  u j 1, k 2 1

h

u j , k 1  2u j , k  u j , k 1

( x j , yk )  h , 630

h22

 f j , k , (15.3)

15. Метод установления

u j , k   j , k ,  x j , yk    h .

(15.4)

Здесь  a b  h   x j , yk  , x j  j h1 , j  0, N1 ; yk  k h2 , k  0, N 2 ; h1  ; h2  , N1 N2   h  h   h ,

где  h – граница сеточной области, h – совокупность внутренних узлов. Наряду с итерационными методами, приспособленными для решения разностной задачи (15.3)–(15.4) [1], используется метод установления [2, 3, 6], о котором далее пойдет речь. Основная идея метода установления состоит в том, что задаче (15.1)–(15.2) сопоставляется родственная нестационарная задача о распространении тепла:

  2   2     f  x, y  ,  x, y   G , t  0 , t x 2 y 2    (),  – точка контура  ,   0, x, y    ( x, y ) , x, y   G .

(15.5) (15.6) (15.7)

Здесь ( x, y ) – произвольная функция, которая выбирается таким образом, что мало отличается от решения задачи (15.1)–(15.2). При этом   (t , x, y ) . Заметим, что в задаче (15.5)–(`15.7) источник тепла f ( x, y ) и температура на границе     не зависят от   0 при t  0 . Отсюда следует, что t lim (t , x, y )  u ( x, y ) , так как в этом случае задачи (15.1), (15.2) и

времени t . Поэтому t 

(15.5)–(15.7) будут совпадать. Поэтому можно предположить, что для достаточно больших значений t , например для t  T , будет выполняться с необходимой точностью приближенное равенство

631

Методы приближенных вычислений

(t , x, y )  u ( x, y ) . Аппроксимируем задачу (15.5)–(15.7) следующей двухслойной разностной схемой:

nj ,k1  nj ,k  

nj 1,k  2nj , k  nj 1, k h12

nj ,k 1  2nj ,k  nj , k 1 h22

 f j ,k ,

j  1,2,…N1  1 ; k  1,2,…, N 2  1 ; n  0,1,2,… ; nj ,k1  ( x j , yk ) , x j , yk   h , 0j ,k  ( x j , yk ) , j  0,1, 2,…, N1 , k  0,1, 2,….N 2 . Доопределим функцию ( x, y ) ( x j , yk )   h выполнялось условие

(15.8)

(15.9) (15.10)

таким образом, чтобы для

( x j , yk )  ( x j , yk ) . Заметим, что разностное уравнение (15.8) имеет преимущества перед (15.3). Разностное уравнение (15.3) – система линейных алгебраических уравнений, в которой N1  1   N 2  1 неизвестных. Если N1 и N 2 принимают большие значения, то определение решения системы (15.3) есть достаточно сложная задача. Вычисления по формуле (15.8) носят рекурсивный характер и не представляют особых затруднений. Разностная схема (15.8)–(15.10) называется явным методом установления [4]. Для простоты изложения материала будем рассматривать равномерную сетку в направлениях x и y и с одинаковым количеством узлов N1 вдоль обеих осей. Шаг по пространственным осям обозначим h . С учетом сказанного схема (15.8)–(15.10) перепишется в виде

632

15. Метод установления

nj ,k1  nj , k  

n 1 j ,k

nj 1, k  2nj , k  nj 1, k

nj , k 1  2nj , k  nj , k 1 h2

h2

 (15.11)

 f j ,k ,

j , k  1, N1  1 ;  ( x j , yk ) , где x j  jh , yk  kh ,  x j , yk    h , (15.12) 0j ,k   ( x j , yk ) , j,k  0, N1 ,

(15.13)

( x j , yk )  ( x j , yk ) ,  x j , yk    h .

(15.14)

причем Перепишем (15.11)–(15.13) в операторном виде [5]: Lh ( h )  f ( h ) ,

(15.15)

где

Lh ( h )

 nj ,k1  nj ,k nj 1, k  2nj , k  nj 1, k nj , k 1  2nj , k  nj , k 1 ,     h2 h2     j , k  1, N1  1; n 1 ,  x , y    ; j k h  j .k 0 , j , k  0, N , 1  j ,k f (h)

 f j , k , j , k  1, N1  1;    ( x j , yk ),  x j , yk    h ;   ( x j , yk ),  x j , yk   h .

Здесь ( h )  nj , k  U h , f ( h )  Fh ; U h , Fh – пространства сеточных функций – решений и правых частей соответственно; Lh – линейный разностный оператор.

633

Методы приближенных вычислений

Покажем, что разностная задача (15.15) аппроксимирует задачу (15.5)–(15.7) и условно устойчива. Для оценки погрешности аппроксимации подставим в (15.11)– (15.13) решение (t , x, y ) дифференциальной задачи (15.5)–(15.7). Предположим, что (t , x, y )  C24,4 (G ) . Применяя формулу Тей-

лора в окрестности узла tn , x j , yk , получим:

  tn 1 , x j , yk     tn , x j , yk   

 2   , x j , yk  2 t 2

2!

  tn , x j 1 , yk     tn , x j , yk  

  tn , x j , yk  h1

 3   t n , x j , yk  h 3 3!

 3   t n , x j , yk  h 3 y 3

3!

634

 3   t n , x j , yk  h 3 y 3

3!

1!

 (15.16)

 2   t n , x j , yk  h 2 x 2

 4   tn , 1 , yk  h 4 4!

x

1!

 4   t n ,  2 , yk  h 4 4! x 4   tn , x j , yk  h1 y

 4   tn , x j , 1  h 4 y 4

  t n , x j , y k  h     t n , x j , yk  

1!

  tn , x j , yk  h1

  t n , x j , y k  h     t n , x j , yk  

x

 3! x 4 x j  1  x j 1 ;

x 3

x 3

t

, tn    tn 1 ;

 3   t n , x j , yk  h 3

  tn , x j 1 , yk     tn , x j , yk  

  tn , x j , yk  1

4!

1!

y

 4   t n , x j , 2  h 4 4!

1!

(15.17)

 2   t n , x j , yk  h 2 x 2

2!

, x j 1  2  x j ; (15.18) 

 2   t n , x j , yk  h 2 y 2

, yk  1  yk 1 ;

  tn , x j , yk  h1

y 4

,

2!

2!

(15.19)

 2   t n , x j , yk  h 2 y 2

2!

, yk 1  2  yk . (15.20)

15. Метод установления

Введем вектор-функцию невязки f ( h )

1 f ( h ) ,    2 f ( h ) ,  (h)  3 f .

Используя формулы (15.16)–(15.20) и подставляя их в разностную схему (15.15), получим, что: 1 f ( h )  C1  C2 h 2 , где C1 и C2 – положительные константы, не зависящие от шагов  и h [4]. 2 f ( h ) – невязка для граничного, а 3 f ( h ) – для начального условия. Очевидно, что  2 f ( h )  3 f ( h )  0 . Определим для любого f ( h )  Fh норму следующим образом: fh Тогда f ( h )

Fh

Fh

 max f j ,k . j,k

 max 1 f ( h ) ,  2 f ( h ) , 3 f ( h )

или

f ( h )

Fh

 C1  C2 h 2  (  h 2 )C3 ,

где

C3  max(C1 , C2 ) . Отсюда следует, что разностная схема (15.15) аппроксимирует дифференциальную краевую задачу (15.5)–(15.7) с порядком O(  h 2 ) . Докажем далее, что схема устойчива, т.е. однозначно разрешима, и решение задачи ( h ) U h удовлетворяет следующему неравенству:

635

Методы приближенных вычислений

( h )

Uh

 C f ( h)

Fh

.

(15.21)

Существование и единственность решения задачи (15.15) следует из принципа максимума (минимума) [4]. Для доказательства справедливости неравенства (15.21) введем нормы на фиксированном временном слое n: ( h )

Uh

 max nj ,k , ( h ) j ,k

Fh

 max

max  j ,k , max  j ,k .

( x j , yk ) h

( x j , yk )h

Перепишем схему (15.11)–(15.13) в виде   4  nj ,k1  1  2  nj , k  2  nj 1, k  nj 1, k  nj , k 1  nj , k 1  , h  h 

(15.22)

j , k  1, N1  1 ;

 ( x j , yk ) ,  x j , yk    h ;

(15.23)

0j ,k   ( x j , yk ) , j , k  0, N1 .

(15.24)

n 1 j ,k

4 4  0 или, что то же, 2  1 , то будет справедлива сле2 h h дующая оценка:

Если 1 

 n  4  n n n n 1  2   j , k  2   j 1,k   j 1,k   j ,k 1   j , k 1   h  h   4  4   1  2   2  max nj 1, k , nj 1,k , nj ,k 1 , nj , k 1 , nj , k   h  h 

 max nj , k . 1 j , k  N1 1

С помощью этой оценки из (15.22) получим, что nj ,k1  max nj , k , 1 j , n  N1 1

(15.25)

т.е. с увеличением n nj ,k1 не возрастает. Так как правая часть неравенства (15.25) не зависит от j , k , то из (15.25), очевидно, следует 636

15. Метод установления

max nj ,k1  max nj , k .

1 j , k  N1 1

1 j , k  N1 1

Аналогичным образом рассуждая, будем иметь max nj , k  max nj ,k1 , j ,k

j ,k

…………………….. max 1j , k  max 0j , k  max  j , k . j ,k

j ,k

j ,k

Из полученной цепочки неравенств следует, что max nj ,k1  max  j ,k .

1 j , k  N1 1

1 j , k  N1 1

С учетом граничных условий последнее неравенство можно переписать в виде max nj ,k1  max 

1 j , k  N1 1

max  j , k , max  j ,k

1 j , k  N1 1

( x j , yk ) h

для любого n, что означает устойчивость разностной схемы в выбранных нормах. h2 Устойчивость схемы показана при выполнении условия   . 4 Из аппроксимации и устойчивости по соответствующей теореме [2] следует сходимость решения разностной задачи ( h ) к решению дифференциальной задачи  h [5]. Метод установления позволяет определить значения (t , x, y ) в узлах сетки на любом последующем временном слое через его значение на предыдущем. Процесс вычислений продолжается до тех пор, пока модули разности значений (t , x, y ) в моменты времени tn и tn 1 в соответствующих узлах не станут меньше некоторой заранее заданной величины. Последнее означает, что решение (t , x, y ) с течением времени меняется мало, т.е. выходит на стационарный режим.

637

Методы приближенных вычислений

Для исследования сходимости решения нестационарной задачи к решению соответствующей задачи Дирихле потребуется использование разложения в ряд Фурье сеточных функций. Остановимся на этом вопросе [2].

15.2. Ряды Фурье. Случай сеточных функций Рассмотрение проведем на примере одномерной модельной задачи, решение которой представляется в виде конечного ряда Фурье. Такое представление очень ценно, так как позволяет понять свойства рассматриваемой модельной задачи. Рассматривается множество вещественных функций    j  , определяемых в узлах сетки x j  jh ,

j  0,1,…, N1 , N1h  1 .

Функции обращаются в нуль, если j  0 и j  N1 . Совокупность этих функций с обычными операциями сложения и умножения их на вещественные числа образует линейное пространство. Размерность пространства N1  1 , так как для l  1,…, N1  1 система функций

0, если j  l ,  (jl )   1, если j  l образует базис. В самом деле, любую функцию   0 , 1 ,…, N1 , 0  N1  0 ,

можно единственным образом представить в виде линейной комбинации функций  (1) ,  (2) ,… ( N1 1) :   1 (1)  …  N1 1 ( N1 1) . В указанном пространстве введем скалярное произведение N1

 ,   h  j  j j 0

638

(15.26)

15. Метод установления

и покажем, что система функций ( l )  2 sin

l j , l  1,…N1  1 , N1

(15.27)

образует ортонормированный базис в рассматриваемом пространстве, т.е. 0, l  m; , ( m )    (15.28) 1, l  m; l , m  1, 2,…, N1  1. Прежде чем доказать справедливость этого утверждения, отметим, что



(l )

i l j 1 N1 1  i N1 cos    e  e N1  N1 2 j  0  j 0

N1 1

 1 1  eil  1 1  e il     l l  2 i i 2 N1 N1  1 e 1 e 0, если l  четное и 0l  2 N1,  1, если l  нечетное. l j

l j

В самом деле, обозначим 1 1  eil  1 1  e  il   . l l i i 2 2 1  e N1 1  e N1 Используя известные формулы q

eil   cos l   i sin l  , e il   cos l   i sin l  , после несложных преобразований получим  l  l (1  cos l ) 1  cos   sin l  sin N1  N1  q . 2 l 4sin 2 N1 Имеют место очевидные соотношения (1  cos l )  0 для l  2,4,… ; (1  cos l )  2 для l  1,3,… . Отсюда утверждение справедливо.

639

Методы приближенных вычислений

Тогда при l  m имеем



(l )

N1

, ( m )   2h sin j 0

N1 1

 h  cos j 0

N1 1 l j mj l j mj  2h  sin  sin sin N1 N1 N1 N1 j 0

N1 1 (l  m)j (l  m)j  h  cos 0 , N1 N1 j 0

если l  m  нечетное, то l  m  тоже (так как если l  m  – чет-

ное, то l  m  также четное). Если l  m , то



(l )

N1 1

N1 1

j 0

j 0

2l j  hN1  h 0  1 . N1

, ( m )   h  cos 0  h  cos

Любую сеточную функцию   0 , 1 ,…N1

можно разложить

по ортонормированному базису (15.27) в виде 

N1 1

c l 1

(l )

l

,

или N1 1

 j  2  cl sin l 1

l j , N1

(15.29)

где N1 1

cl   , ( l )   2h   j sin j 0

l j . N1

Очевидно, что N1 1

 ,    cl2 .

(15.30)

l 1

Выражение (15.29) представляет собой разложение сеточной функции    j  в конечный ряд Фурье, а (15.30) – точный аналог равенства Парсеваля из теории рядов Фурье [2, c. 250–261]. 640

15. Метод установления

Рассмотрим оператор  xx  j 

1   j 1  2 j   j 1  . h2

Заметим, что  xx sin

2 h2

l j 1  l ( j  1) l j l ( j  1)   2 sin  2sin  sin  N1 h  N1 N1 N1 

 l  l j l j , j  1, N1  1 ,  1 sin  l sin cos N1  N1 N1 

где l  

4 l sin 2 . 2 2 N1 h

(15.31)

Отсюда следует, что l – собственные значения оператора  xx , соответствующие собственным функциям ( l )  2 sin

l j . N1

(15.32)

15.3. Исследование сходимости явного метода установления Введем обозначение  nj , k  nj , k  u j , k ,

(15.33)

где nj ,k – решение нестационарной задачи (15.11)–(15.13); u j , k – точное решение родственной стационарной задачи Дирихле (15.3)–(15.4);  nj ,k – функция погрешности, показывающая близость решений названных задач. Заметим, что в силу граничного условия Дирихле, очевидно,  nj ,k

h

 0 для n  0,1,2,… .

(15.34)

641

Методы приближенных вычислений 1

 2 2 Определим норму      nj , k  и выясним, в какой момент  j ,k  времени и с какой скоростью n

n  0 . n

Запишем конечно-разностное соотношение (15.3) в эквивалентом виде  h1  h2  h  : 0

u j ,k  u j ,k

u j 1, k  2u j , k  u j 1, k  u j , k 1  2u j , k  u j , k 1

 f j ,k ,  h2 и получим разностную схему для погрешности  nj ,k1   nj , k  nj  1 , k  2  nj , k   nj  1 , k   h2  (15.35)  nj , k  1  2  nj , k   nj , k  1 ,  h2 j , k  1, N1  1 ;

 nj ,k1  0 при  x j , yk    h ;

0j ,k    x j , yk   u j ,k , j , k  0, N1 .

(15.36) (15.37)

С целью упрощения анализа задачи будем считать, что a  b  1 . Значения решения на временном слое номера n обозначим  n и в дальнейшем, если в этом не будет нужды, не будем указывать зависимость  n от j и k . По аналогии с теорией, изложенной в предыдущем пункте, рассмотрим конечные ряды Фурье на сеточном квадрате. Имеется сетка с узлами x j  jh1 , yk  kh2 , 0  jh1  1 ; 0  kh2  1 ;

h1  h2 

642

1  h. N1

15. Метод установления

Совокупность вещественных функций  n   nj ,k  при фиксированном слое n , определенных в узлах сетки и обращающихся в нуль в точках, лежащих на границе квадрата, образуют линейное пространство размерности  N1  1   N1  1 . Рассуждая аналогично вышесказанному, можно показать, что l j mj система функций (l , m )  2sin sin , l , m  1, N1  1 , образует N1 N1 ортонормированный базис, т.е.



(l ,m )

0, если l  s либо m  t , , ( s ,t )    1, если l  s и m  t.

В самом деле,



(l ,m )

 N1 l j sj  N1 mk t k  , ( s ,t )    2 sin sin sin  2 sin  N1 N1   k 0 N1 N1   j 0   ( l ) , ( s )  ( m ) , (t )  .

Отсюда следует справедливость нашего утверждения. Применяя вышеизложенную теорию, будем искать решения вида  nj ,k   nj , k (jl,,km ) , где     u . Заметим, что  xx ( l , m )   xx  (jl ) (km )   ( m )  xx ( l )    ( l )  ( l ) ( m )   ( l ) ( l , m ) . Аналогично  yy ( l ,m )  ( m ) (l ,m ) . Поэтому для  l , m получим  l ,m  1 

 (l )  ( m )

или 643

Методы приближенных вычислений

l ,m  1 

Здесь

l ,m

4  2 l  m  sin  sin 2 . 2  h  2 N1 2 N1 

(15.38)

– собственные значения разностного оператора

    xx   yy  . t В [2, с. 250–253, 257–259] получены соответствующие  l ,m собственные функции l j mk (jl,,km )  2sin sin , j , k  0,…, N1 . (15.39) N1 N1

Запишем решение разностной задачи (15.35)–(15.37) в виде N1 1

n 

c

l , m 1

l ,m

 ln, m ( l ,m ) ,

(15.40)

где cl , m – некоторые постоянные. Функции ( l , m ) выбираются таким образом, чтобы выполнялось условие (jl,,km )

h

 0 . Тогда  nj ,k

h

 0 и решение (15.40) будет удо-

влетворять разностному уравнению (15.35) и граничному условию (15.36). Чтобы решение вида (15.40) удовлетворяло начальному условию 0j ,k    x j , yk   u j ,k , т.е. N1 1

c

l , m 1

l ,m

 l0, m (jl,,km )    x j , yk   u j ,k ,

необходимо в качестве постоянных коэффициентов взять разностные коэффициенты Фурье для функции   x j , yk   u j ,k . Итак, 644

15. Метод установления

cl , m  h 2

l j mk     x , y   u   2sin N sin N . N1

j

j ,k 0

j ,k

k

1

(15.41)

1

Обозначим ln,m  cl ,m  ln,m . Тогда соотношение (15.40) можно переписать в виде n 

N1 1



l , m 1

n l ,m

( l , m ) .

Из этой формулы следует, что числа ln, m являются коэффициентами Фурье разложения погрешности  n по функциям ( l , m ) . Рассмотрим   ,  n

n

2

N1 1

  c l , m 1

l ,m



n l ,m

. Тогда

 N1 1  n    cl ,m   ln,m  l ,m 1   N1 1 0    cl ,m  l , m 1 

2

2

1

2  ,  

1

2  ,  l0,m  1 .  

(15.42)

Если   max  l , m , то  l ,m   . l ,m

Из (15.42) следует, что n   n 0 . При   1 из неравенства (15.43) вытекает, что

(15.43)  n  0 при

n   . Чем меньше  , тем быстрее стремится к нулю  n . Из (15.38) имеем max  l , m  max 1  l ,m

l ,m

4  2 l  m  sin  sin 2      . 2  h  2 N1 2 N1  645

Методы приближенных вычислений

Подберем шаг по времени  таким образом, чтобы     принимало наименьшее значение. Введем обозначение l m  sin 2 Q(l , m)  sin 2 , 1  l , m  N1  1 . 2 N1 2 N1 Имеет место очевидное неравенство   2sin 2 .  Q(l , m)  2cos 2 2 N1 2 N1

(15.44)

Обозначим l , m     1 

4 Q(l , m) , 1  l , m  N1  1 ;   0 . h2

Построим график семейства функций l ,m    , учитывая неравен-

ство (15.44). Заметим, что все графики функций семейства l ,m () лежат внутри области, ограниченной прямыми 8  8  1  1  2   cos 2 и  2  1  2  sin 2 . h 2 N1 h 2 N1 Задавая значения 1  1,0, 1 , определим соответствующие значения τ и представим их в виде табл. 15.1 значений прямой 1 . Т а б л и ц а 15.1

1

1

0

–1

2

h2

h τ

0

8cos 2

 2 N1

4cos 2

 2 N1

Аналогичную таблицу значений ,  составим для прямой  2 (табл. 15.2).

646

15. Метод установления Т а б л и ц а 15.2

2

1

0

–1

2

h2

h

0

8sin 2

 2 N1

4sin 2

 2 N1

Нарисуем графики прямых 1 и  2 (рис. 15.1).

 1

A 2  1 

0

–1

B

C

8 2  sin h2 2 N1

D

τ

8  1  1  2 cos 2 h 2 N1

Рис. 15.1

Здесь       2 2 2       h h h A  0,1 , B  ,0  , C  ,0  , D  ,0  .  8cos 2    4cos 2    8sin 2         N N N 2 2 2 1 1 1       Из рис. 15.1 видно, что значения  , обеспечивающие выполнение условия   1 , расположены в интервале 0

h2  4cos 2 N1

.

2

647

Методы приближенных вычислений

При h2



4cos 2

 2 N1

,

очевидно, что ()  1. Оптимальное значение шага по времени  расположено на промежутке h2  8cos 2 N1 2

Если



h2  4cos 2 N1

.

(15.45)

2

удовлетворяет условию (15.45), то функция 8       1  2  sin 2 убывает (см. рис. 15.1) и      1 . h 2 N1

Функция      1 

8   cos 2 возрастает и      1 . 2 h 2 N1

Если имеет место равенство 1

8  8   sin 2  1  2  cos 2 , 2 h 2 N1 h 2 N1

(15.46)

то  достигает оптимального значения на отрезке, определяемом неравенством 15.45 . В самом деле, из (15.46) вытекает: 8  8   1  2  sin 2 ; a) 1  2  cos 2 h 2 N1 h 2 N1 8  8   1  2  sin 2 . б) 1  2  cos 2 h 2 N1 h 2 N1 Из условия б следует, что 648

15. Метод установления

8  2     cos  sin 2 2 2  2 N1 2 N1  h 

или опт 

h2 . 4

Тогда

 опт  max  l , m l ,m

опт

 1  2sin 2

 , 2 N1

т.е.  опт  1  2sin 2

 ,  опт  1 . 2N1

Потребуем теперь, чтобы  n   , где   0 – некоторое напе-

ред заданное малое положительное число    0 . Определим n из следующего неравенства: n

   0  n   1  2sin 2     . 2 N1   Имеем    0 n ln 1  2sin 2   ln   ln  2 N  1  (так как   0 – малое положительное число, значит, ln   0 ) и, следовательно, ln   ln  0 n    ln 1  2sin 2  2 N1  

649

Методы приближенных вычислений

или для малых значений

 получим 2 N1

2 N12 ln 0  ln  . (15.47) 2 Таким образом, для обеспечения сходимости решения нестационарной задачи к решению соответствующей стационарной задачи требуется выполнить порядка N12 временных слоев. n

15.4. Численное решение задачи Дирихле для уравнения Лапласа методом установления Проиллюстрируем изложенную выше теорию метода установления на примере решения модельной задачи Дирихле для уравнения Лапласа в единичном квадрате. Итак, пусть в области G  ( x, y ), 0  x  1, 0  y  1 с границей   1  2  3  4 (рис. 15.2) требуется найти функцию

u ( x, y )  C 2, 2 (G )  C (G ) , являющуюся решением уравнения Лапласа

 2u  2 u  0 x 2 y 2

(15.48)

и удовлетворяющую условиям Дирихле на границе  : u (0, y )   y 2 ,0  y  1 ; u (1, y )  1  y 2 ,0  y  1 ;

(15.49)

u ( x,0)  x ,0  x  1 ;’ 2

u ( x,1)  x 2  1,0  x  1 . Нетрудно проверить, что аналитическим решением задачи (15.48)–(15.49) является функция u ( x, y )  x 2  y 2 , изображенная на рис. 15.3. 650

15. Метод установления

y

4

1 1

2

G

3 0

1

x

Рис. 15.2

Рис. 15.3

Согласно методу установления, сопоставим в соответствие стационарной задаче (15.48)–(15.49) нестационарную задачу о распространении тепла в пластине:   2   2  , ( x, y )  G ;   t x 2 y 2 (t ,0, y )   y 2 , 0  y  1 , t  0 ; (t ,1, y )  1  y 2 , 0  y  1 , t  0 ;

651

Методы приближенных вычислений

(t , x,0)  x 2 , 0  x  1 , t  0 ;

(t , x,1)  x 2  1 , 0  x  1 , t  0 ; (0, x, y )   ( x, y ) , 0  x  1 , 0  y  1 .

(15.50)

В (15.50) функцию ( x, y ) следует подобрать так, чтобы она удовлетворяла граничным условиям (15.49) и мало отличалась от функции u ( x, y ) . Положим  ( x, y )  u ( x, y )   ( x , y ) , (15.51) где ( x, y )  x(1  x) y (1  y )

(15.52)

обладает той же гладкостью, что и u ( x, y ) , и обращается в нуль на  . Будем решать задачу (15.50) численно на сетке 1  h ,    tn , x j , yk  , x j  jh, yk  kh; j , k  0, N1 , N1  ; tn  n , h  n  0,1, 2,…; h,   0 .

При построении сетки задаем число узлов N1 по оси 0 x и 0 y , вычисляем шаг h 

1 , а временной шаг  выбираем из полученноN1

h2 . Затем аппроксимируем 4 задачу (15.50) разностной схемой вида (15.8)–(15.10), а именно: го

выше условия устойчивости   nj ,k1  nj ,k 

nj 1,k  2nj ,k  nj 1, k

nj , k 1  2nj , k  nj , k 1

h2 j , k  1, N1  1 , n  0,1, 2… ;

h2

0,n k1   yk2 , k  0, N1 , n  0,1,… ; nN1 1,k  1  yk2 , k  0, N1 , n  0,1,… ;

652

,

15. Метод установления

nj ,01  x 2j , j  0, N1 , n  0,1,… ; nj ,N11  x 2j  1 , j  0, N1 , n  0,1,… ; 0j ,k  ( x j , yk ) , j , k  0, N1 .

(15.53)

Из первого уравнения в (15.53) имеем nj ,k1  nj ,k 

 n   j 1,k  nj 1,k  nj ,k 1  nj ,k 1  4nj ,k  , (15.54) h2 j , k  1, N1  1 , n  0,1,… .

По этой формуле последовательно находим значения решения во внутренних узлах сетки, полагая n  0,1,2,… . В формуле (15.54) используются значения решения в граничных узлах сетки, которые определяются по соответствующим формулам из (15.53). Заметим, что значения решения в граничных узлах не зависят от номера слоя n , а лишь от x j , yk , и их достаточно вычислить один раз. Вычисления значений nj ,k1 по формуле (15.54) продолжаются до тех пор, пока не выполнится неравенство M  max nj ,k1  nj , k   j , k  0, N1

(15.55)

и полученные решения не будут удовлетворять разностной схеме. Здесь  – принятая точность вычислений. Полученные таким образом значения сеточной функции nj ,k1 считаем приближенными значениями решения стационарной задачи. В табл.15.3 приведены значения приближенного решения nj ,k1 в узлах сетки, построенной для N1  5 ( h  0, 2 ), и при точности вычислений   0,000001 . Приближенные значения решения сравнивались с точным решением u ( x, y )  x 2  y 2 , вычисленным в тех же узлах сетки

x , y , j

k

j , k  0, N1 . Получено, что максимум модуля разности

решений для N1  5 по всем узлам сетки равен  3,5  106 . Итера653

Методы приближенных вычислений

ционный процесс, определяемый формулой (15.54), сходится в этом случае за 46 итераций, т.е. неравенство (15.55) выполняется для n  46 . Т а б л и ц а 15.3

0,00000 0,04000 0,16000 0,36000 0,64000 1,00000

0,04000 0,00000 0,12000 0,32000 0,60000 0,96000

0,16000 0,12000 0,00000 0, 20000 0, 48000 0,84000

0,36000 0,32000 0, 20000 0,00000 0, 28000 0,64000

0,64000 0,60000 0, 48000 0, 28000 0,00000 0,36000

1,00000 0,96000 0,84000 0,64000 0,36000 0,00000

Расчеты проводились и при других значениях N1 . Например, при N1  10 потребовалось выполнить 163 итерации, при N1  3 или 6 – соответственно 16 и 65 итераций. Таким образом, при точности   0,000001 для получения значений приближенного решения потребовалось O( N12 ) итераций, что вполне согласуется с изложенной выше теорией сходимости явного метода установления.

15.5. Лабораторные задания Задание. С помощью метода установления решить задачу Дирихле для уравнения Пуассона. Численное решение получить в области G с границей Г, которая задается соответствующим образом в каждом варианте. Вариант № 1.

 2u  2u   6 x  y  ; ( x, y )  G  ( x, y ), 0  x  1, 0  y  1; x 2 y 2 654

15. Метод установления

u (0, y )  y 3 , 0  y  1 ; u ( x,0)  x 3 , 0  x  1 ; u (1, y )  1  y 3 , 0  y  1 ; u  x,1  1  x 3 , 0  x  1 . Вариант № 2.

 2u  2u  2  2e x  y ; ( x, y )  G  ( x, y ), 0  x  0,5, 0  y  1; 2 x y u (0, y )  e y , 0  y  1 ; u ( x,0)  e x , 0  x  0,5 ; u (0,5, y )  e e y , 0  y  1 ; u  x,1  e1 x , 0  x  0,5 . Вариант № 3.

 2u  2u   2  x 2 sin y ; x 2 y 2

  ( x, y )  G  ( x, y ), 0  x 1, 0  y   ; 2   u (0, y )  0 , 0  y  ; u ( x,0)  0 , 0  x  1 ; 2    u (1, y )  sin y , 0  y  ; u  x,   x 2 , 0  x  1 . 2  2 Вариант № 4.

 2u  2u    2  y 2  cos x ; ( x, y )  G  ( x, y ), 0  x  , 0  y  1 ; x 2 y 2

u (0, y )  y 2 , 0  y  1 ; u ( x,0)  0 , 0  x  ; u (, y )   y 2 , 0  y  1 ; u  x,1  cos x , 0  x   .

655

Методы приближенных вычислений

Вариант № 5.

 2u  2u  2  x 6  x2 e y ; 2 x y

( x, y )  G  ( x, y ), 0  x 1, 0  y  1; u ( x,0)  x 3 , 0  x  1 ; u (0, y )  0 , 0  y  1 ; u ( x,1)  2,7183 x 3 , 0  x  1 ; u 1, y   e y , 0  y  1 . Вариант № 6.

 2u  2u  2  2  y2 ex ; 2 x y

( x, y )  G  ( x, y ), 0  x  2, 0  y  1; u ( x,0)  0 , 0  x  2 ; u (0, y )  y 2 , 0  y  1 ; u ( x,1)  e x , 0  x  2 ; u 2, y   7,38906 y 2 , 0  y  1 . Вариант № 7.

 2u  2u  2  2 e2x  1 ; 2 x y

( x, y )  G  ( x, y ), 0  x  0,5, 0  y  2; 1 u ( x,0)  e 2 x , 0  x  0,5 ; u (0, y )  0,5  y 2 , 0  y  2 ; 2 1 u ( x,2)  e 2 x  8 , 0  x  0,5 ; u 0,5, y   1,35914  y 2 , 2 0 y  2.

656

15. Метод установления

Вариант № 8.

 2u  2u   cos y  sin x ; x 2 y 2    ( x, y )  G  ( x, y ), 0  x  , 0  y    ; 2    u ( x,0)  sin x , 0  x  ; u (0, y )   cos y , 0  y   ; 2    u ( x, )  1  sin x , 0  x  ; u  , y   1  cos y , 0  y   . 2 2  Вариант № 9.

 2u  2u   0; x 2 y 2 ( x, y )  G  ( x, y ), 0  x  , 0  y  2 ;

u ( x,0)  sin x , 0  x  ; u (0, y )  0 , 0  y  2 ; u ( x,2)  7,38906 sin x , 0  x  ; u  , y   0 , 0  y  2 . Вариант № 10.

 2u  2u   0; x 2 y 2 ( x, y )  G  ( x, y ), 0  x  1, 0  y   ;

u ( x,0)  e x , 0  x  1 ; u (0, y )  cos y , 0  y   ; u ( x, )  e x , 0  x  1 ; u 1, y   2,71828 cos y , 0  y   .

657

Методы приближенных вычислений

Вариант № 11.

 2u  2u   cos x  sin y  ; x 2 y 2    ( x, y )  G  ( x, y ), 0  x  , 0  y   ; 2 2    u ( x,0)  cos x , 0  x  ; u (0, y )  1  sin y , 0  y  ; 2 2      u ( x, )  1  cos x , 0  x  ; u  , y   sin y , 0  y  . 2 2 2 2  Вариант № 12.

 2u  2u   2  e y ; ( x, y )  G  ( x, y ), 0  x  1, 0  y  2; x 2 y 2

u ( x,0)  1  x 2 , 0  x  1 ; u (0, y )  e y , 0  y  2 ; u ( x,2)  x 2  7,38906 , 0  x  1 ; u 1, y   1  e y , 0  y  2 . Вариант № 13.

 2u  2u   2  cos y ; ( x, y )  G  ( x, y ), 1  x  2, 0  y  1; x 2 y 2 u ( x,0)  1  x 2 , 1  x  2 ; u (1, y )  1  cos y , 0  y  1 ; u ( x,1)  0,5403  x 2 , 1  x  2 ; u 2, y   4  cos y , 0  y  1 . Вариант № 14.

 2u  2u   2  sin y ; x 2 y 2 658

15. Метод установления

  ( x, y )  G  ( x, y ), 2  x  3,0  y   ; 2 

 2   u ( x, )  1  x 2 , 2  x  3 ; u 3, y   9  sin y , 0  y  . 2 2

u ( x,0)  x 2 , 2  x  3 ; u (2, y )  4  sin y , 0  y  ;

Вариант № 15.

 2u  2u  2  2 x  e y ; ( x, y )  G  ( x, y ), 0  x  0,5, 0  y  1; 2 x y

u ( x,0)  u ( x,1) 

1 3 x  1 , 0  x  0,5 ; u (0, y )  e y , 0  y  1 ; 3

1 3 x  8,154845 , 0  x  0,5 ; u  0,5, y   0,041667  e y , 3 0  y  1.

Вариант № 16.

 2u  2u   1  cos x  sin y ; x 2 y 2  ( x, y )  G  ( x, y ),  1 2 u ( x,0)  x  cos x , 0  x  2 1  u ( x, )  x 2  cos x , 0  x  ; 2 2

  0  x  , 0  y  ; 2   ; u (0, y )  sin y  1 , 0  y   ; 2   u  , y   sin y  1, 2337 , 0  y   . 2 

659

Методы приближенных вычислений

Вариант № 17.

 1  2u  2u   2   3  y 2  e x ; ( x, y )  G  ( x, y ), 0  x  , 0  y  1 ; 2 2 x y   u ( x,0)  e x , 0  x  u ( x,1)  2e x , 0  x 

1 ; u (0, y )  1  y 2 , 0  y  1 ; 2

1 ; u  0,5, y   1,64872(1  y 2 ) , 0  y  1 . 2

Вариант № 18.

 2u  2u   2  x 2  y 2  ; ( x, y )  G  ( x, y ), 0  x 1, 0  y  1 ; x 2 y 2 u ( x,0)  2 , 0  x  1 ; u (0, y )  2 , 0  y  1 ; u ( x,1)  2  x  x 2 , 0  x  1 ; u 1, y   2  y  y 2 , 0  y  1 .

Вариант № 19.

 2u  2u   2  x e y ; ( x, y )  G  ( x, y ), 2  x  3, 0  y  2 ; x 2 y 2

u ( x,0)  1  x  x 2 , 2  x  3 ; u (2, y )  5  2 e y , 0  y  2 ; u ( x, 2)  1  7,38906 x  x 2 , 2  x  3 ; u  3, y   10  3e y , 0  y  2 .

Вариант № 20.

 2u  2u  2  2  y e x ; ( x, y )  G  ( x, y ), 1  x  2, 2  y  3 ; 2 x y

u ( x, 2)  11  2e x , 1  x  2 ; u (1, y )  y 2  2,7183 y  7 , 2  y  3 ; u ( x,3)  16  3 e x , 1  x  2 ; u  2, y   y 2  7,38906 y  7 , 2  y  3 . 660

15. Метод установления

Литература 1. Разностные схемы для уравнений эллиптического типа : метод. указания. Томск : Изд-во ТГУ, 1995. Ч. 1. 21 с. 2. Годунов С.К., Рябенький В.С. Разностные схемы. М. : Наука, 1973. 400 с. 3. Самарский А.А. Введение в теорию разностных схем. М. : Наука, 1971. 552 с. 4. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1977. Ч. 2. 399 с. 5. Элементы теории разностных схем : метод.е указания. Томск : Изд-во ТГУ, 1992. Ч. 1. 17 с. 6. Вержбицкий В.М. Основы численных методов. М. : Высш. шк., 2002. 340 с.

661

Методы приближенных вычислений

16. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ КРАЕВЫХ ЗАДАЧ ДЛЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ ГИПЕРБОЛИЧЕСКОГО ТИПА 16.1. Линейные нестационарные уравнения с частными производными первого и второго порядка Пусть в некоторой односвязной области G изменения независимых переменных x, y задано линейное дифференциальное уравнение второго порядка в канонической форме (14.1). Уравнение (14.1) будет называться уравнением гиперболического типа в области G   x, y  0  x  L, 0  y  T  [1, с. 372–375; 2, с. 691–693; 3, с. 141–142], если для любой точки  x, y  из этой области будет справедливо неравенство   x , y   b 2  x, y   a  x , y  c  x, y   0 .

(16.1)

Обозначим y  t (время).

16.1.1. Постановка краевых задач для уравнения второго порядка Одним из наиболее типичных уравнений гиперболического типа является волновое уравнение  2u  2u  c2 2 , 0  x  L , 0  t  T , 2 t x

где u  u  x, t  . 662

(16.2)

16. Численные методы решения краевых задач

Волновое уравнение может описывать малые продольные колебания упругого стержня. Тогда c 2 

k , k – модуль Юнга,  – плот

ность. Если (16.2) описывает малые поперечные колебания струны, то u  x, t  – отклонение струны при некотором значении x в момент времени t; c 2 

T  , T – натяжение струны,  – плотность 

(линейная). При этом x  0 , x  L – левый и правый концы струны, а t  0 , t  T – начало и конец процесса. Заметим, что если колебания совершаются под действием внешней силы, которая характеризуется функцией f  x, t  , то уравнение, описывающее свободные колебания, имеет вид  2u  2u  c 2 2  f  x, t  . 2 t x

Волновое уравнение или уравнение свободных колебаний однородной мембраны в двумерном случае принимает вид 2  2u  2u  2 u c    2  t 2 y 2   x

или с помощью двумерного оператора Лапласа его можно записать так:  2u  c2  u . t 2

С помощью волнового уравнения описывается процесс распространения звуковых волн в сжимаемой среде. В этом случае оно называется уравнением акустики, причем c 2 

c  p0 ,   p , p0 , 0 cv

0 – давление и плотность в невозмущенной среде, c p , cv – коэф-

фициенты теплоемкости при постоянных давлении и объеме соответственно.

663

Методы приближенных вычислений

Для волнового уравнения гиперболического типа сформулируем соответствующие краевые задачи. Первая краевая задача В области G   x, t  0  x  L, 0  t  T  определяется функция u  x, t   C22 (G )  C10 (G ) , удовлетворяющая уравнению 2  2u 2  u , 0 x  L, 0t T ,  c t 2 x 2

(16.3)

начальным u  x , 0     x  , 0  x  L, u  x, 0  t

   x  , 0  x  L,

(16.4)

и граничным условиям u  0, t   1  t  , 0  t  T ,

u  L, t    2  t  , 0  t  T ,

(16.5)

где   x  ,   x  , 1  t  ,  2  t  – заданные функции. Вторая краевая задача Пусть требуется найти функцию u ( x, t )  C22 (G )  C11 (G ) , удовлетворяющую волновому уравнению  2u  2u  c2 2 , 0  x  L , 0  t  T , 2 t x

начальным

u  x , 0     x  , 0  x  L, u  x, 0  t

664

(16.6)

   x  , 0  x  L,

(16.7)

16. Численные методы решения краевых задач

и граничным u  0, t  x u  L, t 

условиям

x

 1  t  , 0  t  T ;

(16.8)

 2 t  , 0  t  T .

Здесь   x  ,   x  , 1  t  ,  2  t  – заданные функции своих аргументов. Третья краевая задача Функция u ( x, t )  C22 (G )  C11 (G ) находится в области G и удовлетворяет уравнению в частных производных  2u  2u  c 2 2 , 0  x  L, 0  t  T , 2 t x

(16.9)

начальным u  x, 0     x  , 0  x  L , u  x, 0  t

   x, 0  x  L ,

(16.10) (16.11)

и граничным 1  t  1  t 

u  0, t  x u  L, t  x

  0  t  u  0, t   1  t  , 0  t  T ,

(16.12)

  0  t  u  L, t    2  t  , 0  t  T ,

(16.13)

условиям, причем   x  ,   x  , 1  t  ,  2  t  ,  0  t  , 1  t  , 0  t  , 1  t  – заданные функции.

665

Методы приближенных вычислений

16.1.2. Постановка краевых задач для уравнения первого порядка В общем случае нестационарное дифференциальное уравнение в частных производных первого порядка имеет вид b  x, t  ut  a  x, t  u x  c  x, t  u  f  x, t  ,

где u  x, t  – искомое решение; a  x, t  , b  x, t  , c  x, t  – коэффициенты уравнения, причем b  x, t   0 , f  x, t  – правая часть. Уравнение является эволюционным [1]. Частным случаем приведенного выше дифференциального уравнения первого порядка является уравнение переноса [1, с. 391; 2, с. 691] частиц в веществе u u  a1  x, t   f  x, t  , t x

где a1  x, t  интерпретируется как скорость переноса. Сформулируем для уравнения переноса задачу Коши и соответствующие краевые задачи. Задача Коши Пусть 

в

области

G  G ,

 x, t     x  , t  0 ,

G

 x, t     x  , t  0 ,

рассматривается

функция

u ( x, t )  C11 (G )  C (G ) , удовлетворяющая уравнению переноса (для

простоты будем считать, что a1  x, t   1 , f  x, t   0 ) и начальному условию: u u   0,    x  , t  0, t x u  x, 0     x  ,    x  ,

где   x  – заданная функция. 666

(16.14)

16. Численные методы решения краевых задач

Первая краевая задача Дана область G  G   , где G    x, t  0  x  L, 0  t  T  . Требуется найти функцию u ( x, t )  C11 (G )  C (G ) , удовлетворяющую уравнению переноса u u   0, 0  x  L, 0  t  T , t x

и соответствующим начальному и граничному условиям u  x, 0     x  , 0  x  L ,

(16.15)

u  0, t     t  , 0  t  T .

Отметим, что уравнения характеристик для поставленной задачи (16.15) имеют вид x  t  const, tg   1,   45 [1, с. 391–393]. t T

x 0

L Рис.16.1

Так как характеристики направлены с левой границы на правую (рис. 16.1), достаточно задать граничное условие на левом конце промежутка  0, L  .

667

Методы приближенных вычислений

Вторая краевая задача Требуется найти функцию u ( x, t )  C11 (G )  C01 (G ) , удовлетворяющую дифференциальному уравнению первого порядка u u   0, 0  x  L, 0  t  T , t x

начальному и граничному условиям u  x, 0     x  , 0  x  L; u  0, t  x

  t  , 0  t  T .

(16.16)

Третья краевая задача Ищется функция u ( x, t )  C11 (G )  C01 (G ) , удовлетворяющая уравнению гиперболического типа u u   0, 0  x  L, 0  t  T , t x

начальному и граничному условиям u  x, 0     x  , 0  x  L,  0  t  u  0, t   1  t 

u  0, t  x

 1  t  , 0  t  T .

В задачах (16.15)–(16.17) функции   x  ,   t  ,   t  ,  0  t  , 1  t  заданы.

(16.17) 1  t  ,

16.2. Решение задачи Коши для волнового уравнения Задача Коши ставится в бесконечной области изменения пространственной переменной x. Требуется найти функцию u ( x, t )  C22 (G )  C10 (G ) , удовлетворяющую уравнению 668

16. Численные методы решения краевых задач

 2u  2u  c 2 2 ,   x   , t  0 , 2 t x

(16.18)

и начальным условиям u  x, 0     x  ,    x   ; u  x, 0  t

(16.19)

   x  ,    x   ,

(16.20)

где G  { x, t     x  , t  0} , граница области G проходит по оси ox. Применим метод сеток к задаче (16.18)–(16.20). Для этого покроем область G сеточной областью h  {( x j , tk ) x j  j  h, j  0, 1, 2, ; tk  k  , k  0,1, 2,}, где h – шаг сетки по оси ox, а  – по оси

ot. В главе 14 рассматривался метод неопределенных коэффициентов (МНК) для построения разностных схем с определенным шаблоном, аппроксимирующих уравнение теплопроводности. Для волнового уравнения можно, очевидно, выбрать аппроксимирующую формулу для формулой для

производной

 2u по аналогии с t 2  x ,t  j k

 2u из главы 14, т.е. x 2

u  x j , tk 1   2u  x j , tk   u  x j , tk 1   2u   O  2  . 2 2  t  x ,t   j k

Тогда для аппроксимации уравнения (16.18) приходим к следующей разностной схеме: u kj 1  2u kj  u kj 1 2

 c2

u kj 1  2u kj  u kj 1 h2

.

(16.21)

Шаблон схемы (16.21) представляет собой «крест». Погрешность аппроксимации имеет порядок O  h 2  2  . Запишем разностную аппроксимацию начальных условий: 669

Методы приближенных вычислений

u 0j   j , j  0, 1, 2, ;

u u 1 j

0 j

  j , j  0, 1, 2, .

(16.22) (16.23)

Преобразуем (16.21) к явной формуле, разрешив её относительно u kj 1 : u kj 1  2u kj   h

2 2 k c  u j 1  2u kj  u kj 1   u kj 1 . h2

Обозначим   c . Тогда последнее соотношение примет вид u kj 1   2 u kj 1   2  2 2  u kj   2 u kj 1  u kj 1 ,

(16.24)

где j  0, 1, 2, , k  1, 2,. Для определения значений решения на временных слоях, начиная со второго, по формуле (16.24) необходимо добавить формулы (16.22), (16.23), позволяющие находить значения решения на нулевом и первом временных слоях. Разрешив (16.23) относительно u1j , получим u1j  u 0j   j ,

или u1j   j   j , j  0, 1, 2, .

(16.25)

Таким образом, значения решения будем находить по следующей расчетной схеме: u 0j   j , j  0, 1, 2, ;  1 u j   j   j , j  0, 1, 2, ;  k 1 2 k 2 2 k k k 1 u j   u j 1   2  2  u j   u j 1  u j ;  j  0, 1, 2,; k  1, 2, . 

(16.26)

Заметим, что погрешность аппроксимации начального условия (16.22) равна нулю, а для (16.23) – O    . Тогда в целом погрешность аппроксимации будет O  h 2    .

670

16. Численные методы решения краевых задач

16.2.1. Построение разностной схемы второго порядка точности методом фиктивной точки Для повышения порядка погрешности аппроксимации в целом до второго по t воспользуемся центральной разностной аппроксиu t

мацией для производной

в начальном условии (16.20) t 0

[2, с. 742; 3, с. 204–205]:

1 3 u  x j , t1   u  x j , t1  2  u x j , t0 u    , t  x j ,0 t 3 2 6

(16.27)

где t1  , t1   , t01   ,   . При этом предполагается, что решение задачи (16.18)–(16.20) можно продолжить в область G*    t  0,    x   . Отбрасывая в (16.27) члены порядка O  2  , получим разностную аппроксимацию для условия (16.20): u1j  u j 1

2

  j , j  0, 1, 2, .

(16.28)

Значения u j 1 , j  0, 1, 2, , можно исключить с помощью разностного уравнения (16.21), записанного при k  0 : u1j  2u 0j  u j 1 2

 c2

u 0j 1  2u 0j  u 0j 1 h2

.

(16.29)

Выразим u j 1 из (16.28) и (16.29) соответственно: u j 1  u1j  2 j ,

u j 1   2  u 0j 1  2u 0j  u 0j 1   2u 0j  u1j .

В полученных соотношениях приравняем правые части, в результате чего будем иметь u1j  2 j   2  u 0j 1  u 0j 1    2  2  2  u 0j  u1j .

Отсюда имеем следующее равенство: 671

Методы приближенных вычислений

u1j  u 0j 

 j 

1  c2 0 u  2u 0j  u 0j 1  . 2  j 1 2 h

(16.30)

Следуя [4, с. 72–73], введем обозначение u 0j  u xx , j 

u 0j 1  2u 0j  u 0j 1 h2

.

Тогда для решения задачи Коши (16.18)–(16.20) получаем следующую разностную схему: Lh u  h   f  h  ,

(16.31)

где

Lh u  h 

 u kj 1  2u kj  u kj 1 u kj 1  2u kj  u kj 1 2 c ;   h2 2   j  0, 1, 2, ; k  1, 2, ;  0 u j , j  0, 1, 2,;  u1  u 0 j  j , j  0, 1, 2, ,  

f  h

 0, j  0, 1, 2, ; k  0,1, 2, ;    j , j  0, 1, 2, ;    j  c 2 u 0j , j  0, 1, 2, .  2

Численная реализация схемы (16.31) осуществляется таким же образом, как и для разностной схемы (16.26). Легко показать, что погрешность аппроксимации дифференциальной задачи разностной схемой (16.31) есть O  h 2  2  .

16.2.2. Об исследовании устойчивости схемы «крест» по начальным данным Исследуем устойчивость разностной схемы (16.21) по начальным данным методом гармоник [3, с. 162–165; 4, с. 76–83; 5, с. 19– 672

16. Численные методы решения краевых задач

26, 77–99; 6, с. 221–232]. Получим необходимое условие устойчивости фон Неймана спектральным методом на примере задачи Коши (16.31). Исследуем устойчивость разностной схемы с правой частью вида f

 h

0,    j ,   j .

Определение 1 [3, с. 163]. Говорят, что разностная схема (16.31) устойчива по начальным данным, если для нее справедлива оценка u

h Uh

 C(  j

Fh

 j

Fh

),

(16.32)

где C – константа, не зависящая от h и f  h  . Неравенство (16.32) в определении устойчивости должно выполняться при некоторых частных значениях u 0j . Полагая u 0j   j  eij ,

(16.33)

где i  1 ,    0, 2 , выпишем решение задачи (16.31) при условии (16.33) с помощью метода разделения переменных u kj   k eij .

(16.34)

Численный параметр  (амплитуда гармоники (16.34)) подбирается таким образом, чтобы u kj вида (16.34) удовлетворяло однородному разностному уравнению из (16.31). Подставляя (16.34) в однородное уравнение (16.31), имеем k i  j 1   k 1eij  2 k eij   k 1eij  2 k eij   k ei  j 1  2  e c  h2 2

или 

k 1 ij 

e

  e i  2  e  i    2  2  1 2 k 1 ij  . c  e h2 2

Сокращая обе части полученного соотношения на  k 1eij , получим 673

Методы приближенных вычислений

 2  2  1   2  ei  e  i  2  . Известно, что ei  e i  2 cos  . Тогда ei  e  i  2  4sin 2

 . 2

Параметр  удовлетворяет квадратному уравнению вида    2  2  1  2  2 sin 2    1  0 . 2 

Корни этого уравнения 1,2  1  2  2 sin 2

    4  2 sin 2  4  4 sin 4 2 2 2

1,2  1  2  2 sin 2

    4 2 sin 2 1   2 sin 2  . 2 2 2

или (16.35)

Если подкоренное выражение в (16.35) не превосходит нуля, то корни 1 ,  2 будут комплексно-сопряженными. Последнее утверждение справедливо, если 1   2 sin 2

 0. 2

(16.36)

Из неравенства (16.36) следует, что  2  1 (так как sin 2

  1 ). 2

(16.37)

Проверим, выполняется ли необходимое условие устойчивости Неймана для корней 1 ,  2 . Имеем 2

     1,2  1  2 2 sin 2   4 2 sin 2  4 4 sin 4 , 2 2 2  

или  1,2  1 .

674

16. Численные методы решения краевых задач

Таким образом, схема «крест» является нейтральной [7, с. 29– 30]. Последнее означает, что если в решении задачи возникают колебания (за счет, например, начальных условий), то они разностной схемой не подавляются и сохраняются на протяжении всего расчета. Отметим также, что разностная схема (16.31) условно устойчива, причем условие устойчивости (16.37) является для случая множителя перехода не только необходимым, но и достаточным [5, с. 92–95].

16.2.3. Об областях зависимости дифференциального уравнения и разностной схемы Рассмотрим дифференциальное уравнение (16.18) с начальными условиями (16.19)–(16.20) и соответствующую им разностную схему u kj 1   2 u kj 1   2  2  2  u kj   2 u kj 1  u kj 1 , u 0j   j , u1j   j   j ,

(16.38)

j  0, 1, 2, , k  1, 2, .

Рис. 16.2

675

Методы приближенных вычислений

Предположим, что необходимо вычислить значение решения в узле A  x j , tk  с помощью формул (16.38) для k  1 и любого целого числа j. Полагая в (16.38) k  k  1 , определяем u kj через значения u kj11 , u kj 1 , u kj11 , u kj  2 . Если k  2  1 , то значения u kj11 , u kj 1 , u kj11 , u kj  2

по схеме (16.38) определяются через u kj22 , u kj12 , u kj  2 , u kj12 , u kj22 , u kj13 , u kj  3 , u kj13 и т.д. Значения решения на втором временном слое

определяются через значения решения в узлах, заданных на первом и нулевом временных слоях (рис. 16.2, отрезки FG и DE ). Итак, решение в узле сетки A  x j , tk  определяется через его значения в узлах, заключенных в треугольнике ADE . Сторона треугольника DE лежит на оси ox , а две другие проходят через точку A и образуют с осью абсцисс углы AED и ADE , равные соответственно arctg    и arctg  ,  

  0 . Треугольник ADE h

называется областью зависимости разностной схемы (16.38). Таким образом, значение u kj в узле A определяется разностной схемой (16.38) и начальными значениями u 0j и u1j , вычисленными в узлах, лежащих на отрезках DE и FG . Остановимся на вопросе о нахождении точного значения решения u  x, t  дифференциальной задачи (16.18)–(16.20) в точке A. Из курса уравнений математической физики следует, что значение решения u  x, t  в точке A определяется уравнением (16.18) и начальными условиями, которые расположены на отрезке, высекаемом характеристиками, проходящими через точку A, на оси ox . Уравнение характеристик для (16.18) имеет вид dx 2  c 2 dt 2  0

или 2

 dx  2   c .  dt 

Из последнего соотношения получим 676

16. Численные методы решения краевых задач

dx  c . dt

(16.39)

Характеристики уравнения (16.18) образуют с осью ox углы, один из которых ABC равен arctg c , а второй ACB равен arctg  c  . При значении c 2  1 характеристики уравнения (16.18) перпендикулярны друг другу и образуют с осью абсцисс углы ABC и ACB , равные соответственно  / 4 и 3 / 4 . Треугольник определенности ABC называется областью зависимости дифференциального уравнения (16.18) [3, с. 207]. На рис. 16.2 представлен случай, когда c 2  1 и область определенности ABC дифференциального уравнения (16.18) содержит внутри себя область определенности ADE разностной схемы (16.38). В этом случае для шагов  , h справедливо неравенство 

 1. h

При таком выборе шагов  и h начальных условий, влияющих на решение в узле A и задаваемых на отрезке DE , будет недостаточно для определения решения в этой точке. В самом деле, если изменить начальные условия на отрезках BD и EC , то это изменит решение дифференциальной задачи (16.18)–(16.20) в области G, в том числе и в точке A. Однако на разностном решении u kj в узле A изменения начальных условий не скажутся. Поэтому разностное решение останется неизменным и не будет сходиться к точному решению в точке A . В силу того что разностная схема (16.38) аппроксимирует задачу Коши (16.18)–(16.20), она не может быть устойчивой, так как в противном случае из аппроксимации и устойчивости следовала бы сходимость. Итак, при   1 нет сходимости и, следовательно, устойчивость не имеет места. Рассмотрим теперь случай, когда область зависимости разностной схемы содержит в себе область зависимости дифференциальной задачи или совпадает с ней. Это будет иметь место, если  

  1 . В этом h

случае имеет место условная устойчивость разностной схемы. 677

Методы приближенных вычислений

Для более общего вида уравнения гиперболического типа область зависимости дифференциального уравнения будет криволинейной, так же как и область зависимости соответствующей разностной схемы. При этом для сохранения устойчивости схемы область зависимости дифференциального уравнения должна содержаться или совпадать с областью зависимости разностного уравнения [3, с. 208].

16.3. Численное решение третьей краевой задачи Запишем третью краевую задачу (16.9)–(16.13) в операторной форме: Lu  f , (16.40) где  2 u 2  2 u , 0  x  L, 0  t  T ;  2 c x 2  t u  x, 0  , 0  x  L;   u  x, 0  , 0  x  L; Lu   t  u 0, t 1  t      0  t  u  0, t  , 0  t  T ;  x   u L, t     t    0  t  u  L, t  , 0  t  T , 1 x  0, 0  x  L, 0  t  T ;  x , 0  x  L;    f    x  , 0  x  L;   t  , 0  t  T ;  1   2  t  , 0  t  T .

Предположим, что краевая задача (16.40) имеет единственное решение в области G  G   (рис. 16.3), где  – граница области G. Для построения разностной схемы покроем область G равномерной сеткой 678

16. Численные методы решения краевых задач

h,   {( x j , tk ) | x j  j  h, j  0,1, , N ; h  tk  k  , k  0,1, M ;  

L , N

T }. M

Так же как в случае задачи Коши, для аппроксимации волнового уравнения (16.9) будем использовать явную трехслойную схему «крест» [1, с. 408–410; 3, с. 208–210]: u kj 1  2u kj  u kj 1 2

 c2

u kj 1  2u kj  u kj 1

, j  1, N  1 , k  1, M  1 .

h2

Запишем в операторной форме разностную аппроксимацию краевой задачи (16.40): Lh u    f   , h

h

(16.41)

t T G x 0

L Рис. 16.3

Lh u 

h

 u kj 1  2u kj  u kj 1 u kj 1  2u kj  u kj 1 2  c , j  1, N  1, k  1, M  1;  2 h2  u 0 , j  0, N ;  1j  u j  u 0j     , j  0, N ;  k k  t  u1  u0   t u k , k  2, M ;   0 k  0  1 k h  k k  t  u N  u N 1   t u k , k  2, M ,   0 k  N  1 k h

679

Методы приближенных вычислений

f

h

0, j  1, N  1, k  1, M  1;    x j  , j  0, N ;     x j  , j  0, N ;   1  tk  , k  2, M ;    2  tk  , k  2, M .

Оценим погрешность аппроксимации задачи (16.41). Пусть

F  h   1 f  h  ,  2 f  h  , 3 f  h  ,  4 f  h  , 5 f  h 

T

– вектор погрешности ап-

проксимации разностной задачи, а 1 f  h  – погрешность для разностной схемы;  2 f  h  , 3 f  h  – погрешности аппроксимации начальных, а  4 f  h  , 5 f  h  – граничных условий. Можно показать, что [3, с. 203–204; 4–6]: h 1 f    O  2  h 2  ;  2 f  h   0 ; 3 f  h   O    ;  4 f  h   O  h  ;  5 f  h   O  h  .

Оценим

|| F   || max || 1 f   ||,|| 2 f   ||,|| 3 f   ||, || 4 f   ||,|| 5 f   || , h

где

|| 1 f

|| 3 f

 h

|| 5 f

 h

h

h

h

h

||Ch  max max | 1 f  x j , tk  | ,

|| 2 f

1 k  M 11 j  N 1

||Ch  max | 3 f  tk  | ,

||  4 f

0  k 1

h

 h

 h

h

||Ch  max | 2 f  x j  | , 0 j  N

||Ch  max max | 4 f  x j , tk  | , 2 k  M

j 0

||Ch  max max | 5 f  x j , tk  | . 2 k  M

jN

Из полученных соотношений, очевидно, следует, что || F  h  || O    h  .

Запишем алгоритм решения задачи (16.41). Для этого разрешим первое уравнение разностной схемы относительно u kj 1 : u kj 1   2 u kj 1   2  2  2  u kj   2 u kj 1  u kj 1 , j  1, 2, , N  1; k  1, 2, , M  1.

680

(16.42)

16. Численные методы решения краевых задач

Для нахождения значений решения по схеме (16.42) на временных слоях, начиная со второго, требуется добавить к (16.42) начальные условия, позволяющие определять значения решения на нулевом и первом временных слоях: u 0j   j , j  0,1, , N ; (16.43) u1j   j   j , j  0,1, , N ; u0k  

1  tk 

h 0  tk   1  tk 

u1k 

(16.44)

h 1  t k 

h 0  tk   1  tk 

или u0k  u Nk 

1  tk 

1  tk   h 0  tk  1  tk 

1  tk   h0  tk 

u1k 

h 1  t k 

1  tk   h 0  tk 

u Nk 1 

h  2  tk 

1  tk   h0  tk 

, k  2,3, , M ; (16.45) , k  2,3, , M . (16.46)

Значения решения u0k , uNk , k  2,3, M , определяются из формул (16.45) и (16.46), полученных разностной аппроксимацией граничных условий третьего рода (16.12), (16.13). Реализация численного алгоритма (16.42)–(16.46) осуществляется следующим образом. Сначала с помощью формулы (16.43) находим значения решения на нулевом слое u 0j , j  0, N . На рис. 16.4 узлы нулевого слоя помечены «×». Далее, используя формулу (16.44), определяем на первом временном слое u1j , j  0, N . Узлы первого временного слоя также помечены символом «×». Последующие вычисления будут осуществляться с помощью разностной схемы (16.42). Полагаем в (16.42) k  1 и вычисляем значения на втором временном слое u 2j , j  1, N  1 . На рис. 16.4 эти узлы обозначены «о». Чтобы определить u02 , u N2 (узлы «/» и «» соответственно), воспользуемся разностными граничными условиями (16.45), (16.46) при k  2 , т.е.

681

Методы приближенных вычислений

u02  u N2 

1  t2 

1  t2   h 0  t2  1  t2 

1  t2   h0  t2 

u12 

h 1  t 2 

1  t2   h 0  t2 

u N2 1 

h  2  t2 

1  t2   h0  t2 

, ,

при этом предполагается, что 1  t2   h 0  t2   0 , 1  t2   h0  t2   0 . Последующие вычисления u 3j , u 4j , …, u Mj , j  0, N , осуществляются аналогично определению u 2j . Исследование устойчивости явной трехслойной схемы для случая третьей краевой задачи подробно проведено в [4], а также в [3, с. 210–214].

Рис. 16.4

16.4. Решение варианта задания Пример. С помощью явной разностной схемы (16.42) найти численное решение первой краевой задачи [1, с. 409–411]:

682

16. Численные методы решения краевых задач

 2u  2u 5 ;   0, 0  x  , 0  t  18  t 2  x2

u  x, 0   sin  x    x   , 0  x  ; u  x, 0  t

 0, 0  x  ;

(16.47)

5 ; 18 5 u  , t   0, 0  t  . 18 u  0, t   0, 0  t 

Отметим, что c 2  1 ,   x   sin  x    x   ,   x   0 , 1  t    2  t   0 , 5 , 1  t   1  t   0 ,  0  t   0  t   1 . Зададим N  18 , 18  тогда пространственный шаг сетки h  . Шаг по времени τ, ко18  ( M  5 ). Заторый выбирается из условия устойчивости, равен 18 L, T 

пишем теперь алгоритм решения первой краевой задачи (16.17) с помощью явной разностной схемы (16.42): u kj 1   2 u kj 1   2  2  2  u kj   2 u kj 1  u kj 1 , j  1, 2, , N  1; k  1, 2, , M  1;

u 0j  sin x j    x j  , j  1, N – 1;

(16.48)

u1j  u 0j   j , j  1, N – 1; u0k  0, k  0,1, , M ; u Nk  0, k  0, M .

Заметим, что при c 2  1 параметр  

 . Результаты численных h

расчетов приведем в табл. 16.1.

683

Методы приближенных вычислений Т а б л и ц а 16.1 k

0

j 0 1 2 3 4 5

1

2

3

0 0,495 0,828 0,980 0 0,495 0,828 0,980 0 0,333 0,647 0,838 0 0,152 0,343 0,574 0 0,011 0,079 0,238 0 –0,073 –0,094 –0,019

4

5

6

7

8

9

0,991 0,991 0,907 0,733 0,476 0,172

0,917 0,917 0,886 0,809 0,667 0,453

0,812 0,812 0,820 0,819 0,785 0,690

0,715 0,715 0,746 0,796 0,843 0,852

0,648 0,648 0,691 0,769 0,863 0,940

0,624 0,624 0,671 0,758 0,867 0,968

В силу симметричности функции u ( x, t ) относительно x 

 в 2

табл. 16.1 приведены значения решения для j от 0 до 9. Численное решение описывает колебание струны, натянутой между точками x0 и x.

16.5. О задании дополнительных граничных условий для разностных схем Ранее рассматривались примеры разностных краевых задач, в которых построение разностных краевых условий осуществлялось без особых проблем, так как для этого необходимо было аппроксимировать дифференциальные начальные и граничные условия с определенной точностью. Другими словами, разностные краевые условия порождались в этих задачах дифференциальными или аналитическими краевыми условиями. Остановимся на более сложных в этом смысле случаях. Рассмотрим задачу Коши для уравнения гиперболического типа Lu  F ,

где  u u   , Lu   t x u  x, 0  , 

684

(16.49)

16. Численные методы решения краевых задач

 f  x, t  ,    x  , t  0, F    x  ,    x  , t  0.

Отметим, что u ( x, t )  C11 (G )  C (G ) , G  {( x, t )    x  , t  0} . Построим двухслойную разностную схему первого порядка точности по  и h с шаблоном 2 0

1

уголок «правый», аппроксимирующую дифференциальную задачу (16.49). Покроем область G регулярной сеткой h  h   , где h  {x j x j  jh, j  0, 1, 2,} ,   {tk tk  k  , k  0,1, 2,} . Коор-

динаты узлов, входящих в шаблон, приведем ниже: 0  x j , tk  , 1 x j  h, tk  , 2  x j , tk    .

Для построения разностной схемы с заданным шаблоном воспользуемся методом неопределенных коэффициентов. Положим 2

c u j 0

j

j

 f j  O  2  h 2 

(16.50)

или  u u  c0 u  x j , tk   c1u  x j  h, tk   c2 u  x j , tk         O  2  h 2  .  t x  x  x j , t  tk

Предположим, что u ( x, t )  C22 (G ) . Применим формулу Тейлора к функции u  x, t  из последнего соотношения в окрестности узла

 x , t  . Будем иметь j

k

c0 u  x j , tk   c1[u  x j , tk   h

u  x j , tk  x

 O  h 2 ] 

685

Методы приближенных вычислений

c2 [u  x j , tk    

Отсюда, u  x j , tk  ,

u  x j , tk  t

u  x j , tk  t

 O  2 ] 

u  x j , tk  x

приравнивая

(16.51)

.

коэффициенты

при

u  x j , tk  u  x j , tk  , в левой и правой частях (16.51), полуx t

чим следующую СЛАУ для нахождения неизвестных коэффициентов c j , j  0,1, 2 : c0  c1  c2  0,   c1h  1,   c2   1,

u  x j , tk  , u  x j , tk  x u  x j , tk  t

, .

1 h

1 

Из последних двух уравнений имеем c1   , c2  . Из первого уравнения системы получим 1 1 c0    .  h

После подстановки значений ci , i  0, 2 , в (16.50) построим следующую разностную схему: u kj 1  u kj

u kj 1  u kj

 f jk , j  0, 1, 2, ; k  0,1, ;  h u 0j   j , j  0, 1, 2, .

(16.52)

Разностная схема (16.52) называется схемой против потока: направление потока определяется знаком коэффициента при правой разностной производной, а он равен (–1) < 0. При применении правой разностной производной используются значения сеточных 686

16. Численные методы решения краевых задач

функций u j 1 и u j , причем u j 1 вычисляется в узле x j 1 , расположенном справа относительно узла x j (в направлении, противоположном потоку). направление потока

xj

xj+1

x

Если вместо правой пространственной разности использовать леu j  u j 1

вую, т.е.

h

, то значение функции u j 1 будет вычисляться в

узле x j 1 , расположенном слева от узла x j (в направлении, совпадающем с направлением потока). Отсюда название схемы – схема по потоку. Алгоритм решения задачи Коши

Решение разностной задачи осуществляется слоями по времени. Для этого разрешаем (16.52) относительно u kj 1 : u kj 1  (1   )u kj  u kj 1   f jk , j  0, 1, 2, ; k  0,1, ; u 0j   j , j  0, 1, 2, ,

где  

(16.53)

 . h

Чтобы определить значения u1j , j  0, 1, 2, , из (16.53) при k  0 , надо знать значения решения на нулевом горизонтальном 687

Методы приближенных вычислений

слое. Значения u 0j , j  0, 1, 2, , определяются из начального условия. Далее находят

u 2j ,

j  0, 1, 2, ,

через значения

u , j  0, 1, 2, , и т.д. 1 j

Следует отметить, что разностная задача (16.52) аппроксимирует дифференциальную задачу Коши с порядком O    h  . При численном решении задачи (16.53) шаг по времени определяется из условия устойчивости схемы. Для исследования устойчивости явной разностной схемы (16.52) по начальным данным ищем частное решение в виде u kj   k eij , i  1 ,    0, 2 .

(16.54)

Тогда имеем

 ei  1 eij  0 .  k 1   k ij e  k  h Из последнего соотношения получаем   1   (1  cos )  i  sin  .

Оценим  по модулю: 2

      1  2  sin 2   4 2 sin 2  1  sin 2  2 2 2 

или   1  4 (1   ) sin 2

 . 2

  1 , если 1    0 . Отсюда следует, что   1 или

 1. h

Схема условно устойчива. Из аппроксимации и устойчивости следует сходимость решения разностной задачи к решению дифференциальной. Условие   1 обеспечивает монотонность разностной схемы (16.53) [3, c. 304–308].

688

16. Численные методы решения краевых задач

Нетрудно показать, что при использовании схемы по потоку условие устойчивости не выполняется.

16.5.1. Дополнительные граничные условия Понятие о дополнительных граничных условиях (ДГУ) вводится в [8, с. 317–323] на примере краевой задачи первого рода для простейшего модельного уравнения гиперболического типа u u  a1 , a1  0 . В качестве разностной схемы изучается схема с t x

двусторонним шаблоном [8, с. 317]: u n 1  x   S h u n  x  .

В данном разделе рассматривается линейное уравнение переноса гиперболического типа u u  a1  0 , a1  0 , 0  x  1 , t  0 , t x

(16.55)

с начальным u  x, 0   ( x)

(16.56)

u 1, t   0

(16.57)

и граничным условиями. Заметим, x  a1t  const ,

что уравнение (16.55) которые приходят на

имеет левую

характеристики границу x  0

(рис. 16.5). Решение задачи (16.55)–(16.57) постоянно вдоль характеристики и полностью определяется заданием начальных и граничных условий. При условии согласования начального и граничного условий данная дифференциальная задача корректно поставлена в L2 [8, с. 317].

689

Методы приближенных вычислений

t

x

0

1 Рис. 16.5

Определим решение поставленной задачи численно. Для этого покроем область G  { x, t  0  x  1, 0  t  T } равномерной сеткой h  h   с шагами h и  по оси Ox и Ot соответственно, где 1  h   x j x j  jh, j  0, N ; h   , N  

  tk tk  k , k  0,1, , M  .

Вы-

числения будем проводить по схеме Лакса–Вендроффа второго порядка точности [7, с. 53–55]: u kj 1  u kj 

 a1

u kj 1  u kj 1

 a

2 1

u kj 1  2u kj  u kj 1

2h 2 j  1, N  1 ; k  0, M  1 , 2h

,

(16.58)

с начальным u 0j   j ,

j  0, N ,

(16.59)

и граничным u Nk  0 , k  1, M ,

(16.60)

условиями. Заметим, что расчеты по формулам (16.58)–(16.60) невозможны, так как для определения значения u0k 1 необходимо задать дополнительное граничное условие (ДГУ). Рассмотрим три способа задания ДГУ: 690

16. Численные методы решения краевых задач

1) u0k 1  u1k 1 ; 2) u0k 1  u1k ;

(16.61) (16.62)

3) u0k 1  u1k    u1k  u0k  .

(16.63)

ДГУ 1 и 2 представляют собой экстраполяцию по пространству и по времени-пространству, а ДГУ 3 – разностную схему уголок «правый». Численные расчеты задачи (16.58)–(16.60) с ДГУ (16.61)– (16.63) проводились с шагами  и h , удовлетворяющими условию устойчивости

 a1  1 . h

Результаты решения задачи (16.58)–(16.61) носят устойчивый характер, но точность расчетов на левой границе недостаточная. Счет по схеме Лакса–Вендроффа с использованием ДГУ (16.62) устойчив, но не достаточна точность расчетов на левой границе. И, наконец, вычисления с использованием ДГУ (16.63) дают удовлетворительные результаты и в смысле устойчивости и в смысле точности. Как видим, подбор ДГУ влияет как на точность вычислений, так и на устойчивость. Погрешность аппроксимации разностной схемы Лакса– Вендроффа есть O  2  h 2  , а начальных условий равна нулю. Оценим погрешность аппроксимации ДГУ (16.61). Составим функцию погрешности, предполагая, что u ( x, t )  C01 (G ) : 1  x0 , tk 1   u  0, tk 1   u  h, tk 1  .

Применим к функции u  h, tk 1  формулу Тейлора в окрестности узла  0, tk 1  . Получим 1  0, tk 1   u  0, tk 1   u  0, tk 1   h  2   0, h  .

u   2 , tk 1  x

,

Следовательно, погрешность аппроксимации ДГУ

(16.61) имеет порядок O  h  . Составим функцию погрешности для (16.62): 691

Методы приближенных вычислений

 2  0, tk 1   u  0, tk 1   u  h, tk  .

Предположим, что u ( x, t )  C11 (G ) . Применим формулу Тейлора к функции u  h, tk  из  2  0, tk 1  в окрестности узла  0, tk 1  . Получим  2  0, tk 1   u  0, tk 1   u  0, tk 1   h

 u  3 , tk 1  x



 u  0, 1  t

,

где 3   0, h  , 1   tk , tk 1  . Имеем, что погрешность аппроксимации для (16.62) есть O    h  . Для ДГУ (16.63) запишем функцию погрешности аппроксимации:  3  0, tk 1   u  0, tk 1   u  0, tk  –

  u  h, tk   u  0, tk   . h

Предполагая, что u ( x, t )  C22 (G ) , и, применяя формулу Тейлора в окрестности узла  0, tk 1  , можно показать, что  3  0, tk 1   O  2  h 2  .

Таким образом, во всех трех случаях аппроксимация на границе имеет место, но в случае ДГУ (16.61) и (16.62) погрешность аппроксимации на левой границе больше, чем для схемы и начальных условий. Применение ДГУ (16.61)–(16.62) ведет к потере точности. Для ДГУ (16.63) численные результаты оказались наилучшими в смысле близости к точному решению [9]. Изложим прием, позволяющий расширить класс нестационарных задач, для исследования которых может применяться спектральный признак устойчивости. В частности, его можно применять к задачам с ограниченной областью задания, когда граничные условия задаются не только в начальный момент времени, но и на боковых границах. Этот подход основан на признаке Бабенко–Гельфанда, подробное изложение которого можно найти в [6, с. 243–251]. Рассмотрим основные положения этого признака на примере задачи (16.58)– (16.60). Необходимый признак Бабенко–Гельфанда дополняется исследованиями Крайса, Сундстрема и Густаффсона [9, 10]. 692

16. Численные методы решения краевых задач

16.5.2. Анализ нормальных мод Признак Бабенко–Гельфанда состоит в том, что разностная краевая задача расчленяется на три задачи: задачу Коши (левая и правая границы области удалены в  и  соответственно); задачу с левой границей (правая граница удалена в  ); задачу с правой границей (левая устремлена в  ). Оценивается спектр каждой из трех новых задач. Необходимое условие устойчивости получается как объединение спектров всех трех задач, которое должно лежать в единичном круге [6, с. 245]. Запишем три вспомогательные задачи для разностной задачи (16.58)–(16.61). Задача 1. Задача Коши получается из рассматриваемой краевой задачи, если обе границы одновременно удаляются в бесконечность, и задача рассматривается для таких значений u kj , для которых u kj  K , j   , K  const  0 : u kj 1  u kj

 a1

u kj 1  u kj 1

 a 21

u kj 1  2u kj  u kj 1

 2h j  0, 1, 2, , k  0,1, 2, ; u 0j   j , j  0, 1, 2, ,

2h 2

,

(16.64)

u kj  K , j  0, 1, 2, , k  1, 2, .

Задача 2 (только с правой границей) получается из исходной задачи, если левая граница удалена в  и рассматривается для сеточных функций u kj , для которых u kj  0 при j   : u kj 1  u kj

 a1

u kj 1  u kj 1

 a 21

u kj 1  2u kj  u kj 1

 2h 2h 2 j  …, 2, 1, 0, , N  1, k  0,1, 2, ;

,

(16.65)

u Nk  0, k  1, 2, , u kj  0 при j  .

Задача 3 (только с левой границей). Получается из исходной задачи, если правая граница области удаляется в  и рассматри-

693

Методы приближенных вычислений

вается для таких сеточных функций, для которых u kj  0 при j   : u kj 1  u kj

 a1

u kj 1  u kj 1

 a 21

u kj 1  2u kj  u kj 1

 2h j  1, 2, , k  0,1, 2, ;

2h 2

,

(16.66)

u0k 1  u1k 1 , k  0,1, 2, , u kj  0 при j  .

Х. Крайсс, Б. Густаффсон, А. Сундстрём [10] усилили необходимый признак устойчивости Бабенко–Гельфанда, потребовав, чтобы не просто спектр трех задач лежал внутри круга   1 , но чтобы не существовало обобщенных решений для второй и третьей вспомогательных задач, соответствующих   1 (критерий КГС.). Определение 2 [9]. Обобщенное решение – это решение, для которого не выполнено условие u kj  0 при j   (  ), но которое может быть получено как предельное из тех решений, для которых это условие выполнено, а   1 . Метод исследования устойчивости на основе определения 2 называется анализом нормальных мод [10]. Применим этот метод к исследованию устойчивости разностной задачи (16.58)–(16.61). Сначала, в соответствии с признаком Бабенко–Гельфанда, расчленяем задачу на три вспомогательные (16.64), (16.65), (16.66). 1. Задача Коши. Спектр этой задачи – множество таких чисел  , что сеточная функция u kj   k w j есть решение задачи (16.64), ограниченное при j   . Подставим u kj   k w j в разностную схему:  k 1 w j   k w j 

 a1 k

w j 1  w j 1 2h

 a12  k

Из последнего соотношения следует 694

w j 1  2 w j  w j 1 2h 2

0.

16. Численные методы решения краевых задач

   1 w j 

 2 w j 1  w j 1    w j 1  2w j  w j 1   0,  2 2

   a1 , h

(16.67)

резольвентное уравнение [9]. Оно представляет собой однородное разностное уравнение второго порядка. Сеточная функция u kj   k q j является решением (16.67), если  и q связаны между собой характеристическим уравнением

   1 

1  2  1  q   q 2   0 . 2 q 2  q

(16.68)

Решение задачи Коши вида u kj   k q j будет ограничено при j   , если q  1 , т.е. q  ei . Итак, для оценки спектра первой

вспомогательной задачи надо искать ее решение в виде u kj   k eij . Из (16.68), очевидно, следует   1  2  2 sin 2

  i  sin  . 2

  1 , если  2  1 или

 a1  1 . h

2. Задача только с правой границей. На этой границе задано условие u Nk  0 . Характеристическое уравнение (16.68) имеет комплексный корень. Решение второй вспомогательной задачи вида u kj   k q j должно стремиться к 0 при j   . Последнее условие

выполняется, если q  1 . Нетривиальных решений указанного вида для задачи с правой границей не существует, так как при x  1 u Nk  0 . 3. Задача только с левой границей. Решение, стремящееся к нулю при j   , имеет следующий вид: u kj   k q j , q  1 . (16.69) 695

Методы приближенных вычислений

Подставим (16.69) в левое граничное условие u0k 1  u1k 1 .

Далее имеем  k 1   k 1q .

Так как   0 ,   0 , то получим q  1  0 или q  1 .

Решение, удовлетворяющее левому ДГУ, имеет следующую структуру: u kj   k , причем u kj

не стремится к нулю при j   . Определим из

(16.68) λ, соответствующее q  1 . Имеем  1.

Посмотрим, как получается обобщенное решение, соответствующее q  1 : как предел решений, для которых   1 и q  1 , или тех, для которых   1 и q  1 . Чтобы ответить на этот вопрос, рассмотрим случай, когда   1 . Полагаем   1   , где   0 и   1 – малая величина; q  1   . Известно, что   1 , а знак  надо определить, чтобы ответить на поставленный вопрос. Подставляя λ и q в (16.68) и пренебрегая членами второго порядка малости, получим  1  2  1  (1    1)  1      1    2  0. 2 1   2  1       0 .

Или    .

Так как   0 , то из последнего соотношения следует, что   0 . Это значит, что q  1   будет иметь q  1 . Последнее означает, 696

16. Численные методы решения краевых задач

что обобщенное решение u kj   k q j , соответствующее q  1 ,   1 , получается как предельное тех решений, для которых q  1 . Следовательно, для этого случая выполнен необходимый критерий устойчивости КГС. Численные расчеты подтверждают это [9]. Объединение спектров трех вспомогательных задач дает условие устойчивости

 a1  1 . h

Рассуждая аналогичным образом, можно показать, что для задач (16.58)–(16.60), (16.62) и (16.58)–(16.60), (16.63) также выполняется необходимый критерий устойчивости К.Г.С. Необходимый критерий устойчивости К.Г.С. является и достаточным для устойчивости в специальной норме [9]. Отметим, что изложенный признак устойчивости для нестационарных разностных задач с граничными условиями может применяться в краевых задачах для систем разностных уравнений [6, с. 249, с. 396–403]. В этом случае схемы, удовлетворяющие необходимому условию фон Неймана, часто бывают неустойчивыми изза неудачного выбора ДГУ или неудачной аппроксимации граничных условий. В таких ситуациях важно уметь подбирать разностные схемы, свободные от этого недостатка.

16.5.3. Решение варианта задания Требуется найти численное решение первой краевой задачи u u  a1  0, a1  0, 0  x  1, t  0, t x

с начальным u ( x, 0)  ( x)

и граничным u (0, t )  0

условиями. 697

Методы приближенных вычислений

Заметим, что уравнение переноса имеет характеристики x  a1t  const, которые приходят на правую границу x  1 . Решение поставленной задачи постоянно вдоль характеристики и целиком определяется заданными начальными и граничными условиями. Как было ранее отмечено, при условии согласования начального и граничного условий данная краевая задача корректно поставлена в L2 . Для нахождения численного решения указанной задачи покроем область G  ( x, t ) 0  x  1, 0  t  T  равномерной сеткой h  h   с шагами h и τ по осям Ox и Ot соответственно, где

h  x j x j  j  h, j  0, N , h 

1  ,   tk tk  k  , k  0,…, M  . N

Вычисления будут проводиться по схеме второго порядка «leap – frog» [8, c. 313, 315]: u kj 1  u kj 1 2

 a1

u kj 1  u kj 1 2h

 0, j  1, N  1; k  1, M  1.

Эта схема условно устойчива по начальным данным, у нее отсутствует схемная вязкость и поэтому при решении прикладных задач газовой динамики требуется использовать механизмы монотонизации данной разностной схемы. Схема «leap – frog» представляет не столько практический, сколько теоретический интерес с точки зрения иллюстрации вопросов, связанных с использованием трехслойных разностных схем. Например, для численного решения поставленной краевой задачи требуется задать дополнительное условие на первом временном слое. Кроме того, для нахождения численного решения в узле xN в момент времени tk 1 необходимо задать ДГУ на правой границе. Запишем разностную краевую задачу: u kj 1  u kj 1 2

с начальным 698

 a1

u kj 1  u kj 1 2h

 0, j  1, N  1; k  1, M  1 ,

16. Численные методы решения краевых задач

u 0j   j , u1j   j  a1 j , j  0, N ,

и граничным u Nk  0, k  2, M ,

условиями. Аналогично ранее рассмотренному случаю будем использовать три типа ДГУ на правой границе: 1) u Nk 1  u Nk 11 ; 2) u Nk 1  u Nk 1 ; 3) uNk 1  uNk   (u Nk  u Nk 1 ). Погрешность аппроксимации разностной схемы «leap – frog» есть величина порядка O(2  h 2 ) , а для начальных условий равна нулю. Погрешность аппроксимации ДГУ (16.61), как было ранее показано, равна O(h) . Для ДГУ (16.62) – O(  h), а для ДГУ (16.63) – O(2  h 2 ) . Исследуем на устойчивость разностную краевую задачу с помощью анализа нормальных мод. Для этого разобъем указанную задачу на три. 1. Задача Коши: u kj 1  u kj 1

 a1

u kj 1  u kj 1

 0, 2 2h j  0, 1, 2,…; k  1, 2,…; 0 u j   j , u1j   j    j , j  0, 1, 2,…, u kj  K , j  0, 1, 2,…, k  1, 2,… .

Она получается из вышеприведенной краевой задачи, если обе границы одновременно удаляются в бесконечность и задача рассматривается для таких значений для которых u kj , u kj  K , j  , K  const  0 .

699

Методы приближенных вычислений

2. Задача только с правой границей. u kj 1  u kj 1

 a1

u kj 1  u kj 1

 0, 2 2h j  …,  2,  1, 0,1, …, N  1; k  1, 2,…; u Nk 1  u Nk 11 , k  1, 2,…; u kj  0 при j   .

Задача получается из исходной, если левая граница удалена в  и рассматривается для сеточных функций u kj , для которых u kj  0 при j   .

3 Задача только с левой границей. Получается из исходной задачи, если правая граница области удаляется в  и рассматривается для таких сеточных функций, для которых u kj  0 при j   :

u kj 1  u kj 1

 a1

u kj 1  u kj 1

2 2h j  1, 2,…, k  1, 2,…;

 0,

u0k 1  0, k  1, 2,…; u kj  0 при j   .

Сначала исследуем на устойчивость задачу 1 (задачу Коши). Cпектр этой задачи – множество таких чисел λ, что сеточная функция u kj   k w j есть решение задачи Коши, ограниченное при j   . Подставим u kj   k w j в разностную схему:  k 1 w j   k 1 w j 2

 a1 k

w j 1  w j 1 2h

0.

Из последнего соотношения следует резольвентное уравнение [9]: 1 (  ) w j   ( w j 1  w j 1 )  0 , 

700

16. Численные методы решения краевых задач



 a1 . h

Это однородное разностное уравнение второго порядка. Сеточная функция u kj   k q j является решением резольвентного уравнения, если λ и q связаны между собой характеристическим уравнением 1 1    (q  )   0. q 

Решение задачи Коши вида u kj   k q j будет ограничено при j   , если q  1 , т.е. q  ei . Итак, для оценки спектра первой

вспомогательной задачи надо искать ее решение в виде u kj   k eij . Тогда из характеристического уравнения, очевидно, следует    (e i   e  i  ) 

1 0 

или  2   2i  sin   1  0 .

Тогда 1,2  i  sin   1   2 sin 2 .

Корни характеристического уравнения будут комплексными, если 1   2 sin 2   0 . Из этого неравенства следует, что   1 . Более подробно неравенство можно переписать в виде  a1  1 . h

Очевидно, что   1 . Исследование спектра второй вспомогательной задачи (только с правой границей) начинается с получения характеристического уравнения для ДГУ (16.61). Решение второй вспомогательной задачи вида u kj   k q j должно стремиться к нулю при j   . По701

Методы приближенных вычислений

следнее условие выполняется, если q  1 . Подставляя решение указанного вида в (16.61), получим q  1 . Отсюда следует, что решение, удовлетворяющее правому ДГУ, имеет следующую структуру: u kj   k , причем u kj не стремится к нулю при j   . Определим из характеристического уравнения для базовой разностной схемы значение λ, соответствующее q  1 . Имеем 2 1  0 .

Отсюда следует, что   1 .

Посмотрим, как получается обобщенное решение, соответствующее q  1 : как предел тех решений, для которых   1 и q  1 , или тех, для которых   1 и q  1.

Чтобы ответить на этот вопрос, рассмотрим случай, когда   1 . Полагаем   1   , где   0 и   1 – малая величина; q  1   . Известно, что   1 , а знак δ надо определить, чтобы ответить на поставленный вопрос. Подставляя λ и q в характеристическое уравнение схемы «leap – frog», получим 1  2    2   1    0

или    .

Так как   0 и   0 , то   0 . Отсюда следует, что q  1 . Необходимое условие устойчивости К.Г.С. не выполняется. Для третьей вспомогательной задачи на левой границе задано условие u0k  0 . Решение этой задачи вида u kj   k q j должно стремиться к нулю при j   . Последнее условие выполняется, если q  1 . Характеристическое уравнение базовой схемы «leap – frog» для каждого λ имеет два корня q1 , q2 , причем q1  q2  1 . 702

16. Численные методы решения краевых задач

Нетривиальных решений с q  1 , удовлетворяющих граничному условию u0k  0 , не существует. Применим анализ нормальных мод к исследованию устойчивости ранее поставленной разностной задачи с ДГУ (16.62). Алгоритм исследования: задача расчленяется на три вспомогательные, причем задача 1 и задача 3 будут такими же, как и в рассмотренном случае. Исследование этих задач проведено ранее. Остановимся на задаче 2. Задача 2 (с правой границей) вычленяется из нашей задачи, если устремить левую границу в  . Задача рассматривается для сеточных функций, для которых u kj  0 при j   : u kj 1  u kj 1

u kj 1  u kj 1

 0, 2 2h j  …, 1, 0,…, N  1, k  1, 2, ;

u

k 1 N

u

k N 1

 a1

(16.70)

, k  1, 2, ;

u  0 при j  . k j

Решение u kj   k q j стремится к нулю при j   , если q  1 . При подстановке u kj в правое граничное условие u Nk 1  u Nk 1 получим уравнение   q  1. (16.71) Отсюда следует, что  

1 1 . Подставляя   в характеристичеq q

ское уравнение схемы «leap – frog», будем иметь 1 (1   )    1  0 q2

или q2  1 .

Тогда q1  1 , q2  1 . Соответствующие 1  1 ,  2  1 .

703

Методы приближенных вычислений

Рассмотрим случай 1  1 , q1  1 . Проверим, как получается обобщенное решение, соответствующее q1  1 . Полагаем 1  1   , где   0 – малая величина и   1 ; q1  1   , причем   1 . Знак δ необходимо определить, чтобы ответить на поставленный выше вопрос. Подставим 1 и q1 в (16.71) (или в характеристическое уравнение базовой схемы). Получим   0

или   – .

Так как   0 , то   0 и q1  1 . Это значит, что обобщенное решение, соответствующее q1  1 , 1  1 , не существует. Следовательно, для этого случая выполнен необходимый критерий устойчивости К.Г.С. Исследуем второй случай:  2  1 , q2  1 . Полагаем  2  1   ,   0 ,   1 ; q2  1   ,   1 . Подставим  2 и q2 в (16.71): (1  )   1     1 .

Тогда   –  . Отсюда следует, что   0 или q2  1 . Необходимый критерий устойчивости К.Г.С. выполняется и для второго случая. Анализ нормальных мод показал, что для рассмотренной разностной задачи с ДГУ вида (16.62) выполнен необходимый критерий устойчивости КГС. Этот критерий является и достаточным для устойчивости в специальной норме [9]. Аналогичным образом можно показать, что для рассмотренной разностной задачи с ДГУ вида (16.63) также выполняется необходимый критерий устойчивости КГС. Численные расчеты разностной краевой задачи с использованием схемы «leap – frog» и ДГУ вида (16.61) на правой границе показали, что решение растет экспоненциально, т.е. применение этого ДГУ приводит к неустойчивости. Это подтверждают результаты теоретического исследования. Счет по схеме «leap – frog» с использованием ДГУ (16.62) на правой границе устойчив, но точность расчетов на правой границе недостаточная. И, наконец, вы704

16. Численные методы решения краевых задач

числение с использованием ДГУ вида (16.63) дает удовлетворительные результаты и в смысле устойчивости, и в смысле точности, что подтверждает правильность проведенных теоретических исследований. Как видим, выбор ДГУ влияет как на точность вычислений, так и на устойчивость. В заключение отметим, что изложенный признак устойчивости для нестационарных разностных задач с граничными условиями может применяться в краевых задачах для систем разностных уравнений [6, с. 249, с. 396–403]. В этом случае схемы, удовлетворяющие необходимому условию Неймана, часто бывают неустойчивыми из-за неудачного выбора ДГУ или неудачной аппроксимации граничных условий. В таких ситуациях важно уметь подбирать разностные схемы, свободные от этого недостатка.

16.6. Численные методы решения задач математической физики для случая трех независимых переменных Сформулируем краевые задачи с тремя независимыми переменными x, y, t, где x, y – пространственные координаты, а t – время. Решение рассматриваемых задач в общем случае определяется в цилиндрической области (рис. 16.6). t

0

x 

y

 n

Рис. 16.6

705

Методы приближенных вычислений

16.6.1. Постановка краевых задач для двумерного волнового уравнения Дано двумерное волновое уравнение   2u  2u   2u  c 2  2  2  ,  x, y    , t   0, T  , 2 t y   x

где u  u  x, y, t  , c 2 

(16.72)

T  , T – проекция вектора натяжения на плос

кость Oxy ,  – поверхностная плотность мембраны. Уравнение (16.72) описывает малые поперечные колебания. Первая краевая задача

Дано уравнение   2u  2u   2u  c 2  2  2  ,  x, y , t   G . 2 t y   x

Требуется найти функцию u ( x, y, t )  C22,2 (G )  C10,0 (G ) , удовлетворяющую уравнению, а также начальным u  x, y, 0     x, y  ,  x, y   , u  x, y, 0  t

   x , y  ,  x, y   

(16.73)

и граничным u  x, y , t     x , y , t  ,  x, y    , 0  t  T ,

условиям. В (16.73) φ(x,y),   x, y  ,   x, y, t  – заданные функции, G

706

 x, y, t   x, y   , t   0, T  , G  G  G .

16. Численные методы решения краевых задач

Вторая краевая задача

Требуется определить функцию u ( x, y, t )  C22,2 (G )  C11,1 (G ) , удовлетворяющую волновому уравнению 2  2u  2u  2 u c    2  ,  x, y , t   G , t 2 y 2   x

начальным условиям u  x, y, 0     x, y  ,  x, y   , u  x, y, 0  t

   x, y  ,  x, y   ,

(16.74)

и граничному условию u  x, y, t  n

   x, y , t  ,  x , y    , 0  t  T .

В граничном условии задается производная в направлении внешней нормали. Третья краевая задача

Ищется функция u ( x, y, t )  C22,2 (G )  C11,1 (G ) , удовлетворяющая уравнению   2u  2u   2u  c 2  2  2  ,  x, y , t   G , 2 t y   x

начальным u  x, y, 0     x, y  ,  x, y   , u  x, y, 0  t

   x, y  ,  x, y   ,

(16.75)

и граничному

707

Методы приближенных вычислений

1

u  x, y, t  n

 1u  x, y, t   1  x, y, t  ,  x, y    , 0  t  T ,

условиям. Отметим, что 1 , 1 – заданные числа ( 12  12  0 ) или, в более общем виде, это функции от t.

16.6.2. Постановка задачи для двумерного уравнения переноса Рассматривается двумерное уравнение переноса u u u  c1  c2  f  x, y, t  ,  x, y    , t   0, T  . (16.76) t x y

Здесь u  u  x, y, t  ; c1 , c2 – скорости переноса по осям Ox и Oy соответственно, f  x, y, t  – заданная функция. С помощью этого уравнения описываются многие физические процессы. Например, в атмосфере [7], в газах (теплопроводность) и др. [1, с. 447–448]. Первая краевая задача

Требуется найти функцию u  x, y, t  , удовлетворяющую уравнению переноса u u u  c1  c2  f ,  x, y, t      0, T  , t x y

начальному u  x, y, 0     x, y  ,  x, y   ,

и граничному u  x, y , t     x, y , t  ,  x , y    , 0  t  T ,

708

(16.77)

16. Численные методы решения краевых задач

условиям. Здесь c1  c2  1 , φ(x, y),   x, y, t  – заданные функции, G     0, T  , G  G  G ,      .

16.6.3. Разностные методы решения краевых задач (двумерный случай) Для простоты изложения предполагается, что область G , где находится решение, представляет собой параллелепипед со следующими значениями характеристических параметров: длина L, ширина D и высота T (рис. 16.7). Покроем G равномерной сеткой h 

 x , y , t  x j

k

n

j

 jhx , 0  j  N1 ;

y k  k  hy , 0  k  N 2 ; t n  n  , 0  n  M  ,

где N1 , N 2 , M – целые положительные числа; hx , hy – шаги пространственной сетки по осям Ox и Oy соответственно;  – шаг по времени. Отметим, что N1hx  L ; N 2 hy  D , M   T . При построении разностных схем решения краевых задач для уравнения гиперболического типа (двумерный случай) будем опираться на ранее полученные результаты для одномерного случая. t

T

L

0

x

 y

D Рис. 16.7

709

Методы приближенных вычислений

Обобщая формулы для частных производных, полученные ранее, на двумерный случай, будем иметь: ut 

uo 

2 u nj 1,1 k  u nj ,k1 hx

uo 

, ux 

u nj 1, k  u nj 1, k 2hx

x

uˆ y 

u nj ,k1  2u nj , k  u nj ,k1

ut t  uˆ x 

u nj ,k1  u nj , k

uˆ x x  uˆ y y 

2hy

hx , uˆ x 

u nj 1,1 k  u nj 1,1 k 2hx

u nj , k  u nj , k 1

, uˆ o 

2 hy

u nj 1,1 k  2u nj ,k1  u nj 1,1 k hx2 u nj ,k11  2u nj ,k1  u nj ,k11

, uy y 

2

,

, u nj ,k1  u nj 1,1 k hx

, uy 

, uˆ y 

u nj ,k11  u nj ,k11

u nj ,k1  u nj ,k1

t

u nj 1, k  u nj , k

hy

, uo 

hx

y

hy2

u nj , k  u nj ,k1

u nj , k  u nj 1, k

, uˆ o 

, uy 

u nj , k 1  u nj , k 1

y

, ux 

x

u nj,k11  u nj ,k1 hy

, ut 

,

u nj , k 1  u nj , k hy

u nj ,k1  u nj ,k11 hy

, ux x 

(16.78)

,

u nj 1, k  2u nj , k  u nj 1, k

u nj , k 1  2u nj , k  u nj , k 1 hy2

,

hx2

,

,

.

В формулах (16.78) приведены выражения разностных производных по t и по x, y первого и второго порядка, аппроксимирующие частные производные. Если в одной из формул в (16.78) в знаменателе стоит , hx , hy , то она имеет первый порядок аппроксимации по соответствующим шагам, а если в знаменателе стоит 2 , hx2 , hy2 , 2, 2hx , 2hy , то второй порядок [1, с. 453–454]. Построим разностные схемы для первой краевой задачи (16.73) с помощью формул (16.78) (для простоты записи и исследований полагаем c 2  1 ). Имеем 710

16. Численные методы решения краевых задач

u nj ,k1  2u nj , k  u nj ,k1 2

u nj 1, k  2u nj , k  u nj 1, k hx2

u nj , k 1  2u nj , k  u nj , k 1 hy2

,

(16.79)

j  1, N1  1, k  1, N 2  1, n  1, M  1.

Запишем разностную аппроксимацию начальных и граничных условий (по аналогии с (16.30)): u 0j , k   j , k , j  0, N1 , k  0, N 2 ; u1j , k  u 0j , k 

  j,k 

0 0 0 0 0 0 c 2  u j 1, k  2u j , k  u j 1, k u j , k 1  2u j , k  u j , k 1     , (16.80) 2  hx2 hy2 

j  1, N1  1; k  1, N 2  1.

Разностная аппроксимация граничных условий имеет вид u0,n k1   nk 1 , k  0, N 2 , n  0, M  1; u nj ,01   nj 1 , j  0, N1 , n  0, M  1; u Nn 1 ,1k   nk 1 , k  0, N 2 , n  0, M  1;

(16.81)

u nj ,N12   nj 1 , j  0, N1 , n  0, M  1.

Схема (16.79) использует шаблон, изображенный на рис. 16.8 [1, с. 458].

Рис. 16.8

Разностная схема (16.79), а также начальные и граничные условия (16.80)–(16.81) имеют второй порядок аппроксимации относительно шагов сетки. 711

Методы приближенных вычислений

Данная трехслойная схема условно устойчива, т.е. шаги сетки связаны условием устойчивости [1, с. 458]:  1 1   2  2  h   x hy 

1/ 2

.

Аналогичным образом можно записать разностную аппроксимацию для краевых задач (16.74)–(16.75) [1, с. 458–459]. Рассмотрим краевую задачу первого рода для двумерного уравнения переноса [1, с. 454]: u u u    f  x, y, t  ,  x, y, t    0, L    0, D    0, T  , t x y u  x, y, 0     x, y  ,  x, y    0, L    0, D  (начальное условие), (16.82) u  0, y , t   1  y, t  , y   0, M  , t   0, T  (краевое условие), u  x, 0, t    2  x, t  , x   0, L  , t   0, T  (краевое условие),

где f  x, y, t  , ( x, y ) , 1  y, t  ,  2  x, t  – заданные функции. Построим разностную аппроксимацию для задачи (16.82). Воспользуемся формулами (16.78) и в результате построим либо явную, либо неявную разностные схемы. Приведем неявную схему для уравнения переноса: u nj ,k1  u nj , k 

u nj ,k1  u nj 1,1 k hx

u nj ,k1  u nj ,k11 hy

 f jn, k

(16.83)

j  1, N1 , k  1, N 2 , n  1, M  1.

Запишем разностную аппроксимацию для начального и граничного условий: u 0j , k   j , k , j  0, N1 , k  0, N 2 ; u0,n k1  1,n k1 , k  0, N 2 , 0  n  M  1; u

n 1 j ,0



n 1 2, j

, j  0, N1 , 0  n  M  1.

На рис. 16.9 приведен шаблон схемы (16.83)–(16.84).

712

(16.84)

16. Численные методы решения краевых задач

Рис. 16.9

Можно показать, что разностная схема (16.83), (16.84) абсолютно устойчива и имеет первый порядок аппроксимации. Алгоритм решения задачи (16.83), (16.84) можно посмотреть в [1, с. 455].

16.7. Лабораторные задания Задание. С помощью метода сеток определить решение краевой задачи для уравнения колебания струны  2u  2u   f  x, t  t 2 x 2

с начальными u  x, 0     x  , u  x, 0  t

   x

и граничными u  0, t   1  t  , u 1, t    2  t 

условиями. Решение найти в области G   x, t  0  x  1, 0  t  1 . Пространственный шаг сетки h  0,1; шаг по времени  выбрать с учетом условия устойчивости. Методом неопределенных коэффициентов построить схему с соответствующим шаблоном. Показать сходимость решения разностной задачи к решению дифференциальной [11, с. 292–293; 12, с. 264– 265; 13, с. 155–157]. 713

Методы приближенных вычислений

Вариант № 1.   x   x  x  0,5  ,   x   sin x ,

1  t   0 ,  2  t   2  t  0, 75  , f  x, t   0 .

    

Вариант № 2.  x, 2   x  x ,

  x   sin

    

1  t   0 ,  2  t   1  t , f  x, t   0 .

Вариант № 3.   x   x sin x ,

  x    x  1 , 1  t   t ,  2  t   0 , f  x, t   0 .

    

Вариант № 4.   x   1  x  sin

 x, 2

  x  x 1 ,

1  t   0 ,  2  t   t  2 , f  x, t   0 .

714

    

16. Численные методы решения краевых задач

Вариант № 5.   x   1  x  sin   x  x ,

 x, 2

    

1  t   0 ,  2  t   0 , f  x, t   0 .

Вариант № 6.   x   1  x 1  x  ,   x   1  sin x ,

1  t   1 ,  2  t   0, 25t , f  x, t   0 .

    

Вариант № 7.   x   0, 25  x  1 ,

  x   sin x , 1  t   0, 25 ,  2  t   0,5 , f  x, t   0 .

    

Вариант № 8.   x    x  0, 25  x  2  ,   x   cos x , 1  t   0,5 ,  2  t   3, 75 , f  x, t   0 .

    

715

Методы приближенных вычислений

Вариант № 9.   x   0, 2  x  1 ,   x   x sin x ,

1  t   0, 2  t ,  2  t   0, 4 , f  x, t   0 .

    

Вариант № 10.   x    x  2  x  1 ,     x   2 cos  x   , 6  1  t   2 ,  2  t   4,5  2t , f  x, t   x  t .

    

Вариант № 11.  x    x   1  x  cos   ,  2    x  x 1 ,

    

1  t   t  1 ,  2  t   0 , f  x, t   x  t .

Вариант № 12.   x   1,1x  1,1 sin x ,   x  0 ,

1  t   0 ,  2  t   0 , f  x, t   2  x  t  .

716

    

16. Численные методы решения краевых задач

Вариант № 13.   x    0,5 x  1 sin x ,   x   0,5 x ,

1  t   0 ,  2  t   0 , f  x, t   2  x  t  .

    

Вариант № 14.   x    x 2  0,5  sin x ,   x   0,3x , 1  t   0 ,  2  t   0 , f  x, t   x  t .

    

Вариант № 15.   x    0,5 x 2  0, 4  e x ,   x  0 , 1  t   0, 4 ,  2  t   0,9  e 1 , f  x, t   x 2  0,5t 2 .

    

Вариант № 16.   x   1, 2 x 2  0,8  e x ,   x   0,5 ,

1  t   0,8 ,  2  t   2  e1 , f  x, t   x 2  t 2 .

    

717

Методы приближенных вычислений

Вариант № 17.   x   1  x  1 ,   x   0,5 1  x  , 2

1  t    0,5t  1 ,  2  t    0,5t  2  , 1

1

    

f  x, t   1,5   x  t  1 . 2

Вариант № 18.   x    x  0,5  1 ,   x     x  0,5  , 2

1  t    0, 2t  0,5  ,  2  t    0, 2t  1,5  , 1

1

    

f  x, t   0,5. Вариант № 19.  x    x  

x , 0, 2 x  1 0, 2 x

 0, 2 x  1

2

    

,

1  t   0 ,  2  t    0, 2  t  1  1 , 1

f  x, t   0, 4   0, 2  x  t   1 . 2

Вариант № 20.   x   e0,5 x ,

  x   0,5e 1  t   e0,5t ,  2  t   e

718

0,5 x

0,5 t 1

, , f  x, t   1 .

    

16. Численные методы решения краевых задач

Литература

1. Киреев В.И., Пантелеев А.В. Численные методы в примерах и задачах. М. : Высшая школа, 2004. 480 с. 2. Вержбицкий В.М. Основы численных методов. М. : Высшая школа, 2002. 848 с. 3. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1977. Т. 2. 399 с. 4. Самарский А.А. Введение в теорию разностных схем. М. : Наука, 1971. 552 с. 5. Рихтмайер Р., Мортон К. Разностные методы решения краевых задач. М. : Мир, 1972. 418 с. 6. Годунов С.К., Рябенький В.С. Разностные схемы. Введение в теорию. М. : Наука, 1977. 439 с. 7. Мезингер Ф., Аракава А. Численные методы, используемые в атмосферных моделях. Л. : Гидрометеоиздат, 1979. 136 с. 8. Шокин Ю.И., Яненко Н.Н. Метод дифференциального приближения. Применение к газовой динамике. Новосибирск : Наука, 1985. 364 с. 9. Компаниец Л.А. Обзор работ по исследованию устойчивости разностных систем с дополнительными граничными условиями, аппроксимирующих уравнения гиперболического типа // Препринт ВЦ СОАН СССР. Красноярск : ВЦ СОАН СССР, 1988. № 10. 27 с. 10. Gustafsson B., Kreiss H.O., Sundström A. Stability theory of difference approximations for mixed initial-boundary value problems II // Math. Comput. 1972. Vol. 26, № 119. Р. 649–686. 11. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. М. : Наука, 1972. 367 с. 12. Сборник задач по методам вычислений / под ред. П.И. Монастырного. М. : Наука, 1994. 319 с. 13. Воробьева Г.Н., Данилова А.Н. Практикум по численным методам. М. : Высшая школа, 1979. 184 с.

719

Методы приближенных вычислений

17. МЕТОДЫ РЕШЕНИЯ ИНТЕГРАЛЬНЫХ УРАВНЕНИЙ 17.1. Основные виды линейных интегральных уравнений Интегральными уравнениями называют уравнения, содержащие неизвестную функцию под знаком определенного интеграла [1–8]. Отметим, что к решению интегральных уравнений приводят многие задачи механики сплошной среды, газовой динамики, квантовой механики и т.п. В дальнейшем ограничимся рассмотрением линейных интегральных уравнений, в которые неизвестная функция входит под знак интеграла в первой степени. На единой основе проведем классификацию линейных интегральных уравнений, следуя [1, с. 332–335]. Уравнения вида b

 K  x, s  y  s  ds  f  x  ,

(17.1)

a

b

y  x     K  x, s  y  s  ds  f  x  ,

(17.2)

a

где ядро K  x, s  и свободный член f  x  известны, а требуется определить решение y  x  при заданном числовом параметре  , называются интегральными уравнениями Фредгольма соответственно 1-го и 2-го рода. Уравнения (17.1)–(17.2) получили свое название в честь шведского математика Фредгольма Эрика Ивара (1866–1927), который в 1900 г. опубликовал законченную теорию по этим уравнениям. Если в уравнении (17.2) правая часть f  x   0 , то получается однородное уравнение 720

17. Методы решения интегральных уравнений b

y  x     K  x, s  y  s  ds  0 , a

которое допускает тривиальное решение. Определение 1. Значения параметра  , при которых уравнение b

y  x     K  x, s  y  s  ds имеет ненулевые решения, называются a

собственными значениями (собственными числами) ядра K  x, s  , а отвечающие им ненулевые решения – собственными функциями. Для уравнений вида (17.2) справедлива следующая теорема [8, с. 19]. Теорема Фредгольма: 1) если  не является собственным числом ядра K  x, s  , то соответствующее неоднородное интегральное уравнение Фредгольма (17.2) с регулярным ядром K  x, s  и непрерывной правой частью f  x  имеет единственное непрерывное решение y  x  , x   a, b  ;

2) если  – собственное значение ядра K  x, s  , то уравнение (17.2) или не имеет решений, или имеет их бесчисленное множество. Таким образом, для уравнений Фредгольма (17.2) может быть поставлена одна из задач: 1) при заданном значении  найти точное или приближенное решение неоднородного интегрального уравнения; 2) найти собственные значения и соответствующие им собственные функции однородного интегрального уравнения. Уравнение (17.1) описывает некорректную задачу [9]. Поясним сказанное для случая, когда решения нет. K  x, s  непрерывно в квадрате Пусть ядро G  ( x, s ) a  x  b, a  s  b , а y  x  принадлежит множеству аб-

солютно интегрируемых на  a, b  функций. Уравнение (17.1), в котором y  x  – оригинал, а f  x  – изображение, будет при при-

721

Методы приближенных вычислений

нятых предположениях непрерывной функцией на  a, b  . Другими словами, (17.1) отображает множество абсолютно интегрируемых функций во множество C0 непрерывных на  a, b  функций. Если множество изображений составляет лишь часть C0 , то до-

статочно взять в качестве f  x  непрерывную функцию из C0 , не принадлежащую этой части, и тогда уравнение (17.1) не будет иметь решений. В практических приложениях часто встречаются интегральные уравнения x

 K  x, s  y  s  ds  f  x  ,

(17.3)

a

x

y  x     K  x, s  y  s  ds  f  x  ,

(17.4)

a

где a  s  x  b , которые называют интегральными уравнениями Вольтерра соответственно 1-го и 2-го рода. Вольтерра Вито (1860–1940), итальянский математик, в 1896 г. опубликовал работу, в которой изучал уравнения вида (17.4). Поэтому уравнения (17.3)–(17.4) носят его имя. Уравнения Вольтерра можно свести к уравнениям Фредгольма. Для этого достаточно ввести функцию  K  x, s  , a  s  x, K *  x, s    0, s  x

и вместо уравнений (17.3), (17.4) можно рассматривать уравнения (17.1)–(17.2) с ядром K *  x, s  . Однако уравнения Вольтерра в некоторых случаях полезно изучать независимо. Заметим, что если K  x, s  и f  x  есть непрерывно дифференцируемые функции и K  x, x   0 , то уравнение Вольтерра 1-го рода приводится к уравнению Вольтерра 2-го рода. 722

17. Методы решения интегральных уравнений

В дальнейшем остановимся на методах решения интегральных уравнений, проводя рассмотрение теории на примере уравнений Фредгольма 2-го рода [1, с. 338–361; 2, с. 590–620; 3, с. 367–375; 4, с. 252–285; 5, с. 571–587; 6, с. 292–308; 7, с. 655–687].

17.2. Примеры задач, сводящихся к решению интегральных уравнений 17.2.1. Две задачи об упругой нити Изложение материала проведем, следуя работе [8, с. 9–14]. Рассмотрим упругую нить длины l, которая без сопротивления изменяет свою форму и подчиняется закону Гука, т.е. для увеличения ее длины на  l требуется сила k  l , k  const . Пусть концы нити закреплены в неподвижных точках A и B, находящихся, для определенности, в положительной части оси Ox, и точка A совпадает с началом отсчета (рис. 17.1). Ось Ox считаем горизонтальной. Пусть нить находится в покое под действием силы T0 – горизонтальной растягивающей силы, очень большой по сравнению с другими рассматриваемыми силами. Тогда положение нити будет совпадать с осью Ox. A

B

C0

x  C

 P

y Рис. 17.1

723

Методы приближенных вычислений

Пусть в точке C0 , для которой x  s , к нити приложена вертикальная сила P. Под ее действием нить примет форму ломаной ACB (см. рис. 17.1). Пусть C0C   , где  – мало по сравнению с

AC0 и C0 B . В силу малости 2 по сравнению с l можно считать, что натяжение нити осталось равным T0 и под действием силы P. Найдем проекции T0 , T0 силы натяжения T0 нити в точке C и силы P на ось Oy. Пренебрегая 2 , получим

AC  s 2  2  s , BC   2   l  s   l  s , 2

  , T0  T0 cos   T0 . s ls Так как сумма всех сил равна нулю, имеем T0  T0 cos   T0

   T0 P0. s ls Из (17.5) находим величину прогиба нити T0



P l  s  s T0 l

(17.5)

.

Если теперь через f  x  обозначить величину прогиба нити в точке с абсциссой x, то на основе предыдущих рассуждений находим, что f  x   P  K  x, s  , где

 x l  s  для AC0 : 0  x  s,   T0l K  x, s     s  l  x  для C B : s  x  l. 0  Tl 0  Нетрудно видеть, что

724

(17.6)

17. Методы решения интегральных уравнений

K  x, s   K  s , x  . Пусть, далее, на нить действует непрерывно распределенная сила с линейной плотностью p  s  так, что на участок длины s действует сила p  s  s . По принципу суперпозиции смещения, обусловленные элементарными силами p  s  s , суммируются. Тогда нить примет форму l

f  x    K  x, s  p  s  ds .

(17.7)

0

Итак, можно считать поставленными следующие задачи. Задача 1. Найти плотность распределения силы p  s  , под влиянием которой нить примет заданную форму f  x  . Получаем уравнение (17.7) – интегральное уравнение Фредгольма 1-го рода относительно p  s  . Задача 2. Пусть на нить действует меняющаяся со временем t сила с плотностью в точке s p  s  sin t ,   0 . Под ее действием нить придет в движение. Пусть при движении нити абсцисса каждой ее точки не меняется и нить совершает периодические колебания y  s  sin t . Пусть, далее,   s  есть линейная плотность массы нити в точке s. Тогда на участок нити s , кроме силы p  s  sin t s , действует еще сила инерции 2 y    s  y  s  2 sin t s . t 2 При этих предположениях уравнение (17.7) примет вид   s  s

725

Методы приближенных вычислений l

y  x  sin t   K  x, s   p  s  sin t  2   s  y  s  sin t  ds . (17.8) 0

Разделим (17.8) на sin t и обозначим l

 K  x, s  p  s  ds  F  x  , 

2

  , K  x, s    s   K1  x, s  .

0

В итоге получим уравнение l

y  x     K1  x, s  y  s  ds  F  x  .

(17.9)

0

Если функция p  s  задана, то F  x  можно вычислить и уравнение (17.9) будет интегральным уравнением Фредгольма 2-го рода относительно y  x  . Сформулированные выше две задачи об упругой нити являются типичными примерами задач, сводящихся к решению интегральных уравнений Фредгольма.

17.2.2. Связь между дифференциальными уравнениями и интегральными уравнениями Вольтерра 2-го рода Как и в работе [1, с. 335–337], считаем, что дано линейное обыкновенное дифференциальное уравнение (ОДУ) 2-го порядка u   x   p  x  u   x   q  x  u  x   f  x 

(17.10)

при начальных условиях u  a    , u  a    , a  x  b .

(17.11)

Пусть u   x   y  x  . Проинтегрируем (17.12) дважды от a до x. Получим 726

(17.12)

17. Методы решения интегральных уравнений x

du  y  t  dt  C1 , dx a x

s

a

a

u  x    ds  y  t  dt  C1  x  a   C2 , где a  t  s  x  b . В двойном интеграле изменим порядок интегрирования: x

s

x

s

x

a

a

a

t

a

 ds  y  t  dt   dt  y  t  ds    x  s  y  s  ds . Тогда x

u  x     x  s  y  s  ds  C1  x  a   C2 . a

Константы C1 и C2 определим из начальных условий (17.11): u  a     C2 ; u   a     C1 . Будем иметь x

du  y  s  ds   , dx a

(17.13)

x

u  x     x  s  y  s  ds    x  a    .

(17.14)

a

Подставим (17.12)–(17.14) в (17.10), получим x

y  x   p  x   y  s  ds  p  x    a

x

 q  x  [    x  a     x  s  y  s  ds ]  f  x  , a

или 727

Методы приближенных вычислений x

y  x    K  x, s  y  s  ds  F  x  ,

(17.15)

a

где

K  x, s   p  x   q  x  x  s  , F ( x)  f ( x)   p( x)  q( x)[  ( x  a )] .

Решая интегральное уравнение Вольтерра 2-го рода (17.15), найдем y  x  , а затем u  x  , u   x  (u   x   y  x ). Таким образом, интегральное уравнение (17.15) включает в себя всю информацию о задаче (17.10)–(17.11) и не требует никаких дополнительных условий. Пример 1. Свести решение задачи Коши для ОДУ 2-го порядка 1 u   x   u   x   u  x   6 x  x 2  x 3 , 3 u  0   0 , u   0   0 , x   0,1 , к решению интегрального уравнения Вольтерра 2-го рода. Решение. Согласно изложенной теории имеем 1 p  x   , q  x   1 , f  x   6 x  x 2  x 3 , 3   0 ,   0. Тогда поставленная задача Коши заменяется интегральным уравнением Вольтерра 2-го рода x

y  x    K  x, s  y  s  ds  f  x  .

(17.16)

0

Здесь 1 K  x, s    x  s . 3 Нетрудно проверить, что решением интегрального уравнения (17.16) является функция 728

17. Методы решения интегральных уравнений

y  x  6x . По формулам (17.12)–(17.14) находим, что u   x   6 x , u   x   3 x 2 , u  x   x 3 . Таким образом, решение интегрального уравнения Вольтерра 2-го рода дает полное представление о решении задачи Коши для ОДУ 2-го порядка. Заметим, что представленный выше пример можно использовать в качестве тестового при изучении численных методов решения интегральных уравнений.

17.3. Метод квадратур численного решения интегральных уравнений Фредгольма 17.3.1. Построение вычислительного правила и оценка погрешности численного решения Метод квадратур иначе называют методом конечных сумм [1]. Изложим его идею на примере интегрального уравнения Фредгольма 2-го рода b

y  x     K  x, s  y  s  ds  f  x  ,

(17.17)

a

предполагая достаточную гладкость ядра K  x, s  и правой части f  x .

На  a, b  зададим n точек

a  x1  x2    xn  b и будем находить в них значения yi численного решения. Для этого заменим интеграл в (17.17) по какой-либо квадратурной формуле. Будем иметь 729

Методы приближенных вычислений b

n

a

j 1

 K  x, s  y  s  ds   Aj  x  y  x j   rn  x  ,

(17.18)

где A j  x   C j K  x, x j  , C j – коэффициенты квадратурной формулы, rn  x  – остаточный член квадратурной формулы. Подставляя (17.18) в (17.17) и последовательно полагая x  xi , получим СЛАУ относительно значений y  xi  точного решения:

n

y  xi     Aj  xi  y  x j   rn  xi   f  xi  , j 1

i  1, n, Aj  xi   C j K  xi , x j  .

(17.19)

Пренебрегаем в (17.19) членами rn  xi  . Тогда для вычисления yi получаем СЛАУ n

yi    Aji y j  f i , i  1, n .

(17.20)

j 1

Определитель СЛАУ (17.20):      det  E  A  ,

где  A1  x1   A x  A 1 2     A1  xn 

A2  x1  

A2  x2  

A2  xn 

An  x1     An  x2   ,      An  xn  

в общем случае есть многочлен степени n относительно λ. Если λ не является собственным числом ядра K  x, s  , то      0 и СЛАУ (17.20) имеет единственное решение относи-

730

17. Методы решения интегральных уравнений

тельно y1 , y2 , …, yn . Его можно найти любым методом, разработанным для решения СЛАУ [10]. Например, по правилу Крамера yi 

i     

, i  1, n ,

где

 i ( ) 

1  A1,1 A2,1 … Ai 1,1 A1,2 1  A2,2 … Ai 1,2 … A1,n

… A2,n

… … … Ai 1, n

f1 f2

Ai 1,1 … Ai 1,2 …

… fn

… Ai 1, n

An ,1 An ,2

… … … 1  An ,n

.

Если      0 , то решается задача о нахождении собственных значений и собственных функций ядра K  x, s  . Пусть      0 и при численном решении СЛАУ (17.20) учитываются погрешности округлений i в каждом уравнении. Другими словами, вместо (17.20) решается СЛАУ n

yi    Aji y j  f i  i , i  1, n .

(17.21)

j 1

Отсюда находим, что yi 

1 n   ji  f j   j  , i  1, n .     j 1

(17.22)

Здесь  ji – алгебраические дополнения элемента определителя  i    с индексами i, j. Получим оценку для погрешности приближенного решения i  y  xi   yi , i  1, n . Из СЛАУ (17.19) находим значения точного решения 1 n y  xi     ji [ f j  rn  x j ] , i  1, n .     j 1

(17.23)

731

Методы приближенных вычислений

Вычтем почленно (17.22) из (17.23). Тогда y  xi   yi  i 

1 n   ji [rn  x j    j ] , i  1, n .     j 1

(17.24)

Чтобы получить оценку для i , предположим, что rn  x j   r  r  n  ,

(17.25)

 j    n, где r  max rn  x  , x a ,b 

а величина δ выбирается в соответствии с вычислительным процессом. Из (17.24) находим, что i 

1  

1    Здесь Bi 

1  

n

 j 1

ji

n

 j 1

ji

 r  x      n

j

j

n

    r    B   r  . j 1

ji

(17.26)

i

– величины вычисляемые.

Чтобы сделать вывод о малости i и сходимости процесса метода квадратур, в [4, с. 269–275] вместо величины r рассматриваются погрешности от интегрирования по выбранному правилу ядра и правой части f  x  . Подробные выкладки в силу громоздкости здесь не приводятся. С теоремой о сходимости метода квадратур можно познакомиться в [4, с. 274].

732

17. Методы решения интегральных уравнений

17.3.2. Примеры выбора квадратурных формул В методе квадратур b

n

a

j 1

 K  x, s  y  s  ds   C j K  x, x j  y j . Укажем коэффициенты C j и абсциссы x j для некоторых наиболее употребительных на практике формул. Формула средних прямоугольников. Абсциссы x j вычисляются по формулам xj  a 

2 j 1 ba h , j  1, n , h  , 2 n

а коэффициенты C j  h , j  1, n . Остаточный член rn  x 

b  a  

3

24n 2

2 F  x, s  s  ,    a, b  , s 2

F  x, s   K  x, s  y  s  . Формула трапеций. Узлы

x j  a   j  1 h , j  1, n , h 

ba . n 1

Коэффициенты C j  h , j  2, n  1 , C1  Cn 

h . 2

Погрешность rn  x   

b  a 2 2 F h  x,   , a    b , F  x, s   K  x, s  y  s  . s 2 12

Формула Симпсона. В формуле Симпсона промежуток  a, b  разбивается на 2m частей, 733

Методы приближенных вычислений

ba , n  2m  1 , x j  a   j  1 h , j  1, n . 2m Коэффициенты h

C1  Cn 

h 4h 2h , C 2  C4    C2 m  , C3  C5    C2 m 1  . 3 3 3

Погрешность формулы Симпсона 4 1  b  a   F  x,   , F  x, s   K  x, s  y  s  ,   [ a , b ] . rn  x    180  2m 4 s 4 5

Замечание 1. Применение метода квадратур к интегральному уравнению Фредгольма 1-го рода b

 K  x, s  y  s  ds  f  x  a

дает для определения значений yi в узлах xi СЛАУ n

C K j 1

j

ij

y j  f i , i  1, n .

Определитель СЛАУ имеет вид

C1 K11 C2 K12 CK C2 K 22   1 21   C1 K n1 C2 K n 2

 Cn K1n  Cn K 2 n .    Cn K nn

Замечание 2. В случае уравнений Фредгольма 2-го рода можно с помощью таблицы численного решения, полученного методом квадратур, записать приближенное аналитическое решение: n

y  x   f  x    Aj  x  y j . j 1

734

(17.27)

17. Методы решения интегральных уравнений

17.3.3. Пример получения численного решения методом квадратур Применим изложенную ранее теорию к численному решению конкретного уравнения Фредгольма 2-го рода. Пример 2. Методом трапеций при n  3 найти численное решение интегрального уравнения 1

y  x    xe xs y  s  ds  e x . 0

Решение. Имеем интегральное уравнение Фредгольма 2-го рода, где   1 , a  0 , b  1 , K  x, s   xe xs , f  x   e x . Будем решать его численно с использованием метода трапеций при n  3 . Тогда 1 1 1 1 , x1  0 , x2  , x3  1 , c1  c3  , c2  . 2 2 4 2 Для вычисления значений yi в узлах xi составляем СЛАУ (17.20), которая в данном примере имеет вид

h

  y1  1,  1 0,25 1 0,5 1 0,5  y1  y2  e y2  e y3  e , 4 8 8 1 0,1 1 0,5 1 1  1  y3  4 e y1  2 e y2  4 e y3  e , или  y1  1,  1,321 y2  0, 2061 y3  1,5237, 0,8244 y  1,6796 y  2, 4683. 2 3 

(17.28)

Нетрудно найти, что СЛАУ (17.28) имеет единственное решение относительно y2 , y3 : 735

Методы приближенных вычислений

y2  1,0008 , y3  0,9783 . Тогда приближенное аналитическое решение можно записать по формуле (17.27): x y  x   e x  1  2,0016e0,5 x  0,9783e x  . 4 Непосредственной подстановкой можно убедиться в том, что точное решение интегрального уравнения есть функция y  x   1 . Легко видеть, что численное решение в узлах сетки совпадает с точным до сотых долей.

17.4. Применение метода квадратур к численному решению интегральных уравнений Вольтерра При изучении данного вопроса достаточно остановиться на уравнениях Вольтерра 2-го рода x

y  x     K  x, s  y  s  ds  f  x  ,

(17.29)

a

так как при K  x, x   0 дифференцированием можно свести уравнение Вольтерра 1-го рода к уравнению Вольтерра 2-го рода. Интегральное уравнение Вольтерра 2-го рода, как было описано ранее, можно записать в виде уравнения Фредгольма 2-го рода с ядром  K  x, s  , s  x; K *  x, s    0, s  x и, следовательно, решать методом квадратур по описанному выше алгоритму. Однако при таком подходе может возникнуть проблема сходимости метода квадратур с увеличением n [5, с. 574–575].

736

17. Методы решения интегральных уравнений

Целесообразно задать на  a, b  n точек a  x1  x2    xn  b и рассмотреть n равенств xi

y  xi     K  xi , s  y  s  ds  f  xi  , i  1, n . (17.30) a

Интегралы в (17.30) заменим квадратурной суммой: xi

i

 K  x , s  y  s  ds   C K  x , x  y i

j 1

a

j

i

j

j

.

Тогда для определения y1 , y2 ,…, yn имеем СЛАУ i

yi    C j K ij y j  f i , i  1, n .

(17.31)

j 1

Получилась СЛАУ с нижней треугольной матрицей  y1  C1 K11 y1  f1 , y   C K y  C K y  f ,  1 21 1 2 22 2  2  2    yn    C1 K n1 y1  C2 K n 2 y2    Cn K nn yn   f n .

(17.32)

Если

1  Ci K ii  0 , i  1, n , то из (17.32) последовательно находим i 1

yi 

f i    C j K ij y j j 1

1  Ci K ii

, i  1, n .

(17.33)

Замечание 3. Интегралы в (17.30) можно заменять квадратурной формулой по всем точкам x1 , x2 ,…, xn . Тогда процесс вычислений существенно усложнится.

737

Методы приближенных вычислений

Продемонстрируем применение метода квадратур к численному решению интегрального уравнения Вольтерра 2-го рода, полученного в примере 1. Пример 3. Найти численное решение интегрального уравнения x

1  y  x      x  s  y  s  ds   x3  x 2  6 x , 0  s  x  1 , 3  0 заменяя интеграл по формуле Симпсона. 1 Решение. Имеем   1 , K  x, s    x  s , f  x    x3  x 2  6 x , 3 x   0,1 . Положим

n  2m  1  3 , т.е.

m  1 . Тогда

h

1 , 2

x1  0 ,

1 2 , C2  . Для определения значений 6 3 численного решения y1 , y2 , y3 имеем СЛАУ вида (17.32):

x2  0,5 , x3  1 , C1  C3 

 1 1  y1   y1  0, 6 3   11 2 1   y2    0,5  y1   y2  3,125, 6 3 3 3     11  21 1 1   y3    1 y1    0,5  y2   y3  6. 63  33 6 3   По формулам (17.33) последовательно получаем такие значения численного решения: y1  0 , y2  2,5568 , y3  5,9533 . Точное решение интегрального уравнения есть y  x   6 x и в узлах сетки эта функция принимает значения y  x1   0 , y  x2   3 , y  x3   6 .

738

17. Методы решения интегральных уравнений

Сравнение значений численного и точного решений в узлах сетки позволяет сделать вывод о том, что для уменьшения величины погрешности требуется увеличить число узлов сетки. Читателю предлагается убедиться в этом самостоятельно.

17.5. Интерполяционный квадратурный метод Рассмотрение проведем на примере интегрального уравнения Фредгольма 2-го рода. Интерполяционный квадратурный метод является частным случаем метода квадратур и основан на замене подынтегральной функции y  x  интерполяционным многочленом [4, с. 275–278]. Воспользуемся многочленом Лагранжа, построенным по узлам

a  x1  x2    xn  b и значениям функции y  x1  , y  x2  , …, y  xn  . Тогда n

y  x   j 1

 x  y  x j 

 x  x    x  j

 r  x ,

j

где   x    x  x1  x  x2   x  xn  ,   x j    x j  x1  x j  x2   x j  x j 1  x j  x j 1   x j  xn  , r  x 

y n    x   n!

  x  ,    a, b  .

Пусть

739

Методы приближенных вычислений

l j  x 

 x 

 x  x    x  j

.

j

Следовательно, n

y  x  l j  x y  x j   r  x .

(17.34)

j 1

Подставим (17.34) в интегральное уравнение b

y  x   f  x     K  x, s  y  s  ds a

под знак интеграла. Получим b  n  y  x   f  x     K  x, s    l j  s  y  x j   r  s   ds , a  j 1 

или

 

n y  x   f  x     L j  x  y x j  R  x  , j 1

(17.35)

где b

b

a

a

L j  x    K  x, s  l j  s  ds , R  x    K  x, s  r  s  ds .

Отбросим в (17.35) остаточный член R  x  и затем последовательно положим x равным x1 , x2 ,…, xn . Получим СЛАУ для нахождения приближенных значений yi : n

yi  f i    L ji y j , i  1, n .

(17.36)

j 1

СЛАУ (17.36) является частным случаем СЛАУ (17.20) (при Aji  L ji СЛАУ совпадают). По найденным значениям y1 , y2 , …, yn можно на основе формулы (17.35) получить приближенное ре-

шение на  a, b  : 740

17. Методы решения интегральных уравнений

n y  x  f  x    L j  x y j . j 1

(17.37)

Если y  x  является многочленом степени  n  1 , то r  x   0 . Тогда R  x   0 и из СЛАУ (17.36) будут найдены приближённые значения решения, и по формуле (17.37) в этом случае можно построить точное решение. Как доказано в [4, с. 276–278], специальным выбором узлов xi , i  1, n , можно увеличить степень точности интерполяционного метода.

17.6. Метод замены ядра уравнения на вырожденное ядро Рассмотрение классического метода замены ядра уравнения на вырожденное проведем на примере интегрального уравнения Фредгольма 2-го рода [1, с. 345–353; 2, с. 597–604; 3, с. 367–370; 4, с. 278– 285; 5, с. 576–579]: b

y  x     K  x, s  y  s  ds  f  x  . a

Определение 2. Ядро K  x, s  называется вырожденным, если оно может быть представлено в виде конечной суммы парных произведений n

K  x, s     j  x   j  s  ,

(17.38)

j 1

где  j  x  ,  j  x  – линейно независимы. Подставим (17.38) в интегральное уравнение. Получим n

y  x   f  x    Aj  j  x  ,

(17.39)

j 1

741

Методы приближенных вычислений

где b

Aj    j  s  y  s  ds

(17.40)

a

являются некоторыми постоянными коэффициентами. Для их определения составим СЛАУ, подставляя (17.39) в (17.40). Будем иметь b

n b

a

j 1 a

Ai   i  s  f  s  ds     i  s   j  s  Aj ds , или n

Ai  f i    Aj  ji , i  1, n ,

(17.41)

j 1

где b

b

a

a

fi   i  s  f  s  ds ,  ji    j  s  i  s  ds . С использованием символов Кронекера СЛАУ (17.41) можно записать в виде n

 j 1

ij

  ji  Aj  f i , i  1, n .

(17.42)

Определитель СЛАУ (17.42):

1  11  21 12 1   22      1n  2 n

  n1   n 2 .    1   nn

(17.43)

Возможны два случая. 1-й случай:      0 . Тогда, например, по формулам Крамера получаем 742

17. Методы решения интегральных уравнений n

Ai 

   f j 1

ji

j

, i  1, n .

 

(17.44)

Здесь  ji    – алгебраические дополнения соответствующих элементов ij   ji определителя     . В рассматриваемом случае интегральное уравнение Фредгольма 2-го рода имеет единственное решение, которое по формуле (17.39) представимо в виде n

n

y  x   f  x    

 ji    f j

i 1 j 1

 

i  x  .

(17.45)

Если в формулу (17.45) вместо f j подставить b

f j    j  s  f  s  ds , j  1, n , a

то после преобразований решение y  x  записывается через резольвенту R  x, s,   : b

y  x   f  x     R  x, s,   f  s  ds .

(17.46)

a

Здесь n

n

R  x, s,      i  x   j  s  i 1 j 1

 ji     

.

Таким образом, если      0 , то нахождение единственного решения y  x  интегрального уравнения Фредгольма 2-го рода с вырожденным ядром сводится к вычислению fi ,  ji и решению СЛАУ (17.42).

743

Методы приближенных вычислений

2-й случай:      0 . В этом случае решается задача поиска

собственных значений ядра K  x, s  как корней уравнения    0 (17.47) и собственных функций – нетривиальных решений однородного уравнения b

y  x     K  x, s  y  s  ds .

(17.48)

a

Пусть 1 ,  2 , …,  r ( r  n ) – корни уравнения (17.47) – соб-

ственные значения ядра K  x, s  . Тогда собственные функции ядра K  x, s  будут n

m  x    m  Ai m  i  x  , m  1, r ,

(17.49)

i 1

где Ai m  есть ненулевые решения линейной однородной системы n

 j 1

ij

  m  ji  Aj m   0 , i  1, n , m  1, r .

(17.50)

Пример 4. Решить интегральное уравнение Фредгольма 2-го рода [1, с. 347–348]: 1

y  x      x  s  y  s  ds  x 2 . 1

Решение. Имеем a  1 , b  1 , f  x   x 2 , K  x, s   x  s . Очевидно, что ядро K  x, s  – вырожденное:

K  x, s   1  x  1  s    2  x  2  s  , где

1  x   x ,  2  x   1 , 1  s   1 ;, 2  s   s . 744

17. Методы решения интегральных уравнений

Согласно изложенному выше методу замены ядра на вырожденное ядро решение интегрального уравнения представимо в виде

y  x   x 2    A1 x  A2  . (17.51) Коэффициенты A1 , A2 находятся из системы (17.42) при значении n  2 . Для ее записи вычислим f1 , f 2 ,  ji , i, j  1, 2 . Имеем 1

1

1

1

1

1

f1   1  s  f  s  ds   s 2 ds 

2 , 3

f 2   2  s  f  s  ds   s 3 ds  0 , 1

1 1

1

11   s ds  0 ,  21   ds  2 , 1

1 1

1

2 12   s 2 ds  ,  22   s ds  0 . 3 1 1 Получаем СЛАУ для определения A1 , A2 : 2   A1  2A2  3 ,    2 A  A  0. 2  3 1

(17.52)

Определитель СЛАУ (17.52): 4     1  2 . 3 Если 3 , 4 то исходное интегральное уравнение имеет единственное решение (17.51) при значениях 2 

745

Методы приближенных вычислений

2 4  3 9 A1  , A2  . 4 4 1  2 1  2 3 3 Итак, заданное интегральное уравнение имеет единственное решение y  x   x2  при  2 

6 x  4 2 3  3  4 2 

3 . 4

3 , то интегральное уравнение решений не имеет, и 4 следует находить собственные значения и собственные функции ядра K  x, s   x  s [1, с. 348–350]. Замечание 4. Можно получать приближенные решения интегрального уравнения Фредгольма 2-го рода и в случае, когда ядро K  x, s  не является вырожденным, но обладает достаточной гладкостью. Тогда ядро заменяют близким к нему вырожденным, используя один из следующих приемов [1, с. 350–353; 4, с. 280–285]: 1) разложение в степенной ряд по переменной x или s; 2) разложение в двойные ряды по переменным x, s; 3) замена ядра K  x, s  интерполяционным многочленом по s или по x. Оценка близости получаемого при этом приближенного решения к точному решению дается в теореме из [2, с. 598–600]. Замечание 5. Приближенное решение интегрального уравнения Фредгольма 2-го рода можно находить в виде суммы f  x  и линейной комбинации заранее выбранных линейно независимых функций по методу моментов [1, с. 358–361; 2, с. 604–608]. В [2] показана равносильность метода моментов методу замены ядра вырожденным ядром, строящимся специальным образом. Если  2 

746

17. Методы решения интегральных уравнений

Кроме метода моментов при решении интегральных уравнений используются методы наименьших квадратов [1, с. 356–358; 2, с. 608–611] и коллокации [1, с. 353–356; 3, с. 370–371].

17.7. Лабораторные задания Задание 1. Заменить задачу Коши для ОДУ 2-го порядка интегральным уравнением Вольтерра 2-го рода и доказать, что задача корректно поставлена. Решить полученное интегральное уравнение численно с применением метода квадратур. Показать сходимость численного решения к точному решению. Вариант № 1. u   x   u   x   2u  x   0, 4 x 5  x 4  4 x 3 , x   0,1 ; u  0   1; u   0   1; u  x   e x  0, 2 x 5 .

Вариант № 2.

1 u   x   2u   x   u  x    x 3  2 x  x  1 , x   0,1; 3 1 u  0   1; u   0   1; u  x   e  x  x 3 . 3 Вариант № 3.

1 u   x   u   x   4u  x   4 x 5  x 4  20 x 3  8, x  1, 2; 5 u 1  3; u  1  5; u  x   2  x 5 .

747

Методы приближенных вычислений

Вариант № 4.

1 u   x   u   x   4u  x   12 x  x 2  1  x 2  x 2  1, 2   4 x 5  1, x  1, 2 ; 5 u 1  3, 25; u  1  11; u  x   x 5  2 x 3  0, 25. Вариант № 5.

1 u   x   u   x   2u  x   2 x 4  4 x 3  16 x 2  18 x, x  1, 2 ; x u 1  3; u  1  10; u  x   x 4  2 x3 . Вариант № 6.

1 u   x   u   x   u  x   2e x  x  1 , x  1;1,5 ; x u 1  2,7183; u  1  5, 4366; u  x   xe x . Вариант № 7.

4 4e x u   x   2u   x   u  x   3e x  2 x 2  6 x  , x  1, 2 ; x x u 1  1  exp 1 ; u  1  exp 1  3; u  x   e x  x 3 . Вариант № 8.

1 1 u   x   u   x   2 u  x   15 x 2  9, x  1, 2 ; x x u 1  4; u  1  10; u  x   x 4  3 x 2 .

748

17. Методы решения интегральных уравнений

Вариант № 9.

u   x   2 xu   x   u  x   2 x  e x  e  x  , x   0,1 ; u  0   2; u   0   0; u  x   e x  e  x . Вариант № 10.

u   x   u   x   2u  x   2  e x  2e x  , x   0,1 ; u  0   0; u   0   2; u  x   e x  e  x . Вариант № 11.

2 u   x   u   x   xu  x   2 x 4  x3  2, x   0;0,5 ; x u  0   0; u   0   0; u  x   2 x 3  x 2 . Вариант № 12.

u   x   2u   x   u  x    x3  6 x 2  6 x  e x , x   0;1; u  0   0,5; u   0   0,5; u  x   0,5e x  x 3 . Вариант № 13.

u   x   x 2 u   x   2u  x   3x 4  2 x 3  6 x  e  x 1  x 2  , x   0;0,5; u  0   1; u   0   1; u  x   x3  e  x .

749

Методы приближенных вычислений

Вариант № 14.

u   x  

1

u   x   2u  x   6  x  1  3  2  x  1 , x   0,1 ; 3

 x  1 3 u  0   1; u   0   3; u  x    x  1 . 2

Вариант № 15.

1 u   x   2u  x   2 x5  24 x3  5 x 2  12 x  2, x  1, 2 ; x2 u 1  5; u  1  11; u  x   x 5  2 x 3  2. u   x  

Вариант № 16.

u   x   u   x   u  x   e x  sin x, x   0,1 ; u  0   2; u   0   1; u  x   e x  cos x. Задание 2. Найти приближенное решение интегральных уравнений Фредгольма 2-го рода методом квадратур (с использованием одной из обобщенных формул: средних прямоугольников, трапеций, Симпсона) и методом замены ядра уравнения на близкое ему вырожденное. Полученные результаты сравнить между собой. Вариант № 1. 1

y  x   0

750

sin  xs  s

y  s  ds  e x .

17. Методы решения интегральных уравнений

Вариант № 2. 1

y  x     e xs  1 y  s  ds  x . 0

Вариант № 3. 1

y  x     e  xs  1 y  s  ds  x 2 . 0

Вариант № 4. 2

y  x  

cos  xs  s

1

y  s  ds  x .

Вариант № 5. 

y  x    sin  xs  y  s  ds  1  x . 2

0

Вариант № 6.

y  x 

0,5

e

xs 5

y  s  ds  x  e x .

0

Вариант № 7. 1

y  x    e xs y  s  ds  1  e x . 0

751

Методы приближенных вычислений

Вариант № 8. 1

y  x    sin  0,6 xs  y  s  ds  x . 0

Вариант № 9. 0,5

y  x   2  e  xs y  s  ds  1  x 2 . 0

Вариант № 10. 1

y  x   0,5 1  s   e xs  1 y  s  ds  0

1 . x

Вариант № 11. 1

y  x    1  s   e 0,2 xs  1 y  s  ds  0

1 . x

Вариант № 12. 1

y  x    1  s   e0,4 xs  1 y  s  ds  0

1 . x

Вариант № 13. 2  xs     y  s  ds  1  x . y  x    1  xs   2  0 1

752

17. Методы решения интегральных уравнений

Вариант № 14. 2

y  x     xs  1 y  s  ds  e x . 1

Вариант № 15. 2

y  x   0,5  0,16 x 2 s 2  0, 4 xs  y  s  ds  e x . 1

Вариант № 16. 1

y  x   0,5 1  s   e0,3 xs  1 y  s  ds  x . 0

Литература 1. Демидович Б.П., Марон И.А., Шувалова Э.З. Численные методы анализа. М. : Наука, 1967. 368 с. 2. Березин И.С., Жидков Н.П. Методы вычислений. М. : ГИФМЛ, 1960. Т. 2. 620 с. 3. Иванов В.В. Методы вычислений на ЭВМ : справочное пособие. Киев : Наукова думка, 1986. 584 с. 4. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислительные методы. М. : Наука, 1977. Т. 2. 399 с. 5. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. М. : Наука, 1987. 600 с. 6. Турчак Л.И. Основы численных методов. М. : Наука, 1987. 320 с. 7. Вержбицкий В.М. Основы численных методов. М. : Высш. шк., 2002. 840 с. 8. Петровский И.Г. Лекции по теории интегральных уравнений. М. : Гостехиздат, 1951. 127 с. 9. Тихонов А.Н., Арсенин В.Я. Методы решения некорректных задач. М. : Наука, 1986. 288 с. 10. Меркулова Н.Н. Михайлов М.Д. Методы приближенных вычислений : учеб. пособие. Томск : ТГУ, 2005. 257 с.

753

Методы приближенных вычислений

СОДЕРЖАНИЕ Предисловие ………………………………………………………………………………….

3

1. Теория погрешностей ……………………………………………………………….. 1.1. Основные этапы численного решения задач на компьютере …………………………………………………………………………. 1.2. Основные источники и классификация погрешностей численного решения задач на ПЭВМ ………………………………………… 1.3. Неустранимая погрешность приближенного числа ……………… 1.4. Значащие цифры и верные значащие цифры числа ……………… 1.5. Неустранимая погрешность функции …………………………………. 1.6. Вычислительная погрешность ……………………………………………. 1.7. Варианты заданий ……………………………………………………………… Литература …………………………………………………………………………….

5

2. Решение алгебраических и трансцендентных уравнений ……….. 2.1. Общая теория алгебраических и трансцендентных уравнений ………………………………………………………………………………… 2.2. Графический метод ……………………………………………………………. 2.3. Аналитический метод отделения корней …………………………….. 2.4. Отделение действительных корней алгебраических уравнений ……………………………………………………….. 2.5. Метод половинного деления (дихотомии) …………………………… 2.6. Итерационные методы решения алгебраических и трансцендентных уравнений ………………………………………………….. 2.6.1. Метод простой итерации ………………………………………………. 2.6.2. Метод Ньютона ……………………………………………………………. 2.6.3. Другие итерационные методы ………………………………………. 2.7. Задания ……………………………………………………………………………… 2.7.1. Решение одного варианта задания ………………………………… 2.7.2. Варианты заданий ………………………………………………………… Литература …………………………………………………………………………….

7 8 10 12 15 28 31 45 46 47 50 50 51 53 55 55 58 60 64 65 68 73

3. Решение систем нелинейных уравнений ………………………………….. 74 3.1. Метод простой итерации ……………………………………………………. 76

754

Содержание

3.2. Метод Ньютона …………………………………………………………………. 81 3.3. Лабораторные задания ……………………………………………………….. 91 3.4. Варианты заданий ……………………………………………………………… 97 Литература ……………………………………………………………………………. 102 4. Точные методы решения систем линейных алгебраических уравнений ………………………………………………………….. 103 4.1. Общие замечания ………………………………………………………………. 103 4.2. Некоторые сведения о нормах векторов и матриц ……………….. 105 4.3. Классификация методов решения систем линейных алгебраических уравнений ……………………………………………………….. 110 4.4. Метод Гаусса последовательного исключения неизвестных … 115 4.5. Метод Гаусса с выбором главного элемента ……………………….. 121 4.6. Схема Жордана ………………………………………………………………….. 122 4.7. Метод прогонки …………………………………………………………………. 123 4.8. Вычисление определителей и обратных матриц ………………….. 126 4.9. Метод квадратного корня …………………………………………………… 128 4.10. Дополнение ……………………………………………………………………… 132 4.11. Решение варианта задания ………………………………………………… 133 4.12. Лабораторные задания ……………………………………………………… 138 Литература ……………………………………………………………………………. 143 5. Итерационные методы решения систем линейных алгебраических уравнений …………………………………………. 144 5.1. Классификация итерационных методов. Исследование сходимости стационарных итерационных методов …………………….. 144 5.2. Метод Якоби ………………………………………………………………………. 151 5.3. Метод Зейделя ……………………………………………………………………. 156 5.4. Метод релаксации ………………………………………………………………. 162 5.5. Единая каноническая форма записи итерационных методов …………………………………………………………………………………….. 166 5.6. Метод простой итерации в канонической форме ………………….. 169 5.7. Каноническая форма записи метода Зейделя ……………………….. 170 5.8. Метод верхней релаксации в каноническом виде …………………. 172 5.9. О сходимости стационарных итерационных методов …………… 173 5.10. О скорости сходимости неявного метода простой итерации ……………………………………………………………………… 180

755

Методы приближенных вычислений

5.11. Двухслойная итерационная схема с чебышевскими параметрами …………………………………………………… 184 5.12. Лабораторные задания ………………………………………………………. 192 Литература ……………………………………………………………………………. 198 6. Вычисление собственных значений и собственных векторов матриц ………………………………………………….. 199 6.1. Общие замечания. Сведения из алгебры ……………………………… 199 6.2. Методы решения полной проблемы ……………………………………. 205 6.2.1. Метод Данилевского …………………………………………………….. 205 6.2.2. Интерполяционный метод …………………………………………….. 213 6.2.3. Метод вращений ………………………………………………………….. 215 6.2.4. QR-алгоритм ………………………………………………………………… 217 6.2.5. Итерационные методы решения полной проблемы ……….. 219 6.3. Итерационные методы решения частичной проблемы собственных значений ……………………………………………………………… 220 6.3.1. Нахождение максимального по модулю собственного значения ………………………………………………………….. 221 6.3.2. Нахождение второго по величине собственного значения ………………………………………………………….. 226 6.3.3. Нахождение кратного наибольшего собственного значения ………………………………………………………….. 227 6.4. Лабораторные задания ……………………………………………………….. 228 6.5. Варианты заданий ……………………………………………………………… 237 Литература ……………………………………………………………………………. 240 7. Элементы теории приближения функций ……………………………………. 242 7.1. Задачи теории приближения функций и методы их решения ………………………………………………………………………………. 242 7.2. Интерполирование функций одной переменной алгебраическими многочленами ……………………………………………….. 244 7.2.1. Интерполяционный многочлен Лагранжа ……………………… 247 7.2.2. Интерполяционная схема Эйткена ………………………………… 253 7.3. Погрешность интерполяционного многочлена Лагранжа ……… 255 7.4. Многочлены Чебышева. Минимизация оценки погрешности интерполяции ………………………………………………………. 259 7.5. Интерполирование с использованием разделенных разностей ……………………………………………………………… 263

756

Содержание

7.5.1. Разделенные разности и их свойства …………………………….. 264 7.5.2. Интерполяционный многочлен Ньютона и оценка погрешности …………………………………………………………… 265 7.6. Конечно-разностные интерполяционные формулы ……………… 269 7.6.1. Конечные разности и их свойства …………………………………. 270 7.6.2. Первая и вторая интерполяционные формулы Ньютона … 272 7.7. О сходимости процесса интерполирования …………………………. 276 7.8. Интерполяционные сплайны ………………………………………………. 278 7.9. Метод наилучшего среднеквадратичного приближения ………. 287 7.10. Лабораторные задания ……………………………………………………… 290 Литература ………………………………………………………………………………. 297 8. Численное дифференцирование ……………………………………………….. 298 8.1. Некорректность задачи численного дифференцирования ……. 298 8.2. Формулы численного дифференцирования на основе теории интерполирования …………………………………………. 302 8.2.1. Безразностные формулы численного дифференцирования ……………………………………………………………… 303 8.2.2. Формулы численного дифференцирования через конечные разности ……………………………………………………….. 305 8.3. Метод неопределенных коэффициентов ……………………………… 307 8.4. Правила Рунге и Ромберга улучшения аппроксимации производных ……………………………………………………………………………. 310 8.4.1. Правило Рунге ……………………………………………………………… 310 8.4.2. Правило Ромберга ………………………………………………………… 311 8.5. Лабораторные задания ……………………………………………………….. 313 Литература ……………………………………………………………………………. 317 9. Численное интегрирование ………………………………………………………. 318 9.1. Основные подходы к построению формул численного интегрирования ……………………………………………………… 318 9.1.1. Первый подход. Интерполяционные квадратурные формулы …………………………………………………………. 320 9.1.2. Второй подход. Квадратурные формулы наилучшей степени точности ………………………………………………… 322 9.1.3. Третий подход. Квадратурные формулы с наилучшей оценкой на классе функций …………………………………………………… 323 9.2. Формулы Ньютона–Котеса ………………………………………………… 324

757

Методы приближенных вычислений

9.3. Квадратурная формула Гаусса ……………………………………………. 331 9.4. Вычисление несобственных интегралов ……………………………… 338 9.4.1. Метод усечения ……………………………………………………………. 338 9.4.2. Метод Л.В. Канторовича выделения особенностей ……….. 339 9.5. Вычисление кратных интегралов ……………………………………….. 342 9.6. Правило Рунге оценки главного члена погрешности …………… 344 9.7. Лабораторные задания ……………………………………………………….. 347 9.8. Варианты заданий ……………………………………………………………… 349 Литература ……………………………………………………………………………. 355 10. Элементы теории разностных схем ………………………………………… 356 10.1. Основные понятия теории разностных схем ……………………… 356 10.1.1. Сетки и сеточные функции …………………………………………. 360 10.1.2. Случай равномерной сетки на плоскости …………………….. 362 10.1.3. Случай сетки в двумерной области ……………………………… 362 10.1.4. Понятие сходимости разностной схемы ………………………. 366 10.1.5. Об аппроксимации дифференциальной краевой задачи разностной ……………………………………………………. 368 10.1.6. Об устойчивости разностной схемы ……………………………. 370 10.1.7. Связь между аппроксимацией, устойчивостью и сходимостью ………………………………………………………………………. 371 10.1.8. О выборе норм ……………………………………………………………. 372 10.2. О методах построения разностных схем ……………………………. 375 10.2.1. Метод неопределённых коэффициентов ……………………… 375 10.2.2. Метод полиномиальной аппроксимации ……………………… 378 10.2.3. Метод конечных разностей …………………………………………. 381 10.3. Исследование устойчивости разностных схем …………………… 390 10.3.1. Достаточный признак устойчивости разностных схем решения задачи Коши ……………………………………………………………. 390 10.3.2. Каноническая форма записи разностной схемы …………… 391 10.3.3. Спектральный признак устойчивости ………………………….. 393 10.3.4. Исследование устойчивости на конкретных примерах …. 393 10.4. Лабораторные задания ……………………………………………………… 402 Литература ……………………………………………………………………………. 408 11. Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений …………………… 409 11.1. Общие замечания …………………………………………………………….. 409

758

Содержание

11.2. Метод Пикара ………………………………………………………………….. 413 11.3. Метод разложения решения в ряд Тейлора ……………………….. 417 11.4. Метод Эйлера …………………………………………………………………… 420 11.5. Методы Рунге–Кутты ……………………………………………………….. 430 11.6. Многошаговые методы решения задачи Коши ………………….. 445 11.6.1. Экстраполяционные формулы (S = 0) ………………………….. 448 11.6.2. Интерполяционные формулы (S = 1) …………………………… 450 11.6.3. Многошаговые правила с забеганием вперед (S = 2) ……. 452 11.6.4. Метод Милна ……………………………………………………………… 454 11.6.5. Два подхода к исследованию устойчивости одношаговых и многошаговых методов …………………………………. 466 11.7. Лабораторные задания ……………………………………………………… 474 Литература ……………………………………………………………………………. 482 12. Элементы теории численного решения систем жестких уравнений …………………………………………………………………………………….. 484 12.1. Устойчивость и жёсткие уравнения ………………………………….. 485 12.2. Определение жесткой системы уравнений ………………………… 488 12.3. Специальные определения устойчивости ………………………….. 492 12.4. Пример численного решения задачи Коши ……………………….. 500 12.5. Метод Гира ………………………………………………………………………. 502 12.5.1. Метод дифференцирования назад ……………………………….. 502 12.5.2. Построение метода Гира …………………………………………….. 511 12.6. Применение теории жёстких систем уравнений при решении конкретных задач ………………………………………………….. 530 12.7. Лабораторные задания ……………………………………………………… 539 Литература ……………………………………………………………………………. 543 13. Разностные схемы для уравнений эллиптического типа ……….. 544 13.1. Типы дифференциальных уравнений в частных производных второго порядка. Постановка граничных задач …….. 544 13.2. Метод сеток ……………………………………………………………………… 551 13.2.1. Постановка задачи Дирихле для уравнения Пуассона …. 551 13.2.2. Замена дифференциальной задачи разностной …………….. 552 13.2.3. Исследование корректности постановки разностной задачи …………………………………………………………………………………… 560 13.2.4. О методах решения систем разностных уравнений …….. 562

759

Методы приближенных вычислений

13.2.5. Пример решения задачи Дирихле для уравнения Лапласа методом сеток …………………………………… 564 13.3. Лабораторные задания ……………………………………………………… 574 Литература ……………………………………………………………………………. 579 14. Метод сеток решения краевых задач для уравнений параболического типа …………………………………………………………………. 580 14.1. Метод сеток решения задачи Коши …………………………………… 580 14.1.1. Построение явной и неявной разностных схем методом неопределенных коэффициентов ……………………………… 582 14.2. Постановка краевых задач для уравнения теплопроводности ……………………………………………………………………. 588 14.2.1. Численное решение первой краевой задачи …………………. 591 14.2.2. Теория устойчивости разностных схем по начальным данным …………………………………………………………… 594 14.2.3. Исследование вопросов аппроксимации, устойчивости и сходимости разностной краевой задачи первого рода …………………………………………………………………………. 595 14.2.4. Алгоритм численного решения первой краевой задачи …………………………………………………………… 601 14.3. Метод сеток решения третьей краевой задачи для уравнения теплопроводности …………………………………………….. 603 14.3.1. Постановка задачи и выбор численного метода …………… 603 14.3.2. Оценка погрешности аппроксимации неявной разностной схемы …………………………………………………………………. 605 14.3.3. Метод прогонки для определения численного решения ……………………………………………………………… 611 14.4. Решение уравнения теплопроводности с переменными коэффициентами методом сеток ………………………. 615 14.5. Реализация алгоритма на конкретном примере …………………. 619 14.6. Лабораторные задания ……………………………………………………… 621 Литература ……………………………………………………………………………. 628 15. Метод установления ……………………………………………………………….. 630 15.1. Итерационный метод решения разностной задачи Дирихле …………………………………………………………………………………… 630 15.2. Ряды Фурье. Случай сеточных функций ……………………………. 638 15.3. Исследование сходимости явного метода установления ……. 641

760

Содержание

15.4. Численное решение задачи Дирихле для уравнения Лапласа методом установления ………………………………………………… 650 15.5. Лабораторные задания ……………………………………………………… 654 Литература ……………………………………………………………………………. 661 16. Численные методы решения краевых задач для дифференциальных уравнений в частных производных гиперболического типа ………………………………………………………………… 662 16.1. Линейные нестационарные уравнения с частными производными первого и второго порядка ………………………………… 662 16.1.1. Постановка краевых задач для уравнения второго порядка …………………………………………………………………….. 662 16.1.2. Постановка краевых задач для уравнения первого порядка ……………………………………………………………………. 666 16.2. Решение задачи Коши для волнового уравнения ……………….. 668 16.2.1. Построение разностной схемы второго порядка точности методом фиктивной точки ………………………………………. 671 16.2.2. Об исследовании устойчивости схемы «крест» по начальным данным …………………………………………………………… 672 16.2.3. Об областях зависимости дифференциального уравнения и разностной схемы ………………. 675 16.3. Численное решение третьей краевой задачи ……………………… 678 16.4. Решение варианта задания ………………………………………………… 682 16.5. О задании дополнительных граничных условий для разностных схем ………………………………………………………………… 684 16.5.1. Дополнительные граничные условия ………………………….. 689 16.5.2. Анализ нормальных мод …………………………………………….. 693 16.5.3. Решение варианта задания ………………………………………….. 697 16.6. Численные методы решения задач математической физики для случая трех независимых переменных ………………………………… 705 16.6.1. Постановка краевых задач для двумерного волнового уравнения …………………………………………………………….. 706 16.6.2. Постановка задачи для двумерного уравнения переноса ……………………………………………………………………………….. 708 16.6.3. Разностные методы решения краевых задач (двумерный случай) ………………………………………………………………. 709 16.7. Лабораторные задания ……………………………………………………… 713 Литература ……………………………………………………………………………. 719 17. Методы решения интегральных уравнений ……………………………

761

Методы приближенных вычислений

17.1. Основные виды линейных интегральных уравнений …………. 720 17.2. Примеры задач, сводящихся к решению 720 интегральных уравнений ………………………………………………………….. 17.2.1. Две задачи об упругой нити ………………………………………… 723 17.2.2. Связь между дифференциальными уравнениями 723 и интегральными уравнениями Вольтерра 2-го рода ………………. 726 17.3. Метод квадратур численного решения интегральных уравнений Фредгольма …………………………………………………………….. 729 17.3.1. Построение вычислительного правила и оценка погрешности численного решения …………………………………………. 17.3.2. Примеры выбора квадратурных формул ……………………… 729 733 17.3.3. Пример получения численного решения методом квадратур ………………………………………………………………… 735 17.4. Применение метода квадратур к численному решению интегральных уравнений Вольтерра …………………………………………. 17.5. Интерполяционный квадратурный метод ………………………….. 736 17.6. Метод замены ядра уравнения на вырожденное ядро ………… 739 17.7. Лабораторные задания ……………………………………………………… 741 Литература ……………………………………………………………………………. 747 753

762

Содержание

Учебное издание

Нина Николаевна Меркулова, Михаил Дмитриевич Михайлов МЕТОДЫ ПРИБЛИЖЕННЫХ ВЫЧИСЛЕНИЙ Учебное пособие Второе издание, переработанное и дополненное Редактор Н.А. Афанасьева Компьютерная верстка А.И. Лелоюр Дизайн обложки Л.Д. Кривцовой Подписано к печати 1.12.2014 г. Формат 60×841/16. Бумага для офисной техники. Гарнитура Times. Усл. печ. л. 44,4. Тираж 100 экз. Заказ № 447. Отпечатано на оборудовании Издательского Дома Томского государственного университета 634050, г. Томск, пр. Ленина, 36 Тел. 8+(382-2)–53-15-28 сайт: http://publish.tsu.ru; e-mail: [email protected]

763

  • Не найдя ошибок как пишется
  • Не найдены действительные сертификаты ошибка крипто про de
  • Не найдено расписание медицинского ресурса идентификатор ошибки 645
  • Не найдено подходящего маршрута для выполнения финам ошибка
  • Не найдена сборка на которую имеется ссылка ошибка 0x80073701