Java 随机矩阵的行列式几乎总是零

Java 随机矩阵的行列式几乎总是零,java,matrix,random,Java,Matrix,Random,你好,新年快乐 我实现了一个矩阵类,一个静态方法是创建一个随机矩阵 它相当简单,而且似乎有效 public static Matrix random(int m, int n) { Random r = new Random(); Matrix rndMatrix = new Matrix(m, n); for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) {

你好,新年快乐

我实现了一个矩阵类,一个静态方法是创建一个随机矩阵

它相当简单,而且似乎有效

public static Matrix random(int m, int n)
{
    Random r = new Random();
    Matrix rndMatrix = new Matrix(m, n);
    for(int i = 0; i < m; i++)
    {
        for(int j = 0; j < n; j++)
        {
            rndMatrix.setEntry(Math.random(), i, j);
        }
    }
    return rndMatrix;
}
但是,当我创建一个随机的3乘3矩阵时:

0.6791409154789895 0.9015085022510533 0.9674292726638446 
0.9059154025420992 0.26610950783426457 0.08492267434013878 
0.6974770770379765 0.4474657891394087 0.12363906335455344 
0.16156349092473768

0.1048566480579386 0.5949449637931188 0.28220872314980017 
0.6303444427050728 0.17136149490672603 0.7630494228097563 
0.010042979011053998 0.4443731402226164 0.44005633657936627 
-0.10955506568102251

0.7080008734798865 0.7058454701623011 0.6520827337491946 
0.10322829578835746 0.7757507432730788 0.3650950541868936 
0.2742422959683706 0.9949312192553693 0.05039578697883251 
-0.23425225979344966

你可能想创建一个测试,计算给定矩阵上的行列式,在那里你知道结果,看看你的代码是否正确工作。我已经做过几次了。它似乎起作用了。高达小数值误差。似乎我生成的所有随机矩阵都不是可逆的。有没有办法生成一个随机可逆矩阵?你可以用m来称你为随机矩阵生成器吗=n?你为什么创建一个变量
随机r
,而不使用它?@TimothyTruckle实际上你链接到了证明这是真的。“奇异矩阵是罕见的,因为从其条目的连续均匀分布中随机选择的方阵几乎永远不会是奇异的。”
0.9563941736946711 0.39448005321813573 0.5470486104302432 0.5261160742874216 0.3951820646725023 
0.7346088704461295 0.7599880918925735 0.8497744950194082 0.8867153096935724 0.3682481741589534 
0.9263551689754832 0.2317726305104606 0.18178575740374336 0.07986150434799666 0.7819470135579004 
0.1745757641530633 0.25563633619467996 0.2829688806860611 0.5118728924839205 0.03297040489736147 
0.25186307283907405 0.9562803829692509 0.483921593496489 0.8755617387463226 0.31088898779219853 
0.0

0.00891316485803817 0.713796166860513 0.13287589794651955 0.4064378440682588 0.4978814476005716 
0.12055412802144772 0.972471867370921 0.53095134849769 0.22189312703335484 0.8817515464656179 
0.9315367039854036 0.6438575977028148 0.43392574349285307 0.08726203670701893 0.6130528522290233 
0.9643660752404595 0.3691976358204304 0.340490090444587 0.5684232640065617 0.0628244760775013 
0.15365612075823543 0.3168819918400785 0.6665980934501206 0.02089370959057013 0.6078409694254645 
-0.0

0.9621768497790205 0.8676421360459282 0.4465279858313177 0.48320978463573283 0.5439303840591143 
0.09762305323682163 0.42529504824730524 0.7969529998650778 0.5061554064144165 0.4140523901347064 
0.003060974877453826 0.5969505627805348 0.5322677244514962 0.5667640313747856 0.9861085023353954 
0.3615427851315477 0.6472381774117999 0.9852641653717541 0.2397370854247155 0.7528175137110793 
0.5143296881839451 0.020615097451925468 0.24636629586280845 0.39986298958960864 0.7414827709198659 
6.393441112567584E-18
0.6791409154789895 0.9015085022510533 0.9674292726638446 
0.9059154025420992 0.26610950783426457 0.08492267434013878 
0.6974770770379765 0.4474657891394087 0.12363906335455344 
0.16156349092473768

0.1048566480579386 0.5949449637931188 0.28220872314980017 
0.6303444427050728 0.17136149490672603 0.7630494228097563 
0.010042979011053998 0.4443731402226164 0.44005633657936627 
-0.10955506568102251

0.7080008734798865 0.7058454701623011 0.6520827337491946 
0.10322829578835746 0.7757507432730788 0.3650950541868936 
0.2742422959683706 0.9949312192553693 0.05039578697883251 
-0.23425225979344966