У первой матрицы детерминант -
![$3\cdot 10^{-16}$ $3\cdot 10^{-16}$](https://dxdy-03.korotkov.co.uk/f/a/5/4/a548da508c3a5401c4e1dffc47cad3c482.png)
.
Т.е. матрица плохо обусловленная
Строго говоря -- не "т.е.".
Хотя, конечно, если элементы матрицы порядка единицы, то малость детерминанта влечёт за собой и большое значение числа обусловленности.
Но в данном случае про обусловленность говорить вообще не приходится:
Код:
>> eig(A*A')
ans =
-1.179611963664229e-016
6.732649963569620e-001
1.000000000000001e+000
>> sqrt(abs(eig(A*A')))
ans =
1.086099426233266e-008
8.205272672842519e-001
1.000000000000000e+000
>> cond(A)
ans =
1.352684370782016e+015
>> det(A)
ans =
6.118780016153565e-016
>> det(A*A')
ans =
0
Все численные значения противоречат друг другу (особенно приятно наблюдать отрицательное собственное число матрицы
![$A\cdot A^T$ $A\cdot A^T$](https://dxdy-04.korotkov.co.uk/f/b/3/d/b3d59ad49d9138312861aec4d16b6b8b82.png)
). А это означает, что конкретно эта матрица
в точности вырожденная (в пределах погрешностей округления, естественно).
Как контролировать рост элементов в матрице при обращении?
(При обращении используется LU -разложение с последующем решением треугольных систем)
Задать порог, ниже которого ведущий элемент считается нулевым -- и, значит, сама матрица формально считается вырожденной.