Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

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

Search the Archive

Re: Orthogonazlie with Method->"Householder"

  • To: mathgroup at smc.vnet.net
  • Subject: [mg97815] Re: Orthogonazlie with Method->"Householder"
  • From: Ray Koopman <koopman at sfu.ca>
  • Date: Sun, 22 Mar 2009 05:49:42 -0500 (EST)
  • References: <gpvh97$grj$1@smc.vnet.net>

On Mar 20, 12:40 am, Maris Ozols <maroz... at gmail.com> wrote:
> I have a large numeric matrix M (see below), whose rank is 6. Clearly,
> the rank of Orthogonalize[M] must be the same (in particular, it
> should not increase). However, if I execute the following code on my
> matrix M:
>
> MatrixRank@M
> MatrixRank@Orthogonalize[M]
> MatrixRank@Orthogonalize[M,Method->"Householder"]
>
> I get 6, 6, and 12. So it appears to me that Householder's method
> has doubled the rank of M. I am using Mathematica 7.0 in Linux.
>
> Is this a bug or a feature?
>
> ~Maris Ozols~
>
> Here is my matrix:
>
> M= << data deleted >>

Are these the singular values you got?
It sure looks to me like the rank is 6.

In[1]:= Dimensions[M = << data deleted >> ]

Out[1]= {21,64}

In[2]:= SingularValueList[M,Tolerance->0] //InputForm

Out[2]//InputForm=
{44.44844462032234, 44.44844462032234, 27.042668434447457,
 17.70074509587277, 8.904356780478404, 8.904356780478402,
 8.017322620768825*^-15, 5.390291801559869*^-15,
 3.217419606356955*^-15, 1.8374826839384085*^-15,
 1.1177979027971086*^-15, 6.299097734357916*^-16,
 2.435981051042932*^-16, 1.164217615077378*^-16,
 9.350573374138264*^-17, 7.638745641833149*^-17,
 8.251986281631452*^-31, 1.8830435203966325*^-31,
 1.5994058233690583*^-32, 8.05780199579207*^-48, 0.}

Delete the all-zero rows and columns.
The nonzero singular values should not change.

In[3]:= Dimensions[
        m = Transpose@Select[Transpose@Select[M,#.#>0&],#.#>0&]]

Out[3]= {18,43}

In[4]:= SingularValueList[m,Tolerance->0] //InputForm

Out[4]//InputForm=
{44.44844462032235, 44.44844462032235, 27.042668434447467,
 17.70074509587277, 8.904356780478398, 8.904356780478398,
 9.333262724578447*^-15, 3.826650949746316*^-15,
 3.1168179124846886*^-15, 1.944136451937067*^-15,
 7.03860275960609*^-16, 2.880589245914001*^-16,
 2.017780442593996*^-16, 1.7348598893568469*^-16,
 1.2196907654448287*^-31, 5.311192383519828*^-32,
 5.570074887646594*^-33, 8.074404526800988*^-49}


  • Prev by Date: Re: Using findroot and NIntegrate with a double integral
  • Next by Date: Re: Using findroot and NIntegrate with a double integral
  • Previous by thread: Re: Re: Orthogonazlie with Method->"Householder"
  • Next by thread: how to interpolation in mathematica for two dimension