1

行列 M のスミス正規形を計算するアルゴリズムが必要です。通常は として記述されます。M = USVたとえば、WP の SNF を参照してください。ここで、行列は常にフル ランク、つまりdet(S) ~= 0です。

私は Mathematica から始めました.Mathematica では素晴らしいパッケージがこのアルゴリズムを提供しています. たとえばthis onethis one by Gilbertthis one using mapleなど、いくつかの実装がありますが、私は maple にアクセスできず (私は思う)、他の両方の実装は行列Uを計算しないかV、間違って計算します( [5,0;0,5]2 番目の実装で試してください。ここでU、 とVは単に単位行列である必要があります)

利用可能な他の実装はありますか?

おそらく、この Mathematica パッケージのアプローチに従うものです (もちろん、Mathematica で同様に)。これは、(Mathematica を使用する場合) 私のニーズに対して非常にうまく機能したためですが、UVが正しく提供されている限り、私は気にしません。

4

1 に答える 1