问题描述
Mathematica具有函数Orthogonalization,当给定一组矢量时,它们会将它们正交。
GNU Octave是否有一些类似的内置例程?
当然,我可以使用Gram-Schmidt方法设置用于使向量正交的循环,但是我正在寻找内置例程。
解决方法
我想您可以尝试qr
将一组向量正交化。
给出一组向量
v1 = [3,4,2];
v2 = [2,5,2];
v3 = [1,2,6];
我们将所有矢量按列绑定以形成矩阵A
,然后执行qr
,例如
A = [v1;v2;v3]';
[Q,R] = qr(A);
那我们将看到
Q =
-0.557086 0.787070 -0.264906
-0.742781 -0.614899 -0.264906
-0.371391 0.049192 0.927173
R =
-5.38516 -5.57086 -4.27099
0.00000 -1.40197 -0.14758
0.00000 0.00000 4.76832
其中Q
中的列是正交向量。