2

假设我想构建一组 N 个正交向量。实际上我知道 N-1 个正交向量,我只想学习最后一个。

我应该求解一个线性系统,将 N-1 个已知向量和要找到的向量之间的每个标量积设置为零。但是我怎么能用 Matlab 做到这一点呢?

编辑:请注意,这个问题可以看作是一个线性方程组。如果U(N-1xN)矩阵,其行包含已知向量,那么我应该求解方程Ux = 0,其中x是要找到的向量, 0是零向量。为此,我使用了这个简单的代码:

   x = U\0

但是,通过这种方式,它显然返回了平庸的解决方案0。我需要非平凡的解决方案,有什么想法吗?

4

1 回答 1

3

我很确定您想要一个满足Ax = 0x不是零向量的线性系统的非平凡解决方案。

这可以使用像这样的奇异值分解来完成:

A = [2 -1 1; 2 -1 1; 3 2 1];
[U S V] = svd(A);
x = V(:,end)

x =

  -0.39057
   0.13019
   0.91132

A*x = 

   0
   0
   0
于 2016-08-10T10:28:53.297 回答