jeff@carroll1.UUCP (Jeff Bartig) (06/30/89)
I am looking for a curve fitting program which enables the analysis of experimental data using a user defined function. I would like to be able to use it on an IBM PC or a Unix system. I'm looking for either PD or a good commercial package. If anyone knows of such a program, please contact me via email. I will mail a summary of what I get to whoever wants one. Jeff ____________________________________________________________ | Jeff Bartig, Carroll College | "The sooner you fall | | jeff@carroll1.cc.edu | behind, the more time you | | uunet!marque!carroll1!jeff | have to catch up." | ------------------------------------------------------------
walker@hpl-opus.HP.COM (Rick Walker) (07/01/89)
/ hpl-opus:comp.sources.wanted / jeff@carroll1.UUCP (Jeff Bartig) / 2:25 pm Jun 29, 1989 / > I am looking for a curve fitting program which enables the analysis of > experimental data using a user defined function. I would like to be able > to use it on an IBM PC or a Unix system. I'm looking for either PD or > a good commercial package. > > If anyone knows of such a program, please contact me via email. I will > mail a summary of what I get to whoever wants one. > > Jeff > Try the Downhill Simplex Method as described on p305-309 in Numerical Recipes in C, by Press, Flannery, Teukolsky and Vetterling., Cambridge University Press, 1988. This is a really neat multi-dimensional minimizer that is easy to program. All you need is to do is define a function y = f(x1,x2,x3...xN, p1, p2, p3, p4...) , where x1,x2... are your independant variable, and p1,p2... are your adjustable parameters. Then you need k experimental data points (in N dimensions): x11, x12, x13..., x1N, y1 x21, x22, x23..., x2N, y2 x31, x32, x33..., x3N, y3 ... ... xk3, xk2, xk3..., xkN, yk Next you define your figure of merit X for your fit to be equal to X = The SUM from j=1 to j=k of [f(xj1, xj2, ... xjN, p1, p2, p3 ...) - yj]^2 This gives a "chi-squared error surface" (equivalent to an RMS figure of merit). Run the Simplex algorithm on this surface to find a relative minima and you will have potentially found a good fit for your parameters and your data set. The routines to do this are alot easier to write than they are to describe. See the Byte article: M.S. Caceci and W.P. Cacheris, "Fitting Curves to Data", 1984 BYTE, vol. 9, no. 5, pp. 340-362. for a Pascal implementation of the algorithm and a good discussion of the theory. It works great! -------------- Rick Walker, ...!hplabs!walker