УДК 519.6 О ПОСТРОЕНИИ РЕШЕНИЙ ТРЕХДИАГОНАЛЬНЫХ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ СПЕЦИАЛЬНОГО ВИДА Т.А. Батагаева1, Та Чунг Тхань2 Национальный исследовательский Иркутский государственный технический университет, 664074, г. Иркутск, ул. Лермонтова, 83. Получены явные формулы для решения систем линейных алгебраических уравнений специального вида, имеющих приложения в инженерных и физических задачах. Приведены результаты вычислительного эксперимента, в котором сравниваются традиционный метод решения таких систем и метод, основанный на полученных формулах. Установлено, что новый метод является более эффективным. Ил. 3. Табл. 1. Библиогр. 6 назв. Ключевые слова: трехдиагональная матрица; метод прогонки; приложения; неявная разностная схема; вычислительный эксперимент. ABOUT CREATION OF DECISIONS OF SPECIAL THREE-DIAGONAL SYSTEMS OF LINEAR ALGEBRAIC EQUATIONS T.Batagaeva, Ta Chung Thanh National Research Irkutsk State Technical University, 83, Lermontov St., Irkutsk, 664074 The article inquires into explicit formulas for decision of special systems of linear algebraic equations applied in engineering and physical tasks. The authors produce results of computing experiment in which the traditional method of such systems decision is compared with the method based on received formulas. The new method is proved to be more effective. 3 figures. 6 sources. Key words: three-diagonal matrix; Thomas algorithm; applications; implicit incremental diagram; computing experiment Теория разностных методов является обширной областью вычислительной математики, а системы разностных уравнений представляют собой прекрасный пример приложения трехдиагональных матриц [5]. Задачи, включающие в себя трехдиагональные системы [4] линейных алгебраических уравнений (СЛАУ) в качестве основных или вспомогательных компонент, можно разделить на несколько типов [5]: одномерные краевые задачи для дифференциальных уравнений второго порядка (задача Дирихле для уравнения Пуассона, задача Неймана, смешанная краевая задача); параболические задачи с одной пространственной переменной (одномерная задача нестационарной теплопроводности или диффузии); решение многомерных эллиптических и параболических уравнений (задача Дирихле для уравнения Пуассона в двумерной граничной области); решение локально-нелинейных одномерных задач (двухфазная задача Стефана); Еще одним примером краевой задачи с применением трехдиагональной матрицы может служить задача Штурма-Лиувилля [3], заключающаяся в отыскании нетривиальных решений однородного уравнения на некотором отрезке. В свою очередь, эта задача служит постоянным источником новых идей для спектральной теории операторов и смежных вопросов анализа. Применение трехдиагональных систем не ограничивается задачами математической физики, они встречаются в алгоритмах сплайновых аппроксимаций [4], а так же в задачах линейной алгебры, для решения проблемы собственных значений матриц общего вида. Сами по себе матрицы общего вида применяются практически во всех областях как вычислительной математики, так и в инженерных задачах [6]. Например, при решении задач на прочность и жесткость конструкций формируется глобальная матрица жесткости системы, в тепловых задачах матрица имеет смысл теплового сопротивления, матрицы также применяются при решении задач оптимизации и т.д. Существует целый ряд методов по сведению матриц к разряженному виду при пере- Батагаева Татьяна Антоновна, студентка, , e-mail: [email protected] Batagaeva Tatyana Antonovna, a student, e-mail: [email protected] 2 Та Чунг Тхань, студент, e-mail: [email protected] Ta Chung Thanh, a student, e-mail: [email protected] 1 1 ходе к компьютерному решению различных задач. Матрицы обычно принимают симметричный вид и нередко трехдиагональный. В данной работе предложен новый подход к решению СЛАУ специального вида, матрицы которых имеют одинаковые элементы на главной и побочных диагоналях [6]. Такие матрицы встречаются при решении краевых задач теплопроводности, задачи Дирихле и в некоторых других. Метод прогонки. Для решения трехдиагональных СЛАУ часто применяют метод прогонки. Основным его преимуществом является экономичность, т.е. то, что этот метод максимально использует структуру исходной системы. Недостатком метода является то, что с каждой итерацией накапливается ошибка округления [1]. Запишем трехдиагональную систему в матричной форме: An X n Bn , где An – матрица, у которой все элементы, кроме элементов главной и примыкающих диагоналей, равны нулю, а n – это размерность матрицы, X n – вектор неизвестных, Bn – вектор свободных членов. Матрица An представлена формулой 0 ... 0 b1 c1 a2 b2 c2 . An ... ... ... an1 bn1 cn1 an bn 0 ... 0 Запишем i -ое уравнение системы (1) ai xi 1 bi xi ci xi 1 di , где i 1..n , a1 cn 0 . После выполнения прямого хода метода Гаусса, получим систему, содержащую в каждом уравнении уже не три, а две неизвестные: xi и xi 1 . Поэтому формулы обратного хода можно представить в виде: xi i i xi 1 , i n,...,1 , где i и i показаны формулами i Заметим, что ci d i ai i 1 , i , i 1,..., n , a1 cn 0 . bi ai i 1 bi ai i 1 (2) n 0 , так как cn 0 . Как было указано выше, основным недостатком данного метода является его способность лавинообразно накапливать ошибку, поэтому актуальны методы исследования устойчивости метода прогонки. Условие диагонального преобладания. Основным методом анализа устойчивости метода прогонки является условие диагонального преобладания. Так как выражение bi ai i 1 находится в знаменателе коэффициентов прогонки (2), т.е. оно близко к нулю, то метод прогонки может оказаться неустойчивым. Условие диагонального преобладания является достаточным условием для устойчивости прогонки, но не является необходимым. Условие диагонального преобладания имеет вид: | bi || ai | | ci |, i 1,..., n , причем ai 0, i 2,..., n , ci 0, i 1,..., n 1. (3) При этом хотя бы для одного уравнения должно выполняться строгое неравенство [1]. Доказательство достаточности условия диагонального преобладания. Предположим, что условия (3) выполнены. Тогда | 1 | | ci | | ci | | ci | | c1 | 1 ; | i | 1. | b1 | | bi ai i 1 | | bi | | ai || i 1 | | bi | | ai | Это показывает устойчивость метода прогонки, поскольку исключена возможность лавинообразного накопления ошибок округления на обратном ходе решения [1]: 2 | xi || i || xi 1 || xi 1 | . Для того, чтобы в самом начале обратного хода знаменатель дроби, определяющей n , не обратился в ноль, необходимо, чтобы хотя бы одно неравенство (3) было строгим. Если | bn || an || n 1 | , т.е. либо | bn || an | , либо | n1 | 1 , то этого не произойдет. Достаточность условия диагонального преобладания для устойчивости доказана. Метод явных формул [6]. Рассмотрим трехдиагональную СЛАУ следующего вида: bx1 cx2 d1 , ax bx cx d , 2 3 2 1 axk 1 bxk cxk 1 d k , axn 1 bxn d n . Пусть (4) n – определитель матрицы An СЛАУ (4). Условие n 0 , где n вычисляются по формулам n1 b n n1 , 0 1 , 1 b , (5) является, очевидно, необходимым и достаточным для однозначной разрешимости системы (4) [5]. Решение (4) определяется как x1 xk n 1 n 1 n k 1 n k i i k a d d di , i n k k 1 k k 1 n i c n k i 1 i 1 i k 1 n i (c)i 1 di , i 1 (6) 1 n i 1 (a ) n i di , n i 1 где n – порядок СЛАУ (1); k 2, n 1 . xn Докажем соотношения (6): СЛАУ (4) можно записать, в векторно-матричном виде ... b c a b c An ... ... a b 0 ... a An x d , где 0 x1 d1 x2 d2 ... , x , d . c d b xn n Получение явного решения основано на методе Крамера [4]. Для этого найдем определители матриц, в которых один из столбцов заменен на вектор свободных членов ной матрицы Пусть d . Определитель основ- An находится из (5). n |i – определитель матрицы An , в которой i-ый столбец заменен вектором d . Его вычисление проведем разложением по i-му столбцу. Получим, что n |1 d1 n 1 d 2 c n 2 d3c 2 n 3 d 4c 3 n 4 ... d n c n 1 0 3 d1c 0 n 1 d 2c1 n 2 d3c 2 n 3 d 4c3 n 4 ... (1) n 1 d n c n 1 0 , и так далее n |k (1) k 1 d1a k 1 n k (1) k 2 d 2 a k 2b n k ... (1)1 ad k 1 k 1 n k d k k 1 n k d k 1c k 1 n k 1 d k 2c 2 k 1 n k 2 k 1 n i 1 i k 1 ... d n (c) n k k 1 0 n k di (a) k i i 1 d k k n k k 1 di (c)i k n i . Наконец, n |n вычисляется по формуле n n | n d i ( a ) n i i 1 . i 1 Согласно правилу Крамера, решение всякой СЛАУ с ненулевым определителем единственно и определяется как xk n |k / n , k 1, 2,..., n. Отсюда (с учетом выражений для k |k полученных выше) следует справедливость (6). Если применять явные формулы для вычислений напрямую, без модификаций, то они будут уступать методу прогонки по скорости. Однако для задач, в которых с каждой итерацией увеличивается размерность системы и изменяется вектор свободных членов, можно воспользоваться тем, что формулы могут использовать данные, полученные на предыдущих шагах. А именно – значения определителей. Первый или последний элемент системы лучше вычислить по формуле (6), а для вычисления остальных провести ход, аналогичный обратному ходу метода прогонки. Постановка задачи теплопроводности. Математически уравнение диффузии и уравнение теплопроводности не различаются, и применение того или иного названия ограничено только конкретным приложением, причем второе представляется более частным, так как можно говорить, что в этом случае – это диффузия тепловой энергии. При решении уравнения теплопроводности речь идет о нахождении зависимости температуры среды от пространственных координат и времени, причем задана теплоемкость и теплопроводность среды (также в общем случае неоднородной) [2]. Уравнение теплопроводности является классическим примером уравнения параболического типа. В одномерном по пространству случае, однородное (без источников энергии) уравнение теплопроводности имеет вид: u 2u (7) a 2 2 , xmin x xmax , 0 t tmax . t x Если на границах x f (t ) и x g (t ) заданы значения искомой функции u x, t в виде: u( xmin , t ) 1 (t ) , xmin f (t ), t 0 ; u ( xmax , t ) 2 (t ) , xmax g (t ), t 0 , (8) (9) то (7)–(9) называют первой начально-краевой задачей для уравнения теплопроводности. В терминах теории теплообмена временной области u x, t – распределение температуры в пространственно- xmin x xmax ,0 t tmax , a 2 – коэффициент температуропроводно- сти, а (8), (9) с помощью функций 1 (t ) , 2 (t ) задают температуру на границах x f (t ) и x g (t ) [2]. В качестве примера мы рассмотрим линейные краевые условия: f (t ) 1t , g (t ) 2t. О вычислительном эксперименте. На примере решения задачи (7)–(9) был проведен вычислительный эксперимент, в котором сравнивалась скорость решения трехдиагональной СЛАУ специального вида по методу прогонки и с помощью полученных явных формул. Так как скорость вычислений зависит не только от алгоритма, но и от характеристик аппаратного и программного обеспечения машины, на котором производится эксперимент, приведем некоторые данные: процессор: Intel Core 2 Duo 2.4GHz; ОЗУ: 4.00 GB, DDR3, 1067MHz; 4 операционная система: Mac OS x Lion 10.7.3; JDK 1.6.0_29. Программа написана на языке Java с использованием интегрированной среды разработки NetBeans IDE 7.1.1. Алгоритм программы. Сначала на вход программы подаются следующие данные: коэффициенты левой и правой граничных функций, которые представляют собой полиномы третьей степени: 1 (t ) a1t 3 b1t 2 c1t , 2 (t ) a2t 3 b2t 2 c2t. ; угловые коэффициенты краевых условий xmin 1t рассмотрена симметричная задача, поэтому 1 2 ; и xmax 2t . В рамках эксперимента метод решения трехдиагональной СЛАУ – метод прогонки или решение с помощью явных формул; границы временного периода; количество точек сетки. Не теряя общности рассмотрения, можно считать, что коэффициент температуропроводности a 2 равен единице. Затем начинается построение трехдиагональной СЛАУ на основе неявных разностных схем (явные схемы не применяются, так как они устойчивы условно). Суть метода заключается в покрытии расчетной области x, t сеткой из NxM точек (рис. 1), что определит шаги по времени и простран- ству и h соответственно. Тем самым определяются узлы, в которых будет осуществляться поиск решения. Затем надо заменить уравнение теплопроводности аппроксимирующими их уравнениями в конечных разностях, выписав соответствующие разностные уравнения для каждого i, k -го узла сет- ки, где i – порядковый номер точки деления по x ; k – порядковый номер точки деления по t , а u ( xi , tk ) ui ,k – значение функции u , соответствующее точке xi , tk . Нумерация точек разностной сетки организована следующим образом: по оси x : i 0,1,... n ; по оси t : k 0,1,... m . Как уже отмечалось ранее, рассмотрена симметричная неявная разностная схема. Она построена так, что на каждом слое две краевые точки находятся на краевых линиях, и количество точек на следующем слое больше, чем на предыдущем, на две. Пример рассматриваемой разностной схемы изображен на рис. 1. i i-1 i+1 k+1 k Рис. 1. Неявная разностная схема для симметричной задачи Рис. 2. Шаблон неявной разностной схемы Неявной разностной схемой называется разностная схема, которая использует четырехточечный шаблон, показанный на рис. 2. Введем два временных слоя: нижний t k k , на котором распределение искомой функции u(xi, tk) известно (при k = 0 распределение определяется начальным условием (8)–(9), и верхний временной слой t k 1 (k 1) , на котором распределение искомой функции u ( xi , tk 1 ) подлежит определению. 5 Затем надо заменить уравнения теплопроводности аппроксимирующими их уравнениями в конечных разностях, выписав соответствующие разностные уравнения для каждого (i,k)-го узла сетки. Заменим аппроксимирующие уравнения теплопроводности уравнениями в конечных разностях u t 2u x 2 ui ,k 1 ui ,k xi ,tk O( ) , ui 1,k 1 2ui ,k 1 ui 1,k 1 h xi ,tk 1 2 (10) O(h 2 ) , (11) если подставить полученные дифференциальные операторы (10), (11) в исходное уравнение, получим соотношение, аппроксимирующее это дифференциальное уравнение в точке u xi , tk на раз- ностной сетке: ui ,k 1 ui ,k a2 ui 1,k 1 2ui ,k 1 ui 1,k 1 h 2 O( , h2 ) . Перенеся все неизвестные в левую часть, получим уравнение неявной разностной схемы: ui 1,k 1 (2 1)ui ,k 1 ui 1,k 1 ui ,k , Применим схему (12) к симметричной задаче (7)–(9). Сначала рассмотрим нулевой временной слой, где k ной схемы (12) примет вид: где a2 h2 . (12) 0 . Тогда уравнение неявной разност- u1,1 (2 1)u0,1 u1,1 u0,0 , где u1,1 , u1,1 , u0,0 известны. Найдем u 0 ,1 u0,1 u0,0 u1,1 u1,1 (2 1) Перейдем к следующему временному слою, из трех уравнений: . k 1 . Получится система уравнения, состоящая (2 1)u1,2 u0,2 u1,1 u2,2 u1,2 (2 1)u0,2 u1,2 u0,1 . u (2 1)u u u 0,2 1,2 1,1 2,2 Матрица этой системы имеет трехдиагональный вид: 0 (2 1) A3 (2 1) . 0 (2 1) При k 2 в систему будут входить уже пять уравнений. Итак, для каждого следующего временного слоя количество уравнений будет увеличиваться на два. Матрица для n -ого временного слоя выглядит следующим образом: 6 (2 1) (2 1) A2 n 1 0 0 , (2 1) (13) а вектор свободных членов соответствующей системы линейных алгебраических уравнений примет вид: d T un,n u( n1),n1 un1,n unk ,n un1,n un,n un1,n1 . (14) На основе матрицы (13) и вектора свободных членов (14) представим полученную трехдиагональную СЛАУ: (2 1)u n ,n 1 u n 1,n 1 u n ,n u ( n 1),n 1 u n , n 1 (2 1)u n 1, n 1 u n 2, n 1 u n 1, n u n k 1,n 1 (2 1)u n k ,n 1 u n k 1,n 1 u n k ,n . un 2,n 1 (2 1)un 1, n 1 un, n 1 un 1, n un 1,n 1 (2 1)un,n 1 un ,n un 1,n 1 Отметим, что матрица системы (15) A2 n 1 (13) меняет на каждом слое только размерность, а струк- тура сохраняется. Далее полученная система (15) решается тем методом, который был выбран в начале запуска программы (описание методов см. выше). Увеличение размерности матрицы приводит к тому, что с каждым слоем увеличивается размерность системы. Основное отличие метода явных формул от метода прогонки состоит в том, что метод явных формул максимально эффективно использует результаты предыдущих итераций, а метод прогонки решает каждую новую систему заново. Анализ результатов. В программе измеряется только время составления матрицы и решения системы. Время чтения входных параметров и вывода результатов не учитывается. Значения входных параметров: коэффициенты левой граничной функции: a1 0 , b1 0 , c1 1 ; a2 0 , b2 0 , c2 1 ; коэффициенты краевых условий 1 0,5 и 2 0,5 . коэффициенты правой граничной функции: Приведем таблицу результатов работы программы: Количество итераций ( n ) Среднее время по методу про- Среднее время по фор- гонки ( Tср1 ) (мкс) муле ( Tср 2 ) (мкс) Отношение ( 50 4 2 2 100 11,7 5,8 2,017241379 150 51,5 24,4 2,110655738 200 123,2 54,8 2,248175182 250 149,1 63,9 2,333333333 300 185,4 75,9 2,442687747 350 223,5 88,1 2,536889898 400 225,8 94,2 2,397027601 450 282,1 100,5 2,806965174 500 307,9 105,2 2,926806084 7 Tср1 Tср 2 ) Можно видеть, что время вычисления по формуле заметно меньше, чем время вычисления по методу прогонки. График изменения отношения времени выполнения алгоритма прогонки ко времени вычисления по формуле в зависимости от количества итераций представлен на рис. 3. 3,5 3 2,5 2 1,5 1 0,5 0 50 100 150 200 250 300 350 400 450 500 Риc. 3. График зависимости Tср1 / Tср 2 от n n Функция имеет очевидную тенденцию к возрастанию. На основе этого можно предположить, что с увеличением итераций новый алгоритм вычисления трехдиагональных СЛАУ специального вида будет иметь все большее преимущество перед методом прогонки. Библиографический список 1. Амосов А.А., Дубинский Ю.А., Копченова Н.В. Вычислительные методы для инженеров. – М.: Высш. шк., 1994. – 544 с. 2. Араманович И.Г., Левин В.И. Уравнения математической физики. – М.: Наука, 1969. – 288 с. 3. Ахтямов А.М., Садовничий В.А., Султанаев Я.Т. Обратные задачи Штурма-Лиувилля с нераспадающимися краевыми условиями. – М.: МГУ, 2009. – 183 с. 4. Гантмахер Ф.Р. Теория матриц. – М.: Физматлит, 2004. – 560 c. 5. Ильин В.П., Кузнецов Ю.И. Трехдиагональные матрицы и их приложения. – М.: Наука, 1985. – 208 с. 6. Сидоров А. Ф. Избранные труды: Математика. Механика. – М.: Физматлит, 2001. – 576 с. 8