Н.Н. Калиткин - Численные методы (1133437), страница 16
Текст из файла (страница 16)
(10) Все формулы (6) — (1О) имеют четный порядок точности. Заметим, что все эти формулы написаны для случая равномерной сетки; применение их на произвольной неравномерной сетке для первой производной приводит к низкой точности О(й), а для второй производной — к грубой ошибке. На равномерной сетке для априорной оценки точности формул часто применяют способ разложения по формуле Тейлора— Маклорена. Предположим, например, что функция у (х) имеет непрерывную четвертую производную, и выразим значения функции в узлах х1, 1 через значения функции и ее производных в центре симметрии узлов (в данном случае этим центром является узел х;): у (х1, 1) = у (х; +: й) = У1 + йу1+ — й'у1 .+. — йзу1 + 1" 1 З + 24 Р где Ч, есть некотоРаЯ точка интеРвала (хь х;,,), а Ч есть некоторая точка интервала (х, „х;).
Подставляя эти разложения во вторую разность, стоящую в правой части формулы (7) для второй производной, получим -з (у1~-1 — 2у1+у1-1) у1 + 24(у (Ч4+ у [Ч П =у1'+О (й ). (12) Это подтверждает ранее сделанную оценку и уточняет величину остаточного члена, который оказался равным йзу1Р(Ч)/12. Такой способ получения остаточного члена проще, чем непосредственное вычисление по формуле (1). Особенно часто он применяется при исследовании аппроксимации разностных схем (см. главу 1Х). 3. Метод Рунге — Ромберга. При вычислении одной н той же величины формулы с ббльшим числом узлов дают более высокий порядок точности, но они более громоздки.
Для оценки их точности надо привлекать дополнительный узел, что требует еще более сложных вычислений. Рассмотрим более простой способ получения высокого порядка точности. Из формулы (12) видно, что погрешность простейшей формулы (7) для четырежды дифференцируемой функции имеет вид Я = = й1ф (Ч), где Ч вЂ” некоторая точка вблизи узла хь Если у1Р(х) липшнц-непрерывна, то оценку нетрудно уточнить: Й й'1р(х1) + гл, пп ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ 75 + 0(й'). Пусть в общем случае имеется некоторая приближенная формула ь(х, й) для вычисления величины г(х) по значениям на равномерной сетке с шагом й, а остаточный член этой формулы имеет следующую структуру: г (х) — Ь (х, й) = ~р (х) ЬР + 0 ()га+ ').
(13) Произведем теперь расчет по той же приближенной формуле для той же точки х, но используя равномерную сетку с другим шагом «)7. Тогда получим значение Ь" (х, «й), связанное с точным значением соотношением г (х) — ь (х, «й) =-ф (х) («)т)Р+ 0 ((«п)Р"'). Заметим, что 0((«й)Р") — 0(ЛР«а).
Имея два расчета на разных сетках, нетрудно оценить величину погрешности. Для этого вычтем (13) из (14) и получим первую формулу Рунге: К=ф(х) ЬР ='(" "', '-,' ""'+0(йР- '). (15) Первое слагаемое справа есть главный член погрешности. Таким образом, расчет по второй сетке позволяет оценить погрешность расчета на первой сетке (с точностью до членов более высокого порядка).
Можно исключить найденную погрешность (15) из формулы (13) и получить результат с более высокой точностью по влюрой формуле Рунге: ( )=~(, )а)+~( ' )„, ~( ' )+0(й +'). (Рб) Этот метод оценки погрешности и повышения точности результата очень прост, применим в большом числе случаев и исключительно эффективен, Рассмотрим два примера его применения к численному диффе- Таблица 7 ренцироваиию. Пример 1. Пусть функция' у(х) =1ях задана таблицей 7 и требуется вычислить у' (3). Выберем для вычислений простейшую формулу (6). Полагая 6=1, т.
е. производя вычисления по точкам х=2 и х=4, получим у' (3) = 0,151. Увеличивая шаг вдвое («=-2), т. е. вычисляя производную по точкам х=1 и х=5, получим у'(3)-0,175. Проводя вычисления по формуле Рунге (16), где согласно оценке (6) берется р=2, получим уточненное значение у' (3) =0,143; это всего 2а««отличается от искомого значения у'(3) =0,145.
Пример 2. Выведем формулу высокой точности из формулы низкой точности. Возьмем простейшую формулу для вычисления 76 ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ 1гл. И! первой производной в. середине интервала (8) и запишем ее, выбирая сначала соседние узлы, а затем более удаленные: узм(Й) (уз уз)lй~ узах(8Й) = (уз — уо)18Й Порядок точности формулы р = 2, а коэффициент увеличения шага г=3, поэтому уточнение методом Рунге дает формулу (9): Узж --УЗ12(й)+ а. [Уз12(й) Уз12(ЗЙ)) = Зай Ьо 27У1+ 27у, — Уз). 1,, 1 Отсюда видно, что для получения высокого порядка точности не обязательно производить вычисления непосредственно по формулам высокого порядка точности; можно произвести вычисления по простым формулам низкой точности на разных сетках и затем уточнить результат методом Рунге.
Последний способ предпочтительней еще потому, что величина поправки (15) дает апостериорную оценку точности. Метод Рунге сбобщается на случай произвольного числа сеток: Пусть функция у (х) имеет достаточно высокие непрерывные производные.
Тогда в разложениях Тейлора типа (11) можно удерживать большое число членов и подстановка их в формулы типа (б) — (10) приводит к представлению остаточного члена в виде ряда з (х) — ь (х, й) = ~', зр (х) Й". (17) ~п > р Пусть расчет проведен па у различных сетках с шагами Йоз 1.= д. Тогда из остаточного члена можно исключить йервые д — 1 слагаемых. Для этого перепишем соотношение (17), оставляя первые д — 1 члены погрешности: и+а 2 з(х) — ~~ ар„(х) Йа =- ь (х, Й:)+ 0(й'+' '), 1 =7'(д. Ф=р 1 о+а — 2 21 1п Ра-2 1 а ар+1 Л+- 1,п ар+1 ар+а †и 2 2 "' 2 Ь(х, Ьй ап1 РР~+' ь(х, ао) йпз Аро Р ' г (х) = / и ч. а — -*' 1, й (х, Ла) а,", й," Р ' 1р+1 1пьа — 2 'а 'а " 'а + О (Й'о ' '). (18) Эта формула приводит к повышению порядка точности результата Это система линейных уравнений относительно величин г (х), ф (х).
Решая ее по правилу 1(рамера, получим уточненное значение по формуле Ромберга Гл.!!и числвннов диФФегенциРОВАниГ на !) — 1 по сравнению с исходной формулой ь(х, Л), т. е. каждая лишняя сетка позволяет повысить порядок точности на единицу. Формула Ромберга удобна тем, что ее можно применять при любом числе равномерных сеток и любом соотношении их шагов. Ее недостатками являются сравнительная громоздкость и отсутсгвие в промежуточных выкладках апостериорных оценок точности. Если сетки выбраны так, что сгущение сеток происходит всегда в одно и то же число раз (т.
е. Л«.=-гЛ; »= ... =г/-»Л!), то вместо формулы Ромберга удобнее рекуррентно применять метод Рунге. Для этого берут последовательные пары сеток (Л„Л,), (Л„Л»), (Л„Л,) и т. д. По каждой паре производят уточнение методом Рунге, исключая тем самым главный член погрешности ф (х) Л». Поэтому в уточненных величинах главный член погрешностй будет иметь вид фр»»(х) Л»»», где шаг можно условно принять для первой пары сеток за Л„для второй — за Л«и т.
д. (это верно, только если Л,/Л!, одинаково для всех пар сеток). Уточненные значения такйм же образом группируют в пары и исключают ошибку следующего порядка 0 (Л» '). Всего можно произвести !) — 1 уточнение, на единицу меньше числа сеток. При каждом уточнении вычисляется погрешность (15), дающая апостериорную оценку точности на данном этапе вычислений. Пример такого вычисления будет дан в главе 1У, За-мечание 1. Если исходная формула для вычисления ь(х, Л) имеет симметричный вид, то на равномерной сетке обычно все нечетные члены ряда (17) обращаются в нуль. При этом пользоваться общей формулой (!8) можно, но невыгодно, ибо она не учитывает дополнительной информации о нулевых коэффициентах. Следует оставить в сумме (17) только степени Л», Л»»», Л» ', ...
и соответственно изменить формулу Ромберга. Аналогично изменяется рекуррентная процедура Рунге: при очередном исключении ошибки порядок точности повышается не на 1, а на 2. Примером может служить данный выше вывод формулы (9) из формулы (8), когда после первого уточнения погрешность уменьшилась с 0 (Л') сразу до 0(Л«). Замечание 2.
Допустимое число членов суммы (17) связано с количеством существующих у функции непрерывных производных. Поэтому для недостаточно гладких функций бессмысленно брать большое число сеток'. Практически даже для «хороших» функций используют не более 3 — 5 сеток; обычно отношение г пх шагов стараются выбрать равным 2. Замечание 3. Метод Рунге — Ромберга можно применять только в том случае, если ошибка представима в виде (17), где коэффициенты ф (к) одинаковы для всех сеток. Строго говоря, при численном дифференцировании эти коэффициенты зависят от положения узлов сетки.
Но если выбранные конфигурации узлов 78 ЧНСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ !Гл. !и на всех сетках подобны относительно точки х (рпс. 14, а), то зависимость от узлов одинакова для всех сеток и сводится к величине шага. Тогда мегод Рунге — Ромберга применим. Если же правило подобия нарушено (рис. 14, б, в), то метод применять нельзя. Поэтому при численном дифференцировании метод Рунге— Ромберга удается применять только для нахождения производных в узлах или серединах интервалов равномерных (пли списанных далее квазиравномерных) сеток.
Но эти случаи являются достаточно важными в практических приложе. ° ° . П 4 «..р «..р. Р -- "" Р Рг Р "Рч "" "" " "" 'Р"Р вашш и разностных методах решения задач для дифференциальных и интегральр'-" . 4. К р р . Пр д * * рую, Ру Р .г резко меняется, шаг таблицы должен Рис. 14. быть малым, иначе точность вычисления по этой таблице будет плохой. А на тех участках, где функция меняется медленно, хорошую точность обеспечивает и крупный шаг таблицы; мелкий шаг при этом даже невыгоден, ибо он приводит к сильному увеличению объема таблицы. Поэтому неравномерная сетка, удачно подобранная для определенной функции, позволяет построить таблицу небольшого объема, по которой можно производить вычисления с хорошей точностью. Разумеется, для других функций эта сетка может быть малопригодной.