Московский международный институт эконометрики, информатики, финансов и права
И.Н. Мастяева О.Н. Семенихина Вычислитель...
19 downloads
161 Views
7MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Московский международный институт эконометрики, информатики, финансов и права
И.Н. Мастяева О.Н. Семенихина Вычислительная математика Учебное пособие
Москва 2004
ББК 22.19 УДК 519.6
Мастяева И.Н., Семенихина О.Н. Численные методы: Учебное пособие / Московский международный институт эконометрики, информатики, финансов и права. –М., 2004. –103 стр.
В пособии излагаются численные методы алгебры, анализа и решения дифференциальных уравнений, наиболее часто применяемые при решении практических задач на ЭВМ. Пособие предназначено для студентов MIFP всех специальностей.
Рецензенты: к.э.н. И.Н. Орлова, к. физ.-мат. н. Э.И. Применко
Мастяева И.Н., 2004 Семенихина О.Н., 2004 Московский международный институт эконометрики, информатики, финансов и права, 2004 2
СОДЕРЖАНИЕ: 1. ПОГРЕШНОСТЬ РЕЗУЛЬТАТА ЧИСЛЕННОГО РЕШЕНИЯ ЗАДАЧИ ............... 4 1.1. Источники и классификация погрешностей. ........................................................ 4 1.2. Точные и приближенные числа. Правила округления чисел.............................. 4 1.3. Математические характеристики точности приближенных чисел..................... 5 1.4. Число верных знаков приближенного числа. Связь абсолютной и относительной погрешности с числом верных знаков. Правила подсчета числа верных знаков .................................................................................................................. 7 1.5. Общая формула теории погрешностей (погрешность ........................................ 11 вычисления значения функции)................................................................................... 11 1.6. Погрешность арифметических действий ............................................................. 13 1.7. Обратная задача теории погрешностей ................................................................ 16 2. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ .................. 18 2.1. Отделение корней................................................................................................... 18 2.2. Метод половинного деления ................................................................................. 19 2.3. Метод хорд (секущих)............................................................................................ 19 2.4. Метод касательных (метод Ньютона) .................................................................. 21 2.5. Метод итераций ...................................................................................................... 23 3. ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫ................................................... 26 3.1. Метод Гаусса........................................................................................................... 26 З.2. Метод прогонки ...................................................................................................... 30 3.3. Норма вектора и норма матрицы ......................................................................... 33 3.4. Метод простой итерации ...................................................................................... 38 3.5. Частичная проблема собственных значений ...................................................... 40 4. ИНТЕРПОЛИРОВАНИЕ. ........................................................................................... 45 4.1. Интерполяционный полином, его существование и единственность. Остаточный член. .......................................................................................................... 46 4.2. Интерполяционный полином Лагранжа............................................................... 48 4.3. Разделенные разности и их свойства.................................................................... 50 4.4. Интерполяционный полином Ньютона с разделенными разностями ............... 53 4.5. Конечные разности и их свойства......................................................................... 54 4.6. Интерполяционные формулы Ньютона ............................................................... 56 4.7. Интерполяционные полиномы с центральными разностями............................. 58 4.8.Обратное интерполирование .................................................................................. 64 4.9. Численное дифференцирование............................................................................ 67 5. ИНТЕРПОЛИРОВАНИЕ С КРАТНЫМИ УЗЛАМИ И СПЛАЙНЫ ....................... 70 5.1. Разделенные разности с повторяющимися (кратными) узлами......................... 71 5.2. Интерполяционный полином Эрмита .................................................................. 73 5.3. Интерполирование сплайнами .............................................................................. 76 6. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ........................................................................... 81 6.1. Формула прямоугольников..................................................................................... 83 6.2. Формула трапеций.................................................................................................. 84 6.3. Формула Симпсона................................................................................................. 86 6.4. Правило Рунге практической оценки погрешности квадратурных формул. Уточнение приближенного значения интеграла по Ричардсону .............................. 88 7. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ.. 92 7.1. Метод Рунге-Кутта ................................................................................................. 93 7.2. Разностный метод решения краевой задачи ........................................................ 99 Список литературы.......................................................................................................... 103
3
1. ПОГРЕШНОСТЬ РЕЗУЛЬТАТА ЧИСЛЕННОГО РЕШЕНИЯ ЗАДАЧИ 1.1. Источники и классификация погрешностей Погрешности решения задач обусловливаются следующими причинами: 1. Математическое описание задач (математическая модель) большей частью является неточным; 2. Методы решения задач (например, дифференциального уравнения) не являются точными. Во многих случаях получение точного решения требует выполнения неограниченного количества шагов. Обрыв бесконечного процесса приводит к получению приближенного решения; 3. Исходные данные для решения задач, как правило, получаются из эксперимента, а каждый эксперимент может дать результат с ограниченной точностью; 4. При вводе исходных данных в машину, при выполнении арифметических операций, при выводе информации производятся округления; 5. Погрешности приближенных чисел (погрешности исходных данных и погрешности округления) в процессе решения задачи будут последовательно переходить (чаще всего в увеличенном размере) в результаты вычислений и порождать новые погрешности. В соответствии с указанными источниками погрешностей можно осуществить классификацию последних: А) Неустранимые погрешности: 1) математического описания задачи [1]; 2) исходных данных [3]; Б) погрешности метода [2]; В) вычислительные погрешности [4,5]. 1.2.
Точные и приближенные числа. Правила округления чисел
В повседневной практической деятельности, а также при решении той или иной задачи используются числа двух видов: точные и приближенные. Например, число 3 является точным, если речь идет о числе сторон треугольника. Если же число 3 – длина стороны треугольника или оно используется вместо числа π в вычислениях, то оно будет числом приближенным. Определение 1. Приближенным числом а называется число, незначительно отличающееся от точного числа А и заменяющее его в вычислениях. Приближенные числа обычно получаются в результате либо измерений, либо счета, либо выполнения различных математических 4
операций (округления, деления, извлечения корня, вычисления синуса, логарифма и т.д.). При работе с приближенными числами вычислитель должен уметь решать следующие задачи: 1. давать математические характеристики точности приближенных чисел; 2. зная степень точности исходных данных, оценивать степень точности результата (прямая задача теории погрешностей); 3. выбирать исходные данные с той точностью, которая обеспечит заданную точность результата (обратная задача теории погрешностей); 4. оптимальным образом строить вычислительный процесс, чтобы не производить расчетов, не влияющих на точные цифры результата. Как уже говорилось, одним из источников получения приближенных чисел является округление. Сформулируем правила округления: 1. если отбрасываемые при округлении цифры составляют число, большее половины единицы последнего оставляемого разряда, то последняя оставляемая цифра увеличивается на единицу; 2. если отбрасываемые при округлении цифры составляют число, меньшее половины единицы последнего оставляемого разряда, то оставляемые цифры остаются без изменения; 3. при округлении, когда отбрасываемые цифры составляют число, равное половине единицы последнего оставляемого разряда, то последняя оставляемая цифра увеличивается на единицу, если она нечетная, и остается без изменения, если она четная (правило четной цифры). Пример 1. Округлить следующие числа: А1 = 271,5001 до целых, А2 = 271,15 до десятых, А3 = 271,25 до десятых, А4 = 0,15497 до сотых. Решение. Так как при округлении числа А1 до целых отбрасываемые цифры (5001) составляют число 0,5001, большее половины от единицы (последнего оставляемого разряда), последняя оставляемая цифра увеличивается на единицу (пункт 1). Поэтому после округления А1 получаем число а1 =272. При округлении чисел А2 и А3 по правилу четной цифры (пункт 3) получаем а2 = 271,2; а3 = 271,2. При округлении числа А4 (пункт 2) получаем а4 =0,15. 1.3.
Математические характеристики точности приближенных чисел 5
Определение 2. Абсолютной погрешностью приближенного числа а назовем величину ∆а , про которую известно, что А − а ≤ ∆а . (1.1) Таким образом, точное число заключено в границах а − ∆а ≤ А ≤ а + ∆а (1.2) или сокращенно А = а ± ∆а . (1.3) Пример 2. Приближенные числа а1 = 2 ,87; а 2 = 300; а 3 = 3 ⋅ 10 2 получены округлением, точные значения чисел неизвестны. Что можно сказать об абсолютной погрешности данных приближенных чисел? Решение. Пользуясь правилами округления чисел, можно сказать, что абсолютные погрешности приближенных чисел не превосходят половины единицы последнего разряда, т.е. А1 − а1 ≤ 0,005 = ∆а1 , А2 − а2 ≤ 0,5 = ∆а2 , А3 − а3 ≤ 50 = ∆а3 .
Кроме того, можно записать: А1 = 2,87 ± 0,005, А2 = 300 ± 0,5, А3 = (3 ± 0,5) ⋅ 102 .
Пример 3. Округлить числа π = 3,14159265…и е = 2,71828182…до сотых и определить абсолютную погрешность полученных приближенных чисел. Решение. В силу правил округления имеем а1 = 3,14; а2 = 2,72. По определению абсолютной погрешности π − a1 = 3,14159... − 3,14 = 0,00159... < 0,0016 = ∆a1 , e − a2 = 2,71828... − 2,72 = 0,00171... < 0,0018 = ∆a2 .
Замечание 1. Абсолютную погрешность принято записывать в виде числа, содержащего не более одной или двух цифр, отличных от нуля (двух значащих цифр). Замечание 2. В силу определения погрешности абсолютную погрешность округляют до одной или двух значащих цифр только в большую сторону (не придерживаясь сформулированных выше правил округления чисел). В примере 3 в качестве абсолютной погрешности чисел а1 и а2 можно взять значения: ∆а1 = 0,0016 либо ∆а1 = 0,002 . ∆а2 = 0,0018 либо ∆а2 = 0,002 .
Абсолютная погрешность отражает лишь количественную сторону погрешности, но не качественную, т.е. не показывает, хорошо или плохо проведено измерение или вычисление. 6
Пример 4. при измерении толщины и длины крышки стола были получены результаты: l1 = 3 см ± 1 см; l 2 = 113 см ± 1 см. Определить, в каком случае измерение было сделано более качественно. Решение. Абсолютная погрешность измерения для l1 и l2 одинакова и равна ∆l1 = ∆l 2 = 1 см . Однако очевидно, что измерение l2 было проведено более качественно, чем l1 . Для того, чтобы определить качество измерений и вычислений, необходимо выяснить, какую долю составляет абсолютная погрешность от определяемой величины. В связи с этим вводится понятие относительной погрешности. Определение 3. Относительной погрешностью δа приближенного числа а называется отношение абсолютной погрешности ∆а к абсолютной величине приближенного числа а: ∆а δа = ;а ≠ 0 (1.4) а В примере 4 относительные погрешности измерения толщины и длины соответственно равны ∆l1 1 см = δl1 = = 0,34 или 34% , l1 3 см
∆l2 1 см = δl2 = = 0,0089 или 0,9% . l2 113 см
Следовательно, измерение длины l2 было произведено намного качественнее. Замечание 3. Относительная погрешность представляет собой безразмерную величину. При вычислении относительную погрешность округляют в большую сторону и записывают в виде числа, содержащего одну-две значащие цифры. 1.4. Число верных знаков приближенного числа. Связь абсолютной и относительной погрешности с числом верных знаков. Правила подсчета числа верных знаков
Всякое положительное десятичное число а может быть единственным образом представлено в виде конечной или бесконечной десятичной дроби: а = α1 ⋅ 10 т + α 2 ⋅ 10 т−1 + K + α п ⋅ 10 т− п+1 + K
n
или а = ∑ α i ⋅ 10 m−i +1
(1.5) (1.6)
i =1
7
где α i - десятичные цифры ( α i = 0,1,2 ,K ,9 ), причем α 1 ≠ 0 , т – некоторое число (старший разряд числа а). Например, в десятичной системе счисления:
28,0496 = 2 ⋅ 101 + 8 ⋅ 10 0 + 0 ,10 −1 + 4 ⋅ 10 − 2 + 9 ⋅ 10 −3 + 6 ⋅ 10 − 4 ; 7 ,54 = 7 ⋅ 10 0 + 5 ⋅ 10 −1 + 4 ⋅ 10 − 2 ; 0 ,006783 = 6 ⋅ 10 −3 + 7 ⋅ 10 − 4 + 8 ⋅ 10 −5 + 3 ⋅ 10 − 6 . Определение 4. Значащими цифрами числа а называют все цифры в его записи (1.5) начиная с первой слева, отличной от нуля. Например, приводимые ниже числа имеют следующее количество значащих цифр: 5423,47 6 значащих цифр, 0,0000605 3 значащие цифры, 0,060500 5 значащих цифр. Как видно из приведенных примеров, цифра 0 имеет особое значение при определении числа значащих цифр. Например, в числе 0,00710300 первые три нуля не являются значащими цифрами и служат только для установления старшего десятичного разряда числа. Остальные три являются значащими цифрами, так как первый из них находится между значащими цифрами, а второй и третий, как отражено в записи, указывают, что в приближенном числе сохранены десятичные разряда 10-7 и 10-8. Если же в данном числе 0,00710300 последние две цифры не являются значащими цифрами, то это число лучше записать в виде 0,007103. Числа 0,00710300 и 0,007103 не равноценны, так как первое из них имеет 6 значащих цифр, а второе – только 4 значащих цифры. Цифра 0, стоящая в конце числа, может иметь двоякий смысл, как это видно из следующих утверждений: а) 1 кг = 1000 г; б) население США по одной из переписей составляло 195530000 человек В первом случае имеем точное соотношение, поэтому все нули здесь – значащие цифры. Во втором случае нули стоят вместо неизвестных цифр, и число имеет только 5 значащих цифр. Для того чтобы избежать недоразумения, никогда не следует писать нули вместо неизвестных цифр, а лучше применять такую форму записи: 19553 ⋅ 10 4 или 1,9553 ⋅ 10 8 Пример 5. Пусть в результате измерения получено число, имеющее две значащие цифры, l = 72 мм. Если этот результат, не измеряя отрезок с большей точностью, выразить в метрах, километрах или микронах и написать, что l =0,072 м, или l =0,000072 км, или l =72000 мкм, то нули ни в первом, ни во втором, ни в третьем случаях не будут значащими. В дальнейшем условимся различать такие числа, как 7,2; 7,20; 7,200. Все они выражают одно и то же числовое значение некоторой величины, но определены с разным количеством значащих цифр. 8
Точность приближенного числа зависит не от количества значащих цифр, а от количества верных значащих цифр. Различают значащие цифры верные в узком и широком смыслах. Определение 5. Цифры α 1 , α 2 ,K , α n приближенного числа а называют верными в узком смысле, если абсолютная погрешность ∆а приближенного числа а не превосходит половины единицы (т-п+1) – го разряда, которому принадлежит цифра α п , т.е. если ∆a ≤ 0.5 ⋅ 10 m− n+1 . (1.7) Пример 6. Оценить абсолютную погрешность приближенного числа а = 4,483, если известно, что оно имеет 3 верных знака в узком смысле. Решение. По определению 5
∆a ≤ 0.5 ⋅ 10 m− n+1 . В нашем случае старший разряд числа равен 100, т.е. т = 0, а п = 3. Поэтому получаем
∆а ≤ 0 ,5 ⋅ 10 0−3+1 = 0 ,5 ⋅ 10 − 2 = 0 ,005 . В математических таблицах все числа определены до верных значащих цифр в узком смысле. Так, например, в четырехзначных таблицах Брадиса В.М. гарантировано, что абсолютная погрешность квадратных корней не превосходит 0,5*10-3 (так как там приведены квадратные корни чисел от 1 до 100). В некоторых случаях, например при получении числа путем измерения, удобнее говорить о числе верных знаков в широком смысле. Определение 6. Цифры α1 , α 2 ,K , α n приближенного числа а называют верными в широком смысле, если абсолютная погрешность ∆а приближенного числа а не превосходит единицы (т-п+1) – го разряда, которому принадлежит цифра α п , т.е. если
∆a ≤ 10 m− n+1 . (1.8) Например, если число а = 4,483 имеет п = 3 верных знака в широком смысле, то его абсолютная погрешность не превосходит
∆а ≤ 1 ⋅ 10 0−3+1 = 1 ⋅ 10 − 2 = 0 ,01 или ∆а ≤ 0 ,01 . Определения 5 и 6 можно обобщить. Определение 7. Цифры α1 , α 2 ,K , α n приближенного числа а называются верными в смысле ω, если абсолютная погрешность числа а
не превосходит величины ω ⋅ 10 m− n+1 , т.е. ∆a ≤ ω ⋅ 10 m− n+1 . (1.9) Определение числа верных значащих цифр позволяет решать и обратную задачу, т.е. определять, какие знаки в приближенном числе верные, а какие нет, если известна его абсолютная погрешность. Пример 7. Определить, какие значащие цифры приближенного числа а = 2,4483 будут верными в узком (широком) смысле, если его абсолютная погрешность равна ∆а = 0,008 . 9
Решение. Следуя определению числа верных значащих цифр, для того чтобы α1 , α 2 ,K , α n были верными значащими цифрами числа а, необходимо потребовать выполнения неравенства: 1 ∆a ≤ ω ⋅ 10 m− n+1 , где ω = (1 ) , 2 которое в нашем примере имеет вид 0 ,008 ≤ ω ⋅ 10 0− п+1 = ω ⋅ 101− п . 1 Решая неравенство при ω = , получим 2 0,008 ≤ 0,5 ⋅ 10 − п +1 ,
10 − п +1 ≥ 0,016, п ≤ 2;
а при ω = 1 получим
0 ,008 ≤ 10 − п+1 , т.е. п ≤ 3 . Таким образом, у числа а = 2,4483 три верные цифры в широком смысле и две – в узком. Остальные цифры приближенного числа 2,4483 не верны. Приведенный способ определения числа верных значащих цифр по известной абсолютной погрешности, связанный с решением неравенства, можно заменить более простым правилом: число верных знаков в приближенном числе отсчитывается, начиная с первой значащей цифры числа до первой значащей цифры его абсолютной погрешности. Пример 8. Определить количество верных значащих цифр в узком и широком смысле для числа а = 0,0076539, если ∆а = 0,000037 . Решение. Напишем абсолютную погрешность над числом ∆а = 0 ,0000 37 а = 0 ,0076 539 Очевидно, что все значащие цифры, стоящие слева перед вертикальной чертой, проведенной перед первой значащей цифрой погрешности, будут всегда верными в широком смысле, так как число, стоящее за вертикальной чертой (в погрешности), всегда меньше единицы разряда, стоящего слева от черты, в данном случае 0,000037 1. ξ a0 α − = α −1 α −1 α −1 a 0 n
Согласно (2.4)
A ≥ 0 и Pn (α ) > 0 , α −1− a 0 что противоречит предположению о том, что α - корень уравнения (2.2). 2.2. Метод половинного деления
Пусть функция f(x) непрерывна на отрезке [a,b] и имеет на его концах разные по знаку значения. Задача состоит в том, чтобы вычислить корень уравнения (2.1.), принадлежащий отрезку [a,b] с заданной степенью точности ε , т.е. найти такое приближенное значение корня Xn, ( п - номер итерации), что ξ − x n ≤ ∆x n ≤ ε . (2.5) В методе половинного деления за приближенное значение корня принимается середина отрезка a+b x1 = . 2 При этом очевидно, что b−a ξ − x1 ≤ = ∆x1 . 2 Затем определяется знак f ( x1 ) и для дальнейшего деления пополам выбирается тот из двух отрезков [ a , x1 ] или [ x1 , b ] , на концах которого функция f(x) имеет разные по знаку значения. Расчет продолжается до тех пор, пока не выполнится условие (2.5) либо условие f ( xn − ε ) ⋅ f ( xn + ε ) < 0 . (2.6) 2.3. Метод хорд (секущих)
Предполагая опять, что f(x) непрерывна на отрезке [a,b] и имеет разные знаки на его концах, получим формулы для приближенного вычисления корня уравнения (2.1), учитывающие не только знаки f(x), но и ее значения. Для этого соединим точки A( a ; f ( a )) и B( b; f ( b )) хордой АВ (рис. 2.1). Точку пересечения х1 этой хорды с осью абсцисс примем за приближенное значение корня.
19
Рис.2.1. Из подобия треугольников АВС и x1 BF , АВС и Ax1a следуют соотношения f (a ) − f (b) f (a ) − f (b) b−a b−a ; = = , b − x1 − f (b) x1 − a f(a) откуда получим соответственно две формулы метода хорд для х1: f (b) x1 = b − ( b − a ); (2.7) f (b) − f (a ) f(a) x1 = a − ( b − a ). (2.8) f (b) − f (a ) Выбрав одну из формул, (2.7) или (2.8), вычислим х1, определим знак f ( x1 ) и, как в методе половинного деления, для дальнейших вычислений выберем тот из отрезков [ a , x1 ] или [ x1 , b ] , на концах которого функция f ( x ) имеет разные по знаку значения. Оценкой абсолютной погрешности приближенного значения х1 здесь может служить величина ∆x1 = max(b − x1 , x1 − a ) ,
Получим еще одну оценку абсолютной погрешности ∆x1 при дополнительном предположении, что на отрезке [a, b] f(x) дифференцируема и f ' ( x) ≥ m1 > 0. f ( x1 ) = f (ξ ) − f ( x1 ) = f ' (α ) ξ − x1 ,
где α - точка, расположенная между корнем ξ и х1. Отсюда f ( x1 ) f ( x1 ) ξ − x1 = ≤ = ∆x1 . (2.9) f'(α ) m1 Если уравнение (2.1) имеет на отрезке [a, b] несколько корней, то метод хорд, как и метод половинного деления, вычислит с точностью до 20
ε
один из них. Если же функция f(x) имеет на отрезке [a, b] непрерывную первую и вторую производные, сохраняющие свои знаки, то можно показать [5], что последовательность приближенных значений метода хорд, построенная по формуле f ( xn ) ( c − xn ) , (2.10) x n +1 = x n − f ( c ) − f ( xn ) где с - один из концов отрезка [a, b], удовлетворяющий условию f (c )⋅ f'' (c ) > 0, а x0 - противоположный конец отрезка, сходится к единственному на этом отрезке корню уравнения (2.1) монотонно. 2.4. Метод касательных (метод Ньютона)
Пусть искомый корень х = ξ уравнения (2.1) принадлежит отрезку [a, b], x 0 ∈ [ a , b ] . Представим f(ξ) с помощью разложения функции f(x) в ряд Тейлора в окрестности точки x0 f'' (α ) ( ξ − x 0 ) 2 , (2.11) 0 ≡ f ( ξ ) = f ( x 0 ) + f ' ( x 0 )( ξ − x 0 ) + 2 где α - точка, находящаяся между точками ξ и x1. Пренебрегая в (2.11) остаточным членом, найдем приближенное значение x1 корня ξ: f ( x0 ) x1 = x 0 − . (2.12) f ' ( x0 ) Подставив в правую часть (2.12) вместо x0 полученное значение x1, получим x2 и т.д. Докажем, что последовательность f ( xn ) x n +1 = x n − (2.13) f ' ( xn ) монотонно сходится к единственному на отрезке корню ξ уравнения (2.1), если: 1) f ( a ) ⋅ f ( b ) < 0 ; 2) f ' ( x ), f ' ' ( x ) непрерывны, отличны от нуля и сохраняют свои знаки на [a, b]; 3) начальное приближение x0 удовлетворяет условию: f ( x 0 ) ⋅ f ' ' ( x 0 ) > 0 . Существование и единственность корня следуют из условий I и 2. Докажем сходимость последовательности (2.13) для случая, когда (рис. 2.2) f ( a ) < 0, f ( b ) > 0, f ' ( x ) > 0, f ' ' ( x ) > 0 . В остальных случаях доказательство ведется аналогичным образом.
21
f (x )
a
ξ
0
x3 x2
x 1 b =X0
x
Рис. 2.2. За начальное приближение удобно взять один из концов отрезка [a, b],. В данном случае x 0 = b , так как f ( b ) ⋅ f ' ' ( b ) > 0 . Методом индукции докажем, что последовательность x n , построенная по формуле (2.13), ограничена снизу точным корнем ξ .Действительно, x 0 = b > ξ . Допустим, что все приближения x j > ξ , j = 1,2 ,K , n и докажем, что x n +1 > ξ . Разложим функцию f(x) в ряд Тейлора в окрестности точки x n : f'' (α ) f ( x ) = f ( x n ) + f ' ( x n )( x − x n ) + ( x − xn )2 , (2.14) 2 где точка α расположена между x и x n . Подставим в (2.14) x = ξ f'' (α ) ( ξ − xn )2 . 0 ≡ f ( ξ ) = f ( x n ) + f ' ( x n )( ξ − x n ) + 2 Поскольку f ' ' ( x ) > 0 на [a, b], f ( x n ) + f ' ( x n )( ξ − x n ) < 0 , откуда f ( xn ) ξ < xn − = x n +1 , f ' ( xn ) т.е. ограниченность снизу последовательности x n доказана. Отсюда f ( x n ) > 0 , n = 1,2 ,K т.е. x n+1 > x n – последовательность x n , монотонно убывает и, значит, имеет предел: lim x n = A . n→∞
Перейдем к пределу при n → ∞ в равенстве (2.13) f ( A) A= A− , f'( A) f ( A ) = 0 , т.е. A = ξ Абсолютную погрешность приближения x n , полученного методом касательных, можно оценить формулой (2.9). Преобразуем эту оценку с помощью (2.13). Представим f(xn)разложением в ряд Тейлора в окрестности точки x n−1 : 22
f ( x n ) = f ( x n−1 ) + f ' ( x n−1 )( x n − x n−1 ) + где α - точка, расположенная между x n−1 и Согласно (2.13) f ( x n−1 ) или f ( x n−1 ) + x n = x n−1 − f ' ( x n−1 ) откуда f'' (α ) f ( x n −1 ) = ( xn 2 Обозначим M 2 = max f ' ' ( x ) .
f'' (α ) ( x n − x n−1 ) 2 , 2
xn . f ' ( x n−1 )( x n − x n−1 ) = 0 , − x n −1 ) 2 .
[ a ,b ]
Получим следующую оценку абсолютной погрешности величины
xn : f ( xn )
M2 ( x n − x n −1 ) 2 = ∆x n . m1 2m1 На свойстве монотонности последовательностей метода хорд (2.10) и метода касательных (2.13) основан комбинированный метод, заключающийся в одновременном использовании этих двух методов: ξ − xn ≤
x n +1 = x n −
≤
f ( xn ) f ( x n )( x n +1 − x n ) ; ; x n+1 = x n − f ' ( xn ) f ( x n+1 ) − f ( x n )
x n+1 + x n+1 x n +1 = ; ∆x n+1 = 2 Если в формуле (2.13) положить f ' ( xn ) ≈
x n +1 − x n+1 2
; n = 0 ,1,2 ,K
f ( xn ) − f ( xn−1 ) , xn − xn−1
то формула (2.13) примем вид
f ( xn ) ( x n − x n −1 ) f ( x n ) − f ( x n−1 ) метода касательных носит
x n +1 = x n − Эта модификация двухшагового метода хорд.
название
2.5. Метод итераций
Преобразуем уравнение (2.1) к эквивалентному виду x = ϕ( x ) . (2.15) Выбрав в качестве начального приближения точку x 0 ∈ [ a , b ] , построим последовательность x n +1 = ϕ( x n ), n = 0 ,1,2 ,K (2.16)
23
Докажем, что эта последовательность при любом x 0 ∈ [ a , b ] сходится к единственному на отрезке [a, b] корню уравнения (2.1), если: 1) функция ϕ( x ) определена и дифференцируема на отрезке [a, b]; 2) все ее значения принадлежат этому отрезку при x ∈ [ a , b ] ; 3) существует такое число 0 0 , в противном случае рассматривается функция – f(x)). Умножив уравнение (2.1) на число λ и вычтя результат из тождества x ≡ x , получим x = x − λ f ( x ) ≡ ϕ( x ) . Выберем λ так, чтобы ϕ' ( x ) = 1 − λ f ' ( x ) < 1 . Отсюда − 1 < 1 − λf ' ( x ) < 1 . Из правого неравенства получим λ > 0 , а из левого 2 λ< , x ∈ [ a ,b ] . f'( x) 2 Обычно полагают λ = . Тогда M 1 + m1 M − m1 ϕ' ( x ) ≤ 1 = q < 1. M 1 + m1
25
3. ЧИСЛЕННЫЕ МЕТОДЫ ЛИНЕЙНОЙ АЛГЕБРЫ
К численным методам линейной алгебры относятся численные методы решения систем линейных алгебраических уравнений, обращения матриц, вычисления определителей и нахождения собственных векторов матриц. Методы решения систем линейных алгебраических уравнений делятся на две группы. К первой группе принадлежат прямые (или точные) методы, которые позволяют найти точное решение системы за конечное число арифметических действий. Отметим, что вследствие погрешностей округления при решении задач на ЭВМ прямые методы на самом деле не приводят к точному решению и назвать их точными можно, лишь отвлекаясь от вычислительной погрешности. Наиболее распространенными среди прямых методов являются метод Гаусса и метод прогонки. Вторую группу составляют итерационные методы (их называют также методами последовательных приближений), которые состоят в том,
что
точное
решение
*
x
последовательных приближений x
системы (п)
находится
как
предел
, где п - номер итерации.
3.1. Метод Гаусса
Рассмотрим систему линейных алгебраических уравнений Ax = b . (3.1) Будем предполагать, что определитель матрицы А отличен от нуля. Метод Гаусса основан на приведении матрицы А к треугольному виду. Это достигается последовательным исключением неизвестных из уравнений системы. Сначала с помощью первого уравнения исключается x1 из всех последующих уравнений системы. Затем с помощью второго уравнения исключается x2 из третьего и всех последующих уравнений. Этот процесс, называемый прямым ходом метода Гаусса, продолжается до тех пор, пока в левой части последнего (п-го) уравнения не останется лишь один член с неизвестным xп , т.е. матрица системы будет приведена к треугольному виду. Обратный ход метода Гаусса состоит в последовательном вычислении искомых неизвестных, т.е. решая последнее уравнение, находим значение xп; далее, используя это значение, из предыдущего уравнения вычисляем xп-1 и т.д. Последним найдем x1 из первого уравнения. При реализации на ЭВМ прямого хода метода Гаусса нет необходимости действовать с переменными x1 , x 2 ,K , x n . Достаточно указать алгоритм, согласно которому исходная матрица преобразуется к треугольному виду, и указать соответствующее преобразование правых 26
частей системы. Пусть осуществлены первые (к-1) шагов, т.е. уже исключены переменные x1 , x 2 ,K , x к −1 . Тогда имеем систему a11 x1 + a12 x 2 + K + a1k x k + K + a1n x n = b1 ; (1)
(1)
(1)
(1)
a 22 x 2 + K + a 2k x k + K + a 2n x n = b2 ; L L L L L L L L ( k −2 )
( k −2 )
( k −2 )
( k −2 )
a k −1,k −1 x k −1 + a k −1,k x k + K + a k −1,n x n = bk −1 L L L L L L L L ( k −1 )
( k −1 )
(3.2)
;
( k −1 )
x n = bn , где a11 , a12 ,K , a1n - коэффициенты первой строки матрицы А; a nk
(m)
a ij
x k + K + a nn
- коэффициент i -го уравнения при j переменной, полученный в
результате преобразований системы на т –м шаге. Предположим, что в ( k −1 )
к - ом уравнении коэффициент a kk
≠ 0 . Умножим к -ое уравнение
( k −1 )
системы на
a ik
( k −1 ) a kk
и вычтем полученное соотношение из i -го
уравнения системы (3.2), где i = k + 1, k + 2 ,K , n . В результате последняя группа уравнений системы (3.2) примет вид: ( k −1 )
a kk
( k −1 )
( k −1 )
x k + a k ,k +1 x k +1 + K + a kn (k )
(k )
( k −1 )
x n = bk
;
(k )
a k +1,k +1 x k +1 + K + a k +1,n x n = bk +1 ; L L L L L L (k )
(k )
(k )
a n ,k +1 x k +1 + K + a nn x n = bn
,
где aij( k ) = aij( k −1) − (k ) i
b
( k −1) i
=b
aik( k −1) ( k −1) a kj ; a kk( k −1)
a ( k −1) − ik( k −1) bk( k −1) ; i = k + 1, K , n . a kk
( k −1 )
(3.3) ( k −1 )
, j = k , k + 1,K , n и правая часть bk при Коэффициенты a kj каждом k = 1,2 ,K , n − 1 хранятся в памяти ЭВМ и используются при осуществлении обратного хода. Обратный ход, как уже указывалось, заключается в вычислении неизвестных x n , x n−1 ,K , x1 . Последнее уравнение будет иметь вид ( n −1 )
a nn
27
( n −1 )
x n = bn
.
Откуда
( n −1 )
xn =
bn
( n −1 ) a nn
.
Общая формула обратного хода для вычисления переменной xк, имеет вид ( k −1 )
bk xk =
n
( k −1 )
− ∑
j = k +1 ( k −1 ) a kk
a kj
xj , k = n − 1,K ,1 .
Основным ограничением метода является предположение о том, ( k −1 )
что все элементы a kk нуля.
Число
( k −1 )
a kk
, на которые производится деление, отличны от называется
ведущим
(или
направляющим)
элементом на к - м шаге исключения. Даже если какой-то ведущий элемент не равен нулю, а просто близок к нему, в процессе вычислений может происходить сильное накопление погрешностей. Избежать указанных трудностей позволяет метод Гаусса с выбором главного элемента. Основная идея метода состоит в том, чтобы на очередном шаге исключать не следующую по номеру переменную, а ту, коэффициент при которой является наибольшим по модулю. Пусть на к - ом шаге имеем систему (З.2). Сначала добиваемся выполнения условия a kk( k −1) ≥ aij( k −1) , i, j = k , k + 1,K , n , путем перестановки двух уравнений системы (3.2), а также двух столбцов неизвестных со своими коэффициентами и соответствующей перенумерацией коэффициентов и неизвестных. При этом если переставляются столбцы, то соответствующая перестановка и перенумерация производятся и в уравнениях, которые на к - ом шаге не преобразуются, т.е. при i = 1,2 ,K , k − 1 . Найденный максимальный по модулю элемент (если det A ≠ 0 , то этот главный элемент всегда отличен от нуля) называется к - м главным элементом. Затем осуществляются преобразования к - го шага по формулам (3.3). В большинстве существующих стандартных программ одновременно с решением системы линейных алгебраических уравнений (3.1) вычисляется определитель матрицы А. Определитель полученной в результате прямого хода треугольной матрицы равен произведению её диагональных элементов и отличается от определителя A лишь знаком, поскольку в процессе преобразований осуществлялась перестановка строк в столбцов. Поэтому (1)
(2)
( n −1 )
det A = ( −1 ) s a11 ⋅ a 22 ⋅ a 33 ⋅ K ⋅ a nn 28
,
где S - суммарное число перестановок строк и столбцов. Если матрица заданной системы вырожденная, то перед исключением некоторой неизвестной главный элемент окажется равным нулю. Этим самым и обнаружится, что определитель заданной системы равен нулю. Метод Гаусса используется также для вычисления обратной матрицы. Пусть матрица А-1 с элементами xij является обратной к матрице А. Тогда имеем матричное уравнение A ⋅ A−I = E ,
x1 j x 2j где Е - единичная матрица. Отсюда каждый j – й столбец x j = L x nj -1 матрицы А удовлетворяет уравнению Ax j = e j , (3.4)
где e j - вектор-столбец, у которого j - я компонента равна единице, а остальные компоненты равны нулю. Таким образом, вычисление обратной матрицы сводится к решению п систем вида (3.4) для j = 1,2 ,K , n , отличающихся только правыми частями. Как уже указывалось выше, решение системы (З.1), полученное методом Гаусса, может быть искажено вычислительной погрешностью, являющейся следствием округлений при вычислениях. Рассмотрим способ уточнения решения. Пусть найдено решение x невязок b
(I )
(I )
. Определим для него вектор
= b − Ax
Обозначив вектор уточнений ∆ уравнение (3.5), получим, что ∆
(I )
A∆
(I )
(I )
(3.5)
.
=x−x
(I )
и вычтя из (З.1)
удовлетворяет системе
(I )
=b
(I ) (2)
(3.6)
. (I )
(I )
Решим эту систему и положим x =x +∆ . Если точность нового приближения представляется неудовлетворительной, то повторяем эту операцию. При решении системы (3.6) над компонентами правой части производятся те же линейные операции, что и над компонентами правой части при решении системы (3.1). Поэтому при вычислениях на машине с плавающей запятой естественно ожидать, что относительные погрешности решений этих систем будут одинаковы. Поскольку погрешности округлений обычно малы, ( I )
b j
a i + bi , i = 1,2 ,K , n − 1 , (3.18) α 0 ≤ 1, α n ≤ 1 (3.19) или условиями a i ≠ 0 , bi ≠ 0 , ci ≥ a i + bi , i = 1,2 ,K , n − 1 , (3.20) α 0 < 1, α n ≤ 1 . (3.21) При условиях (3.18), (3.19) из предположения α i ≤ 1 следует
c i +1 − а i +1 α i ≥ c i +1 − а i +1 α i ≥ c i +1 − а i +1 > b i ; α i +1 < 1 . Т.е. все прогоночные коэффициенты, начиная с первого, по модулю строго меньше единицы. При этом 1 − α n ⋅ α n −1 ≥ 1 − α n ⋅ α n−1 ≥ 1 − α n−1 > 0 . При условиях (3.20), (3.21) из предположения α i < 1 следует ci +1 − аi +1α i ≥ ci +1 − аi +1 α i > ci +1 − аi +1 ≥ bi ; α i +1 < 1, 1 − α n ⋅ α n −1 ≥ 1 − α n ⋅ α n −1 ≥ 1 − α n −1 > 1.
Таким образом, при выполнении условий (3.16), (3.17) (так же как и условий (3.18), (3.19) или условий (3.20), (3.21)) система (3.8)-(3.9) эквивалентна системе (3.12), (3.15), т.е. эти условия гарантируют существование и единственность решения системы (3.8)-(3.9) и возможность нахождения этого решения методом прогонки. Кроме того, α i ≤ 1, i = 1,2 ,K , n − 1 обеспечивают доказанные неравенства устойчивость счета по рекуррентным формулам (3.12). Последнее означает, что погрешность, внесенная на каком - либо шаге вычислений, не будет возрастать при переходе к следующим шагам. Действительно,
32
пусть в формуле (3.12) при k = k 0 + 1 вместо x k0 +1 вычислена величина ~ x =x +∆ . k0 +1
k0 +1
k0 +1
Тогда на следующем шаге вычислений, т.е. при k = k 0 , вместо x k0 = α k0 x k0 + β k0 получим величину ~ x k0 = α k0 ( x k0 +1 + ∆ k0 +1 ) и погрешность окажется равной ∆ k = ~xk − xk = α k ∆ k +1 . Отсюда получим, что 0
0
0
0
0
∆ k0 = α k0 ⋅ ∆ k0 +1 ≤ ∆ k0 +1 ,
т.е. погрешность не возрастает. 3.3.
Норма вектора и норма матрицы
При изучении итерационных процессов нам понадобятся понятия норм вектора и матрицы. Введем в п - мерном векторном пространстве Рп норму вектора. Нормой вектора x называется число x , удовлетворяющее следующим аксиомам нормы: 1) x > 0 для любого 2) α x = α ⋅ x
любого числа α и
для
3) x + y ≤ x + y
x ∈ Pn , x ≠ 0 u
для
любых
0 =0 любого
x ∈ Pn
x , y ∈ Pn
Наиболее употребительны в пространстве векторов следующие нормы: x = max xi ; (3.22) 1
x
для
3
=
1≤i ≤ n n x = ∑ xi ; 2 i =1 n ∑ xi 2 = ( x , x ) . i =1
(3.23) (3.24)
Для всех этих норм выполняются аксиомы нормы. Докажем это нормы x . Выполнение первой аксиомы очевидно. 3
Справедливость второй аксиомы следует из равенства: αx
3
= ( α x,α x ) = α 2 ( x, x ) = α ( x, x ) = α ⋅ x
3
Выполнение третьей аксиомы можно доказать, воспользовавшись неравенством Коши - Буняковского [12]. ( x , y ) ≤ ( x, x ) ⋅ ( y , y ) ( x, y ) ≤ x ⋅ y . 3
3
Действительно, 33
или
(3.25)
x+ y
2 3
(
)
= ( x + y ), ( x + y ) = ( x, x) + 2( x, y ) + ( y, y ) ≤
2
≤ x +2 x ⋅ y + y 3
3
3
2
(
= x + y
3
3
), 2
3
откуда x+ y
3
≤ x
3
+ y . 3
Очевидно, что введенные нормы векторов удовлетворяют следующим соотношениям: x ≤ x ≤nx ; 1
2
x ≤ x 1
3
1
≤ nx . 1
Введем теперь в пространстве матриц понятие нормы матрицы, согласованной с данной нормой вектора (подчиненной данной, норме вектора). Нормой матрицы А, согласованной с данной нормой вектора, называется число Ax A = sup . (3.26) x x∈Pn x≠0
Докажем, что для нормы матрицы А выполнены все три аксиомы нормы. Выполнение первой аксиомы очевидно. Далее имеем αA = sup
αA x
x∈Pn
x
= sup x∈Pn
x≠0
α Ax x
= α A;
x≠0
A + B = sup x∈Pn x≠0
( A + B) x x
Ax + B x
= sup
x
x∈Pn x≠0
≤ sup x∈Pn x≠0
Ax x
+ sup x∈Pn
Bx x
= A + B.
x≠0
Нормами матриц, согласованными с нормами векторов (3.22), (3.23) и (3.24), являются соответственно нормы n
A 1 = max ∑ aij ; 1≤i ≤ n
(3.27)
j =1
n
A 2 = max ∑ a ij ;
(3.28)
A 3 = max λ i ( A' A ) ,
(3.29)
1≤ j ≤ n i =1 1≤i ≤ n
где A' - транспонированная матрица А, а λ i ( A' A ) собственные значения матрицы А'А, i = 1,2,…,n. Приведем вывод этих соотношений для вещественного случая. 34
Согласно (3.22) n n A x = max ∑ aij x j ≤ max ∑ aij ⋅ x j ≤ 1 i i j =1 j =1 n n n ≤ max ∑ aij ⋅ max x j ≤ max x j ⋅ max ∑ aij = x ⋅ max ∑ aij , 1 i j j i i j =1 j =1 j =1
откуда имеем, что для любого вектора х ≠ 0 справедливо неравенство Ax n 1 ≤ (3.30) ∑ max aij . x i j =1 1
n
Пусть max ∑ a ij достигается при i = e. j =1 (0)
i
Рассмотрим вектор x
, у которого aej
x (j0 ) =
при aej ≠ 0 и
aej
x (j0 ) = 0 при aej = 0
Очевидно, что x Ax
(0)
1
= 1. n
= max ∑ aij x
(0) 1
j =1
i
(0) j
≥
n
∑a j =1
ej
x
(0) j
n
= ∑ aej , j =1
откуда Ax
( 0) n
1
x
( 0)
n
≥ ∑ aej = max ∑ aij j =1
i
(3.31)
j =1
1
(0)
Поскольку для всякого вектора и для x , в частности, справедливо противоположное неравенство (3.30), заключаем, что Ax n 1 = sup ∑ max aij = A 1 . x i j =1 x∈Pn x≠0
1
Согласно (3.23) n
Ax = ∑ 2
i =1
n n n n ≤ ⋅ = ⋅ a x a x x ∑ ∑ ∑ ∑ ij j ij j j ∑ aij ≤ j =1 i =1 j =1 j =1 i =1 n
n ≤ ∑ x j ⋅ max ∑ aij j j =1 i =1 n
n = x ⋅ max ∑ aij , 2 j i =1
35
откуда заключаем, что для любого вектора неравенство Ax n 2 ≤ max ∑ aij . x j i =1
х≠0
справедливо
(3.32)
2
Пусть
n
max ∑ a j
i =1
ij
n
= ∑ ail
.
i =1
(I )
Рассмотрим вектор x , у которого l - я координата равна (1) xl ≠ 0 , а остальные координаты - нули. Для этого вектора x Ax
2
n
=∑
(1) 2
= x
n
(1)
i =1
= ∑ x (j1) = xl(1) и j =1
n
∑a x ij
j =1
(1) j
n
n
i =1
i =1
= ∑ ail ⋅ xl(1) = xl(1) ⋅∑ ail =
n
(1) 2
⋅ max ∑ aij , j
i =1
откуда Ax
(1 )
n 2 = max ∑ aij . (1 ) j i =1 x 2
(3.33.)
Из (3.32) и (3.33) следует, что Ax n 2 = sup max ∑ aij = A 2 . j i =1 x∈Pn x x≠0
2
Согласно (3.26) и (3.24) Ax ( Ax, Ax ) ( Ax, Ax ) 3 A 3 = sup = sup = sup . ( x , x ) ( x , x ) x x∈Pn x∈Pn x∈Pn 3 x≠0
x≠0
x≠0
Матрица A' A -симметрическая, поскольку ( A' A )' = A' ⋅( A' )' = A' A . Известно, что для всякой вещественной симметрической матрицы В существует базис, составленный из ее собственных векторов [8,11]. Пусть e1 , e 2 ,K , e n - ортонормированный базис собственных векторов, а λ 1 , λ 2 ,K , λ n – соответствующие собственные значения. Всякий вектор х представим в виде
36
n
x = ∑ c i ei . i =1
Имеем
n n n ( B x , x ) = ∑ λ i ci ei , ∑ ci ei = ∑ λ i ci2 , i =1 i =1 i =1 поэтому n
( B x , x ) ≤ max λ i ⋅ ∑ ci2 = max λ i ⋅ ( x , x ) i =1
i
(3.34)
i
и
( B x , x ) ≥ min λ i ⋅ ( x , x )
(3.35)
i
В то же время ( Bei , ei ) (λi ei , ei ) = = λi . (ei , ei ) (ei , ei )
Из этих соотношений следует, что
sup
( B x, x )
x∈Pn ( x , x )
= max λ i .
(3.36)
i
x≠0
Поскольку ( A' A x , x ) = ( A x , A x ) ≥ 0 , то все λ i ( A' A ) ≥ 0 [ 1 ] . Полагая в (3.36) В = А'А, получим ( A' A x , x ) = max λ i ( A' A ) , sup ( x , x ) i x∈P n
x≠0
откуда следует (3.29). Отметим важный частный случай. Если А - симметрическая матрица, то
λ i ( A' A ) = λ i ( A 2 ) = λ2i ( A ) . Поэтому для неё
A 3 = max λ i ( A ) . i
Рассмотрим некоторые свойства нормы матрицы. I Ax ≤ A ⋅ x .
(3.37)
Из определения нормы матрицы следует, что для любого x ≠ 0 Ax A ≥ или A x ≤ A ⋅ x . x Для x = 0 имеем
Ax = 0 , 37
поэтому (3.37) заполняется как строгое равенство. II. A k x ≤ A
k
⋅ x.
(3.38)
На основании (3.37) AB x = A ⋅ ( B x ) ≤ A ⋅ B x ≤ A ⋅ B ⋅ x и, следовательно, имеет место неравенство (3.38). III. A ≥ λ
(3.39)
где λ - наибольшее по модулю собственное значение матрицы А. Пусть у - собственный вектор матрицы А, соответствующий λ . Имеем
Ay = λ y , Ay = λ y = λ y ≤ A ⋅ y , откуда следует (3.39). 3.4.
Метод простой итерации
Простейшим итерационным методом решения систем линейных уравнений является метод простой итерации. Система уравнений (3.1) преобразуется к эквивалентному виду x = Bx + c . (3.40) Метод простой итерации состоит в следующем. Выбирается (0)
∈ Pn (начальное приближение) и строится произвольный вектор x итерационная последовательность векторов по формуле ( k −1 )
(k )
x = Bx + c , k = 1,2 ,K (3.41) Приведем теорему о достаточном условии сходимости метода простой итерации. Если B < 1, то система уравнений (3.40) имеет единственное *
решение x и итерационный процесс (3.41) сходится к решению со скоростью геометрической прогрессии. *
Допустим, что x выполняется равенство
- одно из решений системы (3.40), т.е. *
*
x = Bx + c . (3.42) Отсюда, используя третью аксиому нормы и неравенство (3.37), получим
x
*
≤ Bx
*
+ c ≤ B ⋅ x
38
*
+ c
и
(1 − B ) x
*
≤ c
или, поскольку 1 − B > 0 , x
*
c
≤
.
1− B Из этого неравенства следует единственность решения однородной системы x = B x , т.е. при с = 0 , а следовательно, существование и единственность решения системы (3.41) при любом свободном члене с . Вычтем из равенства (3.42) равенство (3.41). Получим * (k ) * ( k −1 ) x −x = B x − x (3.43) , k = 1,2 ,... и, следовательно, * (k ) * (0) = B k x − x x −x . Отсюда на основании (3.37) имеем *
x −x
(k )
≤ B
*
k
x −x
(0)
,
т.е. норма разности между точным решением и k -м приближением стремится к нулю при k → ∞ не медленнее геометрической прогрессии со знаменателем q = B < 1 . Оценим погрешность k -го приближения. Преобразуем равенство (3.43) к виду * ( k −1 ) k ( k −1 ) * ( k −1 ) =x −x + B x − x x −x . Согласно третьей аксиоме нормы и равенству (3.37) *
x −x
( k −1 )
k
≤ x −x
( k −1 )
*
+ B ⋅ x −x
( k −1 )
,
откуда *
x −x
( k −1 )
x ≤
(k )
−x
( k −1 )
1− B
.
(3.44)
.
(3.45)
Кроме того, в силу (3.43) имеем *
x −x
(k )
*
≤ B ⋅ x −x
( k −1 )
Из (3.44) и (3.45) окончательно получаем B * (k ) (k ) ( k −1 ) x −x ≤ x −x . 1− B 39
Приведем без доказательства теорему о необходимом и достаточном условии сходимости метода простой итерации. Пусть система (3.40) имеет единственное решение. Итерационный процесс (3.41) сходится к решению системы (3.40) при любом начальном приближении тогда и только тогда, когда все собственные значения матрицы В по модулю меньше единицы. Эта теорема дает более общие условия сходимости метода простой итерации, однако воспользоваться ею в общем случае непросто. В частном случае, когда матрица В симметрическая, можно воспользоваться изложенным в разделе 3.5 методом отыскания максимального по модулю собственного значения, чтобы проверить условия этой теоремы. Некоторую модификацию метода простой итерации представляет собой метод Зейделя. Основная его идея заключается в том, что при (k )
вычислении k - го приближения неизвестной xi
используются уже (k )
вычисленные ранее k - е приближения неизвестных x1 (k ) i
x
i −1
= ∑ bij x j =1
(k ) j
(k )
, x2
(k )
,K , xi −1 :
n
+ ∑ bij x (jk −1) + ci , i = 1,2, K , n . j =i
Условия сходимости методов простой итерации и Зейделя не совпадают, но пересекаются. Обычно метод Зейделя сходится быстрее, чем метод простой итерации [4,5]. 3.5.
Частичная проблема собственных значений
Задача определения собственных значений и собственных векторов важна и как самостоятельная задача, и как вспомогательная задача. Её можно разбить на три естественных этапа: построение характеристического многочлена Pn ( λ ) = det ( A − λE ) ; решение алгебраического уравнения Pn ( λ ) = 0 , т.е. отыскание собственных значений λ 1 , λ 2 ,K , λ n матрицы; отыскание ненулевых решений однородной системы ( A − λ i E )x = 0 , i = 1,2 ,K , n , т.е. нахождение собственных векторов матрицы А. Каждый из трех отмеченных этапов представляет собой достаточно сложную задачу. Однако иногда можно вычислить собственные значения и соответствующие им собственные векторы, минуя этап построения характеристического многочлена и не прибегая к решению указанных выше систем однородных алгебраических уравнений. Этого удается достичь при помощи различных косвенных соображений, используя те
40
или иные свойства собственных значений и собственных векторов матрицы. Мы рассмотрим приближенный метод решения частичной проблемы собственных значений, т.е. задачи нахождения не всех собственных значений и соответствующих им собственных векторов матрицы, а только некоторых из них - метод отыскания максимального по модулю собственного значения матрицы. Предположим, что квадратная матрица А порядка п, имеет п собственных линейно независимых нормированных векторов, т.е. эти векторы образуют базис п -мерного векторного пространства (как известно, это всегда имеет место, если А - симметрическая матрица ). A y i = λ i y i , i = 1,2,K , n . (3.46) 2 = ( y i , y i ) = y i21 + y i22 + K + y in = 1, i = 1,2 ,K , n . (3.47) 3 Допустим, что λ1 > λ 2 ≥ λ 3 ≥ K ≥ λ n . (3.48) (0) Возьмем произвольный вектор x ≠ 0 . Имеем (0) x = c1 y1 + c2 y 2 + K + cn y n ,
yi
где c1 , c 2 ,K , c n - координаты вектора х
(0)
в базисе собственных
векторов y1 , y 2 ,K , y n . Предположим, что c1 ≠ 0 . Последовательно находим векторы
x
(k )
= Ax
( k −1 )
Тогда согласно (3.46) x x
(1)
= Ax
(2)
= Ax
(
(3.49)
, k = 1,2 ,K
(3.50)
)
(0)
= A c1 y1 + c 2 y 2 + K + c n y n = c1λ 1 y1 + c 2 λ 2 y 2 + K + c n λ n y n ,
(1)
= c1λ21 y1 + c 2 λ22 y 2 + K + c n λ2n y n
и вообще
x
(k )
где z
(k ) = c1λk1 y1 + c 2 λk2 y 2 + K + c n λkn y n = λk1 c1 y1 + z , (k )
k
k
λ λ λ = c 2 2 y 2 + c3 3 y 3 + K + c n n λ1 λ1 λ1
В силу (3.48) z
(k )
3
(3.51)
k
y n .
→ 0 при k → ∞ и z
(k )
λ k = O 2 . λ 3 1
41
(3.52)
(k )
Значит, вектор х при больших k близок к собственному вектору матрицы А, соответствующему собственному значению λ 1 . Используя (3.51), найдем скалярное произведение
(x
(k )
=λ
,x
) = λ (c y + z )⋅ λ (c y + z ) = [c (y , y ) + c (y , z )+ c (y , z )+ (z , z )].
( k −1)
2 k −1 1
2 1
(k )
k 1
( k −1)
k −1 1
1 1
( k −1)
1
1
1
(k )
1
(3.53)
1 1
1
(k )
( k −1)
1
2
Согласно (3.47) ( y1 , y1 ) = y1 = 1 . Для каждого из остальных 3 скалярных произведений в (3.53) воспользуемся неравенством Коши Буняковского (3.25): y , z ( k −1) ≤ y ⋅ z ( k −1) = z ( k −1) ; 1 3 1 3 3
y , z ( k ) ≤ y ⋅ z ( k ) 1 3 1
= z
(k )
3
; 3
z ( k ) , z ( k −1) ≤ z ( k ) ⋅ z ( k −1) . 3 3 Теперь из (3.53) с учётом (3.52) получим k −1 . x ( k ) , x ( k −1 ) = λ2k −1 c 2 + O λ 2 1 1 λ 1 Аналогично можем получить k −1 . x ( k −1 ) , x ( k −1 ) = λ2k − 2 c 2 + O λ 2 1 1 λ1 Последние две соотношения дадут
(x (x
(k )
,x
( k −1)
λ1k
( k −1)
,x
) = λ + O λ λ )
( k −1)
(x = (x
2
1
1
(k )
,x
( k −1)
( k −1)
,x
) →λ )
( k −1)
1
k −1
,
(3.54)
при k → ∞ .
Таким образом, при условии (3.48) итерационный процесс (3.50) позволяет найти с любой точностью максимальное по модулю собственное значение λ 1 и соответствующий ему собственный вектор. Следует заметить, что если λ 1 > 1, то Если же λ 1 < 1, то
x
(k )
x
(k )
→ ∞ при k → ∞ .
→ 0 при k → ∞ . То и другое явление при
счете на ЭВМ нежелательно. В первом случае может наступить переполнение (выход за допустимый диапазон чисел). Во втором случае 42
x
(k )
может стать машинным нулем (слишком малой величиной), и
информация теряется. Поэтому целесообразно на каждой итерации нормировать собственный вектор формулам: y1
(0)
=
x x
x
x
y1
(k )
;
(0)
= A y1 =
x x
, т.е. итерации вести по
(0)
3 (k )
(k )
( k −1)
(
(к )
; λ1к = х , х
( к −1)
);
(k )
.
(k ) 3
Подтверждением того, что λ 1 не является кратным собственным значением и что нет собственного значения, равного - λ 1 , служит (0)
сходимость итерационного процесса при выборе различных x к одному и тому же собственному вектору (с точностью до противоположного вектора). Рассмотрим теперь, как, используя метод отыскания максимального по модулю собственного значения матрицы, определить максимальное и минимальное собственные значения симметрической матрицы. Как известно, все собственные значения вещественной симметрической матрицы А действительны [8, II] и существует ортонормированный базис e1 , e 2 ,K , e n , составленный из собственных векторов матрицы А. Пусть P1 ( t ) = a 0 t + a1 некоторый алгебраический многочлен от t первой степени с действительными коэффициентами. Обозначим через В следующую матрицу B = a 0 A + a1 E , где Е - единичная матрица. Докажем, что собственные значения матриц А и В связаны соотношением λ i ( B ) = P1 ( λ i ( A )) , (3.55) а собственный вектор матрицы А, соответствующий собственному значению λ i ( A ) , является собственным вектором матрицы В, соответствующим собственному значению λ i ( B ) . Пусть ei - собственный вектор матрицы А, соответствующий собственному значению λ i ( A ) : Aei = λ i ( A ) ⋅ ei .
43
Тогда B ei = (a0 A + a1E )ei = a0λi ( A)ei + a1 ei = = (a0 ⋅ λi ( A) + a1 )ei = λi ( B)ei .
Допустим, что максимальное по модулю собственное значение λ( A ) симметрической матрицы А известно. Постоим матрицу B = A − λ( A ) E (3.56) и определим для нее максимальное по модулю собственное значение λ( B ) .
Если λ( A ) > 0 , то очевидно, что
max λ i ( A ) = λ( A ) .
1≤i ≤ n
Кроме того, согласно (3.55) и (3.56) λ i ( B ) = λ i ( A ) − λ( A ) ≤ 0 , i = 1,2 ,K , n . Поэтому λ( B ) = min λ i ( A ) − λ( A ) = min λ i ( A ) − λ( A ) , 1≤i ≤ n
т.е.
[
]
1≤i ≤ n
min λ i ( A ) = λ( A ) + λ( В ) .
1≤i ≤ n
Если λ( A ) < 0 , то
min λ i ( A ) = λ( A )
1≤i ≤ n
и λ i ( B ) = λ i ( A ) − λ( A ) ≥ 0 , i = 1,2 ,K , n . Поэтому λ( B ) = mах λ i ( A ) − λ( A ) , 1≤i ≤ n
откуда
max λ ( A) = λ ( A) + λ ( В) . 1≤ i ≤ n
i
44
(3.57)
4. ИНТЕРПОЛИРОВАНИЕ
Задача приближения (аппроксимации) функций возникает и как самостоятельная, и при решении многих других задач. Простейшая ситуация, приводящая к приближению функций, заключается в следующем. При некоторых значениях аргумента х0, х1,…хn, называемых узлами, заданы значения функции yi=f(xi), i=0,1...,n. Требуется восстановить значения функции при других x. Подобная же задача возникает при многократном вычислении на ЭВМ одной и той же сложной функции в различных точках. Вместо этого часто бывает целесообразно вычислять значения этой функции в небольшом числе характерных точек xi, а в остальных точках вычислять ее значения по некоторому более простому правилу, используя информацию об уже известных значениях yi. Другими распространенными примерами приближения функций b
являются задачи определения производной f'(x) и интеграла ∫ f ( x )dx по a
заданным значениям yi. Классический подход к решению подобных задач заключается в том, чтобы, используя имеющуюся информацию о функции f(x), рассмотреть другую функцию ϕ( x ) , близкую к f(x), позволяющую выполнить над ней соответствующую операцию и получить оценку погрешности такой «аналитической замены». При выборе класса, к которому принадлежит аппроксимирующая функция ϕ( x ) , следует руководствоваться тем, что ϕ( x ) , с одной стороны, должна отражать характерные особенности аппроксимируемой функции f(x), с другой стороны, быть достаточно удобной в обращении. Вопрос о близости аппроксимируемой и аппроксимирующей функций решается по-разному. Если параметры, от которых зависит функция ϕ( x ) , определяются из условия совпадения значений функций f(x) и ϕ( x ) в узлах, то такой способ аппроксимации называется интерполированием (интерполяцией). Наличие большого количества различных способов приближения объясняется многообразием различных постановок задачи. Далее мы рассмотрим лишь один раздел теории приближения – интерполирование многочленами. Аппарат интерполирования многочленами является важнейшим аппаратом численного анализа. На его основе строится большинство численных методов решения других задач.
45
4.1. Интерполяционный полином, его существование и единственность. Остаточный член
Будем строить аппроксимирующую функцию в виде ϕ( x ) = Pn ( x ) = a0 x n + a1 x n −1 + K + a n . Коэффициенты a0 , a1 ,K , a n определим из условий Pn ( xi ) = yi , i = 0 ,1,K n . Распишем подробно эти условия:
(4.1) (4.2)
Pn ( x0 ) = a0 x0n + a1 x0n −1 + K + a n = y 0 . ……………..
Pn ( xn ) = a0 xnn + a1 xnn −1 + K + a n = y n . Определитель этой системы
x0n
x0n −1 K x0
1
x1n x1n −1 K x1 1 L L L L L n xn xnn −1 K xn 1 может быть получен из определителя Вандермонда 1 1 K 1 x0 x1 K xn x02 x12 K xn2 L L L L x0n
x1n K xnn транспонированием матрицы и последующей перестановкой ее строк, т.е. будет отличаться от определителя Вандермонда лишь знаком. Последний, как известно, равен П ( xi − x j ) [8], т.е. отличен от 1≤ x j < xi ≤ n
нуля, если узлы интерполирования xi различны. Следовательно, коэффициенты a0 , a1 ,K , a n интерполяционного полинома (4.1) всегда могут быть определены, и при том единственным образом. Таким образом, доказано существование и единственность интерполяционного полинома (4.1). Оценим остаточный член интерполирования Rn ( x * ) = f ( x * ) − Pn ( x * ) , (4.3) где x* – точка, в которой значение функции вычисляется с помощью интерполяционного полинома. Предположим, что узлы упорядочены: a ≤ x0 < x1 < K < x n ≤ b и f n +1( x ) непрерывна на [a, b], x* ∈ [ a ,b ] . 46
Введем вспомогательную функцию F ( x ) = f ( x ) − Pn ( x ) − k ( x − x0 )( x − x1 )K( x − xn ) , где константа k выбирается так, чтобы
(4.4)
F ( x* ) = 0 , отсюда k=
f ( x* ) − Pn ( x* ) *
*
*
.
(4.5)
( x − x0 )( x − x1 )K( x − xn ) При таком выборе k функция f(x) обращается в нуль в (п+2) точках x0 , x1 ,K , xn , x* . На основании теоремы Ролля ее производная F'(x) обращается в нуль, по крайней мере, в (п+1)-й точке. Применяя теорему Ролля к F'(x), получаем, что ее производная F''(x) обращается в нуль по крайней мере в п точках. Продолжая эти рассуждения дальше, получаем, что F ( n +1 ) ( x ) обращается в нуль по крайней мере в одной точке ξ, принадлежащей отрезку [a, b]. Поскольку F ( n +1 ) ( x ) = f ( n +1 ) ( x ) − k ( n + 1 )! ,
из условия F ( n +1 ) ( ξ ) = 0 будем иметь f ( n +1 ) ( ξ ) . (4.6) k= ( n + 1 )! Приравнивая правые части (4.5) и (4.6), получим представление остаточного члена в точке x* f ( n +1 ) ( ξ ) * Rn ( x ) = f ( x ) − Pn ( x ) = ( x − x0 )( x* − x1 )K( x* − xn ) , (4.7) ( n + 1 )! где ξ ∈ [a ,b] . *
*
*
Остаточная абсолютная погрешность интерполирования ∆1 в точке x* может быть оценена как M n +1 (4.8) Rn ( x* ) ≤ ∆1 = ( x* − x0 )( x* − x1 )K( x* − xn ) , ( n + 1 )! где M n +1 = max f ( n +1 ) ( x ) . [ a ,b ]
Так как точка x* – произвольная точка отрезка [a, b], выражение (4.7) остаточного члена справедливо для любой точки х ∈ [a ,b] . Найдем оценку остаточной погрешности интерполирования на всем отрезке [a, b]: M n +1 Rn ( x ) ≤ ∆1 = ⋅ max ω n ( x ) , ( n + 1 )! [ a ,b ] где ω n ( x ) = ( x − x0 )( x − x1 )K( x − xn ) . 47
Оценить ω n ( x ) при произвольном расположении узлов интерполяции сложно. Если же узлы расположены на одинаковом расстоянии h друг от друга., то ω n ( x ) имеет примерно такой вид, как показано на рисунке 4.1. для п = 5 [3].
Wn(x)
a x0
b x1
x2
x3
x4
x5
x
Рис. 4.1. Вблизи центрального узла интерполяции экстремумы невелики, вблизи крайних узлов – несколько больше, а если Х выходит за крайние узлы интерполяции, то ω n ( x ) быстро возрастает. Термин «интерполяция» в узком смысле употребляют, если x заключен между крайними узлами; если же он выходит из этих пределов, то говорят об экстраполяции. Очевидно, что при экстраполяции далеко за крайним узлом ошибка может быть велика, поэтому экстраполяция малонадежна. 4.2. Интерполяционный полином Лагранжа
Будем строить интерполяционный полином в виде n
Pn ( x ) = ∑ li ( n ) ( x ) yi ,
(4.9)
i=0
где li ( n ) ( x ) – многочлены степени не выше п, обладающие следующим свойством: 1, i = j li ( n ) ( x ) = , i , j = 0 ,1,K , n . 0 , i ≠ j Действительно, в этом случае полином (4.9) в каждом узле xj, j=0,1,…n, равен соответствующему значению функции yj, т.е. является интерполяционным. 48
Построим такие многочлены. Поскольку
li ( n ) ( x ) = 0
при
x=x0,x1,…xi-1,xi+1,…xn , li ( n ) ( x ) можно следующим образом разложить на множители li
(n)
=c
( x ) = с ( x − x 0 )( x − x 1 ) K ( x − x i −1 )( x − x i + 1 ) K ( x − x n ) = n
П (x − x j=0 j≠i
j
),
где с – постоянная. Из условия li ( n ) ( xi ) = 1 получим, что n (x− xj ) 1 и li ( n ) ( x ) = П . c= n j =0 ( xi − x j ) П (x− xj ) j ≠i
j =0 j ≠i
Интерполяционный полином (4.1), записанный в форме n n (x− xj ) , Pn ( x ) ≡ Ln ( x ) = ∑ yi П ( x − x ) j =0 i j i=0
(4.10)
j≠i
называют интерполяционным полиномом Лагранжа. Приближенное значение функции в точке x*, вычисленное с помощью полинома Лагранжа, будет иметь остаточную погрешность (4.8). Если значения функции yi в узлах интерполирования xi заданы приближенно с одинаковой абсолютной погрешностью ∆* , то вместо точного значения Ln ( x* ) будет вычислено приближенное значение Ln ( x* ) , причем *
*
*
n
n
Ln ( x ) − Ln ( x ) ≤ ∆ 2 = ∆ ∑ П
(x* − x j ) , (
i = 0 j = 0 xi − x j j ≠i
)
где ∆ 2 – вычислительная абсолютная погрешность интерполяционного полинома Лагранжа. Окончательно имеем следующую оценку полной погрешности приближенного значения Ln ( x* ) . f ( x* ) − Ln ( x* ) = f ( x* ) − Ln ( x* ) + Ln ( x* ) − Ln ( x* ) ≤ ∆1 + ∆ 2 = ∆ полн .
В частности, полиномы Лагранжа первой и второй степени будут иметь вид x − x0 x − x1 L1( x ) = y0 + y1 ; x0 − x1 x1 − x0
49
L2 ( x ) =
( x − x0 )( x − x 2 ) ( x − x 0 )( x − x1 ) ( x − x1 )( x − x 2 ) y2 , y1 + y0 + ( x0 − x1)( x0 − x2 ) ( x1 − x0)( x1 − x2 ) ( x 2 − x 0)( x2 − x1 )
а их полные погрешности в точке x* M ∆ полн.( L1 ) = 2 ( x* − x0 )( x* − x1 ) + ∆* 2! ∆ полн. ( L2 ) =
x* − x1 x* − x0 + x0 − x1 x1 − x0
,
M3 * ( x − x0 )( x * − x1 )( x * − x 2 ) + 3!
( x * − x1 )( x * − x 2 ) ( x * − x 0 )( x * − x 2 ) ( x * − x0 )( x * − x 2 ) +∆ + + ( x − x )( x − x ) ( x1 − x 0 )( x1 − x 2 ) ( x 2 − x0 )( x 2 − x1 ) 1 0 2 0 *
где M 2 = max f ' ' ( x ) ; [ a ,b ]
M 3 = max f ' ' ' ( x )
,
.
[ a ,b ]
Существуют другие формы записи того же интерполяционного полинома (4.1), например, рассматриваемая далее интерполяционная формула Ньютона с разделенными разностями и ее варианты. При точных вычислениях значения Рn(х*), получаемые по различным интерполяционным формулам, построенным по одним и тем же узлам, совпадают. Наличие же вычислительной погрешности приводит к различию получаемых по этим формулам значений. Запись многочлена в форме Лагранжа приводит, как правило, к меньшей вычислительной погрешности [1-3]. Использование формул для оценки погрешностей, возникающих при интерполировании, зависит от постановки задачи. Например, если известно количество узлов, а функция задана с достаточно большим количеством верных знаков, то можно поставить задачу вычисления f(x*) с максимально возможной точностью. Если, наоборот, количество верных знаков небольшое, а количество узлов велико, то можно поставить задачу вычисления f(x*) с точностью, которую допускает табличное значение функции, причем для решения этой задачи может потребоваться как разрежение, так и уплотнение таблицы. 4.3. Разделенные разности и их свойства
Понятие разделенной разности является обобщенным понятием производной. Пусть в точках x0, x1,…xn заданы значения функций f(x0), f(x1),…,f(xn). Разделенные разности первого порядка определяются равенствами
50
f [ x0 , x1 ] =
f ( x1 ) − f ( x0 ) ; x1 − x0
f [ x1 , x2 ] =
f ( x2 ) − f ( x1 ) ; x2 − x1
................................................. f ( xi + 1 ) − f ( xi ) ; xi + 1 − xi разделенные разности второго порядка – равенствами, f [ x i , xi + 1 ] =
f [x 0 , x1 , x 2 ] =
f [ x1 , x 2 ] − f [ x 0 , x1 ] ; x2 − x0
f [x1 , x 2 , x 3 ] =
f [ x 2 , x 3 ] − f [ x1 , x 2 ] ; x 3 − x1
................................................................ f [ x i +1 , x i + 2 ] − f [ x i , x i +1 ] , f [x i , x i +1 , x i + 2 ] = xi+2 − xi
а разделенные разности k-го порядка определяются следующей рекуррентной формулой: f [ xi +1 ,K , xi + k ] − f [ xi ,K , xi + k −1 ] (4.11) f [xi , xi +1 ,K , xi + k ] = xi + k − xi Разделенные разности обычно помещаются в таблицу следующего вида: хi
f(хi) I порядка
х0
y0
х1
y1
х2
y2
х3
y3
х4
y4
f[x0,x1] f [x1,x2] f [x2,x3] f [x3,x4]
Разделение разности II порядка III порядка
f[x0,x1,x2] f [x1,x2,x3] f [x2,x3,x4]
f [x0,x1,x2,x3] f [x1,x2,x3,x4]
IV порядка
f[x0,x1,x2,x3,x4]
Рассмотрим следующие свойства разделенных разностей. 1. Разделенные разности всех порядков являются линейными комбинациями значений f(xi), т.е. имеет место следующая формула: k f ( xi ) f [x0 , x1 ,K , xk ] = ∑ . (4.12) k i=0 П ( xi − x j ) j =0 j ≠i
51
Докажем справедливость этой формулы индукцией по порядку разностей. Для разностей первого порядка f ( x1 ) − f ( x0 ) f ( x0 ) f ( x1 ) f [ x0 , x1 ] = = + . x1 − x0 x1 − x0 x0 − x1 Формула (4.12) справедлива. Предположим теперь, что она справедлива для всех разностей порядка k ≤ n . Тогда, согласно (4.11) и (4.12) для разностей порядка k=п+1 имеем f [x 0 , x1 , K , x n +1 ] =
f [ x1 , K , x n +1 ] − f [ x 0 , K , x n ] = x n +1 − x 0
n f ( xi ) f ( xi ) 1 n −∑ n ∑ + x n +1 − x 0 i =1 n +1 i =1 П ( xi − x j ) П ( xi − x j ) j =1 j =0 j ≠i j ≠i f ( x0 ) − n +1 . П ( x0 − x j )
f ( x n +1 ) n
П (x j =0
n +1
−
− xj)
j =1
Слагаемые, содержащие f(x0) и f(xn+1), имеют требуемый вид. Рассмотрим слагаемые, содержащие f(xi), i=1, 2, …,n. Таких слагаемых два - из первой и второй сумм: f ( xi ) 1 − n +1 x n +1 − x 0 ( xi − x j ) П j =1 j ≠ i f ( xi ) = n +1 , П ( xi − x j )
f ( x i ) ( x i − x 0 ) f ( x i ) − ( x i − x n +1 ) f ( x i ) = = n n +1 x − x П x − x ( n +1 ( xi − x j ) 0 ) j = 0( i j) П j =0 j ≠i j ≠i
j =0 j ≠i
т.е. формула (4.12) справедлива для разности порядка k=п+1, доказательство закончено. 2. Разделенная разность есть симметрическая функция своих аргументов x0, x1,…xn (т.е. не меняется при любой их перестановке): f [ x0 , x1 ,K , xn ] = f [ x1 , x0 ,K , xn ] = K = f [ xn , xn −1 ,K , x1 , x0 ] . Это свойство непосредственно следует из равенства (4.12). 3. Простую связь разделенной разности f[x0, x1,…,xn] и производной f(n) (x) дает следующая теорема. Пусть узлы x0, x1,…xn принадлежат отрезку [a, b] и функция f(x) имеет на этом отрезке непрерывную производную порядка п. Тогда существует такая точка ξ∈[a, b], что 52
f ( n )( ξ ) . n! Докажем сначала справедливость соотношения f [x0 , x1 ,K , xn ] =
(4.13)
f ( x) − L n ( x) = f [x 0 , x1 , K , x n , x ]( x − x 0 )( x − x1 ) K ( x − x n ), (4.14)
где x ∈ [ a ,b ], x ≠ xi , i = 0 ,1,K , xn . n
n
i=0
j=0 j≠i
f ( x) − Ln ( x) = f ( x) − ∑ f ( x i ) П
(x − x j )
(xi − x j )
=
n n f (xi ) f ( x) −∑ П (x − x j ) ⋅ n n = j=0 П ( x − x j ) i = 0 ( x − x i ) jП= 0 ( x i − x j ) j=0 j≠i n n f (xi ) f ( x) = П (x − x j ) ⋅ n +∑ n . j =0 i=0 ( x i − x) П ( x i − x j ) П (x − x j ) j=0 j=0 j≠i
Согласно (4.12) выражение в квадратных скобках есть f [x0, x1, …, xn, x]. Из сравнения (4.14) с выражением (4.7) для остаточного члена Rn(x)=f(x)-Ln(x) получим (4.13), теорема доказана. Из этой теоремы вытекает простое следствие. Для полинома п-ой степени f(x) = a0 xn+a1 xn-1+…an производная порядка п, очевидно, есть
f ( n ) ( x ) = a0 n! и соотношение (4.13) дает для разделенной разности значение a n! f [ x0 , x1 ,K , xn ] = 0 = a0 . n! Итак, у всякого многочлена степени п разделенные разности порядка п равны постоянной величине – коэффициенту при старшей степени многочлена. Разделенные разности высших порядков (больше п), очевидно, равны нулю. Однако этот вывод справедлив лишь в случае отсутствия вычислительной погрешности у разделенных разностей. 4.3. Интерполяционный полином Ньютона с разделенными разностями
Запишем интерполяционный полином Лагранжа в следующем виде: Ln ( x) ≡ L0 ( x) + [L1 ( x) − L0 ( x)] + K + [Lk ( x) − Lk −1 ( x)] + K
K + [Ln ( x) − Ln −1 ( x)],
(4.15)
где L0(x) = f(x0)=y0, а Lk(x) – интерполяционный полином Лагранжа степени k, построенный по узлам x0, x1, …,xk. Тогда [Lk ( x ) − Lk −1( x )] 53
есть полином степени k, корнями которого являются точки x0, x1, …,xk-1. Следовательно, его можно разложить на множители Lk ( x ) − Lk −1( x ) = Ak ( x − x0 )( x − x1 )K( x − xk −1 ) (4.16) где Ak – постоянная. В соответствии с (4.14) получим Lk ( x) − Lk −1 ( x) = f ( xk ) − Lk −1 ( x) = f [ x0 ,K, xk ]( xk − x0 )K( xk − xk −1 ) (4.17) Сравнивая (4.16) и (4.17) получим, что Ak = f [ x0 ,K , xk ] и (4.15) примет вид Ln ( x) = N n ( x) = y 0 + f [ x 0 , x1 ]( x − x 0 ) + K +
+ f [ x 0 , x1 , K , x n ]( x − x 0 ) K ( x − x n −1 ),
(4.18)
который носит название интерполяционного полинома Ньютона с разделенными разностями. Этот вид записи интерполяционного полинома более нагляден (добавлению одного узла соответствует появление одного слагаемого) и позволяет лучше проследить аналогию проводимых построений с основными построениями математического анализа. Остаточная погрешность интерполяционного полинома Ньютона выражается формулой (4.8), но ее, с учетом (4.13), можно записать и в другой форме
∆1 ≈ max f [xi , xi +1 ,K , xi + n +1 ] ⋅ ( x* − x0 )K( x* − xn ) , [ a ,b ]
т.е. остаточная погрешность может быть оценена модулем первого отброшенного слагаемого в полиноме Nn(x*). Вычислительная погрешность Nn(x*) определится погрешностями разделенных разностей. Узлы интерполяции, лежащие ближе всего к интерполируемому значению x*, окажут большее влияние на интерполяционный полином, лежащие дальше – меньшее. Поэтому целесообразно, если это возможно, за x0 и x1 взять ближайшие к x* узлы интерполирования и произвести сначала линейную интерполяцию по этим узлам. Затем постепенно привлекать следующие узлы так, чтобы они возможно симметричнее располагались относительно x*, пока очередной член по модулю не будет меньше абсолютной погрешности входящей в него разделенной разности. 4.4. Конечные разности и их свойства
Пусть узлы xi, в которых заданы значения функции f(xi)=yi, являются равноотстающими, т.е. x1 = x0+ h, x2 = x1+h = =x0+2h…,xi=x0+ih,…xn = x0+nh, где h – шаг таблицы. Назовем конечными разностями первого порядка разности ∆ y 0 = y1 − y 0 , ∆ y1 = y 2 − y1 , .......... .......... .... ∆ y n −1 = y n − y n −1. 54
конечными разностями второго порядка ∆2 y 0 = ∆ y1 − ∆ y 0 , ∆2 y1 = ∆ y 2 − ∆ y1 , .......... .......... .......... ∆2 y n − 2 = ∆ y n −1 − ∆ y n − 2
и т.д. Конечные разности (к+1)-го порядка вычисляются по формуле
∆k +1 yi = ∆k yi +1 − ∆k yi . (4.19) Конечные разности, как и разделенные, располагаются в таблице. xi f(xi) ∆y i ∆2 y ∆3 y ∆4 y i
x0
y0
x1
y1
∆2 y 0 ∆3 y0
y2
∆3 y1
y3
∆2 y 2
∆y 3 x4
∆4 y 0
∆2 y1
∆y 2 x3
i
∆y 0 ∆y1
x2
i
y4
Рассмотрим некоторые свойства конечных разностей. 1. Конечная разность связана с соответствующей разделенной разностью следующим соотношением:
∆k yi = h k k ! f [xi , xi +1 ,K , xi + k ] . (4.20) Докажем справедливость этого соотношения методом математической индукции. Для конечных разностей первого порядка имеем y − yi ∆ y i = y i +1 − y i = h i + 1 = h1! f [ xi , xi +1 ] . xi + 1 − x i Допустим, что соотношение верно для некоторого k ≤ m . Тогда, ∆m +1 y i = ∆m y i +1 − ∆m y i = h m m! f [ x i +1 , K , x i + m +1 ] − − h m m! f [ x i , K , x i + m ] = h m m!
f [ x i +1 , K , x i + m +1 ] − f [ x i , K , x i + m ] x i + m +1 − x i
⋅ (m + 1)h = h m +1 (m + 1)! f [ x i , K , x i + m +1 ],
что и требовалось доказать.
55
2. Конечная разность связана с соответствующей производной соотношением
∆k yi = h k f ( k ) ( ξ ), ξ ∈ [ xi , xi + k ] . (4.21) Это равенство непосредственно следует из только что доказанного соотношения (4.20) и ранее доказанного равенства (4.13). Как следствие (4.21) получим, что конечные разности порядка п от полинома степени п постоянны и равны h n n! a0 , а конечные разности любого более высокого порядка равны нулю. Однако, этот вывод справедлив лишь для случая, когда исходные значения функции yi являются точными и конечные разности любого порядка подсчитаны без вычислительных погрешностей. Поскольку числа yi, как правило, задаются с некоторой абсолютной погрешностью ∆*, конечные разности первого порядка будут иметь абсолютную погрешность 2∆*, конечные разности второго порядка - 4∆* и т.д., т.е. конечные разности порядка k будут иметь абсолютную погрешность 2k∆*. Если у функции f(x) производные достаточно высоких порядков остаются ограниченными, то согласно (4.21) соответствующие конечные разности ∆k yi будут убывать с ростом k. Поэтому, естественно, наступит такой момент, когда погрешности конечных разностей станут сравнимы или даже больше абсолютных величин самих конечных разностей. Следовательно, информация, содержащаяся в таблице этих разностей, станет информацией о погрешностях, а не функции, и использование ее станет нецелесообразным. При этом говорят, что порядок последних конечных разностей, которые еще целесообразно использовать в вычислениях, есть порядок правильности таблицы конечных разностей. 4.5.
Интерполяционные формулы Ньютона
Рассмотрим интерполяционный полином Ньютона с разделенными разностями (4.18), взяв в качестве узлов интерполирования равноотстоящие точки x0, x1 = x0+ h, …,xi=x0+ih,…,xn = x0+nh. Заменяя разделенные разности их выражениями через конечные разности согласно (4.20) ∆k y 0 , f [x0 , x1 ,K xk ] = h k k! получим N n ( x) = y 0 + ∆y 0
x − x0 ∆2 y 0 ∆n y + 2 ( x − x0 )( x − x1 ) + K + n 0 ( x − x0 )K( x − xn −1 ) h h 2! h n!
Введем переменную t =
x − x0 . Тогда формула примет вид h 56
I
N n ( x) = N n ( x0 + ht ) = y 0 + ∆y 0 t +
∆2 y 0 ∆n y 0 t (t − 1) + K + t (t − 1) K[t − (n − 1)] . 2! n!
(4.22)
Полученную формулу называют первым интерполяционным полиномом Ньютона или полиномом Ньютона для интерполирования вперед. Остаточная погрешность значения N n I ( x0 + ht* ) выражается формулой (4.8). Если заменить x* = x0 + ht* , то она примет следующий вид: M n +1h n +1 * * ∆1 = ⋅ t ( t − 1 )K( t* − n ) . ( n + 1 )!
M n +1 = max f ( n +1 ) ( x )
На практике величина
[ a ,b ]
оценивается
согласно (4.21) с помощью конечных разностей (п+1)-го порядка
M n +1 ≈
max ∆n +1 yi
h n +1 или ∆1 определяется абсолютной величиной первого отброшенного слагаемого. Введем еще одну интерполяционную формулу Ньютона. Для этого запишем полином Ньютона с разделенными разностями (4.18), присоединяя узлы в следующем порядке: xn , xn +1 ,K , x1 , x0 : N n ( x ) = y n + f [ xn , xn +1 ]( x − xn ) + K + f [ xn ,K , x1 , x0 ]( x − xn )K( x − x1 ) x − xn Введем переменную q = . и выразим разделенные разности h через конечные. ∆2 y n −2 ∆n y 0 II N n ( x) = N n ( x n + hq ) = y n + ∆y n −1 q + q(q + 1) + K + q (q + 1) K[q + n − 1] . (4.23) 2!
n!
Эта формула называется вторым интерполяционным полиномом Ньютона, или полиномом Ньютона для интерполирования назад. Оценка (4.8) остаточной погрешности приближенного значения
N n II ( xn + q* h ) представится в виде
M n +1h n +1 * * x* − xn * * ∆1 = ⋅ q (q + 1)K(q + n) , q = , (n + 1)! h M n +1 = max f ( n +1 ) ( x ) . [ a ,b ]
Итак, получены две новые формулы интерполирования, и далее будут получен еще ряд таких формул. Однако следует заметить, что каждая из них является лишь другой формой записи интерполяционного полинома Лагранжа. Поэтому, если отвлечься от различия в обозначениях и в форме записи, то все эти формулы тождественны, когда они построены по одним и тем же узлам интерполирования. Однако в практике вычислений применяются в различных случаях 57
разные формулы. Как уже отмечалось, во-первых, дело связано с тем, что обычно бывает удобнее вести вычисления, если при интерполировании сначала используются ближайшие к x* узлы, а затем подключаются все более удаленные. При этом первые члены интерполяционных формул дадут основной вклад в искомую величину, а остальные будут давать лишь уменьшающиеся (по модулю) добавки. В этом случае легко установить, на какой разности следует закончить вычисления. Во-вторых, как было отмечено в разделе 4.1, максимальные значения ω n ( x ) = ( x − x0 )K( x − xn ) убывают к середине отрезка, содержащего все узлы, и возрастают к концам его. Поэтому, если имеется возможность при вычислениях для различных x строить интерполяционный полином по различным узлам, то их следует выбирать так, чтобы точка x находилась вблизи середины отрезка, содержащего все узлы интерполирования. В этом смысле мы можем сравнивать по точности различные интерполяционные формулы 4.6.
Интерполяционные полиномы с центральными разностями
Возьмем в качестве узлов интерполирования точки x0 , x1 , x−1 ,K , xk , x− k , где xi = x0 + ih , i = 0 , ± 1,K ,± k . Построим интерполяционный полином Ньютона с разделенными разностями N 2k ( x ) = y 0 + f [x0 , x1 ]( x − x0 ) + f [x0 , x1 , x−1 ]( x − x0 )( x − x1 ) + K
+ f [x0 , x1 , x−1 , x2 , x− 2 ,K , xk ]( x − x0 )( x − x1 )( x − x−1 )K( x − x− ( k −1 ) ) + + f [x0 , x1 , x−1 ,K , xk , x− k ]( x − x0 )( x − x1 )( x − x−1 )K( x − xk )
Используя симметричность разделенных разностей относительно своих аргументов и связь их с конечными разностями (4.20), получим f [x 0 , x1 , x −1 , K , x i , x − i ] =
∆2i y −i (2i )! h 2i
f [x 0 , x1 , x −1 , K , x −i , x i +1 ] =
58
,
∆2i +1 y −i (2i + 1)! h 2i +1
.
Отсюда ∆y0 ∆2 y−1 N 2 k ( x ) = y0 + ( x − x0 ) + ( x − x0 )( x − x1 ) + K n 2!h 2 ∆2 k −1 y− ( k −1) + ( x − x0 )( x − x1 )K( x − x− ( k −1) ) + (2k − 1)!h 2 k −1 ∆2 k y− k + ( x − x0 )( x − x1 )K( x − x− ( k −1) )( x − xk ). (2k )!h 2 k
Введя
x − x0 , получим первый h Гаусса, или полином Гаусса для t=
переменную
интерполяционный полином интерполирования вперед, I
N 2 k ( x) = G 2 k ( x 0 + ht ) = y 0 + ∆y 0 t + + +
∆2 k −1 y − ( k −1)
(2k − 1)!
∆2 y −1 ∆3 y −1 2 t (t − 1) + t (t − 1) + K 2! 3!
[
]
(4.24)
t (t 2 − 1)(t 2 − 2 2 ) K t 2 − (k − 1) 2 +
∆2 k y − k t (t 2 − 1)(t 2 − 2 2 ) K t 2 − (k − 1) 2 (t − k ). (2k )!
[
]
В этой формуле используются следующие конечные разности (подчеркнуты): xi yi ∆y i ∆2 yi ∆3 yi ∆4 yi x-3
y-3
x-2
y-2
∆y − 3 ∆2 y − 3
∆y − 2 x-1
∆3 y − 3
y-1
∆y −1 x0
∆3 y − 2
y0
∆3 y −1
y1
∆3 y0
y2
∆2 y1
∆y 2 x3
∆4 y −1
∆2 y 0
∆y1 x2
∆4 y − 2
∆2 y −1 ∆y 0
x1
∆4 y − 3
∆2 y − 2
y3 59
Если взять узлы интерполирования в другом порядке, а именно x0 , x−1 , x1 ,K , x− k , xk , то совершенно аналогично можно получить второй интерполяционный полином Гаусса, или интерполяционный полином Гаусса для интерполирования назад,
II
∆2 y −1 ∆3 y − 2 2 t (t + 1) + t (t − 1) + 2! 3! ∆2 k −1 y − k 2 t (t − 1)(t + 2) + K + t (t 2 − 1)(t 2 − 2 2 ) K t 2 − (k − 1) 2 + (2k − 1)!
G 2 k ( x 0 + ht ) = y 0 + ∆y −1t + ∆4 y − 2 4! +
[
]
(4.25)
∆2 k y − k t (t 2 − 1)(t 2 − 2 2 ) K t 2 − (k − 1) 2 (t + k ). (2k )!
[
]
Вторая интерполяционная формула Гаусса использует следующие конечные разности: xi
yi
x-3
y-3
x-2
y-2
∆y i
∆2 yi ∆2 y − 3
∆3 y − 3
y-1
∆3 y − 2
y0
∆3 y −1
y1
∆3 y0
y2
∆2 y1
∆y 2 x3
∆4 y −1
∆2 y 0
∆y1 x2
∆4 y − 2
∆2 y −1 ∆y 0
x1
∆4 y − 3
∆2 y − 2
∆y −1 x0
∆4 yi
∆y − 3 ∆y − 2
x-1
∆3 yi
y3
60
Взяв полусумму интерполяционных формул Гаусса, получим интерполяционный полином Стирлинга в виде формулы: ∆y0 + ∆y−1 ∆2 y−1 2 ∆3 y−1 + ∆2 y− 2 t (t 2 − 1) + t+ t + 2 2! 2 3! ∆2 k −1 y− ( k −1) + ∆2 k −1 y− k t (t 2 − 1)(t 2 − 22 )K t 2 − (k − 1) 2 K+ + 2 (2k − 1)! S 2 k ( x0 + ht ) = y0 +
[
[
]
(4.26)
]
∆2 k y− k 2 2 t (t − 1)(t 2 − 2 2 )K t 2 − (k − 1) 2 . (2k )!
Интерполяционный конечные разности: xi
yi
x-3
y-3
x-2
y-2
полином
Стирлинга
∆y i
∆2 yi
∆3 y − 3
y-1
y0
∆3 y − 2 1/2
∆4 y − 2
∆3 y −1
y1
∆4 y −1
∆2 y 0 ∆3 y0
y2
∆2 y1
∆y 2 x3
1/2
∆2 y −1
∆y1 x2
∆4 y − 3
∆2 y − 2
∆y 0 x1
∆4 yi
∆2 y − 3
∆y −1 x0
∆3 yi
следующие
∆y − 3 ∆y − 2
x-1
использует
y3
Остаточный член интерполяционных формул (4.24), (4.25) и (4.26) имеет следующий вид f ( 2 k +1) (ξ ) R 2 k ( x) = ( x − x 0 ) K ( x − x − k )( x − x k ) = (2k + 1)! f ( 2 k +1) (ξ ) 2 k +1 2 = h t (t − 1)(t 2 − 2 2 ) K (t 2 − k 2 ), ξ ∈ [ x − k , x k ]. (2k + 1)!
Например, для полинома Стирлинга второй степени ∆y 0 + ∆y −1 ∆2 y −1 2 S 2 ( x0 + ht ) = y 0 + t+ t , 2 2! 61
(4.27)
остаточный член
f ''' ( ξ ) 3 2 h t( t − 1 ), ξ ∈ [ x−1 , x1 ] . 3! Получим еще одну форму интерполяционного полинома. Для этого применим вторую интерполяционную формулу Гаусса к точке х1, используя для ее построения узлы x1 , x 0 , x 2 , x −1 , K , x − k , x k +1 . Тогда R2 ( x0 + ht ) =
∆2 y 0 ∆3 y −1 t ' (t '+1) + t ' [(t ' ) 2 − 1] + 2! 3! ∆2 k y − ( k −1) ∆4 y −1 2 + t ' [(t ' ) − 1](t '+2) + K + t ' [(t ' ) 2 − 1]K (t '+ k ) + 4! (2k )! II
G 2 k +1 ( x1 + ht ' ) = y1 + ∆y 0 t '+
+
∆2 k +1 y − k t ' [(t ' ) 2 − 1]K[(t ' ) 2 − k 2 ), (2k + 1)!
x − x0 x − x1 . Легко видеть, что t' = t − 1 , где t = . Выразим в h h t ' через t. Получим
где t' = G 2 k +1
II
II
G 2 k +1 ( x 0 + ht ) = y1 + ∆y 0 (t − 1) + +
∆2 y 0 ∆3 y −1 t (t − 1) + t (t − 1)(t − 2) + 2! 3!
∆2 k y − ( k −1) ∆4 y −1 2 t (t − 1)(t − 2) + K + t (t 2 − 1)(t 2 − 2 2 ) K 4! (2k )!
∆2 k +1 y − k K t − (k − 2) [t − (k − 1)](t − k ) + t (t 2 − 1)(t 2 − 2 2 ) K (2k + 1)!
[ K [t
2
2
] ](t − k ).
2
− (k − 1) 2
Полусумма этой формулы и первой формулы Гаусса (4.24), x0 , x1 , x−1 ,K , xk , x− k , xk +1 , даст построенной по узлам интерполяционный полином Бесселя: B 2 k +1 ( x 0 + ht ) = +
2 2 y 0 + y1 1 ∆ y 0 + ∆ y −1 t (t − 1) + ∆y 0 t − + + 2 2 2! 2
4 4 2 ∆3 y −1 1 ∆ y −1 + ∆ y − 2 t (t − 1)(t − 2) +K+ t (t − 1) t − + 3! 2 4! 2
[
]
∆2 k y − ( k −1) + ∆2 k y − k t (t 2 − 1) K t 2 − (k − 1) 2 (t − k ) + + 2 (2k )! +
(4.28)
∆2 k +1 y − k 1 t (t 2 − 1) K t 2 − (k − 1) 2 (t − k ) t − . (2k + 1)! 2
[
]
Полином Бесселя особенно удобен для интерполирования на 1 середину, т.е. для t = . Действительно, в этом случае члены, 2 содержащие разности нечетного порядка, обращаются в нуль. В формуле Бесселя используются следующие разности:
62
xi
yi
x-3
y-3
x-2
y-2
∆y i
y-1
∆y −1 x0
y0
∆2 y − 2
∆y 2 y3
∆y 3
∆5 y − 3 ∆4 y − 2
1/2
1/2
∆3 y −1
∆2 y 0 y2
x4
∆4 y − 3 ∆3 y − 2
∆y1
x3
∆5 yi
∆3 y − 3
∆y 0
y1
x2
∆4 yi
∆2 y − 3
∆2 y −1 1/2
x1
∆3 yi
∆y − 3 ∆y − 2
x-1
∆2 yi
∆5 y − 2
∆4 y −1 ∆3 y0
∆2 y1
∆5 y −1 ∆4 y 0
∆3 y1 ∆2 y 2
y4
Остаточный член интерполяционного полинома Бесселя имеет вид R2 k +1 ( x) = =
f ( 2 k + 2 ) (ξ ) ( x − x0 )( x − x1 )( x − x −1 ) K ( x − x − k )( x − x k +1 ) = (2k + 2)!
f ( 2 k + 2 ) (ξ ) 2 k + 2 2 h t (t − 1)(t 2 − 2 2 ) K (t 2 − k 2 )(t − k − 1), (2k + 2)! ξ ∈ [ x − k , x k +1 ].
(4.29)
В частности, для полинома Бесселя первой и третьей степени B1 ( x0 + ht ) =
y 0 + y1 1 + ∆y 0 t − , 2 2
2 2 y 0 + y1 1 ∆ y 0 + ∆ y −1 t (t − 1) + ∆y 0 t − + + B3 ( x 0 + ht ) = 2 2 2! 2
∆3 y −1 1 + t (t − 1) t − 3! 2
63
остаточные члены имеют вид f '' ( ξ ) R1( x0 + ht ) = h 2 t( t − 1 ), ξ ∈ [ x0 , x1 ]; 2!
R3 ( x0 + ht ) = h
4 f
IV
(ξ) 2 t( t − 1 )( t − 2 ), ξ ∈ [ x−1 , x2 ]. 4!
4.8.Обратное интерполирование
В практике вычислений часто встречается следующая задача. f(x) задана своими значениями yi в точках Функция xi ∈ [ a ,b ], i = 0 ,1,K , n . Требуется определить значение аргумента
x* ∈ [ xi , xi +1 ] , соответствующее заданному значению y* ∈ [ yi , yi +1 ] функции f(x), т.е. найти корень уравнения f(x)=y* , (4.30) принадлежащий интервалу ( xi , xi +1 ) . Предполагается, что интервал ( xi , xi +1 ) настолько мал, что x * – единственный. Поставленная задача называется задачей обратного интерполирования. Один из возможных путей решения этой задачи заключается в следующем. Функцию f(x) аппроксимируем ее интерполяционным полиномом Pn(x), а уравнение (4.30) заменяем уравнением Pn(x)=y* . (4.31) Находим действительный корень x уравнения (4.31), принадлежащий интервалу ( xi , xi +1 ) . Практически мы получаем лишь приближенное решение уравнения (4.31) – точку x . И теперь полагаем, что x * ≈ x . Оценим погрешность такого решения. Пусть суммарная погрешность интерполирования есть ∆, т.е. f ( x ) − Pn ( x ) ≤ ∆ , (4.32) а погрешность решения уравнения (4.31) есть ε , т.е.
x− x ≤ ε.
(4.33)
Тогда приращение функции в точке x можно представить как y * − f ( x) = f ( x * ) − f ( x) = f ' (ξ )( x * − x),
ξ = x + θ ( x * − x), θ ∈ (0,1).
Отсюда, принимая во внимание, что
Pn ( x ) = y* ,
64
имеем
Pn ( x ) − f ( x ) = f ' ( ξ )( x* − x ) . Предположив теперь, что min f ' ( x ) ≥ m1 > 0 , [ xi , xi + 1 ]
и используя оценку (4.32), получим
x* − x ≤
∆ . m1
(4.34)
Далее,
x* − x = x* − x + x − x ≤ x* − x + x − x . Следуя оценкам (4.33) и (4.34), окончательно находим ∆ +ε. (4.35) x* − x ≤ m1 Таким образом, как решение задачи обратного интерполирования, так и погрешность (4.35) определяются двумя процессами: построением интерполяционного полинома и решением уравнения (4.31), т.е. нахождением корней интерполяционного полинома. Может показаться, что эти два момента ничем не связаны между собой. Однако это совсем не так. Следует иметь в виду, что увеличение степени полинома, с одной стороны, уменьшает погрешность ∆, с другой – увеличивает трудоемкость решения уравнения (4.31). Поэтому степень интерполяционного полинома должна быть наименьшей при условии достижения требуемой точности [1-3]. При практическом решении задачи обратного интерполирования на равномерной сетке узлов в качестве интерполяционных полиномов обычно используются полиномы Стирлинга и Бесселя. В этом случае x − x0 , приводится к уравнение (4.31), записанное с переменной t = h виду t = ϕ( t ) и решается методом итераций. Например, при использовании полинома Стирлинга имеем * ∆2 y−1 2 ∆3 y−1 + ∆3 y− 2 t (t 2 − 1) ⋅ − t − y − y0 − 2 2 ! 2 3 ! . (4.36) t= ∆y0 + ∆y−1 ∆4 y− 2 2 2 − 4! t (t − 1) В качестве начального приближения t0 обычно принимается t0=0 . После того, как t* – решение уравнения (4.36) - получено, x* определяется по формуле
x* = x0 + ht* .
65
Аналогичным образом можно получить решение задачи обратного интерполирования при помощи полинома Бесселя или первого и второго интерполяционных полиномов Ньютона. Рассмотрим еще один подход к решению задачи обратного интерполирования, основанный на существовании гладкой функции g(y), обратной к f(x). Пусть функция g(y) непрерывна вместе с достаточным количеством своих производных на минимальном интервале, содержащем значения yi = f ( xi ), i = 0 , ± 1,K y* = f ( x* ) . В этом случае определение x* эквивалентно вычислению обратной функции g(y), заданной своими значениями xi в узлах yi, в точке y = y*, так как
x* = g ( y* ) . Таким образом, задача обратного интерполирования сведена к задаче интерполирования обратной функции g(y). Например, если обратную функцию g(y) приближать интерполяционным полиномом Лагранжа, то решение поставленной задачи в этом случае будет иметь вид *
n
*
n
x ≈ Ln ( y ) = ∑ xi П i=0
(y* − y j ) . (
j = 0 yi − y j j≠i
)
Оценка остаточного члена будет такая же, как и при прямом интерполировании:
g ( n +1 ) ( ξ ) * x − Ln ( y ) = ( y − y 0 )( y* − y1 )K( y* − y n ) , ( n + 1 )! *
*
где g ( n +1 ) ( ξ ) – производная (п+1)-го порядка обратной функции в точке ξ, принадлежащей интервалу между минимальным и максимальным yi, i=0,1,…,n. Оценка же вычислительной погрешности усложнится, поскольку теперь выражение Ln(y*) нелинейно зависит от приближенных величин yi, i=0,1,…,n. Приведенный способ решения задачи обратного интерполирования является более эффективным, нежели прием, содержащий одним из этапов решение уравнения. Особенно он удобен, если решение задачи обратного интерполирования требуется найти для достаточно большого числа значений y* или когда требуется получить явное выражение для корня уравнения (4.30). Недостатком рассмотренного метода является требование гладкой обратной функции, что далеко не всегда выполнимо (например, это требование не выполняется для немонотонных функций).
66
4.9. Численное дифференцирование
К численному дифференцированию приходится прибегать в том случае, когда функция f(x), для которой нужно найти производную, задана таблично или же имеет сложное аналитическое выражение. В первом случае методы дифференциального исчисления просто неприменимы, а во втором случае их использование вызывает значительные трудности. Одним из способов построения формул численного дифференцирования является дифференцирование интерполяционных полиномов. Пусть известны значения функции f(x) в точках x0 , x1 ,K , xn . Требуется вычислить f ( m ) ( x ), m ≤ n . Построим интерполяционный полином Ln(x) и положим f ( m ) ( x) ≈ L( m ) n ( x) . (4.37) Точно так же мы можем заменять значения производных функций значениями производных других интерполяционных полиномов: Стирлинга, Бесселя и т.д. Можно показать [3], что остаточный член формул численного дифференцирования (4.37) имеет следующий вид: Rn
(m)
( x) = f ( m ) ( x) − L( m ) n ( x) =
m
m! f j = 0 ( m − j )!( n + j + 1)!
=∑
( n + j +1)
(ξ i )ω n
( m− j )
(4.38)
( x),
где
ω n ( x ) = ( x − x0 )( x − x1 )K( x − xn ), ω n
( m− j )
=
d ( m− j )
ωn ( x ) , dx m − j а ξ i – некоторые точки из интервала между наименьшим и наибольшим из чисел x, x0 , x1 ,K , xn . Пусть функция задана на равномерной сетке узлов с шагом h. Взяв интерполяционный полином Стирлинга, построенный по точкам x0 , xi = x0 + ih , i = ±1, ± 2 ,K ,± k , продифференцируем его один раз. Получим следующую формулу для первой производной: dS 2 k ( x0 + ht ) dt d ∆y0 + ∆y−1 ∆2 y−1 2 ∆3 y−1 + ∆3 y− 2 f ' ( x) ≈ t+ t + = ⋅ y0 + ⋅ dx dx dt 2 2! 2 ⋅
1 ∆y + ∆y−1 t (t 2 − 1) ∆4 y− 2 2 2 ∆3 y−1 + ∆3 y− 2 2 t (t − 1) + K = 0 (3t − 1) + (4.39) + ∆2 y−1t + + 3! 4! h 2 12
+
∆4 y− 2 3 (2t − t ) + K 12
x − x0 . h Для второй производной, дифференцируя по х (4.39), получим где t =
67
f ' ' ( x) ≈
1 h2
2 ∆3 y−1 + ∆3 y −2 ∆4 y−2 y t (6t 2 − 1) + K ∆ + + −1 2 12
(4.40)
В частности, при x=x0 (t=0) будем иметь 1 ∆y 0 + ∆y −1 ∆3 y −1 + ∆3 y − 2 f ' ( x0 ) ≈ − + K (4.41) h 2 12 ∆4 y − 2 1 2 f ' ' ( x0 ) ≈ y ∆ − + K (4.42) −1 2 12 h В некоторых случаях выгоднее выражать производные в узловых точках не через конечные разности, а непосредственно через значения функции. Преобразуем к такому виду формулы (4.41) и (4.42). Если в формулах (4.41) и (4.42) ограничиться одним слагаемым, что соответствует полиному Стирлинга второй степени, то получим соответственно 1 ∆y0 + ∆y−1 y1 − y−1 ⋅ = h 2 2h 2 ∆y y − 2 y0 + y1 f ' ' ( x0 ) ≈ 2−1 = −1 . h h2
f ' ( x0 ) ≈
;
(4.43) (4.44)
Взяв в формулах (4.41) и (4.42) по два слагаемых (полином Стирлинга четвертой степени), будем соответственно иметь y− 2 − 8 y−1 + 8 y1 − y2 ; 12h − y2 + 16 y−1 − 30 y0 + 16 y1 − y2 f ' ' ( x0 ) ≈ . 12h 2 f ' ( x0 ) ≈
(4.45) (4.46)
Получим остаточный член формулы численного дифференцирования (4.41). Для этого продифференцируем по х остаточный член полинома Стирлинга степени 2k и подставим x=x0 : d dt d f ( 2 k +1) (ξ ( x )) 2 k +1 2 R2 k ( x) x = x0 = ⋅ h t (t − 1)...(t 2 − k 2 ) = dx dx dx (2k + 1)! t =0 (4.47) f ( 2 k +1) (ξ ) k 2 2k (− 1) [k!] h , ξ ∈ [a, b]. = (2k + 1)! Для формул (4.43) и (4.45) остаточный член (4.47) будет соответственно иметь вид h 2 f ' ' ' (ξ1 ) − и 6
h 4 f V (ξ 2 ) . 30
Исследуем полную погрешность формул дифференцирования, например, для формулы (4.43) ∆полн.(h) =
h 2 M 3 ∆* + , 6 h
где M 3 = max f ' ' ' ( x ) , [ a ,b ]
∆* – абсолютная погрешность каждого из чисел yi. 68
численного (4.48)
В (4.48) первое слагаемое (остаточная погрешность) убывает с уменьшением h, а второе (вычислительная погрешность) возрастает с уменьшением h. Возникает вопрос о подборе для данной формулы численного дифференцирования оптимального шага h*, для которого полная погрешность имела бы минимальное значение. Найдем такой шаг 2hM 3 ∆* ∆' полн.( h ) = − = 0, 6 h2 откуда * 3 ∆ h =3 . M3 В точке h = h* функция ∆полн.( h ) имеет действительно минимальное значение, поскольку M 3 ∆* ∆' ' полн.( h ) = + > 0. 2 3 h При вычислении второй производной или производных более высокого порядка, когда в знаменатель соответствующей формулы численного дифференцирования входит h2 или hk и k>2, вопрос о выборе оптимального шага является еще более актуальным. *
69
5. ИНТЕРПОЛИРОВАНИЕ С КРАТНЫМИ УЗЛАМИ И СПЛАЙНЫ
Рассмотрим теперь более общую постановку задачи интерполирования полиномами. В узлах xi ∈ [ a ,b ], i = 0 ,1,K , n , среди которых нет совпадающих, известны значения функции f(xi) и ее производных f ( j ) ( xi ) до порядка ki-1 включительно, j = 0 ,1,K , k i − 1 . Таким образом, информация о функции f(x) задается следующим образом: f ( x0 ) f ' ( x0 )
f ( x1 ) f ' ( x1 )
K K
f ( x n ); f ' ( x n );
LL
LL
LL
LL
f ((xk00)−1)
f ((xk11)−1)
K
(5.1)
f ((xknn)−1) .
Здесь значения k i ≥ 1 для различных i, вообще говоря, различны, но допустим случай, когда k 0 = k1 = K = k n . Следовательно, всего задано k 0 + k1 + K + k n величин. Требуется построить алгебраический многочлен H m ( x ) степени m = k0 + k1 + K + k n − 1 , для которого выполняются условия
H m( j ) ( xi ) = f ( j ) ( xi ), j = 0 ,1,K , k i − 1; i = 0 ,1,K , n . (5.2) Многочлен H m ( x ) , удовлетворяющий условиям (5.2), называется интерполяционным полиномом Эрмита для функции f(x) или интерполяционным полиномом с кратными узлами. Числа k 0 , k1 ,K , k n называются кратностями узлов x0 , x1 ,K , xn соответственно. Hm( x ) определяется Интерполяционный полином единственным образом. В самом деле, предположив противное, будем иметь два полинома степени m, удовлетворяющих условию (5.2). Тогда их разность Qm ( x ) удовлетворяет соотношениям Qm ( xi ) = Q' m ( xi ) = K = Qm( k i −1 ) ( xi ) = 0 , i = 0 ,1,K , n т.е. точки x0 , x1 ,K , xn являются корнями полинома Qm ( x ) кратности k 0 , k1 ,K , k n соответственно. Мы получили, что многочлен Qm ( x ) степени m имеет m+1 корней. Следовательно, Qm ( x) ≡ 0 . Существование интерполяционного полинома Эрмита H m ( x ) докажем, получив для него явное выражение. Далее предположим, что функция f(x) непрерывно дифференцируема (m+1) раз.
70
5.1. Разделенные разности с повторяющимися (кратными) узлами
Зададимся последовательностью совокупностей точек x0( 2) K x0( k0 −1) ; x1( 2) K x1( k1 −1) ; L L L ( 2) xn K x n( k n −1) ,
x0 x0(1) x1 x1(1) L L x n x n(1)
удовлетворяющих условию: все точки xi ( j ) – различны. В частности, можно положить
xi ( j ) = xi + ( j − 1 )ε , i = 0 ,1,K , n , j = 1,2 ,K , k i − 1 , где ε > 0 – малая величина. Построим по всем этим точкам разделенную разность порядка m = k0 + k1 + K + kn − 1 . Определим f x0 , x 0 , K , x 0 ; x1 , x1 , K , x1 ;K; x n , x n , K , x n = 43 14243 142 4 43 4 142 k1 раз k n раз k 0 раз =
lim
xi ( j ) → xi (ε →0 )
[
(1)
f x0 , x0 ,K, x0
( k 0 −1)
(1)
;K; x n , x n , K , x n
( k n −1)
(5.3)
].
Рассмотрим сначала случай, когда под знаком разделенной разности левой части (5.3) повторяется только один узел xi и разделенная разность порядка ki-1 вычисляется только по этому повторяющемуся узлу. Согласно определению (5.3)
lim f [x , x
f [xi , xi ,K, xi ] = 142 4 43 4
xi ( j ) → xi
ki раз
i
(1) i
, K , xi
( ki −1)
].
По формуле связи (4.13) между разделенной разностью и производной имеем
[
(1)
f xi , xi , K , xi
где
ξ
–
точка,
( ki −1)
] = f(k
(ξ ) , − 1)!
( ki −1) i
принадлежащая
(5.4) наименьшему
отрезку,
содержащему все точки xi , xi ( 1 ) ,K , xi ( k i −1 ) . Перейдя в равенстве (5.4) к пределу при xi ( j ) → xi , получим f ( ki −1) ( xi ) f [xi , xi , K , xi ] = . 142 4 43 4 (k i − 1)!
(5.5)
ki раз
Итак, если при i = 0 ,1,K , n производная f ( k i −1 ) ( x ) непрерывна, то существуют разделенные разности f [xi , xi , K , xi ], 142 4 43 4 ki раз
71
i = 1,2, K , n.
Но это обеспечивает также существование разделенной разности с кратными узлами левой части (5.3), т.к. все остальные разделенные разности, необходимые для ее вычисления, находятся путем последовательного применения рекуррентных формул f [ x1 , x2 ,K , xk ] − f [ x0 , x1 ,K , xk −1 ] f [ x0 , x1 ,K , xk ] = x k − x0 и их обобщений. Чтобы не проводить громоздкого вывода для общего случая формулы (5.3), рассмотрим иллюстративную таблицу. Приведенные в этой таблице вычисления переносятся на общий случай без всяких принципиальных затруднений. f [ x0 , x0 ; x1 , x1 ; x2 , x2 , x2 ] , если заданы Требуется найти f ( x0 ), f ' ( x0 ); f ( x1 ), f ' ( x1 ); f ( x2 ), f ' ( x2 ), f ' ' ( x2 ) . № строк
1 xi
2 f(xi)
0
x0
f(x0)
2 3
x0
4
x1
f(x0)
5 III пор.
6 IV пор
7 V пор
8 VI пор
f[x0; x0, x1] f[x0, x1]
f(x1)
f[x0; x1, x1] f’(x1)
5 x1
f(x1)
f[x1, x1; x2] f[x1, x2]
7 8
4 Разности II порядка
f ' ( x0 ) 1!
1
6
3 f[xi, xj]
x2
f(x2)
f[x1; x2, x2] f’(x2)
9 10
x2
f(x2)
11 12
x2
f(x2)
f ' ' ( x2 ) 2!
f[x0, x0; x1, x1] f[x0, x1; x1; x2] f[x1, x1; x2, x2] f[x1; x2; x2, x2]
f[x0, x0; x1, x1;x2] f[x0; x1, x1; x2;x2] f[x1, x1; x2, x2,x2]
f[x0, x0; x1; x1;x2,x2] f[x0; x1, x1; x2,x2,x2]
f[x0, x0; x1; x1;x2,x2,x2]
f’(x2)
Левый столбец таблицы – для нумерации строк, верхняя строка – для нумерации столбцов. В первом столбце в строках с четным номером приведены аргументы искомой разделенной разности. Во втором столбце в тех строках, что и аргументы, помещены соответствующие значения функции. Третий столбец предназначен для разделенных разностей первого порядка. Они размещаются в строках с нечетными номерами между строк, в которых находятся соответствующие узлы (аргументы) и значения функции. Если узлы повторяются, как это имеет место для строк 1, 5, 9, 11, то сюда помещают значение первой производной. В строках 3, 7 помещены обычные разделенные разности 72
первого порядка. Столбец 4 предназначен для разделенных разностей второго порядка. За исключением последней из них (строка 10), где f ' ' ( x2 ) f [ x2 , x2 , x2 ] = , 2! они находятся обычным способом по рекуррентной формуле. Так, f [ x0 , x1 ] − f [ x0 , x0 ] f [ x0 , x1 ] − f ' ( x0 ) f [ x0 , x0 , x1 ] = = . x1 − x0 x1 − x0 Аналогично и для остальных разностей. В пятом, шестом, седьмом и восьмом столбцах находятся, соответственно, разделенные разности третьего, четвертого, пятого и шестого порядков. Они вычисляются по обычным рекуррентным формулам. Например, f [ x0 , x0 ; x1 , x1 ; x2 , x2 , x2 ] =
f [ x0 ; x1 , x1 ; x2 , x2 , x2 ] − f [ x0 , x0 ; x1 , x1 ; x2 , x2 ] . x2 − x0
5.2. Интерполяционный полином Эрмита
Перейдем теперь к задаче построения полинома Эрмита. Для этого, как и при определении разделенных разностей с кратными узлами, наряду с данными точками x0 , x1 ,K , xn выберем на отрезке [a,b] точки xi ( j ) , j = 1,2 ,K , k i −1 ; i = 0 ,1,K , n . Все эти узлы различны. m + 1 = k 0 + k1 + K + k n точек Построим по совокупности интерполяционный полином Ньютона с разделенными разностями
[
]
[
]
N m ( x ) = f ( x0 ) + ( x − x0 ) f x0 , x0( 1 ) + ( x − x0 )( x − x0( 1 ) ) f x0 , x0( 1 ) , x0( 2 ) +
[
]
K + ( x − x0 )( x − x0( 1 ) )K( x − x0( k 0 − 2 ) ) f x0 , x0( 1 ) ,K , x0( k 0 −1 ) + K + ( x − x0 )K( x − x0( k 0 −1 ) )( x − x1 )K( x − x1( k1 −1 ) )K( x − xn( k n − 2 ) ) ⋅
[
]
⋅ f x0 ,K , xn( k n −1 ) Перейдем в обеих частях этого равенства к пределу при xi ( j ) → xi . Получим f ' ' ( x0 ) +K 2! f x0 , x0 ,K , x0 ; x1 + K 43 142 k 0 раз
H m ( x ) = f ( x 0 ) + ( x − x 0 ) f ' ( x 0 ) + ( x − x0 ) 2 k 0 −1
+ ( x − x0 )
k 0 −1
f ( x0 ) + ( x − x0 ) k 0 ( k 0 − 1)!
(5.6)
f x0 , x0 , K , x0 ; K ; x n , x n , K , x n + ( x − x0 ) ( x − x1 ) K ( x − xn ) 43 14243 142 k 0 раз k n раз Покажем, что полученный таким образом полином H m ( x ) решает поставленную задачу, т.е. удовлетворяет условиям (5.2). Первые k0 членов правой части (5.6) являются первыми k0 членами разложения k0
k1
k n −1
73
функции f(x) в ряд Тейлора. Остальные же члены содержат множитель
( x − x0 )k 0 . Поэтому выполняются условия (5.2), относящиеся к узлу x0. Но мы могли бы записать N m ( x ) , взяв за начальный узел не x0, а любую из точек x1 , x2 ,K , xn . При этом ни сам многочлен, ни его предел не изменятся, изменится только форма записи этих многочленов. Таким образом, условия (5.2) будут выполнены и для остальных узлов. Остаточный член полинома Эрмита получится из остаточного Nm( x ) переходом к пределу при члена полинома xi ( j ) → xi ,i = 0 ,1,K , n :
lim
x i(
=
j)
→ xi
Rm ( x ) =
lim
x i(
j)
→ xi
f ( m + 1 ) (ξ ) ( k −1) ( x − x0 ) K ( x − x0 0 ) K ( m + 1)! = − ( 1 ) k K ( x − x ) K ( x − x n ) n n
f ( m + 1 ) (α ) ( x − x 0 ) k 0 ( x − x1 ) k 1 K ( x − x n ) k n , ( m + 1)!
и остаточная погрешность определится как ∆1 =
M m +1 ( x − x 0 ) k0 ( x − x1 ) k1 K ( x − x n ) k n , M m +1 = max f ( m +1) ( x) . (m + 1)! [ a ,b ]
Интерполяционный полином Эрмита можно получить другим способом. Наряду с H m ( x ) рассмотрим интерполяционный полином Лагранжа Ln ( x ) , принимающий в точках x0 , x1 ,K , xn значения f ( x0 ), f ( x1 ),K , f ( xn ) . Разность H m ( x ) − Ln ( x ) должна быть многочленом степени не выше m, обращающимся в нуль в точках x0 , x1 ,K , xn . Следовательно, H m ( x) − Ln ( x) = ω n +1 ( x) H m − n −1 ( x),
Где ω n +1 ( x) = ( x − x0 )( x − x1 ) K ( x − x n ) , а H m − n −1( x ) – многочлен степени (m-n-1). При любом H m − n −1( x ) функция H m ( x ) = Ln ( x ) + ω n ( x )H m − n −1( x ) принимает в узлах интерполирования xi значения f(xi). Подберем теперь H m − n −1( x ) так, чтобы были выполнены и остальные условия (5.2). Дифференцируя последнее равенство, получим H m ' ( x) = Ln ' ( x) + ω n +1 ' ( x) H m − n −1 ( x) + ω n +1 ( x) H ' m − n −1 ( x) . Полагая здесь x = xi, будем иметь H m ' ( xi ) = Ln ' ( xi ) + ω n +1 ' ( xi ) H m − n −1 ( xi ) . Так как ω ' n +1 ( xi ) ≠ 0 , в каждой точке, в которой задана величина H ' m ( xi ) = f ' ( xi ) , мы найдем H m − n −1( xi ) . Дифференцируя еще раз, получим H m ' ' ( x) = Ln ' ' ( x) + ω n +1 ' ' ( x) H m − n −1 ( x) + 2ω ' n +1 ( x) H ' m − n −1 ( x) +
+ ω n +1 ( x) H ' ' m − n −1 ( x).
Полагая снова x = xi, найдем 74
H m ' ' ( xi ) = Ln ' ' ( xi ) + ω n ' ' ( xi )H m − n −1( xi ) + 2ω' n ( xi )H ' m − n −1 ( x ) Из этого равенства мы сумеем найти H ' m − n −1 ( x ) в тех точках, в которых заданы H ' ' m ( xi ) = f ' ' ( xi ) . Продолжим этот процесс далее. Каждый раз коэффициентом при старшей производной от H m − n −1( x ) в точках xi будет ω ' n +1 ( xi ) . Таким образом, мы сведем нашу задачу отыскания H m ( x ) к задаче отыскания H m − n −1( x ) , удовлетворяющего условиям: H m − n −1 ( x0 ) = z 0 ; H m − n −1 ( x1 ) = z1 ; H m − n −1 ( x n ) = z n ; L; H ' m − n −1 ( x0 ) = z ' 0 ; H ' m − n −1 ( x1 ) = z '1 ; L; H ' m − n −1 ( x n ) = z n ; LLLL LLLL L LLLL ( k0 − 2 ) ( k0 − 2) ( kn −2) ( k1 − 2 ) ( k1 − 2 ) H m − n −1 ( x 0 ) = z 0 ; H m − n −1 ( x1 ) = z1 ; L; H m − n −1 ( x n ) = z n( k n − 2 ) , где zij , j = 0 ,1,K , k i − 2 , i = 0 ,1,K , n , - известные
числа.
Для
построения H m − n −1( x ) применим точно такой же прием. Получим H m − n −1( x ) , где некоторые условия, наложенные на m1 = k 0 + k1 + K + k n − n − 1 . В конце концов, нам потребуется построить интерполяционный полином Лагранжа по его значениям в некоторых из точек xi. На практике полином Эрмита часто записывают в различных формах, которые определяются количеством заданных узлов и их кратностью. Например, полином Эрмита третьей степени, построенный по точкам x0 , x1 , в которых заданы еще значения первой производной функции, можно записать в виде H 3 ( x) = F1 ( x) ⋅ f ( x0 ) + F2 ( x) ⋅ f ( x1 ) + F3 ( x) ⋅ f ' ( x0 ) + F4 ( x) ⋅ f ' ( x1 ) , (5.7) где F1( x ), F2 ( x ), F3 ( x ), F4 ( x ) – полиномы третьей степени, удовлетворяющие условиям: F1( x0 ) = 1; F2 ( x0 ) = 0; F3 ( x0 ) = 0; F4 ( x0 ) = 0;
F1( x1 ) = 0;
F2 ( x1 ) = 1;
F3 ( x1 ) = 0; F4 ( x1 ) = 0;
F1' ( x0 ) = 0; F2 ' ( x0 ) = 0; F3' ( x0 ) = 1; F4 ' ( x0 ) = 0;
(5.8)
F1' ( x1 ) = 0; F2 ' ( x1 ) = 0; F3' ( x1 ) = 0; F4 ' ( x1 ) = 1. Очевидно, что H 3 ( x ) , определяемый формулой (5.7), удовлетворяет (5.2): H 3 ( x0 ) = f ( x0 ); H 3 ( x1 ) = f ( x1 ); H 3' ( x0 ) = f ' ( x0 ); H 3' ( x1 ) = f ' ( x1 ). Иногда интерполяционный многочлен Эрмита строится методом неопределенных коэффициентов, т.е. рассматривается многочлен H m ( x ) = C0 x m + C1 x m −1 + K + C m и коэффициенты C0 ,C1 ,K ,C m определяются из условий (5.2). 75
Вычислительная погрешность интерполяционного полинома Эрмита в точке x для каждой из его форм определяется так же, как и для интерполяционных полиномов Лагранжа, Ньютона и т.д. Например, для (5.7) вычислительная погрешность
∆ 2 = F1( x ) ∆* + F2 ( x ) ∆** + F3 ( x ) ∆* + F4 ( x ) ∆** ∆* , ∆** , ∆* , ∆** – абсолютные Где f ( x 0 ), f ( x1 ), f ' ( x0 ), f ' ( x1 ) соответственно.
погрешности
величин
5.3. Интерполирование сплайнами
Интерполирование многочленом Лагранжа, Ньютона или их модификациями на всем отрезке [a, b] с использованием большого числа узлов часто приводит к плохому приближению из-за большой вычислительной погрешности, чувствительности таких многочленов к ошибкам при вычислении их коэффициентов. Для того, чтобы избежать этих затруднений, отрезок [a, b] разбивают на частичные отрезки и на каждом из них приближенно заменяют функцию f(x) многочленом невысокой степени (кусочно-полиномиальная интерполяция). Одним из способов интерполирования на всем отрезке является интерполирование с помощью сплайн-функций. Сплайн-функцией или просто сплайном называют кусочно-полиномиальную функцию, определенную на отрезке [a, b] и имеющую на этом отрезке некоторое число непрерывных производных. Слово «сплайн» (английское spline) означает гибкую линейку, используемую для проведения гладких кривых через заданные точки плоскости. Максимальная по всем частичным отрезкам степень полиномов называется степенью сплайна, а разность между степенью сплайна и порядком наивысшей непрерывной на [a, b] производной – дефектом сплайна. Мы рассмотрим частный, но распространенный в вычислительной практике случай, когда сплайн определяется с помощью многочленов третьей степени (кубический сплайн). Пусть в точках a = x0 < x1 < K < xn = b заданы значения функции f(x) yi = f ( xi ), i = 0 ,1,K , n . Кубическим сплайном, соответствующим данной функции f(x) и данным узлам xi, называется функция P(x), удовлетворяющая следующим условиям: а) на каждом отрезке [ xi , xi +1 ] , i = 0 ,1,K , n − 1, функция P(x) является многочленом третьей степени; б) функция P(x), а также ее первая (и вторая) производные непрерывны на [a, b]; в) P( xi ) = yi i = 0 ,1,K , n . 76
Последнее условие называется условием интерполирования, а сплайн, определяемый условиями а-в, называется также интерполяционным кубическим сплайном. Предположим, что нам известны значения производной функции f(x) в каждой из узловых точек: f ' ( xi ) = y' i i = 0 ,1,K , n . По заданным значениям yi и y’i, i = 0 ,1,K , n , построим для функции f(x) на каждом отрезке [ xi , xi +1 ] , i = 0 ,1,K , n − 1, интерполяционный полином Эрмита третьей степени в виде (5.7). Для этого ведем вспомогательные функции: 2
3
x − x x − x − 2 i +1 ; F1i ( x) = 3 i +1 hi hi 2
3
x − xi x − xi − 2 ; F2i ( x) = 3 hi hi x − x 2 x − x 3 − i +1 ; F3i ( x) = hi i +1 h i hi x − x 2 x − x 3 i i − , F4i ( x) = − hi hi hi
(5.9)
где hi = xi +1 − xi , i = 0 ,1,K , n − 1. Для функций (5.9) и их производных F '1i = −6 F ' 2i = 6
xi +1 − x hi
2
x − xi hi
2
+6
−6
( xi +1 − x) 2 hi
3
( x − xi ) 2 hi
3
;
;
F ' 3i = −2
xi +1 − x ( x − x) 2 ; + 3 i +1 2 hi hi
F ' 4 i = −2
x − xi ( x − xi ) 2 +3 2 hi hi
определены условия (5.8), i = 0 ,1,K , n − 1, поэтому полином
Pi ( x ) = F1i ( x ) yi + F2i ( x ) yi +1 + F3i ( x ) y' i + F4i ( x ) y' i +1 (5.10) является полиномом Эрмита для функции f(x) на каждом отрезке [ xi , xi +1 ] , а функция P( x ) = Pi ( x ) , i = 0 ,1,K , n − 1, – интерполяционным кубическим сплайном с непрерывной первой производной, т.е. с дефектом, равным 2. Если значения первой производной функции не заданы, их определяют с помощью формул численного дифференцирования. Построенный таким образом сплайн называется локальным, т.к. он строится отдельно на каждом отрезке [ xi , xi +1 ] непосредственно по формуле (5.10). Этот способ построения сплайна 77
удобен, если в процессе работы со сплайном (а она часто происходит в диалоговом режиме с визуализацией результатов на экране) требуется исправить какое-то одно значение функции или ее производной. Построим теперь интерполяционный кубический сплайн с непрерывной второй производной, т.е. с дефектом, равным 1, по yi, i = 0 ,1,K , n . Потребуем непрерывности P''(x) в узлах, т.е. P' ' i −1 ( xi ) = P' ' i ( xi ) i = 1,2 ,K , n − 1 . Выразим с помощью (5.10) обе части этого соотношения:
yi −1 F1'i' −1( xi ) + yi F2' 'i −1( xi ) + y' i −1 F3' 'i −1( xi ) + y' i F4' 'i −1( xi ) = = yi F1'i' ( xi ) + yi +1F1'i' ( xi ) + y' i F3' 'i ( xi ) + y' i +1 F4' 'i ( xi ). Вторые производные от функций (5.9) имеют вид: x −x x − xi −1 6 6 − 12 i − 12 F1'i' −1( x ) = ; F2' 'i −1( x ) = ; 2 3 2 3 hi −1 hi −1 hi −1 hi −1 F3' 'i −1( x ) =
x −x x − xi −1 2 −6 i +6 ; F4' 'i −1( x ) = − ; hi −1 hi −1 hi2−1 hi2−1 2
F1'i' ( x ) =
x −x − 12 i +1 ; F2' 'i ( x ) = hi2 hi3
F3' 'i ( x ) =
x − xi x −x 2 2 ; F4' 'i ( x ) = − + 6 − 6 i +1 hi hi hi2 hi2
6
6 hi2
− 12
x − xi hi3
и в точке xi соответственно равны 6 6 ; F1'i' −1( xi ) = ; F2' 'i −1( xi ) = − hi2−1 hi2−1 2 4 F3' 'i −1( xi ) = ; F4' 'i −1( xi ) = ; hi −1 hi −1 6 6 F1'i' ( xi ) = − ; F2' 'i ( xi ) = ; 2 2 hi hi 4 2 '' '' F3i ( xi ) = − ; F4i ( xi ) = − . hi hi Отсюда получаем 6 6 2 4 6 6 4 2 yi−1 − 2 yi + y 'i−1 + y 'i = − 2 yi + 2 yi+1 − y 'i − y 'i+1 2 hi −1 hi −1 hi −1 hi−1 hi hi hi hi
78
;
(5.11)
(5.12)
или 2 1 h + hi −1 h − h 2 i −1 1 1 1 y 'i −1 +2 i y ' i + y 'i +1 = 3− 2 y i −1 + i 2 2 y i + 2 y i +1 , hi −1 hi ⋅ hi −1 hi hi ⋅ h i −1 hi hi −1 i = 1,2, K, n − 1.
(5.13)
Введем обозначения
hi −1 ; i = 1,2 ,K , n − 1. hi −1 + hi Очевидно, что 0 < α i < 1 и αi =
hi . hi −1 + hi h ⋅h Умножим равенство (5.13) на i −1 i . Получим hi −1 + hi
1− αi =
(1 − α i ) α h − hi −1 (1 − α i ) y 'i −1 +2 y ' i +α i y ' i +1 = 3− y i −1 + i y i + i y i +1 , hi −1 hi −1 ⋅ hi hi i = 1,2, K , n − 1,
или y − y i −1 y − yi (1 − α i ) y 'i −1 +2 y 'i +α i y 'i +1 = 3(1 − α i ) i + α i i +1 , hi −1 hi i = 1,2, K , n − 1.
(5.14)
Итак, получена система из (п-1) уравнений с (п+1) неизвестными y' 0 , y'1 ,K , y' n . Нужно задать еще два условия, которые называются краевыми, т.к. они обычно связаны с «крайними» значениями y' 0 и y' n . Рассмотрим два варианта задания краевых условий. 1. Известны значения первой производной на концах отрезка y' 0 = f ' ( a ); y' n = f ' ( b ) . (5.15) 2. Известны значения второй производной на концах отрезка f''(a) и f''(b). Потребуем, чтобы P''(a) = f''(a) и P''(b) = f''(b). Тогда, согласно (5.12) при i=0 и согласно (5.11) при i=n соответственно имеем −
6 6 4 2 y 0 + 2 y1 − y ' 0 − y '1 = f ' ' (a ); 2 h0 h0 h0 h0 6
hn2−1
y n −1 −
6 hn2−1
yn +
2 hn −1
y ' n −1 +
4 hn −1
y ' n = f ' ' (b),
где f''(a) и f''(b) – заданные величины.
79
(5.16)
Из соотношений (5.16) получим y'0 = −
h 1 3 3 y '1 − y0 + y1 − 0 f ' ' (a); 2 2h0 2h0 4
y'n = −
h 1 3 3 y ' n −1 − y n −1 + y n + n −1 f ' ' (b). 2 2hn −1 2hn −1 4
Таким образом, оба варианта задания краевых условий дают нам два соотношения вида y' 0 = c0 y'1 + d 0 , c1 < 1 (5.17) y' n = cn y' n −1 + d n , cn < 1 Если постановка задачи не несет в себе задания краевых условий, то обычно полагают P' ' ( x0 ) = P' ' ( xn ) = 0 . Такой сплайн называется свободным кубическим сплайном и обладает свойствами минимальной кривизны [1,9]. В силу диагонального преобладания существует единственное решение системы (5.13) с краевыми условиями (5.17), оно может быть получено методом прогонки, который является устойчивым. Оценим остаточную и вычислительную погрешности в точке x для локального сплайна. Предполагается, что аппроксимируемая функция имеет на отрезке [a, b] непрерывную производную четвертого порядка. Значения f(xi) известны с одинаковой абсолютной погрешностью ∆*. тогда для любого x ∈ [ xi , xi +1 ] , i = 0 ,1,K , n − 1, остаточная погрешность ∆1 =
M 4i ( x − xi )2 ( x − xi +1 )2
4!
; M 4i =
max
f IV ( x ) ,
[ xi , xi + 1 ]
а вычислительная погрешность ∆ 2 = F1i ( x ) ∆* + F2i ( x ) ∆* + F3i ( x ) ∆* + F4i ( x ) ∆** ,
где ∆* и∆** – полные абсолютные погрешности величин f ' ( xi ), f ' ( xi +1 ) соответственно, заданных или вычисленных по формулам численного дифференцирования. Для глобального сплайна на всем отрезке [a, b] справедливы следующие оценки остаточных погрешностей в случае равноотстоящих узлов xi = 0,1,K, n [9]:
max
f ( x) − P ( x) ≤ M 4 h 4 ;
max
f ' ( x) − P' ( x) ≤ M 4 h 3 ;
max
f ' ' ( x) − P' ' ( x) ≤ M 4 h 2 ;
[ a ,b ]
[ a ,b ]
[ a ,b ]
M 4 = max f [ a ,b ]
80
IV
( x) .
6. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ
Пусть требуется вычислить интеграл b
J = ∫ f ( x )dx .
(6.1)
a
Если функция f(x) является непрерывной на отрезке [a, b], то интеграл (6.1) существует и может быть вычислен по формуле НьютонаЛейбница b
J = ∫ f ( x )dx = F ( b ) − F ( a ) .
(6.2)
a
Однако для большинства функций f(x) первообразную F(x) не удается выразить через элементарные функции. Кроме того, функция f(x) часто задается в виде таблицы ее значений для определенных значений аргумента. Все это порождает потребность в построении формул численного интегрирования или квадратурных формул. Приближенное равенство b
N
a
i =1
J = ∫ f ( x )dx ≈ ( b − a ) ∑ Ai ⋅ f ( xi ) = J N
(6.3)
называется квадратурной формулой, определяемой узлами xi ∈ [ a ,b ] и коэффициентами Ai. Величина RN ( f ) = J − J N (6.4) называется остаточным членом квадратурной формулы. В зависимости от способа задания подынтегральной функции f(x) будем рассматривать два различных в смысле реализации случая численного интегрирования. Задача 1. На отрезке [a, b] в узлах xi заданы значения fi некоторой функции f, принадлежащей определенному классу F. Требуется приближенно вычислить интеграл (6.1) и оценить погрешность полученного значения. Так обычно ставится задача численного интегрирования в том случае, когда подынтегральная функция задана в виде таблицы. Задача 2. На отрезке [a, b] функция f(x) задана в виде аналитического выражения. Требуется вычислить интеграл (6.1) с заданной предельно допустимой погрешностью ε. Рассмотрим алгоритм решения задач 1 и 2. Алгоритм решения задачи 1. 1. Выбирают конкретную квадратурную формулу (6.3) и вычисляют JN. Если значения функции f(x) заданы приближенно, то фактически вычисляют лишь приближенное значение J N для точного JN. 81
2. Приближенно принимают, что J ≈ J N . 3. Пользуясь конкретным выражением для остаточного члена R N ( f ) или оценкой его для выбранной квадратурной формулы, вычисляют погрешность метода ∆1 ≥ J − J N = RN ( f ) . 4. Определяют погрешность вычисления J N ∆2 ≥ J N − J N
по погрешностям приближенных значений f(xi). 5. Находят полную абсолютную погрешность приближенного значения J N : J − J N ≤ ∆1 + ∆ 2 = ∆ . 6. Получают решение задачи в виде J = JN ± ∆. Алгоритм решения задачи 2. 1. Представляют ε в виде суммы трех неотрицательных слагаемых: ε = ε1 + ε 2 + ε 3 , где ε1 – предельно допустимая погрешность метода: ε2 – предельно допустимая погрешность вычисления J N ; ε3 – предельно допустимая погрешность округления результата. 2. Выбирают N в квадратурной формуле так, чтобы выполнялось неравенство ∆1 = J − J N = R N ( f ) ≤ ε1 .
3. Вычисляют f(xi) с такой точностью, чтобы при подсчете J N по формуле (6.3) обеспечить выполнение неравенства ∆2 = J − J N ≤ ε2 . Для этого, очевидно, достаточно вычислить все f(xi) с абсолютной погрешностью ε2 ∆* ≤ . N ( b − a ) ∑ Ai i =1
4. Найденную в п.3. величину J N округляют (если ε 3 ≠ 0 ) с предельно допустимой погрешностью ε 3 до величины J N . 5. Получают решение задачи в виде J = JN ± ε.
82
6.1. Формула прямоугольников
Допустим, что f ( x ) ∈ C 2 [ a ,b ] . Отрезок [a, b] разделим на N равных частичных отрезков [ xi −1 , xi ] , (b − a) . N
где xi = a + ih, i = 0, N − 1; xn = b; h = Тогда b
xi
N
∫ f ( x )dx = ∑ ∫ f ( x )dx .
(6.5)
i =1 xi −1
a
Обозначим среднюю точку отрезка [ xi −1 , xi ] через x + xi ξ i = i −1 . (6.6) 2 Запишем для функции f(x) на каждом их отрезков [ xi −1 , xi ] формулу Тейлора с остаточным членом в форме Лагранжа f ( x) = f (ξ i ) + f ' (ξ i )( x − ξ i ) +
f ' ' (η i ) (x − ξi )2 , 2!
(6.7)
η i ∈ ( xi −1 , xi ).
Подставим в правую часть соотношения (6.5) вместо f(x) ее представление (6.7) и получим (6.8): b
N
∫ f ( x)dx = ∑
a
xi
∫ f (ξ ) + f ' (ξ )( x − ξ ) + i
i =1 x i −1
i
i
f ' ' (ηi ) ( x − ξi ) 2 dx = 2!
xi xi xi f ' ' (ηi )( x − ξi ) 2 dx . = ∑ f (ξi ) ∫ dx + f ' (ξi ) ∫ ( x − ξi )dx + ∫ 2 i =1 xi −1 x i −1 x i −1 N
xi
∫
Используя для вычисления
x i −1
f ' ' ( ηi )( x − ξ i )2 dx теорему о 2
среднем значении интеграла и учитывая, что
xi
∫ ( x − ξ i )dx = 0 , получим
x i −1
h3 N ∫ f ( x )dx = h ∑ f ( ξ i ) + 24 ∑ f ' ' ( ηi ), ηi ∈ ( xi −1 , xi ) . i =1 i =1 a
b
N
(6.9)
В силу непрерывности f ' ' (x) существует такая точка η ∈ ( a ,b ) , что N
∑ f ' ' ( ηi ) = Nf ' ' ( η ) .
i =1
Используя (6.10), получаем h3 ∫ f ( x )dx = h ∑ f ( ξ i ) + 24 Nf ' ' ( η ) . i =1 a
b
N
83
(6.10)
или, так как h =
(b − a ) , N
b
N 1
∫ f ( x )dx = ( b − a ) ∑
i =1N a Приближенное равенство
f ( ξi ) +
b
N 1
a
i =1 N
пр f ( ξi ) = J N
∫ f ( x )dx ≈ ( b − a ) ∑
называется
квадратурной
(b − a ) 2 h f '' ( η ) . 24
(6.11)
(6.12)
формулой
прямоугольников, 1 определяемой узлами ξ i ∈ [a, b] и коэффициентами Ai = . Величина N b пр ( b − a ) 2 R N ( f ) = ∫ f ( x )dx − J N = h f '' ( η ) (6.13) 24 a является остаточным членом формулы прямоугольников. Оценка остаточной погрешности формулы прямоугольников может быть записана в виде (b − a ) 2 RN ( f ) ≤ h M 2 = ∆1 , (6.14) 24 где M 2 = max f ' ' ( x ) . [ a ,b ]
Выражения для остаточного члена (6.13) и остаточной погрешности (6.14) показывают, что формула прямоугольников (6.12) является точной для любой линейной функции, т.к. вторая производная такой функции равна нулю и, следовательно, ∆1 = 0 . ∆2 формулы Оценим вычислительную погрешность прямоугольников, которая возникает за счет приближенного вычисления значений функции f(x) в узлах ξ i . Пусть, например, значения f ( ξ i ) в формуле (6.12) вычислены с одинаковой абсолютной погрешностью ∆* , тогда N 1 ∆ 2 = J N − J N = ( b − a ) ∑ ∆* = ( b − a )∆* . i =1 N
(6.15)
6.2. Формула трапеций
Предположим, что f ( x ) ∈ C 2 [ a ,b ] . Разделим отрезок [a, b] на N равных частей, тогда b
N
xi
∫ f ( x )dx = ∑ ∫ f ( x )dx ,
a
i =1 x i − 1
84
(6.16)
b−a . N Заменим функцию f(x) на каждом из отрезков [ xi −1 , xi ] первой интерполяционной формулой Ньютона первой степени
где xi = a + ih , i = 0 , N − 1; x N = b , h =
f ( x) = f ( xi −1 ) +
x − xi −1 f ' ' (η i ) ( x − xi −1 )( x − xi ) , f ( xi ) − f ( xi −1 ) + h 2
(6.17)
η i ∈ ( xi −1 , xi ).
Подставляя формулу (6.17) в правую часть (6.16), интегрируя и используя теорему о среднем значении интеграла, получим b
∫ a
N
f ( x)dx = ∑ h i =1
f ( xi −1 ) + f ( xi ) h 3 N − ∑ f ' ' (η i ), 2 12 i =1
(6.18)
η i ∈ ( xi −1 , xi ).
В силу (6.10) получаем f ( x0 ) + f ( x N ) N −1 h2 f ( x ) dx h f ( x ) (b − a) f ' ' (η ), = + ∑ i − ∫a 2 i =1 12 η ∈ (a, b).
(6.19)
Приближенное равенство b b − a f ( x0 ) + f ( x N ) N −1 J = ∫ f ( x )dx ≈ + ∑ f ( xi N 2 i =1 a называется формулой трапеций. Величина
(6.20)
b
тр ) = J N
h2 тр RN ( f ) = J − J N = − ( b − a ) f ' ' ( η ) 12
(6.21)
является остаточным членом формулы трапеций. Оценка остаточной погрешности формулы трапеций может быть записана в виде b−a 2 RN ( f ) ≤ h M 2 = ∆1 . (6.22) 12 Формула трапеций, как и формула прямоугольников, является точной для любой линейной функции. Вычислительная погрешность формулы трапеций также равна ∆ 2 = ( b − a )∆* . (6.23) Так как остаточные члены формул прямоугольников и трапеций (6.13) и (6.21) имеют противоположные знаки, формулы (6.12) и (6.20) дают двустороннее приближение для интеграла (6.1), т.е. J Nпр < J < J Nтр , если f ' ' ( x) > 0; J Nтр < J < J Nпр , если f ' ' ( x) < 0.
В таком случае можно принять, что тр пр + JN JN ~ =J, J≈ 2
85
(6.24)
тогда ~ J−J
d ; z q +1 ≥ d . Тогда l ( zq ) = ≥
zq +1 − 2 zq + zq −1 h
( zq −1 − zq ) h2
2
− pq zq =
( zq +1 − zq ) + ( zq −1 − zq ) h2
− pq zq ≥
>0
- противоречие с l( q j ) ≤ 0 . Лемма 1 доказана. Лемма 2. Если P( x ) ≥ 0 , то для любой системы чисел zj выполняется неравенство
max z j ≤ max( z 0 , z n ) + Z
0≤ j ≤ n
где Z =
max l( z j ) .
0 ≤ j ≤ n −1
Введем в рассмотрение функцию 100
H2 , 8
x x x( H − x ) +Z ω( x ) = z 0 1 − + z n 2 H H Через ω j обозначим jh jh jh( H − jh ) +Z ω j = ω( x j ) = z 0 1 − + z n . 2 H H Очевидно, что ω j ≥ 0 . Это многочлен второй степени. Для него конечная разность ( −z ) второго порядка ∆2 ω j = h 2 2! , следовательно, 2 ∆2 ω j ω j +1 − 2ω j + ω j −1 = = −Z . h2 h2 Отсюда следует, что l (ω j ) =
ω j +1 − 2ω j + ω j −1
h2 l (ω j ± z j ) ≤ Z ± l ( z j ) ≤ 0.
− p jω j ≤ Z ;
Очевидно, что ω 0 ± z 0 = z 0 ± z 0 ≥ 0; ω n ± z n = z n ± z n ≥ 0 . Числа ω j ± z j удовлетворяют условиям леммы 1. Поэтому ω j ± z j ≥ 0 . Отсюда следует оценка z j ≤ ω j ≤ max ω j . 0≤ j ≤ n
Имеем неравенство jh jh jh jh z 0 1 − + z n ≤ max( z 0 , z n )1 − + = max( z 0 , z n ) . H H H H Кроме того, H2 ; max x( H − x ) = 4 0≤ x ≤ H Поэтому имеем
H2 jh( H − jh ) ≤ . 4
ZH 2 . max ω j ≤ ( z 0 , z n ) + 8 0≤ j ≤ n Лемма 2 доказана. Рассмотрим случай, когда функции P(x) и f(x) дважды непрерывно дифференцируемы. В курсе дифференциальных уравнений доказывается, что когда краевая задача (7.25)-(7.26) имеет единственное решение y(x), которое четырежды непрерывно дифференцируемо. Наша
101
задача – оценить разность R j = y( x j ) − y j для j = 0 ,1,...n . R0 = Rn = 0 – это краевые условия. Рассмотрим l( y( x j )) − f j =
y( x j +1 ) − 2 y( x j ) + y( x j −1 )
− p j y( x j ) − f j . h2 Согласно дифференциальному уравнению (7.25) для любого j y' ' ( x j ) − p j y( x j ) = f j , т.е. y' ' ( x j ) = p j y( x j ) + f j Следовательно, l( y( x j )) − f j =
y( x j +1 ) − 2 y( x j ) + y( x j −1 ) 2
− y' ' ( x j ).
h Левая часть этого равенства есть разность между приближенным значением второй производной в точке xj, полученным по формуле численного дифференцирования, и точным значением этой производной y(xj) и равна остаточному члену этой формулы l ( y ( x j )) − f j =
ξ i ∈ [ x j −1 , x j ],
h 2 y IV (ξ j )
; 12 j = 1,2,..., n − 1.
Согласно (7.27) имеем l( y j ) − f j = 0 , Вычтем (7.30) из (7.29) l( y( x j ) − y j ) =
(7.29)
j = 1,..., n − 1 . h 2 y IV ( ξ j ) 12
(7.30)
; т.е.
h2M 4 l( R j ) ≤ ; M 4 = max y IV ( x ) . 12 [ 0 ,H ] Воспользуемся леммой 2 для чисел R j , j = 0,1,..., n . Имеем H 2 h2M 4 H 2M 4h2 = . 8 12 96 Таким образом, при h → 0 , т.е. неограниченном сгущении сетки, решение разностной задачи приближается к решению дифференциальной. Разностный метод решения краевой задачи (7.25)-(7.26) используется также и при P( x ) < 0 , хотя успешный результат заранее предвидеть трудно. Для оценки получаемого решения в этом случае нужно провести расчеты для различных значений шага h (не менее трех) и убедиться в том, что полученные значения функции в одних и тех же узлах близки между собой и их разность уменьшается, что говорит о стремлении решения к некоторому пределу при h → 0 . R j ≤ max( R0 , Rn ) +
102
Литература
1. Бахвалов Н.С. Численные методы. –М: Наука, 1975. 2. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. – М.: Лаборатория Базовых Знаний, 2001. 3. Березин И.С., Жидков Н.П. Методы вычислений. – Т.1. – М.: Наука, 1966; - Т.2. – М.: Физматгиз, 1962. 4. Волков Е.А. Численные методы. – М.: Наука, 1987. 5. Демидович Б.П., Марон И.А. Основы вычислительной математики. – М.: Наука, 1970. 6. Демидович Б.П., Марон И.А., Шувалова Э.З. численные методы анализа. – М: Наука, 1967. 7. Калиткин Н.Н., Численные методы. - М.: Наука, 1978. 8. Курош А.Г. Курс высшей алгебры. - М.: Наука, 1968. 9. Самарский А.А., Гулин А.В. Численные методы. – М: Наука, 1989. 10. Турчак Л.И. Основы численных методов. – М: Наука, 1987. 11. Фаддеев Д.К., Фаддеева В.Н. вычислительные методы линейной алгебры. – М: Физматгиз, 1963. 12. Фихтенгольц Г.М. Математический анализ. –Т.1, 2. – М: Гостехиздат, 1957. 13. Форсайт Дж., Малькольм М., Моулер К. Машинные методы математических вычислений. – М: Мир, 1980.
103