RE: Generating Two Unit Orthogonal Vectors

• To: mathgroup at smc.vnet.net
• Subject: [mg36471] RE: Generating Two Unit Orthogonal Vectors
• From: dennisw555 at aol.com (DennisW555)
• Date: Sun, 8 Sep 2002 03:30:50 -0400 (EDT)
• References: <alc8og\$sdp\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```>OrthogonalUnitVectors[vect__?(VectorQ[#, NumericQ] &)] /;
>        (SameQ @@ Length /@ {vect}) && (Length[First[{vect}]] > 1) :=
>    #/Sqrt[#.#] & /@ NullSpace[{vect}// N]
>
>----------------
>
>Lets see what NullSpace does with approximate complex vectors.
>
>In[1]:=
>   v1 = {1.0 I, 0.0, 0.5 I, 0.0, 1.0};
>   v2 = {0.0, 2.0, 1.0 I, 2.0, 0.5};
>   {v3,v4,v5} = NullSpace[{v1,v2}]
>
>Out[3]=
>   {{-0.730153 + 0.*I, 0. - 0.138254*I, 0.250585 + 0.*I, 0. - 0.138254*I,
>0.
>+ 0.60486*I},
>     {0. + 0.*I, -0.515861 + 0.*I, 0. + 0.457321*I, 0.687357 + 0.*I, 0.22866
>+ 0.*I},
>     {0. + 0.*I, 0.510406 + 0.*I, 0. + 0.740442*I, -0.23274 + 0.*I, 0.370221
>+ 0.*I}}
>
>--------
>In the next line we see NullSpace returned vectors that are orthogonal to
>the vectors we gave NullSpace.
>
>In[4]:=
>   {v1.v3, v1.v4, v1.v5, v2.v3, v2.v4, v2.v5}//Chop
>
>Out[4]=
>   {0, 0, 0, 0, 0, 0}
>
>----------
>However, the vectors returned aren't orthogonal to each other.
>
>In[5]:=
>   {v3.v4, v3.v5, v4.v5}//Chop
>
>Out[5]=
>   {0.229195*I, 0.371087*I, -0.677239}
>
>---------
>I suppose an OrthogonalUnitVectors function that uses NullSpace should
>  (1)  Only accept real valued vectors.
>  (2) Ensure NullSpace is given approximate vectors.
>
>------
>Regards,
>   Ted Ersek

I think you will find that the output vectors are orthogonal if you use the
complex conjugate.

for example v4.Conjugate[v5] is zero.

Dennis Wangsness

```

• Prev by Date: 2 gifs side by side -- with hyperlinks
• Next by Date: Profiler for Mathematica
• Previous by thread: RE: RE: Generating Two Unit Orthogonal Vectors
• Next by thread: RE: RE: Generating Two Unit Orthogonal Vectors