Math 避免在MATLAB中生成奇异矩阵

Math 避免在MATLAB中生成奇异矩阵,math,matlab,Math,Matlab,如何生成在MATLAB中不是奇异的随机矩阵 我知道可以使用矩阵行列式来进行检查,但阅读后: “使用det(X)==0作为矩阵奇异性测试仅适用于具有小整数项的中等阶矩阵。使用abs(det(X))测试随机生成的矩阵的奇异性将是满秩(因此,如果为平方,则为可逆矩阵),概率为1: A = randn(5000); 您可以通过使用min(svd(A))检查这一点,并验证最小奇异值是否大于零 这是一个众所周知的事实,但是。奇异矩阵是不可逆的。那么,你所说的“不奇异(不可逆)”是什么意思?是的,我没有用正

如何生成在MATLAB中不是奇异的随机矩阵

我知道可以使用矩阵行列式来进行检查,但阅读后:


“使用det(X)==0作为矩阵奇异性测试仅适用于具有小整数项的中等阶矩阵。使用abs(det(X))测试随机生成的矩阵的奇异性将是满秩(因此,如果为平方,则为可逆矩阵),概率为1:

A = randn(5000);
您可以通过使用
min(svd(A))
检查这一点,并验证最小奇异值是否大于零


这是一个众所周知的事实,但是。

奇异矩阵是不可逆的。那么,你所说的“不奇异(不可逆)”是什么意思?是的,我没有用正确的方式解释它。对于如此大的矩阵,已经修改过,确定精确的奇异性可能会受到数值精度的限制。正如手册所说,你最好的办法是检查该条件(十) 如果你只是想在理论上避免奇点,任何有限条件都可以;正如答案所说,意外地生成一个完全奇异的矩阵是不太可能的。