• ベストアンサー

行列のRANKの求め方

行列のRANKを求めるときに特異値分解を用いて求めることができるとありました.仮に行列Aを特異値分解して A=UΣV とした場合、ここからRANKの数はどのように求めるのでしょうか. またC言語でプログラミングする場合はどのようにしたらよいでしょうか. 特異値分解はCLAPACKを用いて行おうと思います. ご教授の程、よろしくお願いします.

質問者が選んだベストアンサー

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

もし,特異値分解できたなら,Σは対角成分のみに0でない値をもつ行列で,その0でない成分の数がランクです. ランクを求めるのに特異値分解するのは精度的には最も望ましいですが,計算量はかなり多いです. 普通は,QR分解ですますことが多いと思います.

chikutaku555
質問者

お礼

御回答ありがとうございました。対角成分にゼロがあるかどうかを判定すればよいのですね。またQR分解に関しても教えて頂き、ありがとうございました。

関連するQ&A