我正在参加计算机图形学的速成课程,我们刚刚介绍了2D变换,我的导师指出计算矩阵的逆矩阵比计算更加密集,这就是正交矩阵非常有用的原因。在计算中(因为正交矩阵的转置也是相反的)。由于时间的限制,以及课程的性质,他没有详细说明为什么会这样,我想知道这里是否有人能够这样做。
我对每个进程中涉及的CPU / GPU指令的差异特别感兴趣,或者如果我遇到了错误,那么就是堆栈中发生瓶颈的最低级别。我也有兴趣学习任何资源,书籍,网站等,在那里我可以更多地了解这些效率/瓶颈。
答案 0 :(得分:2)
在最坏的情况下,转换nxn矩阵是O(n 2 )运算,而计算一般非奇异nxn矩阵的逆矩阵是O(n 3 )操作。这只是做这些事情的代价。
另外,大多数应用程序不计算矩阵求逆,因为目标是求解线性系统Ax = b,而不是求逆。使用分解和三角形求解来解决这个问题更快更准确(例如,参见LU decomposition,对于一般的非奇异矩阵)。可以使用Gauss-Jordan elimination(以及其他方法)计算矩阵求逆。
对于可用的例程,您可以找到可用于计算LU分解的LAPACK实现(可能还有矩阵逆)。
答案 1 :(得分:1)
矩阵转置简单地涉及交换矩阵中的元素对 - 即它只是数据移动而不是计算。矩阵逆 OTOH需要大量的计算。