У меня есть диагональная матрица со значениями -3.4562e-14, 15.2673, 86.9550, 1.4873e + 03. Matlab говорит, что его ранг равен 3, а rref указывает то же самое. Почему это, и как я могу понять, что происходит на самом деле? Кроме того, эта диагональ от разложения по собственным значениям, которая возвращает четыре собственных вектора. Исходная матрица:Matlab Противоречивый ранг для матрицы
[ 67.0000 103.0000 -44.5000 -133.5000;
103.0000 573.0000 -26.5000 -709.5000;
-44.5000 -26.5000 46.7500 20.2500;
-133.5000 -709.5000 20.2500 902.7500]
Ранг вычисления также зависит от допускается использование допуска. Например, попробуйте ранг (v, eps). В принципе, Matlab не может определить, является ли результат -3.4562e-14 результатом численной (округлой) ошибки или фактического, очень малого значения в матрице. – Kavka
Matlab вычисляет ранг до некоторой точности. Он не делает точного вычисления ранга. Здесь -3.4e-14 слишком мал и считается нулем. См. @ G24l. – Oli
http://scicomp.stackexchange.com/ может быть лучшим местом для таких вопросов :) – GradGuy