From: Ingo Thies Newsgroups: comp.graphics.apps.gnuplot Subject: Re: Wrong fit direction / zrange / unreadable graph file Date: Thu, 19 May 2011 11:07:49 +0200 Lines: 36 Message-ID: <93k4v6F1lmU1@mid.individual.net> References: <01ac512a-8031-41f0-a899-0684927f6c32@n10g2000yqf.googlegroups.com> <93c9dhFmvmU1@mid.individual.net> <93cqpmF1a3U1@mid.individual.net> <93j47sF2m1U1@mid.dfncis.de> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: individual.net od37UAfKYnaLKUvpivtB0gId5UkvaNvGy9Xk9X/sLMzBJNRzCx Cancel-Lock: sha1:dO1P/wzcj/U9ZKYXga6hVemyvMo= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110424 Thunderbird/3.1.10 In-Reply-To: <93j47sF2m1U1@mid.dfncis.de> Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.stben.net!gegeweb.org!newsfeed.kamp.net!newsfeed.kamp.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail Xref: x330-a1.tempe.blueboxinc.net comp.graphics.apps.gnuplot:327 On 19.05.2011 01:49, Hans-Bernhard Bröker wrote: > The problem is not actually in the computations with matrices. It's in > how gnuplot computes the derivatives of the model WRT the parameters at > each data point (a.k.a. the "Jacobian" matrix). That derivative > computation simply doesn't work at zero. Hmm, I do not see why d/da (a+b*x) should cause troubles at a=0, unless there is some kind of scaling the differences (rather than differentials in numerics) da by a, so that da may become zero if a is. The MINPACK and SLATEC routines I have tested are also calculating the Jacobian numerically (unless the user wants to provide it directly, which is also possible), in particular by forward differences, which works fine with a=0. I could have a deeper look into the method, as far as time permits, to understand what it does differently from gnuplot. Indeed, there were very few cases where that algorithm failed, and, as far as I remember, they were all caused by wrong input parameters (like zero errors, zero powers, powers of negative x or something like that). > The second part of the problem is that we don't normalize parameters to > a common scale, so parameters of wildly different magnitude cause the > fit to grind to a halt. In the given example the number of iterations is pretty small, so that I won't assume any kind of numerical stall here. -- Gruß, Ingo