R でコーディングすると、関数svd()
がエラー メッセージをスローすることがあります。
Error in La.svd(x, nu, nv) : error code 1 from Lapack routine 'dgesdd'.
Google で情報を検索したところ、このエラーは で使用されているアルゴリズムsvd()
が収束していないことを意味していることがわかりました。LINPACK = TRUE
多くの人も同じエラーメッセージに遭遇し、私は彼らが使用した多くの方法を試しましたが、 parameterの使用、行列の丸め、さらにはpropack.svd()
andの使用など、誰も正しく機能しませんでしtrlan.svd()
た。
私の入力データは、対角要素が 1 に等しい行列で、他の要素は 0 または比較的小さいです。このエラーは数値の精度に関係していると思われるので、行列を のように丸めてみましたround(matrix,6)
。これは役立つ場合もありますが、問題を根本的に解決することはできず、この丸めにより偏った結果が生じるのではないかと心配しています。
誰かがこの問題を解決する方法を教えてくれたら、とても感謝しています。