1

mxn 行列A (m<=n) に対して経済的なサイズの双対角分解を実行したい

そのような:

A=QBP'

ここで、B はサイズ mxm の二重対角行列で、Q、P は直交行列です。

現在、次の 2 つの Lapack 関数を使用して仕事をしています。

dgebrd(&m,&n,x,&m,d,e,tauq,taup,work,&lwork,&info);
dorgbr(&qp,&m,&m,&n,x,&m,tauq,work,&lwork,&info);

これらから、因数分解を取得できます。

A=USV'

ここで、S はサイズ mx n の二重対角行列です。

行列 S と V を切り捨てて正しい B と P を取得できます。しかし、これは速度の点で最適ではありません。私のテストによると、この方法はエコノミー サイズの SVD を実行するよりもさらに遅くなります。

エコノミーサイズの結果を直接得るには、どの関数を使用する必要がありますか、またはどのように使用すればよいですか?

前もって感謝します。

4

0 に答える 0