2012-03-21 3 views
0

У меня есть диагональная матрица со значениями -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] 
+1

Ранг вычисления также зависит от допускается использование допуска. Например, попробуйте ранг (v, eps). В принципе, Matlab не может определить, является ли результат -3.4562e-14 результатом численной (округлой) ошибки или фактического, очень малого значения в матрице. – Kavka

+0

Matlab вычисляет ранг до некоторой точности. Он не делает точного вычисления ранга. Здесь -3.4e-14 слишком мал и считается нулем. См. @ G24l. – Oli

+1

http://scicomp.stackexchange.com/ может быть лучшим местом для таких вопросов :) – GradGuy

ответ

4

Оригинальная матрица плохо кондиционирована. Наименьшее собственное значение имеет порядок 1е-14, что близко к eps, а наибольшее - порядка 1е + 03.

Кондиционирование - larget singular value/smallest singular value. В случае, если матрица является нормальной, и это ваше дело, это larget eigenvalue/smallest eigenvalue.

Это в вас случае порядка 1e + 17, что является очень большим, и поэтому наименьшее собственное значение считается равным 0 по rank, поэтому rank отчеты 3.

+1

Ну, на самом деле MATLAB использует особые значения, а не собственные значения. Они не всегда должны быть одинаковыми. –

+0

@woodchips, спасибо за комментарий, это действительно так. Лично я не подразумевал, что MATLAB использует eig для номера кондиционирования. –

+0

@ g24l Я прочитал это снова и понял, что это не имеет смысла. Я имею в виду, я получаю его суть (точность ошибки, derr), но последнее собственное значение _is_ самое большое, поэтому ваше последнее предложение ложно (если вы имели в виду «... наибольшее [собственное значение] ...»). Кроме того, нет проблем, когда что-то _smaller_, чем eps? – Jeff