如何在GNU Octave中正交化一组向量?

问题描述

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中的列是正交向量。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...