0

有人知道我如何仅使用向量来构建正交基吗?我有一个形式为 v1 = [ab -a -b]' 的向量,其中 'a' 和 'b' 是实数。我确实尝试过以“临时方式”构建,但是什么也没有,我只有两个正交向量:

v1 = [ab -a -b]' v2 = [a -ba -b]'

我需要更多两个向量来完成正交基{v1,v2,v3,v4}。任何人都可以帮助我吗?

谢谢...

4

3 回答 3

2

v3 = [baba]', v4 = [b -a -ba]' 具有令人愉悦的对称性。

于 2012-09-08T03:38:12.677 回答
2

我不能在 Mathematica 中为你做,但至少在 MATLAB 中,我会这样做......

syms a b
null([a b -a -b])
ans =
[ -b/a, 1, b/a]
[    1, 0,   0]
[    0, 1,   0]
[    0, 0,   1]

该数组的列与原始向量正交,并且跨越零空间。

于 2012-09-08T02:20:34.357 回答
0

您可以使用单位矩阵进行扩充并正交化该组向量,将给定的向量放在前面。这是一个例子。

SeedRandom[1111];
{a, b} = RandomInteger[{-10, 10}, 2];
vec = {a, b, -a, -b}
mat = Join[{vec}, IdentityMatrix[Length[vec]]];

(* Out[39]= {-8, 5, 8, -5} *)

orthog = Drop[Orthogonalize[mat], -1]

(* Out[62]= {{-4*Sqrt[2/89], 5/Sqrt[178], 
  4*Sqrt[2/89], -(5/Sqrt[178])}, 
   {Sqrt[57/89], 20/Sqrt[5073], 32/Sqrt[5073], -(20/Sqrt[5073])}, 
   {0, Sqrt[89/114], -20*Sqrt[2/5073], 25/Sqrt[10146]}, 
   {0, 0, 5/Sqrt[89], 8/Sqrt[89]}} *)
于 2012-09-10T16:25:40.143 回答