Gram-Schmidt正交化

时间:2010-07-13 14:36:53

标签: r linear-algebra

给定具有独立列的矩阵A(不一定是正方形),我能够应用Gram-Schmidt迭代并使用Matlab的函数{{1}为其列空间(以正交矩阵Q的形式)生成标准正交基础}

qr

然后

A=[1,1;1,0;1,2]

[Q,R] = qr(A)

您可以验证列是否正交

>> Q(:,1:size(A,2))
ans =
  -0.577350269189626  -0.000000000000000
  -0.577350269189626  -0.707106781186547
  -0.577350269189626   0.707106781186547

给定具有独立列(如A)的矩阵,R中是否存在产生(Gram-Schmidt)正交矩阵Q?的函数。 R的Q(:,1)'*Q(:,2) equals zero and norm(Q(:,1)) equals norm(Q(:,2)) equals 1 函数不产生正交Q。

2 个答案:

答案 0 :(得分:12)

qr有效,但它使用了一个独特的约定,并生成qr对象,您可以使用qr.Qqr.R进一步操作:

> A
     [,1] [,2]
[1,]    1    1
[2,]    1    0
[3,]    1    2
> A.qr <- qr(A)
> qr.Q(A.qr)
           [,1]          [,2]
[1,] -0.5773503 -5.551115e-17
[2,] -0.5773503 -7.071068e-01
[3,] -0.5773503  7.071068e-01
> qr.R(A.qr)
          [,1]      [,2]
[1,] -1.732051 -1.732051
[2,]  0.000000  1.414214

这是你想要的输出吗?

答案 1 :(得分:3)

通过rseek.org快速搜索会导致包far及其功能orthonormalization,您可以尝试。