首页 > 编程知识 正文

如何求矩阵行列式的值,矩阵行列式的运算法则

时间:2023-05-05 16:00:36 阅读:154815 作者:1168

需要有助于判断实验中矩阵nxn的行列式的计算复杂性

我的代码:

导入编号为NP

导入时间it

t0=time.time (

forninrange (1,10 ) :

a=NP.random.rand(n,n ) ) ) ) ) ) ) )。

det=NP.LinaLG.slogdet(a ) )。

t=timeit.timeit(lambda:det ) )。

是打印(t )

但是,因为我每n得到了相同的时间,所以计算的复杂性: o(n )是不正确的。 那意味着是o(n^3)。 我非常感谢你的任何帮助。

最佳答案是其价值,而有意义的基准测试通常需要足够大的n来让计算机咀嚼东西。 1010矩阵不足以看到复杂性。 开始扔100、1010、1010等数字,可以看到变焦。

例如,如果我稍微修改一下你的代码

forninrange (1,14 ) :

t0=time.time (

p=2**n

a=NP.random.rand(p,p ) ) ) ) ) ) ) )。

det=NP.LinaLG.slogdet(a ) )。

print (n={ :04 d } :65:2 e } s ).format(p,time.time ) (- t0 ) ) ) ) ) ) ) ) ) 633606

这就是原因

N=0002 : 4.35e-02s

N=0004 : 0.00e 00s

N=0008 : 0.00e 00s

N=0016 : 5.02e-04s

N=0032 : 0.00e 00s

N=0064 : 5.02e-04s

N=0128 : 5.01e-04s

N=0256 : 1.50e-03s

N=0512 : 8.00e-03s

N=1024 : 3.95e-02s

N=2048 : 2.05e-01s

N=4096 : 1.01e 00s

N=8192 : 7.14e 00s

正如您所看到的,对于非常小的n值,一些小值优化和技巧会使o ()的复杂性变得不明显,但随着n值的增加,比例会开始出现。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。