Достоверное и точное решение систем алгебраических и дифференциальных уравнений на языке СИ - page 9

При реализации вычислительных методов решения жестких систем ОДУ-
ДАУ и плохо обусловленных систем ЛАУ не следует использовать вычи-
сления с одинарной точностью, причем при решении плохо обусловленных
систем ЛАУ следует использовать методы вычислений с повышенной точно-
стью, если вычисления с общепринятой удвоенной точностью не обеспечат
компьютерной точности результатов. При программной реализации формул
неявного интегрирования жестких систем ОДУ-ДАУ не должно быть также
арифметических операций деления на шаг интегрирования, чтобы не было
ограничений из-за “машинного нуля” на значение минимального шага инте-
грирования [6].
Результаты решения тестовых и практических задач.
На основе при-
веденных утверждений и научных результатов была разработана библиотека
SADEL — библиотека программ-решателей на языке Си для численного ре-
шения жестких систем ОДУ-ДАУ и плохо обусловленных систем ЛАУ с
гарантированной достоверностью и компьютерной точностью. В результате
при невысоких требованиях к математической точности конечных резуль-
татов численного моделирования получаются только корректные, достовер-
ные и точные результаты решения данных систем по сравнению с соответ-
ствующими программами-решателями из зарубежных библиотек и пакетов
математических программ: LAPACK (Linpack), MAGMA, NAG, IMSL, Intel
MKL, MATLAB, Mathcad, Maple, Mathematica), что показано в работе [2].
Например, с помощью данных программ удалось решить с гарантированной
компьютерной точностью ряд тестовых плохо обусловленных систем ЛАУ,
которые не решаются с обычной удвоенной точностью языка Си другими из-
вестными программами-решателями систем ЛАУ из указанных библиотек и
ПМК. В качестве примера рассмотрим тестовую задачу с матрицей Гильбер-
та (Hilbert matrix) 10-го порядка в качестве матрицы коэффициентов системы
ЛАУ. Все элементы матрицы коэффициентов и вектора правых частей, как
суммы соответствующих строк матрицы коэффициентов, были вычислены с
удвоенной точностью языка Си. Абсолютно точное решение такой задачи —
единичный вектор. При решении с удвоенной точностью этой тестовой зада-
чи с матрицей 10-го порядка с помощью программы-решателя систем ЛАУ из
библиотеки MAGMA (LAPACK-Linpack) был получен следующий результат:
1.000000000
464697
0.9999999
60244827
1.000000
840984605
0.99999
2393461859
1.0000
36137385782
0.9999
00979283788
1.000
162025520190
0.999
843779478675
1.0000
81852296234
0.9999
82030574678
Курсивом выделены неверные значащие цифры в решении. Соответству-
ющие программы-решатели из библиотеки SADEL получили единичный век-
тор для этой тестовой задачи с точностью в 15 верных значащих цифр для
всех элементов вектора решений данной системы ЛАУ.
Сравнение программы-решателя систем ДАУ в библиотеке SADEL с
зарубежными программами-решателями систем ОДУ-ДАУ было проведено
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2014. № 4 27
1,2,3,4,5,6,7,8 10,11,12,13,14,15
Powered by FlippingBook