1626435584-7c6402f545ecf856225d6cf8d21519c9 (844233), страница 17
Текст из файла (страница 17)
(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. быть малым, иначе точность вычисления по этой таблице будет плохой. А на тех участках, где функция меняется медленно, хорошую точность обеспечивает и крупный шаг таблицы; мелкий шаг при этом даже невыгоден, ибо он приводит к сильному увеличению объема таблицы.
Поэтому неравномерная сетка, удачно подобранная для определенной функции, позволяет построить таблицу небольшого объема, по которой можно производить вычисления с хорошей точностью. Разумеется, для других функций эта сетка может быть малопригодной. Каждая конкретная сетка либо равномерна (т. е. ее шаг й! = х... — х! постоянен), либо неравномерна. Но нам нередко приходится сгущать сетку, т. е. рассматривать на ~а, Ь) последовательность сеток х,'.н>, Π— ! ~ А!, с возрастающим числом интервалов АУ. Разумеется, если таблица уже задана, то сетку сгущать невозможно, но можно ее разреживать, выбрасывая из таблицы половину, две трети н т.
д. точек. Это также является некоторым способом построения последовательности сеток. Сгущение сеток широко применяется при численном решении дифференциальных и интегральных уравнений. Среди последовательностей сеток важное место занимают квазиравнол!ерные сетки. Будем называть сетки квазиравномерными, если существует дважды непрерывно дифференцируемая функция х=$(1), преобразующая отрезок 0~1==.1 в отрезок ап-.х=-Ь так, что каждой сетке х!"! соответствует равномерная сетка 1!"! = =11М, причем на этом отрезке $'(1).-.. е) О, а $4(1) ограничена. Если эти условия выполнены, то шаг сетки й; = $' (14)1А!, а разность двух соседних шагов есть й! — Ь! -$" (1!)1Ж'. Значит, 79 ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ ГЛ 11П при болыпом числе узлов разность соседних шагов Л11 Ьз, т. е. много меньше длины шага, и соседние интервалы почти равны.