特異値分解です。R の svd() と同等です。
svd()
Golub–Reinsch のアルゴリズムを使います。R は LAPACK の dgesdd を使います。特異値は丸め誤差の範囲で R と一致しますが、一方で特異ベクトルの符号は R と異なることがあります (どちらも正しいものです)。重複する特異値の場合、ベクトルは同じ部分空間を張りますが、基底は R と異なることがあります。min(nrow, ncol) を超える特異ベクトルは直交補空間の基底であり、R とは一致しません。NaN または無限大の値があると例外を投げます。
dgesdd
min(nrow, ncol)
NaN
行列です (行の配列です)。
SvdOptions を参照してください。
特異値と特異ベクトルです。SvdResult を参照してください。
svd([[3, 0], [0, 4]]);// { d: [4, 3], u: [[0, 1], [1, 0]], v: [[0, 1], [1, 0]] } (signs of u and v may differ from R) コピー
svd([[3, 0], [0, 4]]);// { d: [4, 3], u: [[0, 1], [1, 0]], v: [[0, 1], [1, 0]] } (signs of u and v may differ from R)
特異値分解です。R の
svd()と同等です。Golub–Reinsch のアルゴリズムを使います。R は LAPACK の
dgesddを使います。特異値は丸め誤差の範囲で R と一致しますが、一方で特異ベクトルの符号は R と異なることがあります (どちらも正しいものです)。重複する特異値の場合、ベクトルは同じ部分空間を張りますが、基底は R と異なることがあります。min(nrow, ncol)を超える特異ベクトルは直交補空間の基底であり、R とは一致しません。NaNまたは無限大の値があると例外を投げます。