MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

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