我在C ++上使用LAPACK来反转复杂的矩阵。具体来说,我使用的两个功能是:
zgetrf
用于LU分解。
zgetri
用于反转。
现在我的目标是优化我的代码,我对时间有疑问。使用带有LAPACK的通用矩阵求逆方法(如果你有更好/更快的函数可以使用请告诉我),函数的时间是否独立于矩阵中的值?
例如,反转单位矩阵比反转密集的矩阵更快吗?
同样,我想强调一点,关于复杂矩阵的一般LAPACK反演问我这个问题。我知道可以使用的各种三维和带状功能。
我假设矩阵中的所有元素都是复数双精度数。
谢谢, 凯文
答案 0 :(得分:2)
正如Kieran Cooney所假设的那样,LAPACK比单个随机密集矩阵更快地反转单位矩阵数量级。使用下面的测试给出了以下结果(样本大小= 1,但证明了这一点):
调整大小
信息:0
总时间(随机)= 2389毫秒 信息:0
总时间(身份)= 14毫秒。
<Button Grid.Row="0" Content="Button" Command="{Binding DataContext.CloseInstanceCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:CFDOpenPositionsView}}}"