Федоренко Р.П. Введение в вычислительную физику (1185915), страница 20
Текст из файла (страница 20)
Лемма 2. Пусть р(г) удовлетворяет условию Липшнца. Тогда ~ а„/с„~ и 1 + Ст, где постоянная С не зависит от т. Действительно, а„аи -т(2) — ш — = — — — =1~-аа). с„а1С„+а г>+Ш С учетом приведенных оценок имеем ~Ь„~~~и(1+Ст))Ь )+6, ~е„~иа. Используя это соотношение и стандартные рассуждения (см.
з 5, 8), получаем !Ь„! и(1+Ст) !Ьа!+ ст з. При и и Т/ с и достаточно малых т, таких, что Ст < 1, мы приходим к оценке ~Ь ~ и ест~ Ь ~ 4.— 'аст Обсудим этот результат. Прежде всего есть величина е/Ст, нз которой следует, что прн слишком малом шаге т погрешность может стать недопустимо большой. Напомним, что а зависит от разрядности чисел ЭВМ. То, что прн разностной аппроксимации дифференциальных уравнений конечная разрядность чисел ограничивает снизу разумный малый шаг т, нам уже известно; здесь это обстоятельство проявилось еще раз. Однако в большинстве расчетов М равны 100, 1000, так что отношение е/т очень мало (на БЭСМ-6, во всяком случае; на ЕС уже нужно быть осторожнее). В полученной оценке есть неприятный множитель ест.
При решении задач на больших интервалах времени, прн СТ м 1, возможны серьезные затруднения. Однако дело не только в величине Т, но н в гладкости функции р(~), т.е. чем меньше ее константа Лнпшица, тем благоприятнее ситуация. Нужно, однако, иметь в виду некоторый неиспользованный нами в грубой оценке резерв: если, как это часто бывает в прикладных задачах, Ь„> а„+ с„+ зз (з > О), то Р„и д с 1, оценка может быть существенно улучшена и в неко- 4 — 1833 ООНОВы ВычислитеяьиОЙ мАтемАтики 1ч. ! торых случаях можно исключить множитель ест.
Но мы этим заниматься не будем. Неприятным является предположение о гладкости р(!). В приложениях часто встречаются задачи с кусочно-гладкими р(!), т.е. р(!) имеет небольшое число точек разрыва, а между ними гладкая. Такие ,изолированные разрывы не имеют катастрофических последствий. Несложный анализ, являющийся простым обобщением проведенного вь!ше, показывает, что в этом случае в оценке множитель ест заменится на где !' (к = 1, 2, ..., К) — точки разрыва р(!). Мы не будем проводить подробно анализ остальных частей алгоритма прогонки. Ограничимся лишь самыми простыми соотношениями. Обозначим (У„' = Ци + Ц„, где ф— погрешность вычисления Д„. Запишем соотношение для Д„,ъ!: а„ Аи С учетом погрешностей вычислений имеем К.!-Я.+ +1.+!= =.—," Р„+ ! + б„.„!П0„+ з„) — —," (Р„+! + б„., !) + е„+ !.
Отсюда где и вы! г Юп~ь+! г бь+! + зь+!' и Далее погрешность $„оценивается так же, как это было сделано выше при оценке б„, Аналогично анализируется обратная прогонка х„, = Р„х„+ Ц„. С учетом погрешностей вычислений, обозначая через Ч„погрешность в х, имеем ха-! АА-! + Че — ! (Рь+ ОА)(хь + ЧА) + ®ь + ъь) + еь' откуда Чи-,! = "ЯЧ. + (ИАА + ~а + еА).
д М1 ичтвгтиговхнив хгхвявний с чхстными пгоизводными 99 И здесь ключевой факт: 1Р„~ н 1. Основную роль, как было видно из предшествующего анализа, играет «коэффициент усиления наследственной погрешности», Если он меньше единицы или хотя бы не более 1 + О(1/Ж), 'накопление погрешностей не имеет катастрофического характера. Крайне неприятной является ситуация, в которой этот коэффициент превосходит некоторое не зависящее от т число а > 1. Тогда погрешность накапливается, усиливаясь за каждый шаг в д раз, и при достаточно малом шаге т величина д" = дгн может стать катастрофически большой.
й 1!. Численное интегрирование задачи Коши дпн уравнений с частными пронзводнымн Изучение одного из важнейших разделов современной вычислительной математики начнем с простой задачи, которая даст повод ввести основные идеи метода конечных разностей. Это классическая задача для уравнения теплопроводности. Итак, в области 'О < х<Х, 0 < 1пТ нужно найти функцию и(г, х), удовлетворяющую: а) уравнению —" = —" + /(г, х) (всюду в области); дг дхх б) левому краевому условию — а, — „" + 13,и = 1р, ( г) при х = 0; в) правому краевому условию а Я+рта = 1рз(г) при х = Х; г) начальным условиям Коши и(0, х) = ид(х), х ~ 10, Х1, при г =О.
Заметим сразу же, что формально метод без существенных изменений можно применить и для решения более сложной задачи с нелинейным уравнением, например с(г, х, и) аг ах н(г' х' и) ах + )(г,х, и). аи ар ди1 Возможны и другие усложнения задачи, и они на первый взгляд легко вписываются в метод конечных разностей. Рассмотрим вначале линейное уравнение, затем проведем формальное обобщение метода на более сложные задачи и обсудим, так ли все это просто на самом деле.
Введем основные элементы метода сеток. Сетка. Область определения функции и покрывается дискретным множеством точек (х , г„), т = О, 1, ..., М, л = О, 1, ..., дг. дх 1ч.г основы вычислитвльиой мятвмлтики Ради простоты изложения будем считать сетку равномерной, т.е. х,„ = «гЛ, где Л = Х/М вЂ” шаг сетки по' х, М вЂ” число узлов по х; . нт, где т = Т/гт' — шаг сетки по г, Ф вЂ” число узлов по г Разностная аппроксимация уравнения. Сеточную функцию получим как решение некоторого уравнения, анпроксимирукицего дифференциальное. Существует много технических приемов построения таких уравнений, мы начнем с самого простого и наглядного. Он состоит в том, что входящие в уравнение производные заменяются подходящими разностиыми отношениями. Это можно сделать тоже неоднозначно.
Приведем достаточно популярные разностные уравнения. Явная схема: и+1 и 1 ии 2 и+ил г +у Принятый способ разностной аппроксимации называют схемой. Обычно структуру схемы поясняют ее шаблоном. Шаблон — это со- вокунность узлов сетки, в которых берутся значения функции, уча- ствующие в аппроксимации уравнения в данном узле (н, нг). Неявная схема: их+1 — и" и" +' — зли+1+ и" +1 и и и 1 и +1 1 уи я Лг м' (2) Шаблоны явной н неявной схем показаны на рис. 10. Обычно каждое разностное уравнение относят к некоторому узлу счетной сетки.
Удобно считать уравнения (1), (2) отнесенными к точке (н + 1, «г). Неявная схема Неявная схема трудно видеть, что эти уравнеч х х л+! ~хх х л+1 ння могут быть составлены не во всех узлах сетки, а только во х Ц х Л +гч + внУгнРенних, т.е. в тех Узлах, в которых шаблон не выходит за и с, го пределы сетки, в данном случае для «1=*1,2,...,М вЂ” 1, и О, 1, ..., Ф вЂ” 1 . Тем самым мы имеем уравнения для точек 1гн = 1, 2, ..., М - 1] х '1 и 1, 2, ..., гт'1. Сеточная функция. Приближенное решение задачи ищем в виде сеточной функции, т.е. функции, определенной в каждом узле сетки. Эту функцию обозначим (и"„).
Значение ии будем трактовать как приближенное значение функции и(», х) в узле (г„, х ), т.е. ии ~ и(ги, х ). 3 Ы! ИНТЕГРИРОВАНИЕ УРАВНЕНИЙ С ЧАСГНЫМИ ПРОИЗВОДНЫМИ юг Таким образом, без уравнений остались пока самый нижний ряд узлов и крайние левый и правый ряды. В этих узлах следует составить уравнения, аппроксимирующие начальные данные и краевые условия: аппроксимация начальных данных: ИВ ИЕ(» ) ГН 0 1 М аппроксимация левого краевого условия: и и — а, — '„В + р, и" = ир,(Г„), л = 1, 2, ..., Ф; (3) аппроксимация правого краевого условии: аг А +Йгим=зуг(Г ) "=1 2 "'г~ (Й) где а; пО, ВГ д О, а, + В,.
>О, Г = 1, 2. Теперь мы имеем столько неизвестных, сколько точек, и столько же уравнений. Решение разностных уравнений. (Или, как принято говорить, реализации разностной схемы.) Чтобы завершить описание схемы, нужно дать алгоритм вычисления и", подсчитать количество операций и требуемые ресурсы памяти. Общей чертой реализации разностных схем для так называемых эволюпионных задач (т.е.
задач, в которых одна из независимых переменных играет особую роль времени) является счет но слоям. Слоем мы называем совокупность неизвестных, определенных в узлах одного горизонтального ряда; л-й слой будем обозначать и", имея в виду величины (и")~ Схема счета по слоям очень проста.
Пусть и-й слой уже сосчитан, т.е. переменные, входящие в и", и переменные всех предшествующих слоев и",и', ..., и" ' уже известны. Имеется алгоритм, который по значениям и" вычисляет и"+', используя, быть может, и другие нижние слон и" ', ... Этот алгоритм называют «реализацией шаге», Обозначим его Я.
Заметим, что разностные уравнения (1), (2) связывают неизвестные только на двух соседних слоях. В этом случае реализация шага может быть записана в виде й+' = Я(и"): Такие схемы называют «двусдойнымн». В трехслойных схемах реализация шага имеет вид и" +' = 5(ии, й '.). Так как слой ие известен из начальных условий, можно находить последовательно слой за слоем: и' = Я(ИО), из=я(и') и т.д.
1Ч. 1 основы вычяслитслы~ой м«тем«тики )оз Реализация явной схемы. Она совсем проста. Итак, пусть и" (н-й слой) известен. Запишем (1) в форме Ьт Тем самым мы имеем явную формулу вычисления и"+', но только для от=1,2, ...,М вЂ” 1. Для завершения шага нужно вычислить еще и" +' н и"„+'. Из левого краевою условия (3) находим «, аида«м) б ио = ~+за, и~ +,+а|, () Аналогично вычисляется йм+' из правого краевого условия (4): ил+) от «+т а «) 7 и от«.ар и-> + «««-Ц ' () Вычисление ио+', им+' производится после расчета по формуле (5), так что значения и) ', и" +', уже известны.
Лепсо подсчитать, что реализация шага требует 0(М) операций и, следовательно, вся задача решается за 0(МФ) операций. Оценим ресурсы памяти. На первый взгляд кажется, что требуется (Ф + 1) (М+ 1) ячеек памяти. Но нетрудно видеть, что можно обойтись и 2(М+ 1)-й ячейкой, если заметить, что предшествующие слои больше не понадобятся и могут быть «забыты». Приведем схему счета, в которой используются только два одномерных массива и9(6:М), и1(И:М). Можно обойтись и одним, используя на языке РОКТКАХ оператор Е(41ЛЧА).ЕНСЕ (и6(6), и1(2)). Разумеется, перенос массива и! наместо и9 (см. схему) в этом случае делается обратным циклом. Обратны внимание на то, что печатаются и просматриваются не все полученные в расчете числа, а только некоторые слои и", соответствующие времени р, 2р, Зр и т.д.