верных значащих цифр для всех значений элементов вектора решения
СЛАУ.
Описание проблемы.
Покажем, что проблема получения числен-
ного решения СЛАУ с точностью в 15 верных значащих цифр для всех
значений элементов вектора решения СЛАУ в лучших математических
пакетах программ MATLAB, Maple, Mathcad и Mathematica (все рас-
четы были выполнены с точностью вычислений по умолчанию (удво-
енная точность языка Си для всех пакетов) на 32-разрядных версиях
этих пакетов программ 2007 г. выпуска) и в известных математических
библиотеках стандартных программ на языке Си на обычных персо-
нальных компьютерах (ПК) не решена. Рассмотрим тестовую задачу 1
— тестовую задачу Уилкинсона (Wilkinson) [6, 7]:
0
,
780 0
,
563
0
,
913 0
,
659
•
x
1
x
2
=
0
,
217
0
,
254
.
Нетрудно видеть, что абсолютно точное решение этой задачи:
х
1
= 1
,
х
2
=
−
1
.
В пакете MATLAB рекомендуется определять число обусловлен-
ности cond(
A
) матрицы
А
коэффициентов СЛАУ с помощью функции
cond(
A
), чтобы оценить гарантированную точность решений, но кон-
кретных рекомендаций не дается. Попытаемся решить эту задачу и
зададим параметр числа верных значащих цифр — 15. Описание те-
стовой задачи Уилкинсона в пакете MATLAB будет таким:
format(’long’)
digits(15)
A=[0.78 0.563; 0.913 0.659]
cond (A)
B=[0.217; 0.254]
x=vpa(A
\
B)
Результат решения тестовой задачи Уилкинсона в пакете MATLAB:
A =
0.780000000000000 0.563000000000000
0.913000000000000 0.659000000000000
cond = 2.193218999650770e+006
B =
0.217000000000000
0.254000000000000
x =
.999999999982863
– .999999999975375
Результат решения тестовой задачи Уилкинсона в пакете Maple:
> A=Matrix([[0.78, 0.563], [0.913, 0.659]]);
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2011. № 4 27