Fedorenko-RP-Vvedenie-v-vychislitelnuyu-fiziku (810773), страница 52
Текст из файла (страница 52)
Тригонометрическая прогонка. Рассмотрим часто встречающуюся в приложениях задачу Штурма — Лиувилля — р(г) ф + д(г) у(г)+у(г) =О, оагкт, (17) с краевыми условиями, которые запишем в удобной для дальнейшего форме: у(0) соз а, + у(0) в!и а,=Ь,, !=О, у(Т) сов аз+ у(Т) в!и а = Ьз, Г = Т, (18) где р(г), а(г), У(г), а,, аз, ь„ьп т — заданные функции и числа. запишем (17), (18) в стандартной форме — в виде системы двух уравнений первого порядка; суть дела от этого не меняется. Обозначая х, = у, х = ру (разумеется, предполагается р(г) ж р > О), получаем систему 0О + (19) Краевые условия имеют стандартную форму с векторами 1, = (сов ап з!и а,). Алгоритм прогонки состоит в том, что соотношение, имекяпее форму краевого условия, продолжается (в силу уравнения) на весь интервал !О, Т1 Рассмотрим «прогоночное соотношение слева»ч х,(г) соз р(е) + хз(г) в!и р(!) = р(г).
(20) х, соз р — х, в!п р ф+ х з!и р + х соз р ф = р. Преобразуем это выражение, используя (20) и исключая хы хьс (1/р)ха соз р — х, з!и у ф + дх, в!п у + хз сов у ф = р — У в!п ~р. ДлЯ Р(!) и Р(г) имеем Данные Коши: Р(0) = ап Р(0) = Ьи Выве- дем уравнения для них, дифференцируя (20) по ! и заменяя произ- водные от х из (19): жесткие линейные кгАевые з»д»чи в !в) Приводя подобные члены, имеем х1 яп ф (в — ф) + хз сов ф (1/р+ р) = р — / з1п ф.
( ) Умножая выражение (21) на я!п р и вычитая из него (20), умно- женное на (1/р+ ф) сов ~р, исключим члены с хз.' х,[(я —, р) зш р — (1/р+ р) соз р[— = Д в!и р — /3!пз р — Щ1/р+ ф) соз р. Оно выполняется при любом х„если потребовать одновременного обращения в нуль коэффициента при х1 и свободного члена. В итоге мы получаем уравнения для ф и р: ф= ввйпз р — (1/р) совз р, р(0) = ан (22) Д= ~(1/р+ ф) созз ~р/3!пз <р+/з!и ~р, ЯО) бн (23) Деление на 3!и р не приводит к неприятностям, так как из (22) следует (1/р+ р) = (д + 1/р) щп ~р.
Уравнение для р лучше использовать в виде (24) р = / ей и р + р з!и р соз р ( д + 1/р). Заметим, что нас интересуют задачи с большим параметром. Большой величиной считаем о, причем знак д(!) не определяем однозначно. При в ) 0 однородное уравнение (17) имеет решения экспоненциального типа (одно быстро убывающее, другое быстро растущее вправо). При в< 0 уравнение (17) имеет решения колебательного характера, причем, если [г/[Т:в. ! (1000, например), на [О, Т[ укладываются десятки колебаний. В некоторых задачах (см.
в 15) в(!) может иметь разные знаки на разных частях интервала [О, Т[. Что можно сказать в этих условиях об уравнении (22) для р и о возможности достаточно аккуратного численного интегрирования его на большом интервале времени? А интервал действительно большой, так как величина Т [!! з!пз р+ (1/р) совз р[ ж 2То 3!и ф соз р в принципе может быть достаточно большой, если только функция р(!) не «застревает» надолго в окрестности таких значений, где ейп р соз р = О, " — 1833 пеиелижениые методы вычислительной оизики 1ч.
и 258 Пытаясь разобраться в характере уравнения (22), заметим, что ) ф~ ж а. (Мы пользуемся не очень строгими оценками; речь идет о грубом анализе, в котором величиной (1/р) созе р О(1) можно пренебречь.) Следовательно, все траектории (22) проходят в конусе с раствором, определяемым величиной ~д), т.е. в целом траектории (22) не имеют экспоненциального роста, траекторий типа е~о1' .среди решений (23) нет, хотя на малых частях интервала [О, Т1 такие решения могут и появиться. В з 7 специально подчеркивалось, что процесс накопления погрешностей при численном интегрировании задачи Коши существенным образом зависит от устойчивости вычисляемой траектории.
Устойчивость же определяется уравнением в вариациях, которое для (22) имеет вид (Ь р — малое возмущение траектории <р) Ь р = з1п 2Р (а — 1/р) Ьр. (25) Устойчивость траектории зависит от знака и модуля а з1п 2у. В принципе возможна ситуация, когда е1п 2о = 1 и траектория сильно неустойчива: решение (25) ведет себя, как е1ч~', Однако из уравнения (22) видно, что р быстро уходит от такого значения и «неустойчивый» участок на траектории не может быть длительным. Ограничимся этими простыми соображениями, которые, видимо, можно превратить в достаточно строгий анализ. Периодическая прогонка.
Опишем полезный в приложениях алгоритм решения специальной системы уравнений высокого порядка, возникающей при решении краевой задачи для уравнения Штурма — Лиувилля (10.1) с периодическими краевыми условиями х(0) = х(Т), х(0) = х(Т). Разностное уравнение (10.2) можно считать определенным при всех. значениях л = О, 1, ..., Ж, если реализовать условие периодичности, отождествив выходящие за пределы сетки значения с сеточными: хи+, — — хо, х, = хи. Итак, мы приходим к системе уравнений, аналогичной (10.3): аохи ~охо + сох~ /о а„хл, — Ь хи + сихо = /„„ где л = 1, 2, „Ф вЂ” 1. Матрица системы отличается от знакомой нам трекдиагональной наличием двух ненулевых элементов: на последнем месте первой строки и на первом месте последней.
Для экономного (требующего 0(Ф) операций) решения такой системы А. А. Абрамо- $!81 ЖЕСТКИЕ ЛИНЕЬНЫЕ КРАЕВЫЕ ЗАДАЧИ вым построен алгоритм, обобщающий классическую прогонку. Он часто используется в практической вычислительной работе. Решение ищем в форме «прогоночного соотношения» х„,=Р„х„+Д„+Л„х . Очевидно, первое уравнение системы можно записать в этой форме, и мы получаем явные выражения для стартовых значений прогоночных коэффициентов: Р~ = соУЬо «2» = УВУЬо Я~ = ао~ЬВ Теперь стандартная процедура позволяет получить рекуррентную формулу. Пусть Р„, Д„„Я„известны.
Исключая из уравнения с индексом и значение х„ ,, имеем уравнение а„(Р„х + Д„ + Я„х, ) — Ь„х„ + с,х„ „ = У„, связывающее х„, х„+,, х„+и Этому уравнению можно придать стандартную прогоночную форму, разрешив его относительно х„. В результате мы получаем искомые соотношения: А=Ь вЂ” а Р, с ч е' с„ Р Я с'Р! А' ч+! А ' ~ч >! А Зту операцию можно продолжить вплоть до значения л = Ф вЂ” 1.
Прогоночное соотношение х„, = Р х + (~и + ~их после подстановки в дс-е уравнение системы даст соотношение, связывающее хи с хо. пРидадим емУ фоРмУ х„= аихо+ фл и бУдем искать решение в виде х„= п„хо+ ~„. Новые прогоночные коэффициенты а„, ~„(и = Ф, Л/ — 1, ..., 1) находим по рекуррентным формулам справа-налево, имея нх стартовые значения аи, р, . Для этого из прогоночного соотношения .т„, = Р„х„+ Ц„+ 11„хи, считая, что значения п„и Д„известны, ис- КЛЮЧИМ Х, ХАК Х„~ = Ро(ОИХО+ Р„) + 0„+ Д„(аИХО+ Ь).
Приводя подобные члены, получаем рекуррентные соотношения и„, =Р„а„+Я„пи, Р„, = 0„+Р„(1„+ВЯЛ, Последнее такое соотношение имеет внд .Хо = аохо+ ро т.е. хо = роУ(1 "о). Остальные значения х„найдем по формуле х„= а„хо + р„. Ч' пгиелиженньш методы вычислительной оизики [ч. и Пятиточечная прогонка. Опишем алгоритм решения системы уравнений с пятидиагональной матрнцей. Такие системы возникают при численном решении разностных уравнений, аппроксимирующих краевую задачу для уравнения четвертого порядка: 44х агх — +р — +д(х)=/, ОнгнТ, а4 айаг х(0) =Ао, х(0) =Во, х(Т) = А„х(Т) =В,. Ограничимся этой простейшей задачей. Вводя сетку, аппрокснмируем уравнение разностным: —, (х, — 4х„, + бх, — 4х,.„+ х„+г) + Ь4 + — р„(х„, — 2х„+ х„„) + д„х„= У„, Ьг л=2,З,...,ж — 2, Ь=Т(М.
Краевые условия аппраксимируем самым простым способом: хо Ао х, — хо лВо хл = А„хл — хи-1 = ЬВс Придадим системе уравнений стандартную пятидиагональную форму: о о ~о~~ + охг = /о — Ь|хо + с~х~ — а1хг + с~хо = /1 а„х„г — Ь„х„, + с„х„— о(„х,.„, + е„х„г = ~„, ал,хл з — Ьл,хл г+ сл 1хл ~ — Ыл 1хл — — Ул алхл — Ьлхл, + с„хи = ~„, (н = 2, 3, ..., Ф вЂ” 2). Формулы для коэффициентов системы оче- видны. Прогоночное соотношение имеет вид После несложных преобразований первые два уравнения (левые краевые условия) дают стартовые значения прогоночных коэффициентов (Р, Я, Д), и (Р, Тс, Д) . Стандартный вывод рекурреитных соотношений для прогоночных коэффициентов проводится в предположении, что в процессе прямой прогонки (слева-направо) коэффициенты (Р, Я, Д)„, и (Р, Я, Д)„г (и все предшествующие) уже найдены.
С их помощью из стандартного и-го уравнения можно ис-, ключить х„г и х„, и получить связь между х„, х„+ы х„г, которая разрешается относительно х„. осгеднннне ьыстгых вг»щеннй 26! Несложные преобразования дают рекуррентные формулы: А = с' — Ь'Р, н «л' л У„'+ Ь.'д„ н+! А ' (««+! А а„+Ь„'я„ л+! А Эта операция продолжается стандартно до значения и = !!! — 2, т.е.
последнее прогоночное соотношение имеет вид хи г= Рн !хн !+Ян !хн+Дн Вместе с двумя последними уравнениями (правыми краевыми условиями) оно дает нам три линейных уравнения с тремя неизвестными хи г, хи „хл. Решив эту систему, процессом «обратной прогонки» мы вычислим все х„последовательно справа-налево. Предоставим читателю в качестве полезного упражнения внести необходимые изменения в том случае, когда краевые условия заданы с использованием вторых и третьих производных. Несколько больших изменений требует алгоритм в том случае, когда на одном конце задано одно краевое условие, на другом — три.