2016-01-14 7 views
-2

Есть ли причина, по которой норма по умолчанию, используемая для функции norm в R, является 1-нормой?Почему норма по умолчанию в норме R имеет 1-норму?

Я переводил код от matlab в R, и я столкнулся с этим, потому что по умолчанию есть 2-норма.

Мне кажется интуитивным, что по умолчанию должна быть 2-норма, которая переводится на евклидово расстояние.

Я надеюсь, что кто-то может это прояснить или дать историческую причину этого выбора.

EDIT: Я не понимаю, почему это сокращается. Причина, по которой я задаю этот вопрос, понять варианты реализации нормальных функций в matlab и R. Следующее является реализация нормы в R

function (x, type = c("O", "I", "F", "M", "2")) 
{ 
    if (identical("2", type)) { 
     svd(x, nu = 0L, nv = 0L)$d[1L] 
    } 
    else .Internal(La_dlange(x, type)) 
} 

выбор по умолчанию "O". В Matlab и python numpy значением по умолчанию является 2-норма. Мне просто кажется странным, что R не согласуется с этим.

У меня возникает ощущение, что реализация опции по умолчанию должна соответствовать самой используемой норме.

+0

Вы всегда должны обращаться к документации при использовании незнакомой вам функции, иногда даже если вы считаете, что знаете эту функцию. – Roland

+0

Я знаю об этом @Roland, и это то, что я делаю. Мне просто интересно, почему этот выбор был сделан для реализации функции нормы в R. – Gumeo

+1

, потому что это похоже на 1,2 и inf, вероятно? – percusse

ответ

0

Я понимаю, что в R help он дает ясную ссылку на DLANGE из библиотеки LAPACK, которая не вычисляет 2-норму.

+0

Это правильно, и я проверил реализацию dlange. Но это выбор, сделанный в R, то есть используемая по умолчанию норма. – Gumeo