octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #33347] lsqnonneg should have tolerance option


From: anonymous
Subject: [Octave-bug-tracker] [bug #33347] lsqnonneg should have tolerance option for convergence
Date: Thu, 19 May 2011 05:30:20 +0000
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1

URL:
  <http://savannah.gnu.org/bugs/?33347>

                 Summary: lsqnonneg should have tolerance option for
convergence
                 Project: GNU Octave
            Submitted by: None
            Submitted on: Thu 19 May 2011 05:30:19 AM UTC
                Category: Libraries
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Improvement/Optimization
                  Status: None
             Assigned to: None
         Originator Name: Sean Pieper
        Originator Email: address@hidden
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 3.4.0
        Operating System: GNU/Linux

    _______________________________________________________

Details:

running lsqnonneg using a matrix with a large range of exact solutions, I see
that it takes about 20s to solve for points that should have 0 error and much
less for points that have some error-- apparently the full 10000 iterations
are used trying to get to exactly 0 distance (end result is ~10^26 distance).
The worst case performance can be considerably reduced if we modify the code
around here:



   144     ## compute the gradient.
   145     w = c'*(d - c*x);
   146     w(p) = [];
   147     if (! any (w > 0))
   148       if (useqr)
   149         ## verify the solution achieved using qr updating.


so that line 147 reads



   147     if (! any (w > 0.001))



Obviously, the right value for the tolerance isn't always going to be 0.001,
but it should be easy enough to add a tolerance parameter to the option set,
and possibly to additionally have some sort of auto tolerance calculation
based on the max values of points, some static value of epsilon, etc.






    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?33347>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]