public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Brian Gough <bjg@network-theory.co.uk>
To: gsl-discuss@sourceware.org
Subject: Re: gsl_multifit_linear fails in a certain case
Date: Tue, 20 Nov 2007 20:50:00 -0000	[thread overview]
Message-ID: <87sl307idd.wl%bjg@network-theory.co.uk> (raw)
In-Reply-To: <20071120060732.GB8438@hippogriff.physics.drexel.edu>

At Mon, 19 Nov 2007 23:07:32 -0700,
Patrick Alken wrote:
> 
> This post is a continuation of a discussion on help-gsl. Basically
> gsl_multifit_linear will fail if the following 2 conditions are met:
> 
> (1) the matrix X has no inverse (ie: it has a singular value of 0 in its
> SVD decomp)
> 
> and
> 
> (2) the RHS of the fit is a zero vector
> 
> In this case, we are solving the equation X c = 0 and X has no inverse,
> but gsl_multifit_linear still tries to compute the psuedo-inverse
> and fudges the zero singular value to force it to make an inverse.
> The result returned by the routine is c = 0 which is not the desired
> solution.
> 
> A possible fix would be to check for a singular value of zero and if
> one is found, check to see if the RHS vector is 0. If it is, then
> don't try to compute S^{-1} but instead compute the null space of
> X which is the corresponding column of the matrix V.
> 
> I'm not really sure what to do if there is more than one zero singular
> value.
> 

Perhaps the manual needs to be clearer about what is computed, which
is the unique least squares solution that has minimum norm solution
coefficients |c|^2 (this only comes into play if there's a null space
- otherwise there's only one solution anyway).  The idea is to
minimise any spurious components of the solution.  This is usually
what is needed when fitting data and pretty standard.

When the rhs=0 and there is one singular value there is still an
infinite number of solutions, as the overall scale is
undetermined. The least squares choice is to return the minimum norm
solution, i.e. zero. 

In the help-gsl question, which was about fitting the equation for a
plane, the appropriate method is orthogonal regression rather than
linear regression, as there's no dependent variable. 
  
-- 
Brian Gough

  reply	other threads:[~2007-11-20 20:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-20  6:07 Patrick Alken
2007-11-20 20:50 ` Brian Gough [this message]
2007-11-20 21:41   ` Patrick Alken

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sl307idd.wl%bjg@network-theory.co.uk \
    --to=bjg@network-theory.co.uk \
    --cc=gsl-discuss@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).