MATLAB Function Reference | ![]() ![]() |
表示
k = rank(A) k = rank(A,tol)
詳細
rank
は、行列の線形独立な行数、または、列数を求めます。
は、デフォルトの許容値 k = rank(A)
max(size(A))
*norm(A)
*eps
よりも大きい A
の特異値の数を出力します。
は、k = rank(A,
tol)
tol
よりも大きい A
の特異値の数を出力します。
アルゴリズム
行列のランクの計算には、種々の方法があります。MATLAB は、特異値分解、または、SVD をベースにした方法を使っています。SVD アルゴリズムは、多くの処理時間を必要としますが、信頼性は非常に高いものです。
s = svd(A); tol = max(size(A))*s(1)*eps; r = sum(s > tol);
参考文献
Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, LAPACK User's Guide, Third Edition, SIAM, Philadelphia, 1999.
![]() | randperm | rat, rats | ![]() |