Anderson-et-al-1 (1185923), страница 27
Текст из файла (страница 27)
Рассмотрим систему уравнений а«и, + а)зиз+........ = с), аз,и, + ад)из +........ = сз, (4.118) а„,и„+ — ся Приведем ее к верхнему диагональному виду, исключив с помощью алгебраических операций часть неизвестных из некото- 1-е опо нее пененое Рнс. 4.20. Метод исключения Гаусса, неизвестная и) под главной диагональю исключена.
рых уравнений. Выберем, например, в качестве опорного первое уравнение (строку) рассматриваемой системы и используем его для исключения неизвестной и) из расположенных ниже уравнений. Для этого сначала умножим первоеуравнение на аз)/а« ') и вычтем его из второго уравнения системы, что позволит исключить и) из второго уравнения. Умножая опорное уравнение на аз)/а«и вычитая результат из третьего уравнения, исключим из него и).
Таким образом, можно исключить и) из всех уравнений от 2-го до и-го. В результате система уравнений примет вид, изображенный на рис. 4.20. Теперь второе уравнение (в том виде, какой оно приняло Р р "Г уг ге ) ') Чтобы взбежать деления на нуль, мы всегда можем поменять уравнения местами. $ 4.3.
Уравнение Лапласа пользуем в качестве опорного' для исключения неизвестной ит во всех ниже расположенных уравнениях, что приведет систему уравнений к виду, показанному на рис. 4.21. Третье уравнение получившейся системы используется как опорное для исключе- 1-е оно нее паленое ! 2-е оло нее пенеиие В 1Гф1 $11 Й !1Й~ Рис. 4.21. Метод исключения Гаусса, неизвестные и, н иа под главной диагональю исключены.
ния из. Этот процесс продолжается до тех пор, пока система уравнений не приведется к верхнему треугольному виду ани, + а,зиа +........... = сь а,'и +а'и,+ ....=с', Рз+ ." =, (4.119) т а„„и„= с„. В результате в последнее уравнение входит лишь одно неизвестное, в предпоследнее — два и т. д.„поэтому получившуюся систему уравнений можно решить последовательной обратной подстановкой. В качестве числового примера рассмотрим систему трех уравнений и,+4и,+и =у, 1У, + бааз — Уз = 13, 20, — У~ + 20~ = 5. Используя первое уравнение в качестве опорного, исключим 01 из двух последних уравнений: 1г' + 4и + 1т' =У, 2Уа — 20з = 6, — 90~+ 0= — 9.
Теперь выберем опорным второе уравнение и приведем систему г54 Гл, 4. Метод конечных разностей длн модельных уравденн!! где аЫ зад! и = Ь = — —, с = и", !1 = 1 + — „ 1д )2 ! ~ (дл)2 Если заданы условия Дирихле, то на одной границе известно ил!4!1, а на другой известно и"+,' Все известные значения и включены в коэффициент с, поэтому наша система уравнений имеет вид а л+1 1 ь41 иг с! Ьг дг аг О Ьз 4)з аз О О Ь4 д4 а4 О ал11 4+1 илч О ° к верхнему треугольному виду и,+4и,+У,=7, 2из — 2Уз = 6, — риз =1З. Используя обратную подстановку, получаем Уз = — 2, иг = 1.
У! — — 5. При решении уравнения Лапласа блочными итерационными методами (см. п. 4.3.4) приходится решать системы уравнений с трехдиагональной матрицей. В ф 4.1 и 4.2 было показано, что такие системы уравнений получаются также в случае примене- ния неявных разностных схем к решению маршевых задач для уравнений в частных производных. Покажем, как эффективно модифицировать метод исключения Гаусса для решения систем алгебраических уравнений с трехдиагональной матрицей на при- мере неявной разностной схемы для уравнения теплопроводности ди д'и — =а —, д! длз ' и" +' — и" = — (ил+! + и"+' — 2и"+').
Ы (Де)2 1 г+1 у-! Используя обозначения, введенные для записи систем уравнений, перепишем эту схему в виде Ьии+! + С)ии+! + иии+! — С 1-1 ! )+1 й 4.3. уравнение Лапласа 155 Систему уравнений можно привести к такому виду и в тех случаях, когда заданы другие граничные условия, хотя при этом первое и последнее уравнения могут получаться из некоторых дополнительных соотношений, связанных с граничными условиями, а не только из записанных во внутренних узлах сетки разностных уравнений.
Для решения систем линейных уравнений с трехднагональной матрицей разработана модификация метода Гаусса, использующая нули в матрице коэффициентов. Эта процедура, называемая прогонкой и предложенная Томасом 1ТЬотаз, 1949], кратко описана в п. 4.1.4. Метод прогонки. Приведенная выше система линейных уравнений с трехдиагональной матрицей приводится к верхнему треугольному виду заменой коэффициентов й; по формуле 51 и1=й1 — — аг ь 1=2, 3, ..., УУ, !-1 н коэффициентов сг по формуле ьг с1 — — сг — „сг н 1=2, 3, ..., УУ. 1-1 После этого, начиная с и„а= с„~/Ыл~, проводится обратная под- становка для вычисления неизвестных: иа —— а а а+', 1=УУ вЂ” 1, УХ вЂ” 2, ..., 1.
а н В приведенных выше соотношениях знак равенства понимается в смысле «заменить на», как это принято в языке программирования Фортран. Написанная на языке Фортран программа решения уравнений методом прогонки приведена в приложении А. При применении метода прогонки необходимо проявить определенную гибкость для задания граничных условий. Лучше всего читателю научиться этому на основе личного опыта, мы же ограничимся одним-двумя замечаниями.
Так как целью метода исключения является определение значений неизвестных, то при решении задачи Дирихле, когда значения и на границе известны, мы не должны включать их в число неизвестных. Тогда в методе исключения и, соответствует значению и в первой не- граничной точке, а и„т — значению и в последней неграничной точке. Однако ничего плохого не произойдет, а алгоритм даже упростится, если мы зададим ао И„Ьих, й„г так, чтобы вместо граничных условий дополнить систему двумя дополнительными (бб Гл.
4. Метод конечных разностей для модельных уравнений уравнениями. Например, полагая А = 1, а! = О, с(лр — — 1, Ьаи=б, я+! и+! с, = и! (задано) и са!з = иит (задано), получаем, что первое и последнее алгебраические уравнения просто повторяют граничные условия. Приведем еще один пример, показывающий, как можно получить систему уравнений с трехдиагональной матрицей при других граничных условиях. Пусть при решении уравнения теплопроводности стенка является теплопроводной, т. е. на ней заданы смешанные граничные условия а(и — и )= — й — „~ ди Применяя метод контрольного объема на той границе области, где 1'= 1, получаем разностное уравнение 41 и" +' + а ив+ ! = с, ! ! ! а 1' где — 2ио! 2и (й!) Ь (Ьх) и а,=(„,, с,= („,, и+и,; причем это уравнение, очевидно, не меняет трехдиагонального вида матрицы для коэффициентов первого уравнения.
Современные прямые методы. Существуют, конечно, и более быстрые, чем метод исключения Гаусса, прямые методы решения систем алгебраических уравнений. К сожалению, ни один из этих методов не является достаточно общим. Обычно они позволяют решать только алгебраические уравнения, возникающие прн применении разностных схем определенного типа, да и то при специальном задании граничных условий. Большинство таких методов имеет ограниченную размерность (могут быть использованы для решения лишь небольших систем уравнений) из-за накапливания погрешности округления. Если рассматривать быстрые прямые методы как специальный класс, то их алгоритмы довольно сложны и нелегко приспосабливаются для решения задач в областях неправильной формы или на случай задания сложных граничных условий. Прямые методы требуют обычно существенно большей памяти ЭВМ, чем применяемые для решения тех же задач итерационные методы. По-видимому, недостатком простых быстрых прямых методов является их ограниченная размерность, что сужает возможную область их применения; методы же, не страдающие этим недостатком, обладают алгоритмами, содержащими ряд деталей, изложение которых выходит за рамки данной книги.
Поэтому мы лишь кратко 157 4 4.3. Уравнение Лапласа охарактеризуем некоторые из этих методов, не описывая ни один из них подробно. Одним из простейших прямых методов является метод расчета распространения вектора ошибки, разработанный для решения уравнения Пуассона Роучем [КоасЬе, 1972]. Размерность этого метода ограниченна, но так как метод прямой, то в тех тестовых задачах, когда удалось проконтролировать рост погрешности округления, он оказался в 10 †!00 раз быстрее лучших итерационных методов, которые будут описаны ниже. Для решения уравнения Пуассона разработано два быстрых прямых метода, имеющих неограниченную размерность.
Это— двойная циклическая редукция Бунемана [Вцпетап, 1969] и быстрое преобразование Фурье Хокни [Носйпеу, 1965; 1970]. Интересные вычисления проведены Лугтом и Орингом [1.ц84, ОЬг!пп, 1974) при решении двумерных уравнений Навье — Стокса. Они заметили, что методы Бунемана и Хокни оказываются в 10 — 20 раз быстрее лучших итерационных методов. Полезное обсуждение возможности применения быстрого преобразования Фурье для решения уравнений в частных производных проведено в работах [1.еВа11, 1972) и [ВцхЬее е! а1., 1970). Применению быстрых прямых методов к решению задач аэродинамики посвящены работы [Маг!!и, 1.ошах, 1975) и [ЯсЬшпапп, 1980].
Очевидно, быстрые прямые методы имеет смысл применять для решения задач лишь в тех случаях, когда определяющим является время расчета. Заметим еще раз, что реализующие эти методы алгоритмы сложны и предназначены для расчета простых геометрических конфигураций при задании простых граничных условий. Время создания программы решения конкретной задачи быстрым прямым методом велико, поэтому необходимо тщательно взвесить, окупится ли это впоследствии сокращением времени расчета.
Для большинства встречающихся в приложениях уравнений эллиптического типа лучше всего использовать описанные ниже итерационные методы. 4.3.4. Итерационные методы решении систем линейных алгебраических уравнений Рассматриваемые в этом разделе методы некоторые называют релансационными, хотя другие авторы предпочитают сохранять слово «релаксация» для обозначения метода релаксации невязки, предложенного Саусвеллом много лет назад. Итерационные методы можно разбить иа две группы — точечные (или явные) итерационные методы и блочные (илн неявные) итерационные методы. При использовании явных методов один и тот же простой алгоритм последовательно применяется для опреде- 158 Гл. 4. Метод конечных ранна еал дла молельных Гравненнй ления неизвестных в каждой точке, тогда как при использовании неявных методов решение для какой-то группы точек определяется в рамках общей итерационной процедуры методом исключения (или каким-либо другим прямым методом).
Метод Гаусса — Зайделя. Хотя за последние годы предложено множество различных итерационных методов, метод Гаусса— Зайделя является одним из наиболее эффективных и часто используемых явных итерационных методов решения больших систем уравнений. (Иногда его называют методом Либмана, если он применяется для решения разностиых уравнений, получающихся при конечно-разностной аппроксимации уравнений в частных производных эллиптического типа.) Метод чрезвычайно прост, но сходится лишь в тех случаях, когда матрица коэффициентов уравнения удовлетворяет специальному условию «диагонального преобладания». К счастью, большинство разностных схем, используемых для решения стационарных задач, приводит к решению систем алгебраических уравнений, удовлетворяющих этому условию.