Cuda 在奇异值分解中,一行零的作用是什么?

Cuda 在奇异值分解中,一行零的作用是什么?,cuda,linear-algebra,svd,Cuda,Linear Algebra,Svd,我正在编写一些CUDA代码,用于从圆周周围的许多(m)位置测量中查找圆的3参数(中心X、Y和半径)。 作为m>3我(成功地)使用奇异值分解(SVD)来实现这一目的(使用cuSolver库)。有效地,我正在求解带有3个未知数的m同时方程组 然而,并不是我所有的周长位置都有效(比如说q),因此我必须通过我的m初始测量集,删除q无效的测量值。这包括将大小m数据数组从卡移动到主机,线性处理以删除q无效条目,然后将较小的(m-q)数组重新加载回卡上 我的问题是,;如果我将q无效方程两侧的所有项设置为零,我

我正在编写一些CUDA代码,用于从圆周周围的许多(m)位置测量中查找圆的3参数(中心X、Y和半径)。 作为m>3我(成功地)使用奇异值分解(SVD)来实现这一目的(使用cuSolver库)。有效地,我正在求解带有3个未知数的m同时方程组

然而,并不是我所有的周长位置都有效(比如说q),因此我必须通过我的m初始测量集,删除q无效的测量值。这包括将大小m数据数组从卡移动到主机,线性处理以删除q无效条目,然后将较小的(m-q)数组重新加载回卡上

我的问题是,;如果我将q无效方程两侧的所有项设置为零,我是否可以通过SVD分析(无数据传输等)运行m方程(包括零),或者这会导致其他问题

我的直觉告诉我,这有点像对数据应用权重,但直觉和SVD在我的经验中不是很好地结合在一起的术语


我不知道它在某些情况下是否有效,而在其他情况下是否有效……

我通过在矩阵中插入一行零来测试这个想法。我得到的解决方案不会受到这一点的显著影响。 所以我用一个非严格的答案来回答我自己的问题,是的,可以这样做


如果有人有一个更严格或更深思熟虑的答案,我很想听听。

我正在努力理解这个问题到底是什么——一个数学问题?关于CUSolver内部结构的算法问题?还有什么?问题是关于使用SVD例程解决多个联立方程的实际应用。我目前正在编写代码来测试我的想法(将方程两边都归零)。我提出这个问题是为了让任何有这类问题经验的人都能告诉我这是否真的是一个坏主意(或不是),或者即使这种方法存在任何我需要注意的陷阱。我使用CUDA标志是因为可能有一些实现特定的问题需要注意。我将报告我的测试结果