gpt4 book ai didi

matlab - 有效地得到零空间或一维空间,这是它的最佳近似

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:38 25 4
gpt4 key购买 nike

我一直在使用 svd 计算来做这件事

[U, S, V] = svd(A)

其中我使用 A 的最后一列作为我的零空间近似值。由于 A 变得非常大,我意识到这会减慢我的计算速度。

对于 null(A),文档似乎表明它无论如何都执行 SVD。此外,如果 A 是满秩,它也不起作用。 SVD 通过找到最大的奇异值,然后是下一个奇异值,依此类推,而我只需要最小的奇异值。

这似乎是一个很大的瓶颈。非常感谢对此的帮助。我正在使用 MATLAB。

谢谢。

最佳答案

This维基百科文章描述了零空间数值计算的三种方法:约简(高斯消元法)、SVD。 , 和 QR decomposition .简而言之,(1) 归约“不适合零空间的实际计算,因为存在舍入误差的数值精度问题”,(2) SVD 是“最先进的方法”,但它“通常成本与具有相同大小的矩阵的几个矩阵矩阵乘法相同”,并且(3)QR 分解的数值稳定性和成本“介于 SVD 和缩减方法之间”。

所以如果 SVD 太慢,你可以给机会 QR decomposition .使用您的符号的算法如下:“A 是一个 4xN 矩阵与 4<N 。使用 A' 的 QR 分解,我们可以找到一个矩阵 A'*P = Q*R = [Q1 Q2]*R ,其中 P 是一个置换矩阵,QNxN 并且 RNx4 。矩阵 Q1 是 Nx4,由 Q 的前 4 列组成。矩阵 Q2Nx(N-4) 并且由“N-4 的最后一个 Q 列。自 A*Q2 = 0 以来,Q2 的列跨越 A 的空空间。”

Matlab 实现:[Q, R, P] = qr(A', 'matrix');矩阵的列 Q2 = Q(:, 5:end);给出 A 的零空间.

关于matlab - 有效地得到零空间或一维空间,这是它的最佳近似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8497502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com