13. Shmoylov V.I., Kovalenko V.B. Nekotoroe primeneniya algoritma summirovaniya raskho-dyashchiesya nepreryvnykh drobey [Some applications of the algorithm of summation of divergent continued fractions], Vestnik Yuzhnogo nauchnogo tsentra RAN [Bulletin of the South scientific center of RAS], 2012, No. 4 (149), pp. 3-13.
14. Shmoylov V.I., Savchenko D.I. Ob algoritme summirovaniya raskhodyashchikhsya nepreryvnykh drobey [About the algorithm of summation of divergent continued fractions], Vestnik VGU. Seriya: Fizika. Matematika [Proceedings of Voronezh State University. Series: Physics. Mathematics], 2013, No. 2, pp. 258-276.
15. Guzik V.F., Shmoylov V.I., Kirichenko G.A. Nepreryvnye drobi i ikh primenenie v vy-chislitel'noy matematike [Continuous fractions and their application in computational mathematics], Izvestiya YuFU. Tekhnicheskie nauki [Izvestiya SFedU. Engineering Sciences], 2014, No. 1 (150), pp. 158-174.
16. Shmoylov V.I. Raskhodyashchiesya sistemy lineynykh algebraicheskikh uravneniy [Divergent systems of linear algebraic equations]. Taganrog: Izd-vo TTI YuFU, 2010, 205 p.
17. Shmoylov V.I. Nepreryvnye drobi i r/9-algoritm [Continuous fractions and ^-algorithm]. Taganrog: Izd-vo TTI YuFU, 2012, 608 p.
18. Shmoylov V.I., Redin A.A., Nikulin N.A. Nepreryvnye drobi v vychislitel'noy matematike [Continuous fractions in computational mathematics]. Rostov-on-Don: Izd-vo YuFU, 2015, 228 p.
19. Aitken A.C. On Bernulli's numerical solution of algebraic equations. Edinburg, Proc. Roy. Soc., (1925/26), pp. 289-305.
20. Rutiskhauzer G. Algoritm chastnykh i raznostey [The algorithm and private differences]. Moscow: IIL, 1960, 93 p.
Статью рекомендовал к опубликованию д.т.н., проф. Н.И. Витиска
Гузик Вячеслав Филиппович - Южный федеральный университет; e-mail: [email protected]; 347928, г. Таганрог, пер. Некрасовский, 44; тел.: 88634347928; кафедра вычислительной техники; профессор.
Кириченко Геннадий Анатольевич - e-mail: [email protected]; кафедра вычислительной техники; аспирант.
Шмойлов Владимир Ильич - НИИ Многопроцессорных вычислительных систем; e-mail: [email protected]; 347928, г. Таганрог, ул. Чехова, 2; научный сотрудник.
Guzik Vyacheslav Filippovich - Southern Federal University; e-mail: [email protected]; 44, Nekrasovskiy, Taganrog, 347928, Russia; phone: +78634347928; the department of computer science; professor.
Kirichenko Gennady Anatolievich - e-mail: [email protected]; phone: +78634371428; the department of computer science; postgraduate student.
Shmoylov Vladimir Ilyich - Research Institute of Multiprocessor computing systems; e-mail: [email protected]; 2, Chekhov street, Taganrog, 347928, Russia; researcher.
УДК 512.644:517.524
В.В. Селянкин, В.И. Шмойлов
РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ МЕТОДОМ СУММИРОВАНИЯ РАСХОДЯЩИХСЯ РЯДОВ
Предлагается способ решения систем линейных алгебраических уравнений (СЛАУ), который основывается на суммировании рядов соответствующими цепными дробями.
Полученные алгоритмом простой итерации приближения Х(0\ Х(1), Х(2),..., Х(к) рассматриваются как частичные суммы ряда, который сходится, если сходится итерационный процесс, и расходится - в противном случае. По этим частичным суммам строится ряд,
первый элемент которого будет совпадать с х(0), а последующие члены ряда р.^к -
равны разности x.(^ — Построенный ряд, или связанный с этим рядом итерацион-
ный процесс, может сходиться медленно или даже расходиться. Суммирование этих рядов, генерируемых алгоритмом простой итерации, осуществляется соответствующими цепными дробями, или правильными C-дробями, причем, построенные по рядам правильные C-дроби оказываются конечными. Таким образом, предлагаемый алгоритм решения СЛАУ относится к категории прямых алгоритмов, обеспечивающих точное решение системы за конечное число операций. Для получения точных решений СЛАУ необходимо использовать результаты 2n итераций, где n - размерность СЛАУ. В то же время предлагаемый алгоритм может обеспечивать приближенные решения СЛАУ при числе итераций N<<2n, что позволяет рассматривать алгоритм как итерационный, имеющий высокую скорость сходимости. Приводятся примеры решения СЛАУ и оценивается эффективность алгоритма.
Ускорение сходимости итерационных алгоритмов; цепные дроби; суммирование расходящихся рядов; точные методы решения СЛАУ.
V.V. Selyankin, V.I. Shmoylov
SOLUTION OF SYSTEMS OF LINEAR ALGEBRAIC EQUATIONS BY THE METHOD OF SUMMATION OF DIVERGENT SERIES
Provides a method for solving .systems of linear algebraic equations, which is based on the summation of the corresponding continued fractions. The resulting algorithm simple iteration
approximation X(0), X(1), X(2),..., k shall be considered as partial sums that converges if the iterative process converges and diverges - otherwise. For these partial sums constructed series, the
first element of which р will coincide with х(0), and subsequent members of the series p <k' are
difference X. ^ ^ — xf~ 1. A number of construction, or associated with this next iteration process
may converge slowly or even diverge. The summation of these series generated simple iteration algorithm, implemented the correct C-fractions, and constructed by series regular C-fractions are finite. Thus, the proposed algorithm for solving linear algebraic equation is classified as direct algorithms providing an exact solution of a finite number of operations. For exact solutions of linear algebraic equation is necessary to use the results of 2n iterations, where n - the dimension of the linear algebraic equation. At the same time, the proposed algorithm can provide and approximate solutions of system of linear equations when the number of iterations N<<2n, so we consider the algorithm as an iterative, with the high rate of convergence. Examples of solutions SLAE and evaluated the effectiveness of the algorithm.
Acceleration of the convergence of iterative algorithms; continued fractions; and the summation of divergent series; exact methods SLAE.
Постановка задачи. Известна целая серия точных алгоритмов решения СЛАУ, использующих в своей структуре итерационные процедуры, которые обрываются на некотором шаге. В результате получаются точные значения неизвестных за конечное число операций, что является основным признаком прямого алгоритма. Такие алгоритмы решения СЛАУ будем называть «точными методами с фиксированным числом итераций».
В последние десятилетия для решения СЛАУ большой размерности наиболее эффективным средством признаны итерационные методы неполной факторизации, дополненные вариационными алгоритмами ускорения сходимости [1]. Если ширина d ленточной части от обратной матрицы совпадает с размерностью N матрицы, то метод неполной факторизации из итерационного превращается в прямой, дающий точное решение за конечное число операций. Фактически в этом случае метод неполной факторизации переходит в блочный метод Гаусса.
Предлагается точный алгоритм решения СЛАУ, базирующийся на итерационных алгоритмах решения СЛАУ. В качестве исходного алгоритма использовался метод простых итераций, или метод Якоби. Предложенный в статье подход к ре-
шению СЛАУ через суммирования расходящихся рядов построением соответствующих цепных дробей позволяет эффективно находить приближённые значения неизвестных СЛАУ и строить итерационные алгоритмы, имеющие высокую скорость сходимости.
Актуальность и практическое применение. Возможности решения систем линейных алгебраических уравнений большой размерности существенно возросли с появлением компьютерной техники, обладающей высокой производительностью. При этом большое значение имеет и точность решения СЛАУ. Однако несмотря на ощутимый прогресс в повышении скорости выполнения вычислительных операций, время решения СЛАУ всегда занимало примерно одинаковое время. В связи с этим задача решения СЛАУ больших размеров сохраняет свое актуальность и в настоящее время. Повышение эффективности решения СЛАУ идет в двух направлениях - за счет развития математических методов и совершенствовании технических возможностей ЭВМ. Такой технологией в настоящее время является развитие многопоточных вычислений на многопроцессорных системах и на графических процессорных устройствах.
Описание алгоритма. Предлагаемый алгоритм решения СЛАУ основан на использовании суммирования расходящихся рядов с использованием соответствующих цепных дробей.
Выражение
и + и2 +...+ип +..., (1)
как и запись бесконечной цепной дроби
ь + а. а* ап , Ь + ь2 +...+ьп +...
само по себе никакого определенного смысла не имеет, ибо при сложении оперируют лишь с конечным числом слагаемых. Смысл выражения (1) надо устанавливать [2].
Суммированию ряда (1), т.е. нахождение значения этого ряда, как установление предела частичных сумм, представляется естественным и практически удобным, однако оказывается, что во множестве случаев ряды не суммируются таким простейшим способом, то есть не существуют пределы частичных сумм. Известны многочисленные приемы суммирования расходящихся рядов - методы Эйлера, Чезаро, Абеля-Пуассона, Бореля, Вороного и другие [3]. В литературе по цепным дробям давно отмечено, что некоторые медленно сходящиеся и даже расходящиеся ряды могут быть просуммированы путем преобразования этих рядов в так называемые соответствующие цепные дроби. Этот прием суммирования расходящихся рядов впервые предложил Эйлер. Эйлер использовал для построения соответствующих цепных дробей процедуру последовательного деления, то есть алгоритм, по сути совпадающий с алгоритмом Евклида. Позже приём суммирования расходящихся рядов через соответствующие цепные дроби использовали Лагерр и Стилтьес [4]. Следует, однако, отметить, что суммирование рядов через цепные дроби в вычислительной практике используется достаточно редко, нечасто используется и сам аппарат цепных дробей.
Определим суммирование ряда через соответствующие цепные дроби.
Степенной ряд
С + Сх + с2х2 +... + СпхП +... (2)
сходится к значению соответствующей этому ряду цепной дроби
с х сх схх С„_лх с„х с +—1 2п 1 2п (3)
0 1 - 1 + 1 -... + 1 - 1 +...
Такое определение сходимости степенного ряда представляется целесообразным, если обратиться к понятию соответствующей цепной дроби. Цепная дробь называется
соответствующей цепной дробью, или правильной С-дробью, если п-я подходящая цепной дроби (3) совпадает с исходным рядом (2) до члена сХ включительно:
(х) 2 ю л+1
= + сх + с2х +... + спх +уп+1х +....
Оп(х)
Таким образом, правильную С-дробь можно рассматривать как производящую функцию для степенного ряда.
Коэффициенты соответствующей цепной дроби (3) и коэффициенты с, степенного ряда (2) связаны соотношениями Хейлерманна-Стилтьеса [5]. Эти формулы имеют вид:
щ =е0, щ =с„
Щ2п =
Рп-хУп+1
Р п¥п
Щ2п =
Рп+хУп+1 Р п¥ п+1
(4)
(Ро = 1, V, = 1 .
Числовой ряд
С0 + с1 + с2 + ... + Сп + ... (5)
суммируется значением цепной дроби (3) при х = 1, если ряд (5) рассматривать как степенной ряд (2) при х = 1.
Кроме формул Хейлерманна-Стилтьеса (4), которые весьма затруднительно использовать при получении значительного числа коэффициентов Щ соответствующей цепной дроби, имеются эффективные рекуррентные формулы для определения Щ, например, алгоритмы Висковатова, Никипорца, Хлопонина [6-8].
В статье при построении соответствующих цепных дробей используется рекуррентный алгоритм Рутисхаузера [9].
При суммировании рядов через соответствующие цепные дроби проблема сходимости рядов фактически сведена к проблеме сходимости цепных дробей. При таком определении сходимости степенных рядов область сходимости рядов совпадает с областью сходимости соответствующих цепных дробей.
Рассмотрим примеры суммирования расходящихся рядов методом преобразования рядов в соответствующие цепные дроби. Просуммируем методом цепных дробей расходящийся ряд
1 - 2 + 3 - 4 + 5 -... . (6)
Введем обозначения:
с0 = 1, с1 = -2, с2 = 3, с3 = -4, с4 = 5,.... (7)
Используя формулы (4), запишем несколько первых коэффициентов Щу соответствующих цепных дробей через коэффициенты с, ряда в более наглядной форме:
(8)
Подставляя значения ci из (7) в формулы (8), получим значения коэффициентов с соответствующей цепной дроби:
Каноническая запись соответствующей цепной дроби имеет вид
+-
1 - 1 + 1 - 1 + 1 -...
Так как сс = 0, то цепная дробь конечна. Подставим значения коэффициен-
тов Ю :
-2 - 3 -1 - 2 1 + — -3 -1 1 - 1 + 1 - 1
После эквивалентных преобразований получим цепную дробь
2 3 1 2-1
1 + 2 -3 + 1 " 4'
1
значение которой является значением расходящегося ряда (6). Именно такую сумму этого ряда дает метод Пуассона-Абеля.
Опуская промежуточные вычисления, приведем результаты суммирования некоторых расходящихся рядов через соответствующие цепные дроби:
3 5 4 3
1-3+5-7+9-11+... = 1-3 5 4 3 = с,
1 + 3 - 5 +1
1 +1 -1 + 2 - 5 +14 - 42 +132 - ...1 +
1 1
1
1 +1 +... +1 +
= 1.618033... =
1 + V5
2
1 -1!+ 2!- 3!+ 4!-... =1 1122 ЕЕ = 0.596347 - = ^'HX 1 +1 +1 + 1 + 1 +... + 1 + 1 +...
1-1+1- 3-1- 3-5 + 1- 3- 5 • 7-1- 3-5 • 7 • 9+... =
112 3 Е 1 +1 + 1 +1 +... + 1 +...
= 0,655680 = l^erfci-1
IV2,
В [10] предложено иное, нежели традиционное, определение сходимости непрерывных дробей. Метод суммирования расходящихся в классическом смысле непрерывных дробей (г/^-алгоритм) получил разнообразные применения в вычислительной математике [11-20].
Рассмотрим метод решения СЛАУ, базирующийся на классическом итерационном алгоритме решения СЛАУ, а именно на алгоритме Якоби, или методе простых итераций. Суммирование рядов, которые строились для каждой неизвестной по значе-(к)
ниям х] , получаемых в процессе итераций, производилось через построение для этих рядов соответствующих цепных дробей. Для краткости предлагаемый комбинированный метод решения СЛАУ будем называть «методом цепных дробей».
Пусть имеется система стандартного вида
Ах = Ь, (9)
где А = (а у)"у=1 - матрица пX п ,х = (х1,...,хп)т и Ь = (Ь1,...Ь„)Т. Система (9) преобразовывается к виду, соответствующему методу простых итераций:
х(к+1) = Вх(к) + с , к = 0Д,2,... ,
где х - вектор неизвестных, В и с- некоторые новые матрица и вектор, соответственно.
Получив приближения х(к), можем представить приближения для каждой неизвестной х, как частичные суммы ряда, который сходится, когда сходится итерационный процесс, и расходится - в противном случае. Зная частичные суммы
^ (0) (0) ряда легко наити элементы ряда, первый из которых будет равен р = Хг , а
последующие р1 = х1 — р1 , т.е. можно рассматривать ряд
р(0) + р(1) + р(2) +... + р(к) +(10)
частичная к-я сумма, которая совпадает со значением х(к). Здесь индекс I означает номер неизвестной х,, а к - номер итерации. Ряд (10) может сходиться медленно, или даже расходиться. Для суммирования рада (10) будем использовать соответствующие цепные дроби, которые были рассмотрены выше.
Так как рекуррентный алгоритм Рутисхаузера построения по ряду соответствующей цепной дроби предполагает использование двумерного массива чисел, запишем ряд (10), представляющий первую строку (рис. 1), в таких обозначениях:
р(0) + р,(1) + р(2)+...+р(к)+...=«02 +«0 +«й +«+...+«12—1+... (11)
Построенная для этого ряда соответствующая цепная дробь, имеет вид
а0) а0) а0) а0) а0) -,0) , а1,0 а2,0 а3,0 а2п,0 а2п+1,0
а°° +Т —Т ——... (12)
Коэффициенты соответствующей цепной дроби (12) находятся по рекуррентным формулам Рутисхаузера из коэффициентов ряда (11):
(О _ «1У+1
«2,у (|) ,
«
ГУ(1) — —ГУ(1) 4- Г/(Г)
«3,у «2,у+1 +«2,у,
(|) _ «(|)2,у+1 -«(|)3,у+1 «
«5 у = « 3,у+1 — « 4,у+1 + «4 у ,
а^) -«(I)
(I) «2п—2,у+1 «2п—1,у+1 « =-:-:-
«2п,у (I) '
«2п—1,у
= — + <„. (13)
На рис. 1 показан фрагмент графа рекуррентного алгоритма Рутисхаузера. Исходными значениями для вычислений являются первые приближения неизвестной х , полученные методом простых итераций.
Рис. 1. Граф рекуррентного алгоритма Рутисхаузера
Значения элементов ряда (11) расположены в первой строке графа. Далее производится вычисления в соответствии с рекуррентным алгоритмом Рутисхаузера (13). После того как найдены коэффициенты соответствующей цепной дроби (12), можно найти сумму ряда (11) как значение соответствующей цепной дроби (12).
Примеры работы алгоритма. Ниже в табл. 1-6, приведены результаты решения тестовых систем линейных алгебраических уравнений методом цепных дробей.
При к<<п, сложность алгоритма близка к квадратичной. Здесь п- размерность матрицы СЛАУ, к - количество итераций. При к = 2п (данное количество итераций необходимо для получения точного решения СЛАУ), сложность алгоритма близка к кубической.
Результаты решения систем методом цепных дробей приводятся в таблицах
двух видов. В таблицах первого вида записываются результаты вычислений х1
различных систем. В таблицах второго вида помещены результаты определения х]. В качестве «точных» значений XI систем принимаются их значения, полученные методом Гаусса.
Опишем подробнее таблицы на примере решения системы (14). Система имеет симметричную матрицу. Размерность матрицы пятидиагональной СЛАУ
256x256.
(I 0.3 0.3 0.3
•VV
0.3 1.0001 0.3 0.3 0.3 0.3 1.0002 0.3
п ^ 2 3
(14)
Определение XI системы (14) методом цепных дробей. х1=-179,3704171
Таблица 1
ч
/ ч /
ч /
питер Значения х1 по методу простых итераций Коэффициенты ряда Коэффициенты дроби Значения х1 по методу цепных дробей Погрешность абсолютная
1 1,00000000е+00 1,00000000e+00 1,00000000e+00 1,00000000е+00 180,3704171
2 -9702,878908 -9703,878908 -9703,878908 0,0001030409559 179,3705201
3 720460,5894 730163,4683 -9628,634413 -126,2731743 53,09724277
4 -54437612,45 -55158073,04 0,002325588136 -179,3692933 0,00112374969
5 4,11Е+09 4,17E+09 -0,1048888677e-4 -179,3700844 0,0003326421203
6 -3,1Е+11 -3,1E+11 0,2960016998 -179,3704171 0,7593409386e-8
7 0,2346628317е14 0,2377692654e14 -0,1131120886e-4 -179,3704171 0,2248818877e-8
Окончание табл. 1
8 -0,1772664413e16 -0,1796130696e16 0,2961444259 -j79,3704j7j 0,5240038459e-j3
9 0,133908685e18 0,1356813494e18 -0,115428I796e-4 -j79,3704j7j 0,j552j08j2je-j3
10 -0, J0J1558408e20 -0, j 024949276e20 0,296J9J9J j -j79,3704j7j 0,364634j097e-j8
509 0,1651650909e957 0,16735 j 5233e957 -0,J83599298Je-6 -j79,3704j7j 0,4j 02659424e- j 366
510 -0,1247672147e959 -0,1264188656e959 0,296j698j68 -j79,3704j7j 0,76j762j985e-j373
511 0,9425029081e960 0,9549796295e960 -0,9j97929455e-7 -j79,3704j7j 0,2256j05jj3e-j373
512 -0,71j 9752847e962 -0,7214003138e962 0,296j69j749 -j79,3704j7j 0,jj 09556603e-j973
513 0,5378326174e964 0,5449523703e964 -0,36920j4396e-598 -j79,3704j7j 0,jj94557943e-j97j
514 -0,4062836599e966 -0,4JJ66J986e966 -j04,3670037 -j79,3704j7j 0,2232737804e-j973
515 0,3069103786e968 0,3J09732J52e968 -j7,5j280048 -j79,3704j7j 0,2j j3443j05e-j972
Значения xt системы (14), полученные методом цепных дробей.
Таблица 2
Xi Значениях; системы(14) по методу Гаусса Значениях; системы (14) по методу цепных дробей Номер звена Погрешность абсолютная
1 -га,3704т ^79,3704™ 5B 0,2n3443j05e-j972
2 -j77,9j6429 -!77,9!6429 5j3 0,j032566525e-j97j
4 ^75,0096986 ^75,0096986 5j3 0,282j949672e-j97j
8 -169,2012159 -j69,20 j2 j 59 5j3 0,П 6227972 ^^97!
!6 -j57,604j225 -j57,604j225 5j3 0,943953j909e-j972
32 -В4,489Ш82 -j34,489j082 5B 0,2390146323e-1971
64 -88,57325777 -88,57325777 5j3 0,1823171976e-1971
j28 2,02j478937 2,02M78937 5j3 0,1031114694e-1971
256 j78,4j58622 j78,4j58622 5j3 0,2555878102e-1971
В первой колонке табл. 1 указаны номера итераций, во второй - результаты вычисления хJ по методу простых итераций. В третьей колонке табл. 1 приведены
коэффициенты ряда, которые находятся как разности xi^ — x(k ^ , т.е. по значениям приближений X , полученным методом простых итераций. В колонке 4 помещены коэффициенты соответствующей цепной дроби, которые определяются для ряда по формулам Рутисхаузера (13). В пятой колонке приводятся значения для неизвестной Xj системы (14), полученные методом цепных дробей, т.е. после вычисления соответствующей цепной дроби. В колонке 6 табл. 1 приведены абсолютные погрешности в определении х1, которые устанавливаются как разности х1Г - Хщ,, где х1Г - «точные» значения х1 системы (14), определяемые по методу
Гаусса; х(ф - значения х1 системы (14), найденные методом цепных дробей после k-й итерации.
В первой колонке табл. 2 указаны номера неизвестных х, решаемой системы. Во второй колонке приведены «точные» решения х, системы (14), найденные по методу Гаусса. В колонке 3 этой же таблицы даны значения х, системы (14), установленные по методу цепных дробей. В колонке 4 показаны номера звеньев цепных дробей, коэффициенты которых близки к нулю. В колонке 5 приведены абсолютные погрешности для х,, найденных методом цепных дробей.
Анализируя табл. 1 и 2 можно сделать следующие выводы. Система (14) не решается методом простых итераций. Из колонки 6 табл. 1 следует, что уже после 6-й итерации метод цепных дробей даёт в определении xj погрешность порядка 10-8. По-
грешность метода цепных дробей после 512-й итерации, то есть разность в значениях х,, определённых методом Гаусса и методом цепных дробей, составила величину порядка 10-1971. Соответствующая цепная дробь, которая строилась по ряду, генерируемому алгоритмом простых итераций, оказалась конечной. В самом деле, как видно из колонки 4 табл. 1, в которой помещались коэффициенты ^, получаемые по алгоритму Рутисхаузера из коэффициентов ряда, значение коэффициента ^ с номером 513 скачком приняло практически нулевое значение. Если некоторый коэффициент ^ цепной дроби (12) равен нулю, то цепная дробь, естественно, обрывается.
Часто при тестировании алгоритмов решения СЛАУ используются системы с матрицей Гильберта. Система (15) имеет матрицу Гильберта размерности 256x256.
(1 1/2 1/3 1/4 1/5 - Л V '4.058495 ^
1/2 1/3 1/4 1/5 1/6 ••• х2 3.088798 (15)
1/3 1/4 1/5 1/6 1/7 ■•• х3 2.618209
ч ' ' ....../ \" V V "
Определение х1 системы (15) методом цепных дробей. хх=1.0000000000е+00
Таблица 3
^итер Значениях1по методу простых итераций Коэффициенты ряда Коэффициенты дроби Значения ^по методуцепных дробей Погрешность абсолютная
1 6.124344963 6.124344963 6.124344963 6.124344963 5.124344963
2 -676.1613829 -682.2857279 -111.4055025 0.05448438758 0.9455156124
3 142681.3633 143357.5247 98.70811837 2.89250362 1.89250362
4 -31581016.57 -31723697.94 -23.79209174 0.262125896 0.737874104
5 7.02Е+09 7.06Е+09 10.06123352 1.377415957 0.3774159566
6 -0.15634502е13 -1.6Е+12 -4.532900484 0.5709906334 0.4290093666
7 0.3479776921е15 0.3495411423е15 2.069753773 0.8648110363 0.1351889637
8 -0.7744999096е17 -0.7779796865е17 -0.2844497486 0.8198200171 0.1801799829
9 0.1723818829е20 0.1731563828е20 1.817948912 0.8470950856 0.1529049144
510 -0.2084986269е1196 -0.2094353968е1196 1.0000000000е+00 1.0000000000е+00 0.6728349722e-42
511 0.4640593013е1198 0.4661442876е1198 0.1602257391е-32 1.0000000000е+00 0.6728349722e-42
512 -0.1032865484е1201 -0.1037506077е1201 1.0000000000е+00 1.0000000000е+00 0.3680547381e-449
513 0.2298868064е1203 0.2309196719е1203 0.764153 8433е-420 1.0000000000е+00 0.1672079277e-446
514 -0.5116633732е1205 -0.5139622413е1205 -48.45869637 1.0000000000е+00 0.3020145815e-448
515 0.1138818759е1208 0.1143935392е1208 -1025.365704 1.0000000000е+00 0.1755289189e-446
Значения х, системы (15), полученные методом цепных дробей.
Таблица 4
Xi Значение хi системы (15) по методу Гаусса Значение хi системы (15) по методу цепных дробей Номер итерации Погрешность абсолютная
1 1.00000000е+00 1.00000000е+00 513 0.1755289189е-446
2 1.00000000е+00 1.00000000е+00 513 0.1433017049е-446
4 1.00000000е+00 1.00000000е+00 513 0.1447135102е-444
8 1.00000000е+00 1.00000000е+00 513 0.7368712724е-445
16 1.00000000е+00 1.00000000е+00 513 0.1353786127е-444
32 1.00000000е+00 1.00000000е+00 513 0.2854199931е-444
64 1.00000000е+00 1.00000000е+00 513 0.1786605345е-444
128 1.00000000е+00 1.00000000е+00 513 0.160858509е-444
256 1.00000000е+00 1.00000000е+00 513 0.2338567748е-444
Система (15) не решается методом простых итераций. Метод цепных дробей, который использует результаты метода простых итераций, после 512-й итерации определяет х1 с погрешностью 10-420, то есть можно говорить о точном решении. Как следует из табл. 4, после 512 итерации получаем точные решения для других неизвестных системы (15).
Рассмотрим СЛАУ со «случайной» матрицей. Размерность матрицы системы 256х256. Каждый элемент взят при помощи программы случайной выборки чисел из диапазона [1, 1000].
(16)
'41 467 334 500 ..Л V ' 771"
538 869 912 667 х2 106
40 942 264 648 х, 929
V............ "у V''') V ' /
Определение х1 системы (16) методом цепных дробей.
х1 = -0,291383177
Таблица 5
П„ер Значения по методупростых итераций Коэффициенты ряда Коэффициенты дроби Значения по методу цепных дробей Погрешность абсолютная
1 642.9756098 642.9756098 642.9756098 642.9756098 643.2669929
2 -3407667.169 -3408310.144 -5300.838932 0.1212740745 0.4126572516
3 9,86Е+09 9,86Е+09 -2406.652122 -534.2576289 533.9662458
4 -0.3530990698е14 -0.3531976786е14 825.4293479 0.4750325611 0.7664157381
5 0.121028622е18 0.1210639319е18 714.1127696 479.9192135 480.2105967
6 -0.4175666095е21 -0.4176876381е21 157.1963477 -1.138500072 0.847116895
7 0.1440412828е25 0.1440830394е25 -1258.047902 388.0066733 388.2980565
8 -0.4966617511е28 -0.4968057924е28 -194.6242762 9.052392438 9.343775615
9 0.1712965771е32 0.1713462432е32 703.5620284 368.4978943 368.7892775
509 0.114696818е1801 0.1147300763е1801 0.8674550358 -4.443761158 4.152377981
510 -0.3955514642е1804 -0.395666161е1804 0.8834059481 -0.4132877133 0.1219045363
511 0.1364126429е1808 0.1364521981е1808 -0.00726462427 -0.3975818769 0.1061986998
512 -0.4704421761е1811 -0.4705785887е1811 0.8677812762 -0.291383177 0.8062091442е-1661
513 0.1622399773е1815 0.1622870216е1815 0.2993997137е-1656 -0.291383177 0.2467829717е-1656
514 -0.5595121269е1818 -0.5596743668е1818 -555.0094489 -0.291383177 0.4357991312е-1659
515 0.1929572632е1822 0.1930132144е1822 -28036.16714 -0.291383177 0.2517673447е-1656
Значения системы (16), полученные методом цепных дробей.
Таблица 6
XI Значениях^истемы (16) по методу Гаусса Значениях^истемы (16) по методу цепных дробей Номер итерации Погрешность абсолютная
1 -0.291383177 -0.291383177 513 0.2517673447е-1656
2 0.4471290468 0.4471290468 513 0.1197442553е-1658
4 -1.370544251 -1.370544251 513 0.1993382065е-1656
8 -0.4654424205 -0.4654424205 513 0.2545774512е-1659
16 0.423535662 0.423535662 513 0.1014866952е-1658
32 -0.5951374411 -0.5951374411 513 0.4526389995е-1659
64 -0.458832732 -0.458832732 513 0.1788412858е-1659
128 1.395868499 1.395868499 513 0.4539650211е-1659
256 -0.06711334698 -0.06711334698 513 0.1040304577е-1657
Из данных, размещённых в колонках 5 и 6 табл. 5, следует, что при решении системы (16) нет постепенного приближения неизвестных, как то имело место при решении систем (14) и (15). На 513-й итерации, в соответствии с ранее установленной закономерностью, метод цепных дробей даёт точное решение СЛАУ (16), -погрешность в определении х1 составляет порядка 10-1656. Из табл. 6 следует, что с такой же погрешностью на 513-й итерации определяются и другие неизвестные системы (16).
Можно отметить, что специфика «метода простых дробей» такова, что требуется проводить вычисления с большой разрядностью операндов. Например, при решении СЛАУ (15) с матрицей Гильберта разрядность составляла 30 000 бит.
В рассмотренных выше примерах в качестве исходного алгоритма использовался метод простых итераций. Было установлено, что «метод цепных дробей» можно применять, используя алгоритм Зейделя в качестве базового итерационного алгоритма.
Заключение. В методе цепных дробей генерация отсчётов для х, по методу простых итераций в некотором смысле имеет формальный характер, так как эти отсчёты являются промежуточными результатами и служат лишь базой для построения по этим отсчётам ряда, значение которого затем находится вне зависимости от того, является этот исходный ряд сходящимся или расходящимся. Суммирование рядов происходит через построение по одному из известных алгоритмов, так называемых соответствующих цепных дробей, которые оказываются конечными. Эти конечные цепные дроби дают точные значения х,, если не учитывать неизбежных ошибок округления при счёте. При решении СЛАУ с разными матрицами и правыми частями всякий раз подтверждалось правило, установленное экспериментально: метод цепных дробей обеспечивает точное решение СЛАУ при использовании 2п итераций, выполненных по алгоритму Якоби, где п - размерность СЛАУ.
Этот, казалось бы, неожиданный результат имеет естественное объяснение. Ряды, которые возникают при методе простых итераций, в конечном счёте, порождаются рациональными функциями, в явном виде записываемыми формулами Крамера, т.е. отношениями определителей п-х-порядков. Но, как известно, рациональные функции представляются конечными правильными С-дробями. Поэтому, когда ряд, генерируемый рациональной функцией, преобразовывается одним из алгоритмов в соответствующую цепную дробь, или правильную С-дробь, то эта соответствующая цепная дробь будет конечной, что и наблюдается при решении СЛАУ методом простых итераций, дополненного суммированием цепных дробей.
Таким образом, установлено, что метод простых итераций, при суммировании порождаемых рядов алгоритмом Рутисхаузера приводит к точным решениям СЛАУ. Если построенные по итерациям соответствующие цепные дроби сходятся, т.е. дают приближённые значения неизвестных при увеличении количества звеньев, то метод цепных дробей может использоваться в качестве приближённого метода. Возможность приближённого вычисления значений неизвестных системы весьма полезна в практическом плане, так как позволяет существенно увеличить размерность решаемых СЛАУ.
Данная статья подготовлена в рамках выполнения базовой части государственного задания по теме № 3442 "Информационно-алгоритмическое обеспечение систем цифрового управления, автономной высокоточной навигации и технического зрения для перспективных летательных аппаратов: разработка теоретических основ проектирования, алгоритмов, способов эффективной и надежной программной реализации, использование высокопроизводительной вычислительной инфраструктуры для экспериментального моделирования".
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Ильин В.П. Методы неполной факторизации для решения алгебраических систем. - М.: Физматлит, 1995. - 233 с.
2. Скоробогатько В.Я. Теория ветвящихся цепных дробей и ее приложение в вычислительной математике. - М.: Наука, 1983. - 312 с.
3. Харди Г. Расходящиеся ряды. - М.: Изд-во иностр. лит-ры, 1951. - 504 с.
4. Шмойлов В.И. Непрерывные дроби. В 3-х т. Т. 3. Из истории непрерывных дробей.
- Львов: Меркатор, 2004. - 520 с.
5. Джоунс У., Трон В. Непрерывные дроби. Аналитическая теория и приложения. - М.: Мир, 1985. - 414 с.
6. Хованский А.Н. Применение цепных дробей и их обобщений к вопросам приближенного анализа. - М.: Гостехиздат, 1956. - 203 с.
7. Шмойлов В.И. Непрерывные дроби. В 3-х т. Т. 2. Расходящиеся непрерывные дроби.
- Львов: Меркатор, 2004. - 558 с.
8. Хлопонин С.С. Приближение функций цепными дробями. - Ставрополь: Изд-во СГПИ, 1977. - 102 с.
9. Рутисхаузер Г. Алгоритм частных и разностей. - М.: ИИЛ, 1960. - 93 с.
10. Шмойлов В.И. Суммирование расходящихся цепных дробей. - Львов: ИППММНАН Украины, 1997. - 23 с.
11. Шмойлов В.И., Марчук М.В., Тучапский Р.И. Непрерывные дроби и некоторые их применения. - Львов: Меркатор, 2003. - 784 с.
12. Шмойлов В.И. Непрерывные дроби. В 3-х т. Т. 1. Периодические непрерывные дроби // Нац. акад. наук Украины, Ин-т прикладных проблем механики и математики. - Львов, Ю, 2004. - 645 с.
13. Шмойлов В.И. Расходящиеся системы линейных алгебраических уравнений. - Таганрог: Изд-во ТТИ ЮФУ, 2010. - 205 с.
14. Шмойлов В.И. Решение алгебраических уравнений при помощи г/р-алгоритма.
- Таганрог: Изд-во ТТИ ЮФУ, 2011. - 330 с.
15. Шмойлов В.И. Непрерывные дроби и г/^-алгоритм. - Таганрог: Изд-во ТТИ ЮФУ, 2012.
- 608 с.
16. Шмойлов В.И., Коваленко В.Б. Некоторые применения алгоритма суммирования расходящиеся непрерывных дробей // Вестник Южного научного центра РАН. - 2012. - Т. 8, № 4. - С. 3-13.
17. Шмойлов В.И.,Савченко Д.И. Алгоритм суммирования расходящихся непрерывных дробей // Вестник Воронежского государственного университета. Серия: Физика. Математика. - 2013. - № 2. - С. 258-276.
18. Гузик В.Ф., Шмойлов В.И., Кириченко Г.А. Непрерывные дроби и их применение в вычислительной математике // Известия ЮФУ. Технические науки. - 2014. - № 1 (150).
- С. 158-174.
19. Шмойлов В.И., Редин А.А., Никулин Н.А. Непрерывные дроби в вычислительной математике. - Ростов-на-Дону: Изд-во ЮФУ, 2015. - 228 с.
20. Кириченко Г.А., Шмойлов В.И. Алгоритм суммирования расходящихся непрерывных дробей и некоторые его применения // ЖВМ и МФ. - 2015. - Т. 55, № 4. - С. 558-573.
REFERENCES
1. Il'in V.P. Metody nepolnoy faktorizatsii dlya resheniya algebraicheskikh system [Methods incomplete factorization for the solution of algebraic systems]. Moscow: Fizmatlit, 1995, 233 p.
2. Skorobogat'ko V.Ya. Teoriya vetvyashchikhsya tsepnykh drobey i ee prilozhenie v vychisli-tel'noy matematike [Branching continued fractions and its application in computational mathematics]. Moscow: Nauka, 1983, 312 p.
3. Khardi G. Raskhodyashchiesya ryady [Divergent series]. Moscow: Izd-vo inostr. lit-ry, 1951, 504 p.
4. Shmoylov V.I. Nepreryvnye drobi [Continuous fractions]. In 3 vol. Vol. 3. Iz istorii nepreryvnykh drobey [From the history of continued fractions]. Lviv: Merkator, 2004, 520 p.
5. Dzhouns U., Tron V. Nepreryvnye drobi. Analiticheskaya teoriya i prilozheniya [Continuous fractions. Analytic theory and applications]. Moscow: Mir, 1985, 414 p.
6. Khovanskiy A.N. Primenenie tsepnykh drobey i ikh obobshcheniy k voprosam priblizhennogo analiza [The application of continued fractions and their generalizations to the issues of approximate analysis]. Moscow: Gostekhizdat, 1956, 203 p.
7. Shmoylov V.I. Nepreryvnye drobi [Continuous fractions]. In 3 vol. Vol. 2. Raskhodyashchiesya nepreryvnye drobi [Divergent continuous fractions]. Lviv: Merkator, 2004, 558 p.
8. Khloponin S.S. Priblizhenie funktsiy tsepnymi drobyami [Approximation of functions chain fractions]. Stavropol': Izd-vo SGPI, 1977, 102 p.
9. Rutiskhauzer G. Algoritm chastnykh i raznostey [The algorithm and private differences]. Moscow: IIL, 1960, 93 p.
10. Shmoylov V.I. Summirovanie raskhodyashchikhsya tsepnykh drobey [Summation of divergent continued fractions]. Lviv: IPPMMNAN Ukrainy, 1997, 23 p.
11. Shmoylov V.I., Marchuk M.V., Tuchapskiy R.I. Nepreryvnye drobi i nekotorye ikh pri-meneniya [Continuous fractions and their application.]. Lviv: Merkator, 2003, 784 p.
12. Shmoylov V.I. Nepreryvnye drobi [Continuous fractions]. In 3 vol. Vol. 1. Periodicheskie nepreryvnye drobi [Periodic continuous fractions], Nats. akad. nauk Ukrainy, In-tprikladnykh problem mekhaniki i matematiki [National Academy of Sciences of Ukraine, Institute of applied problems of mechanics and mathematics]. Lviv: Yu 2004, 645 p.
13. Shmoylov V.I. Raskhodyashchiesya sistemy lineynykh algebraicheskikh uravneniy [Divergent systems of linear algebraic equations]. Taganrog: Izd-vo TTI YuFU, 2010, 205 p.
14. Shmoylov V.I. Reshenie algebraicheskikh uravneniy pri pomoshchi r/^-algoritma [The solution of algebraic equations using ^-algorithm]. Taganrog: Izd-vo TTI YuFU, 2011, 330 p.
15. Shmoylov V.I. Nepreryvnye drobi i r/^-algoritm [Continuous fractions and ^-algorithm]. Taganrog: Izd-vo TTI YuFU, 2012, 608 p.
16. Shmoylov V.I, Kovalenko V.B. Nekotorye primeneniya algoritma summirovaniya raskhodyashchiesya nepreryvnykh drobey [Some applications of the algorithm of summation of divergent continued fractions], Vestnik Yuzhnogo nauchnogo tsentra RAN [Bulletin of the South scientific center of RAS], 2012, Vol. 8, No. 4, pp. 3-13.
17. Shmoylov V.I.,Savchenko D.I. Algoritm summirovaniya raskhodyashchikhsya nepreryvnykh drobey [The algorithm of summation of divergent continued fractions], Vestnik Voronezhskogo gosudarstvennogo universiteta. Seriya: Fizika. Matematika [Proceedings of Voronezh State University. Series: Physics. Mathematics], 2013, No. 2, pp. 258-276.
18. Guzik V.F., Shmoylov V.I., Kirichenko G.A. Nepreryvnye drobi i ikh primenenie v vy-chislitel'noy matematike [Continuous fractions and their application in computational mathematics], Izvestiya YuFU. Tekhnicheskie nauki [Izvestiya SFedU. Engineering Sciences], 2014, No. 1 (150), pp. 158-174.
19. Shmoylov V.I., Redin A.A., Nikulin N.A. Nepreryvnye drobi v vychislitel'noy matematike [Continuous fractions in computational mathematics]. Rostov-on-Don: Izd-vo YuFU, 2015, 228 p.
20. Kirichenko G.A., Shmoylov V.I. Algoritm summirovaniya raskhodyashchikhsya nepreryvnykh drobey i nekotorye ego primeneniya [The algorithm of summation of divergent continued fractions and its application], ZhVMi MF [Zhurnal Vychislitel'noi Matematiki i Matematicheskoi Fiziki], 2015, Vol. 55, No. 4, pp. 558-573.
Статью рекомендовал к опубликованию д.т.н., проф. Н.И. Витиска
Селянкин Владимир Васильевич - Южный федеральный университет; e-mail: [email protected]; 347902, г. Таганрог, ул. Свободы, 24-2, кв. 1; тел.: 89043460540; кафедра МОП ЭВМ; к.т.н.; с.н.с.; доцент.
Шмойлов Владимир Ильич - 347902, г. Таганрог, ул. Свободы, 27-6, кв. 6; тел.: 89185987073; научный сотрудник.
Selyankin Vladimir Vasil'evich - Southern Federal University; e-mail: [email protected]; 24-2, Taganrog, 347902, Russia; phone: +79043460540; the department of software engineering; cand. of eng. sc.; senior scientist; associate professor.
Shmoylov Vladimir Il'ich - 27-6, Svobody street, ap. 6, Taganrog, 347902, Russia; phone: +79185987073; research assistant.