作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 OpenCL 来计算矩阵的特征向量。 AMD 有一个 example特征值计算,所以我决定使用逆迭代来获得特征向量。
我遵循了所描述的算法 here我注意到为了解决第 4 步,我需要解决一个线性方程组(或计算矩阵的逆)。
使用 OpenCL 在 GPU 上执行此操作的最佳方法是什么?有没有我应该研究的示例/引用资料?
编辑:对不起,我应该提到我的矩阵是对称的三对角矩阵。从我一直在阅读的内容来看,这可能很重要,并且可能会大大简化整个过程
最佳答案
矩阵是三对角矩阵这一事实非常重要——这将问题的复杂性从 O(N^3) 降低到 O(N)。由于它也是对称的,您可能会获得一些加速,但这不会那么引人注目。
求解三对角系统的方法在这里:http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm .
另请注意,您不需要存储矩阵的所有 N^2 元素,因为几乎所有元素都为零。您只需要一个长度为 N(用于对角线)的向量和两个长度为 N-1 的向量用于子对角线和超对角线。由于您的矩阵是对称的,因此次对角线和超对角线是相同的。
希望这有帮助...
关于opencl - 在逆迭代期间求解线性方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7592508/
目标 给定一组点,我试图找出满足所提供所有点的线性方程的系数。 例如,如果我想求线性方程 (ax + by + c = z): 3x + 2y + 2 = z 我至少需要三个三维点: (2, 2, 1
我是一名优秀的程序员,十分优秀!