Найти в Дзене
Андрей Куликов

Решение трёхдиагональных СЛАУ методом прогонки Томаса

............................................."Даром дадено, даром давайте", - Исус Христос. При вычислении глобальных кубических сплайнов [3] и в других задачах возникает необходимость решения систем линейных алгебраических уравнений (СЛАУ) с трёхдиагональной матрицей. СЛАУ с трёхдиагональной матрицей выгоднее решать не традиционным методом Гаусса, а его разновидностью для СЛАУ с трёхдиагональной матрицей - методом прогонки ("shattle"), который в англоязычной литературе называется алгоритмом Томаса [1][2] (1949г. [3]). Метод Гаусса требует O(n^3) арифметических операций, а алгоритм Томаса - O(n). Алгоритм Томаса имеет две разновидности: с сохранением и без сохранения исходных значений СЛАУ. Обе разновидности подробно описаны в статье [1]. В данной статье рассматривается разновидность алгоритма Томаса без сохранения исходных значений СЛАУ (an algorithm with less bookkeeping [1]). Так как Basic знают почти все, программа, реализующая алгоритм прогонки Томаса, была написана на Borland Tur
Оглавление

............................................."Даром дадено, даром давайте", - Исус Христос.

При вычислении глобальных кубических сплайнов [3] и в других задачах возникает необходимость решения систем линейных алгебраических уравнений (СЛАУ) с трёхдиагональной матрицей.

СЛАУ с трёхдиагональной матрицей выгоднее решать не традиционным методом Гаусса, а его разновидностью для СЛАУ с трёхдиагональной матрицей - методом прогонки ("shattle"), который в англоязычной литературе называется алгоритмом Томаса [1][2] (1949г. [3]). Метод Гаусса требует O(n^3) арифметических операций, а алгоритм Томаса - O(n). Алгоритм Томаса имеет две разновидности: с сохранением и без сохранения исходных значений СЛАУ. Обе разновидности подробно описаны в статье [1]. В данной статье рассматривается разновидность алгоритма Томаса без сохранения исходных значений СЛАУ (an algorithm with less bookkeeping [1]).

Так как Basic знают почти все, программа, реализующая алгоритм прогонки Томаса, была написана на Borland Turbo Basic'е, которого вполне достаточно для изучения, исследования и разработки усовершенствований многих числовых методов.

Преобразование входных векторов в исходную присоединённую матрицу СЛАУ (AM|f), её преобразование в правую верхнюю (Right-Upper) треугольную присоединённую матрицу СЛАУ (AM'|f') и их вывод на экран сделаны только для иллюстрации, а все вычисления в методе прогонки Томаса производятся только с векторами.

Программа имеет две версии: с индексацией векторов от 1 до N (THOMASRU.BAS) и с индексацией векторов от 0 до N-1 (THOMRUZ.BAS).

1. Программа THOMASRU.BAS на Borland TurboBasic'е

с индексацией векторов от 1 до N:

-2
-3

Рис.1. Снимок с экрана результата прогонки программы THOMASRU.BAS в компиляторе Borland TurboBasic.

Учебное наглядное пособие THOMRUDE.EXE (исходник: THOMRUDE.BAS) для изучающих решение трёхдиагональных СЛАУ методом прогонки Томаса Right-Upper, показывающее последовательность вычислений:

-4

2. Программа THOMRUZ.BAS на Borland TurboBasic'е

с индексацией векторов от 0 до N-1:

-5
-6
-7

Рис.2. Снимок с экрана результата прогонки программы THOMRUZ.BAS в компиляторе Borland TurboBasic.

Учебное наглядное пособие THOMRUZD.EXE (исходник: THOMRUZD.BAS) для изучающих решение трёхдиагональных СЛАУ методом прогонки Томаса Right-Upper, показывающее последовательность вычислений:

-8

Литература:

1. Tridiagonal matrix algorithm. Wikipedia.

2. Метод прогонки. Википедия.

3. Глобальный кубический сплайн, программа на Borland TurboBasic'е. Куликов А. С. Дзен.

4. Численные методы решения краевых задач. Максютов М.С. - М.:МГГЭУ, 2014.

5. Метод прогонки: решение СЛАУ с трёхдиагональной матрицей. Дзен.

Приложения:

1. Скачать файл с текстом программы THOMASRU.BAS

2. Скачать файл с текстом пограммы THOMRUZ.BAS

3. Скачать файл с Borland Turbo Basic'ом TB.EXE

4. Скачать файл с руководством по Borland Turbo Basic'у BASIC.TXT

5. Скачать файл с архивом Power Basic'а pb.zip

Версия 2025.11.01, исправленная и дополненная.