А.А. Самарский, Е.С. Николаев - Методы решения сеточных уравнений (1978) (1160094), страница 16
Текст из файла (страница 16)
(26) Известно (см., например, [9)), что схема (25) имеет аппроксимацию 0(т+й') при любом о, 0(т'+Ь') при о=-0,5 и аппроксимацию 0(т'+й') при о=1!2 — пе!(12т). Условие устойчивости 82 Легко проверить, что и в этом случае условия леммы 1 также выполнены. Пр имер 3. Разностные схемы для уравнения теплопроводности. Рассмотрим первую краевую задачу для уравнения теплопроводности: схемы (25) по начальным данным имеет вид а ) 1Е2 — й'Е(4т). (27) Обратимся теперь к методу решения уравнений (25) относительно у,"". Считая у," уже известным, запишем (25) в следующем виде: 1 +1 — УЕ'+' — У"-+' = т1' ат тх, 1 уо =р1(Еи+д)~ уй =ре(Еп+~)ю где ф= — у,"+( — — 1) у", если аФО.
Используя (26), свеат ' (а хх, 1 дем эту схему к виду (1"), где В,=-А,д —— О, С,=С,д — — 1, Е'„= =р,(Е„„), Е =р,(Е„„), Л,=В,= — „,, С,=А,.+Вг+,—,, Е,.= р,", 1 < Е < 117 — 1. Найдем условия, при которых построенную си- стему (1") можно будет решать методом прогонки. Из леммы 1 следует, что должно быть выполнено условие (2Ейт+1Е(ат)1) ) 2Ей'. Решая это неравенство, найдем достаточное 'условие применимости прогонки а) — й'Е(4т). Сравнивая это неравенство с (27), получим, что если для схемы (25) выполнено условие устойчивости (27), то для нахождения решения на верхнем слое можно использовать метод прогонки. П р име р 4.
Нестационарное уравнение Шредингера. Рас. ди д'и смотрим нестационарное уравнение Шредингера 0 < х < Е, Е ) О, и (О, Е) = и (Е, Е) == О, и (О, х) = и, (х), Е = 3/ — 1, Для этого уравнения, так же как и для уравнения тепло- проводности (24), можно построить двухслойную схему с весами % =ау н +(1 — а)уй 1 <й<Ет — 1 у7=У$=0, у3=и,(х,), где параметр а=а,+(а, может принимать значения в комплексной плоскости. Схема (28) имеет погрешность аппроксимации 0(т+й') при любом а, при и= — 0,5 она равна 0(т'+Ч) и при а=112 — йЧЕ(12т) погрешность аппроксимации равна 0(т'+й').
Условие устойчивости по начальным данным имеет вид а,= Кеа) )0,5. (29) Схема (28) обычным образом сводится к системе (1"), и условия леммы 1 принимают следующий вид: ~ 2Ей'+ ЕЕ(ат) ) ) 2Ей'. Решая это неравенство, получим, что метод прогонки нахождения решения схемы (28) на верхнем слое при выполнении условия а,=1та) — й'Е(4т) будет корректен. Таким образом, для рассматриваемого примера условие применимости метода прогонки не совпадает с условием устойчивости самой разностной схемы по начальным данным.
83 $ 2. Варианты метода прогонки 1. Потоковый вариант метода прогонки. Рассмотрим вариант метода прогонки, применяемый при решении разностных задач с сильно меняющимися коэффициентами. Примерами таких задач являются задачи гидродинамнки с теплопроводностью и магнитной гидродинамики, где коэффициенты теплопроводности, электропроводности зависят от термодинамических параметров среды. В случае тепловых задач могут иметь место адиабатические участки, где теплопроводность отсутствует, а также изотермические участки, где теплопроводность бесконечно велика. В магнитных задачах — соотвегственио идеально проводящие и неэлектропроводные участки.
Часто в таких задачах, помимо самого решения, требуется найти еще и поток тепла (тепловая задача). При решении разностиых уравнений второго порядка, к которым сводятся разностные схемы для этих задач, по формулам обычной прогонки часто происходит значительная потеря точности. Последующее использование численного дифференцирования для вычисления потока приводит к неудовлетворительному результату, Избавиться от этого недостатка удается путем перехода к так называемому потоковому варианту метода прогонки.
Формулы для этого варианта прогонки можно получить в результате преобразования формул обычной прогонки. Итак, рассмотрим разностную краевую задачу уо "1у~ — р1 у!е каун- — ре где е, = а;+ а„, + до 0 < а! < ао, (2) !(!>О, 1=1, 2, ..., У вЂ” 1, )к,!<1, )к,!<1. (3) Формулы правой прогонки (см. (б) — (8) Э !) для задачи (1) с учетом (2) принимают вид у;=а;,у!+в+)3;+„!'=М вЂ” 1, Л! — 2, ..., О, у,=!' ' ' и, (4) ! — к,ип а!+~+ а!+ а! (! — а ) ()„,=(Г,+аФ!)„" — '", !=1, 2, ..., У вЂ” 1, р,=р,. (6) ' ' а;+, ' Введем новую неизвестную сеточную функцию (поток) по формуле !а,= — а,(у,— у;,), 1=1, 2, ..., У, (7) -и перепишем (1) в виде и„,— в,+д»у;=~о 1(1(У вЂ” 1, — х,и +ач(1 — х,) У,„=а Р„»=У, (8) Из (7) найдем 1 У»+»+ а» 1+1' а;„» (=0,1, ...,У вЂ” 1, Вводя обозначения а»=а,(1 — а;), ~,=х»[)1, (=1, 2... „Лг, перепишем это соотношение в виде ' в;+о»у,=~о 1=1, 2, ..., »У.
(9) Заметим, что уравнения (8), (9) образуют алгебраическую систему, содержащую 2У+1 уравнение относительно 2Л/-[-1 неизвестных у„у„..., ум и и„, в„..., им. Структура этой системы такова, что она распадается на две независимые системы для неизвестных у„у„..., ум и в„в„..., в,ч. Построим эти системы. Выразим из (9) у,.: у,=ф,— и,)дх,, 1=1 2 й( и по ставим в уравнения сйстемы (8) для (=1, 2, ..., У. В результате получим уравнения ,ам [(1 — х») рм — иаз»»1 (1 — х,) а,ч+а»гх» (10) решая которые последовательно найдем все в;.
Получим теперь уравнения для у». Для этого выразим в; из (9): и;= — а»у;+~о 1=1, 2, ..., У и подставим в (8) для 1, 2, ..., Ф. В результате получим уравнения ! 1 ау+ а уо=х у +[» (11) хан+ а»»и| (1 — х2) ач+ и,чха для последовательного вычисления у,. и подставим это выражение в (4). В результате найдем соотношение, связывающее у;„и и;„; в;„+а;+,(1 — а»+,)у,+,— — а;+Д+„(=О, 1, ..., Ф вЂ” 1.
Напишем рекуррентные формулы для определения и! и [1;. Используя (5) и (6), найдем а!+! [а; [! — и!)+а!1 а!+![и!сьа;) а;+,+и;-~-а;[! — ий ан1+и!+с!' (12) ау+, [г!+ рй р!+! — — а!+1р!~,= ' ' ', !=1, 2, ..., Ь[ — 1, [),=а,р;. (13) а!+;+ иг+ а! Из условий (2), (3) и формул (12) следует, что и,~О. Тогда коэффициент а!!(а!+д;) в формуле (!0) не превосходит единицу, что обеспечивает устойчивость алгоритма при вычислении и,. Далее, так как из условий а!) 0 и д!) 0 следует, что а;„< < а;+,+и!+д;, то в силу (12) справедливо неравенство и;+, < <и,+с[,. Поэтому коэффициент иг+,7(и!+![,) в формуле (1!) всегда меньше единицы, что обеспечивает устойчивость при вычислении !);.
Отметим, что знаменатель в выражениях для и!,т и у всегда больше нуля. Итак, алгоритм метода потоковой прогонки описывается формулами (10) — (13). Отметим, что указанными рекуррентными формулами для и! и [)и а также выражениями для у,х и и!х целесообразно пользоваться, если а!ь, < 1. Если а!„) 1, то рекомендуется использовать следующие формулы, получаемые из (10) — (13) делением числителя и знаменателя дробей на а;~,: и;+а! а 7!+Р; !+(и!+а;)!а;+, ' ' !+! !+[и;+Л;)!а;~, ' х4~!ам+ г. Π— х~) Р,х — и.чиз а!а 1 — ха+ х,и!а[а!т ' !х, ! — хз+ х,им!ах Подсчитаем число арифметических действий, которое необходимо затратить для реализации (10) — (13).
При разумной организации вычислений, когда общие для нескольких формул выражения вычисляются один раз, а об цие множители при нескольких слагаемых выносятся за скобку, число действий для (10) — (13) составляет 9 = 2!У+! операций. Это примерно в 2 раза больше того числа действий, которое нужно было бы затратить, чтобы по формулам обычной прогонки найти решение у! задачи (1), а затем по формуле (7) найти поток ш;. 2. Метод циклической прогонки.
Рассмотрим теперь следующую систему: — а;у;,+с!у,— Ь,у„,=7!, !'=О, ~1, +.2, ..., (14) коэффициенты и правая часть которой периодичны с периодом й[: а!=а; ль Ь! — — Ь!„~, с,=с;,а„1!=~!,а,. (15) К системам типа (!4), (!5) мы приходим, например, при рассмотрении трехточечных разностных схем, предназначенных для отыскания периодических решений обыкновенных дифференциаль- М иых уравнений второго порядка, а также при приближенном решении уравнений с частными производными в цилиндрических и сферических координатах. При выполнении условий (15) решение системы (!4), если оно существует, тоже будет периодическим с периодом У, т. е.
у =уд+л- (16) Поэтому достаточно найти решение у;, например, при =О, 1, ..., М вЂ” 1, В этом случае задачу (14) — (16) можно записать так: —,У,+с,У,— (д,У, =?„д'=О, — и;У,, +с;У; — (ддддд„=-7'. (17) (18) Условие (18) мы добавили к системе (17), чтобы из уравнения системы длЯ д =?дд — 1 не исключать Ул„заменив его на Уо.
Это позволяет сохранить единый вид для уравнений (17) при д= =1,2, ...,Ж вЂ” 1. Если ввести векторы неизвестных 1'=(у„, у„..., у .,) и пРавой части 1о=(7'„1„..., ?и,), то (17), (!8) можно запи. сать в векторном виде Л$'= ла, где — эо о о сд ад — ао сд — Ьо со — ад о — ао о о о о о о о о о о о о о — ьл -д о сод д сн-о — ам-о о сод — аддд д — матрица системы (17), (18). Г1рисутствие отличных от нуля коэффициентов а, и (д,с, в (1?) не позволяет решать эту систему методом прогонки, описанным в 9 1.
Для нахождения решения системы (17), (!8) построим вариант метода прогонки, который называется методом циклической прогонки. Решение задачи (17), (18) будем искать в виде линейной комбинации сеточных функций и; и о; у,=и,+у,о;, О(д(У, (19) где иг есть решение неоднородной трехточечной краевой задачи — а;и;, + сди,— (д,иго д = ~н 1 ( д . д!! — 1, с неоднородными краевыми условиями. 87 с однородными краевыми условиями, а о,— решение однородной трехточечной краевой задачи — ор,,+ср,— бсодод=О, 1(д(М вЂ” 1, о = 1 оде=! Найдем, при каком условии у, из (19) есть искомое решение. Умножая (21) на у„складывая с (20) и учитывая (19), получим, что уравнения системы (!7) для 1=1, 2, ..., Ь! — 1 будут выполнены.
Из краевых условий для ио и о, следует, что будет выполнено соотноп)ение (18). Таким образом, если у,, определяемое по формуле (19), будет удовлетворять оставшемуся неиспользованным уравнению системы (!7) для !=О, то задача будет решена. Подставляя (19) в это уравнение, получим — асио о — аоуоо~, +с,у,— Ь,и,— Ь,уоо, = 7о. (22) Таким образом, если выбрать у, по формуле !о+ аоаи-о+ Ьоао (23) Уо = со — аос,у о — Осч то равенство (22) будет выполнено, и следовательно, решение задачи (17), (18) можно найти по формуле (!9). Остановимся теперь на решении систем (20) и (21).