Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.graphics.apps.gnuplot > #3675

Re: What's new in gnuplot 5.2

From Dr Engelbert Buxbaum <engelbert_buxbaum@hotmail.com>
Newsgroups comp.graphics.apps.gnuplot
Subject Re: What's new in gnuplot 5.2
Date 2017-06-07 14:26 +0200
Organization private
Message-ID <MPG.33a20f6e7876200d98968a@News.Individual.DE> (permalink)
References (5 earlier) <ec3a75fe-478f-458a-a42d-4629c2cf45a5@googlegroups.com> <91f133a9-ec73-423a-fb72-de13397f48aa@t-online.de> <f8c271a2-88bb-4951-8db3-f65800bdd512@googlegroups.com> <epl279FkmeU1@mid.dfncis.de> <bd839b06-b64d-4888-be75-e83d2a508e4c@googlegroups.com>

Show all headers | View raw


In article <bd839b06-b64d-4888-be75-e83d2a508e4c@googlegroups.com>, 
hugocoolens@gmail.com says...
> 
> Op maandag 5 juni 2017 14:47:38 UTC+2 schreef Hans-Bernhard Bröker:
> > Am 05.06.2017 um 10:32 schrieb hugocoolens@gmail.com:
> > > Op zaterdag 3 juni 2017 22:45:42 UTC+2 schreef Hans-Bernhard Bröker:
> > 
> > >> Often the function can be transformed a bit to lift such requirements.
> > >> In this case, you could just fit
> > >>
> > >> 	f(x) = 10 * log10(a**2 / (1 + (x / b)**2))
> > >>
> > >> or
> > >>
> > >> 	f(x) = 20 * log10a - 10 * log10(1 + (x / b)**2)
> > \
> > 
> > > thank you very much for your help, I tried out
> > > f(x) = 20 * log10a - 10 * log10(1 + (x / b)**2) but that didn't make
> > > any difference. However f(x) = 10 * log10(a**2 / (1 + (x / b)**2)) does make a difference but "a" still becomes negative for certain fitting intervals.
> > 
> > Part of the trick is that this doesn't actually matter.  The function is 
> > identical for parameters a and -a, so you can just throw away the sign 
> > afterwards.  The requirement that a be positive was an artificial one 
> > from the beginning.
> 
> I admit this wasn't a good example to make my point. However I still wonder why increasing the fitting interval toggles  the value of "a" from positive to negative.

I have fiddled with such limiting conditions in the past, and in 
practice the parameter will then be "glued" to that limit and this also 
affects the fitting of other parameters. 

What would be useful is the implementation of the Nelder/Mead simplex 
fitting algorithm in Gnuplot. In my experience it is more stable than 
Marquard/Levenberg, converges faster even with poor initial values for 
the parameters and allows the minimisation by other criteria than sum of 
squares, for example minimum chi-square for non-homoscedastic data 
(e.g., data going over several orders of magnitude), or minimum median 
of deviation when data scatter a lot.

The only disadvantage of simplex is that the error estimates for fitted 
parameters have to be calculated by bootstrapping, but with computing 
power today that is a minor inconvenience.

Literature:

@ARTICLE{Nel-65,
  title        = {A simplex method for function minimization},
  author       = {Nelder, J.A. and Mead, R.},
  journal      = {Computer J.},
  year         = {1965},
  number       = {4},
  pages        = {308-313},
  volume       = {7},
  doi          = {10.1093/comjnl/7.4.308},
}

@ARTICLE{Cac-84,
  title        = {Fitting Curves to Data: {T}he Simplex Algorithm is the 
Answer},
  author       = {Caceci, M.S. and Cacheris, W.P.},
  journal      = {Byte},
  year         = {1984},
  number       = {5},
  pages        = {340-362},
  volume       = {9},
  language     = {eng},
}

@BOOK{Pre-89,
  title        = {Numerical recipes in {P}ascal: The art of scientific 
computing},
  author       = {W.H. Press and B.P. Flannery and S.A. Teukolsky and 
W.T. Vetterling},
  publisher    = {Cambridge University Press},
  year         = {1989},
  address      = {Cambridge},
  isbn         = {978-0-5213-7516-0},
  language     = {eng},
}

@ARTICLE{Str-92,
  title        = {Monte Carlo Method for Determining Complete Confidence 
Probability Distributions of Estimated Modell Parameters},
  author       = {Straume, M. and Johnson, M.L.},
  journal      = {Meth. Enzymol.},
  year         = {1992},
  pages        = {117-129},
  volume       = {210},
  doi          = {10.1016/0076-6879(92)10009-3},
  language     = {eng},
}


and for an example where Marquard/Levenberg failed completely, but 
Simplex worked:

@ARTICLE{Bux-99b,
  title        = {Co-operating {ATP} sites in the multiple drug 
resistance transporter {M}dr1},
  author       = {E. Buxbaum},
  journal      = {Eur. J. Biochem.},
  year         = {1999},
  pages        = {54-63},
  volume       = {265},
  doi          = {10.1046/j.1432-1327.1999.00643.x},
  language     = {eng},
}


-- 
DIN EN ISO 9241-13: 9.5.3 Error messages should convey what is wrong, 
what corrective actions can be taken, and the
cause of the error.

Back to comp.graphics.apps.gnuplot | Previous | NextPrevious in thread | Find similar


Thread

What's new in gnuplot 5.2 Raoul Fleckman <raoul.fleckman@gmail.com> - 2017-05-26 21:13 +0000
  Re: What's new in gnuplot 5.2 "hugocoolens@gmail.com" <hugocoolens@gmail.com> - 2017-05-31 23:16 -0700
    Re: What's new in gnuplot 5.2 Karl Ratzsch <mail.kfr@gmx.net> - 2017-06-02 10:18 +0200
      Re: What's new in gnuplot 5.2 "hugocoolens@gmail.com" <hugocoolens@gmail.com> - 2017-06-02 02:32 -0700
        Re: What's new in gnuplot 5.2 Karl Ratzsch <mail.kfr@gmx.net> - 2017-06-02 12:11 +0200
          Re: What's new in gnuplot 5.2 "hugocoolens@gmail.com" <hugocoolens@gmail.com> - 2017-06-03 12:49 -0700
            Re: What's new in gnuplot 5.2 Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2017-06-03 22:45 +0200
              Re: What's new in gnuplot 5.2 "hugocoolens@gmail.com" <hugocoolens@gmail.com> - 2017-06-05 01:32 -0700
                Re: What's new in gnuplot 5.2 Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2017-06-05 14:47 +0200
                Re: What's new in gnuplot 5.2 "hugocoolens@gmail.com" <hugocoolens@gmail.com> - 2017-06-06 23:34 -0700
                Re: What's new in gnuplot 5.2 Dr Engelbert Buxbaum <engelbert_buxbaum@hotmail.com> - 2017-06-07 14:26 +0200

csiph-web