-2

normRの関数に使用されるデフォルトのノルムが1ノルムである理由はありますか?

matlabからへのコードを翻訳していたところR、これに遭遇しました。これは、デフォルトで 2 ノルムが存在するためです。

デフォルトはユークリッド距離に変換される2ノルムであるべきだと私には直感的に思えます。

誰かがこれを明確にするか、この選択の歴史的な理由を教えてくれることを願っています. 私がこの質問をしている理由は、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それと一致しないのは私には奇妙に思えます。

私の直感では、デフォルト オプションの実装は、最もよく使用される基準に対応する必要があります。

4

2 に答える 2

0

私の理解では、Rヘルプでは、2-ノルムを計算しない LAPACK ライブラリから DLANGE への明示的な参照を作成します。

于 2016-01-14T12:35:28.123 に答える