Самарский А.А., Гулин А.В. Численные методы (1989) (1095856), страница 31
Текст из файла (страница 31)
+Ь-)+4(1и+1п+ .. +)ь-«Н. Чтобы не использовать дробных индексов, можно обозначить х,=а+0,551, [,=[(х,), 1=0, 1,...,2У, й)Ч=Ь вЂ” а и записать формулу Симпсона в виде ь ~ (х) йх = — Уо + 1,и + 2 (1, + ), + ... + [~л-~) + 6М О + 4 Дь + 1ь + ° .. + [ ч-ьЦ (15) Прежде чем переходить к оценке погрешности формулы (14), заметим, что она является точной для любого многочлена третьей 166 степени, т. е. имеет место точное равенство «[ л [ (х) [[х = — ()'[, + 4['~ и + ~~), «~-« если 1(х) =а,+а,х+а,х«+а,х'. Это утверждение нетрудно прове- рить непосредственно, что и предоставляется сделать читателю.
Для оценки погрешности формулы Симпсона воспользуемся интерполяционным многочленом Эрмита. Построим многочлен третьей степени Н,(х) такой, что Н (»; «) =[«(х~ «), Н (х[-и) =~(»[-и), Н,(х; у) =1 (»~ и), Н«(х[) =7(х[). Из 3 3 гл. 3 известно, что такой многочлен существует и единствен. Он построен в явном виде в примере из п. 2 $3 гл. 3. Однако нам даже не потребуется явный вид многочлена Н,(х).
Вспоминая, что формула Симпсона точна для любого многочлена третьей степени, получим «; а Н,(х)йх= — (Н«(х;,) + 4Н«(х[-и) + Н,(х;)) = «у = — ([;, + 4[[ и + [;). (16) Ь 6 Представим теперь 1(х) в виде )'(х) =Н,(х)+г,(х), хеи(х, ь х,), (17) где г;(х) — погрешность интерполирования многочленом Эрмита Н,(х). Интегрируя (17) и учитывая (16), получим «[ '[ 7'(х) Ых — — (~, + 4)[ и + )'[) = ~ г; (х) 4(х.
(18) 6 «[ 1 « Согласно (14) из $3 гл. 3 имеем 7ш(ь 1 г;(х) = (х — х;) (х — х и)'(х — х[,), 24 поэтому из (18) для погрешности ф, формулы (14) получаем оценку «[ ~ф[~ ( " ~ (х — х[) (х — х[ и)'(х — »[,) [(х, «[-« где М,» = зпр ~ 7 (х) ~. «~в[«„.о«[[ Вычисляя интеграл, приходим окончательно к оценке ав М,.ь 26ао [66 Погрешность составной формулы Симпсона (15) оценивается так: )Ч/)( ( и) М„ЬУ=Ь вЂ” а, М = зпр 11' (х)~. 2880 яы[а,а) Отсюда видно, что формула Симпсона существенно точнее, чем формулы прямоугольников и трапеций.
На частичном отрезке она имеет точность 0(Ь'), а на всем отрезке — 0(Ь'). Приведем вывод формулы Симпсона, основанный на методе зкстраполяцнн. Метод зхсграполяции состоит в следующем. Проведем два расчета по формуле трапеций (12), первый расчет с шагом И, когда вычисляется сумма а/ 1/+ 1/сп /л — — ~~~~ и, 1/ — — 1 (х/), х/ — — а+ (и, 2 /-х И (Ь вЂ” а)1/У, н второй расчет — с шагом 0,5И, когда вычисляется сумма 1/-х+ 1/-у 1/-и+ 1/ И =;У', (1/ т+ 21/ у+ 1/) — 1/ у = 1(х/ — о би). /=г Используя разложение по формуле Тейлора, можно показать, что для до- статочно гладкой функции 1(х) справедливо равенство /+с,аз+О(И ), где / — исходный интеграл (1) и сг — постоянная, не зависящая от И. Точно так же /И1з /а/ — — / + с, ~ — ~ + О (ИЯ).
'1 2 ~ Отсюда получим, что — — / = — / + О (ИЯ), 1 3 Л/з 4 Л 4 т. е. выражение 4 ! Яа /а/ — /Л 3 з 3 совпадает с интегралом / с точностью до величии 0(ИЯ). В данном примере не обязательно проводить расчет ва двух сетках, так как можно построить явное выражение для суммы /л. Действительно, " 1/+1/ х 4/ю,— /л=,~ ~(1/,+21/ у+1/)и —,~~ и= /=1 /=т // я 1/-а+41/-к+1/ /, Гчо 2 1/,+41/ у+1/ 6 Таким образом, снова получим квадратурную формулу Симпсона.
167 5. Апостериорная оценка погрешности методом Рунге. Автома- тический выбор шага интегрирования. Величина погрешности чис- ленного интегрирования зависит как от шага сетки Ь, так и от глад- кости подынтегральной функции 1(х). Например, в оценку ()!), наряду с й, входит величина М,„.= шах (~х(х)), хм1х; .х;] которая может сильно меняться от точки к тачке и, вообще говоря, заранее неизвестна. Если величина погрешности велика, то ее можно уменьшить путем измельчения сетки на данном отрезке [х, „ хз). Для этого прежде всего надо уметь апостериорно, т.
е. после проведения расчета, оценивать погрешность. Апостериорную оценку погрешности можно осуществить методом Рунге, который мы поясним сначала на примере формулы трапеций. Пусть отрезок [а, Ь] разбит на частичные отрезки [х, „х,], 1= 1, 2, ..., У, х,=а, х„=Ь, имеющие, может быть, разную длину Ь,=х,— х,, На каждом частичном отрезке применяется формула трапеций х; 1з+ 1ьч 1з= ~ ~(х)з(х= ' 3ь;=1зх. 2 хз з Согласно (! !) имеем (2!) / "з 1~ 1 — 1 з1= з[ — ) 168 1з — 1зл = сзйз (20) где константа гч зависит от гладкости 1(х) и заРанее неизвестна. Измельчим на отрезке [х, „хД сетку в два раза и повторим расчет с шагом 0,5Ь, т. е. вычислим сумму аз 1лузл = Чз-з + 2~з-м + )з) — . 4 Тогда согласно (20) будем иметь 11 — 141з,з = сс [ — '! ° 2 Из соотношений (20), (21) можно исключить константу с, и получить оценку погрешности, которая содержит лишь известные величины 1з 1ызз' 8 1з — 1лх — (1лузх — 1з и) з 1 1 11 — 1мз,з = — (1з — 14.1) — — (1мз,з — 1л,с) 8 ' 7 Разумеется, метод Рунге можно применять и для оценки погрешности других квадратурных формул.
Пусть какая-то квадратурная формула имеет на частичном отрезке порядок точности лз, т. е. 1з — 1зз=с,й;". Тогда откуда получим 1г — 1лз 2 (1! — /лмл) /лмх /лх /! — /лих 2 — 1 (22) (23) Возможность апостериорно оценивать погрешность позволяет вычислять интеграл (1) с заданной точностью в>0 путем автоматического выбора шага интегрирования )!а Пусть используется составная квадратурная формула 1 — /л= Я 1лх, то получим !1 — /лм ~( ~~~~~ Йс=е, т. е.
будет достигнута заданная точность е. Если же на каком-то из частичных отрезков оценка (24) не будет выполняться, то шаг на этом отрезке надо измельчить еше в два раза и снова оценить погрешность. Измельчение сетки на данном отрезке следует проводить до тех пор, пока не будет достигнута оценка вида (24). Заметим, что для некоторых функций /(х) такое измельчение может продолжаться слишком долго. Поэтому в соответствующей программе следует предусмотреть ограничение сверху на число нзмельчений, а также возможность увеличения в. Таким образом, автоматический выбор шага интегрирования приводит к тому, что интегрирование ведется с крупным шагом на участках плавного изменения функции /(х) и с мелким шагом— на участках быстрого изменения /(х).
Это позволяет при заданной точности е уменьшить количество вычислений значений /(х) по сравнению с расчетом на сетке с постоянным шагом. Подчеркнем, что для нахождения сумм /лм, не надо пересчитывать значения 1(х) во всех узлах, достаточно вычислять /(х) только в новых узлах. 6. Экстраполяция Ричардсона. Способ повышения точности квадратурной формулы, рассмотренный в конце п. 4, можно обоб!цить на случай многократного измельчения сетки.
!вэ где /,,— квадратурная сумма на частичном отрезке, причем на каждом частичном отрезке используется одна и та же квадратурная формула (например, формула трапеций, Симпсона и др.). Проведем на каждом частичном отрезке !х, ь х;) все вычисления дважды, один раз — с шагом /!, и второй раз — с шагом 0,5Е, и оценим погрешность по правилу Рунге (23).
Если для заданного е>0 будут выполняться неравенства !1! — 1л;ил!= ~ ' ' ( — ', 1=1,2, ..., й/, (24) 2"' — ! Ь вЂ” а 1'",=1+а Ф +0(Ьь-~), 61!=1+а,Ь"'+ О(Ь ), получим 1=4", + о(©,), (27) где обозначено 1о' — 4" Ф! =4" + "' (28) А-! ь-! ! а, По формулам (28) можно вычислить величины 1),",!, Ь=О, 1, ... ..., и — 1. Согласно (27), они дают более точное, чем 6~!, приближение к интегралу 1. Этот процесс повышения точности можно продолжить, вычисляя величины 1~„с помощью рекуррентных соотнол шений 1Л ,Ш ау 1=1,2,...,ш, Ь=1,2,...,(п — 1+1, (29) гта Предположим, что для вычисления интеграла (1) отрезок [а, Ь) разбит на У равных отрезков длины Ь=(6 — а)/11 и на каждом частичном отрезке применяется одна и та же квадратуриая формула. Тогда исходный интеграл 1 заменяется некоторой квадратурной суммой 1„причем возникающая погрешность зависит от шага сетки Ь.
Для некоторых квадратурных формул удается получить разложение погрешности 6 — 1 по степеням Ь. Предположим, что для данной квадратурной суммы 1, существует разложение 1ь=1+а,Ь"*+а,Ь" + ... +а„Ь +0(Ь ""), (25) где О<а,<а,«...а <а +, и коэффициенты а< не зависят от Ь. Подчеркнем, что получение подобных разложений является трудной задачей анализа и здесь не рассматривается. Явный вид коэффициентов а, нам не потребуется, однако величины а, предполагаются известными. Вычислим приближенно значение интеграла 1 по данной квадратурной формуле на последовательности сеток с шагами Ь,=Ь, Ь„Ь„..., Ь .
Для определенности будем предполагать, что сетка измельчается по геометрической прогрессии, т. е. Ь„=д"Ь„Ь=О, 1,..., !и, где дев(О, !). Вычисляя квадратурную сумму Д, при различных значениях Ь, получим величины 1л, Ь=О, 1,..., л!, причем согласно (25) будем иметь 1ль — — 1+а,Ь~а+аъЬь+ ...
+ а. Ь"„~+ 0(Ьь"'). (26) Обозначим 1'"=1, 1)ь!=1ь . Исключая коэффициент а, из соот- ношений Лемма 1. Пусть для квадратурной суммы 1, справедливо разложение (25) и сетка излсельчается по правилу Ь,=усд, А=О, 1,... ..., и. Тогда для величин Я,, определенных согласно (29), справедливы разложения 1~ь~~~,=1+ Ь'; ~Ьь-с+ Ьс~,йь~с + ... +Ьадс с+ 0(й~ д '), 1=1,2, ..., пс, 1=1,2, ..., пс — 1+1, (30) 1ас 1+,ы ЬРЬас +О(й +) (31) а 1,"„' =1+ ~ Ьс[ЕЬ."с+ 0(Ь," +') с=с и, следовательно, 1ссс 1ю ° Ьрс (Ь"с„Ьсс ) + О(Ь с-с далее, подставляя полученную разность в (29) при 1=1 и учитывая (31), получим ьс+'с=1+ ~Ьссс ас,+ С „'~ Ьсс(Ьас — Ьа',)+О(Ь"',+'), с=с с -ч с-с т.
е. а ас ас 1'о=1+ ~ Ьсо4', ' ' +О(Ь".,ы). йы ~з ' ь' ас Отсюда получаем с=сы т. е. равенство (30) выполняется с1=1+1, причем ас ас Ьс"" — ч сс Ью с ас с ~ 1 — е с=1+1, ..., сп. Лемма 1 доказана. 17$ где коэффициенты ЬсссС не зависят от сетки.