私は、入力行列があります。numeric.jsが間違った値を返すのはなぜですか?
let t = [
[0,1,0],
[0,1,0],
[0,0,0]
]
私はSVDを計算したいです。私が行います
A=np.array([[0,1,0],[0,1,0],[0,0,0]])
np.linalg.svd(A)[0]
出力::私は、Python、numpyの中で同じ手順を実行します
let U = N.svd(t).U;
Uが
[-0.7071067811865475, 0.7071067811865475, 0]
[-0.7071067811865475, -0.7071067811865475, 0]
[0, 0, 1]
ある
[0.7071067811865475, 0, -0.7071067811865475]
[0.7071067811865475, 0, 0.7071067811865475]
[0, 1, 0]
は、これはバグですか?私は何をすべきか ?結果が異なるのはこれだけではありません。私は誰を信頼すべきですか?
SVD分解が何をしているのか知っていますか? –
数字のjs出力の右のゼロスペースの基底ベクトルをAのヌルスペースに入れたくありません –
[この質問を見る](https://math.stackexchange.com/questions/644327/how-unique-on-non) -unique-are-u-and-v-in-singular-value-decomposition-svd)である。 – Phylogenesis