Почему я получаю неправильную норму матрицы в Matlab?

У меня есть небольшая, хорошо обусловленная эрмитова матрица L с собственными значениями в [0,2]. Я получаю странные результаты, пытаясь вычислить норму, обратную L:

>> norm(inv(L))

ans =

    2.0788

>> min(eig(L))

ans =

    0.5000 

Что странно, потому что вторая норма обратной должна быть равна обратной величине минимального собственного значения матрицы.

Я знаю об ошибках, вносимых машинной арифметикой, но в этом небольшом, эрмитовом и хорошо обусловленном примере я ожидал, что ими можно пренебречь.

Вот матрица https://www.dropbox.com/s/nh1wegrnn53wb6w/matrix.mat

Я использую Matlab 8.2.0.701 (R2013b) на Linux Mint 16 (Petra).


person Moonwalker    schedule 25.05.2014    source источник
comment
729х729 это маленькая матрица?   -  person Daniel    schedule 25.05.2014
comment
@ Даниэль, да, и, кроме того, это разреженная матрица.   -  person Moonwalker    schedule 25.05.2014
comment
Вы говорите well conditioned hermitian matrix L with eigenvalues in [0,1], но я не понимаю: e=eig(L); max(e) --> 1.3789, min(e)--> 0.5000   -  person Nasser    schedule 26.05.2014
comment
@Nasser, извините за опечатку, должно быть [0, 2].   -  person Moonwalker    schedule 26.05.2014


Ответы (1)


Это не числовая проблема, как вы указали, матрица хорошо обусловлена.

вторая норма обратной должна быть равна обратной минимальному собственному значению матрицы

Это верно только в том случае, если матрица является эрмитовой с положительными собственными значениями (т. е. положительно определенной). Из Википедии: Спектральная норма матрицы A - это наибольшее сингулярное значение A, то есть квадратный корень из наибольшего собственного значения положительно-полуопределенной матрицы A * A.

Итак, здесь вы бы вычислили норму обратного как:

[v,d] = eig(L'*L);
1.0/sqrt(min(diag(d))) = 2.0788539
norm(inv(L)) = 2.0788539

Как мы ожидаем.

person yhenon    schedule 26.05.2014
comment
Что затем показывает, что матрица на самом деле не может быть эрмитовой, то есть симметричной, если она имеет действительные элементы. Или не положительно определенный. Поскольку для симметричных положительно определенных (spd) матриц исходное рассуждение было бы правильным, собственные значения также являются сингулярными значениями. - person Lutz Lehmann; 26.05.2014
comment
@LutzL, да, матрица на самом деле не эрмитова, это было так. Спасибо всем за помощь! - person Moonwalker; 26.05.2014
comment
Спасибо, LutzL, я внес небольшое редактирование, чтобы включить ваш комментарий. - person yhenon; 26.05.2014