1

我正在使用 Matlab 计算矩阵的秩为:

r=rank(A, tol)

哪里A是矩阵,tol是公差。当矩阵很小时,似乎没有问题。但是当矩阵很大时,matlab 经常返回错误,说不SVD应该有NANINF作为输入。

据我了解,秩计算算法应该返回一个矩阵的数字,但是当我看到这样的错误时,我想知道是否存在无法计算秩的特殊矩阵。有没有更好的方法来计算 Matlab 中的排名?我正在寻找一种可靠的算法来计算矩阵的秩!为什么秩计算算法对某些矩阵如此敏感?

编辑:请检查这种依赖tol

等级(魔法(100),10e-10)

答案=

 3

等级(魔法(100),10e-30)

答案=

100

我基本上是在计算我正在检查秩条件的线性系统的可控性矩阵。矩阵大小为 100x100 到 200x200。所以rank的输入如下

A= ctrb (P, Q) % P, Q are matrices in the LTI system X[n+1]=P*x[n]+ Q*U[n]
r=rank(A, tol)

那么,问题是可控性函数能否ctrb生成带有 INF 或 NAN 的矩阵?基于可控性矩阵的定义:

A= [Q P*Q P^2*Q, ...P^n-1*Q]

如果 P 和 Q 是任何有界值的矩阵,A 可以有 INF 还是 NAN?我期望使用ctrb任何有界 P、Q 矩阵对 A 的上述计算不能产生带有 NAN 或 INF 的矩阵输出。

4

0 回答 0