2D Engineering

Ramberg-Osgood   Strain = (Stress / Young's Modulus) + (Stress / K)(1.0 / n)
Ramberg-Osgood With Offset   Strain = (Stress / Young's Modulus) + (Stress / K)(1.0 / n) + d








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D Exponential

Exponential   y = a * ebx
Exponential With Offset   y = a * ebx + c
Hocket-Sherby   y = b - (b-a) * e(-c * (x^d))
Inverse Exponential   y = a * eb/x
Inverse Exponential With Offset   y = a * eb/x + c
Offset Exponential   y = a * ebx + c
Offset Exponential With Offset   y = a * ebx + c + d
Simple Exponential   y = a * ex
Simple Exponential With Offset   y = a * ex + b
Standard Vapor Pressure   y = e(a + (b/x) + c*ln(x))
Standard Vapor Pressure With Offset   y = e(a + (b/x) + c*ln(x)) + d








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D Logarithmic

Base 10 Logarithmic   y = a + b*log10(x)
Base 10 Reciprocal Logarithmic   y = 1.0 / (a + b*log10(x))
Logarithmic   y = a + b*ln(x)
Reciprocal Logarithmic   y = 1.0 / (a + b*ln(x))








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D Miscellaneous

Miscellaneous 1   y = 1.0 + a(1.0 - ebx)
Miscellaneous 1 With Offset   y = 1.0 + a(1.0 - ebx) + c








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D NIST

NIST Bennett5   y = a * (b+x)^(-1/c)
NIST Bennett5 With Offset   y = a * (b+x)^(-1/c) + d
NIST BoxBOD   y = a * (1.0-e-b*x)
NIST BoxBOD With Offset   y = a * (1.0-e-b*x) + c
NIST Chwirut   y = e(-a*x) / (b + c*x)
NIST Chwirut With Offset   y = e(-a*x) / (b + c*x) + d
NIST DanWood   y = a*xb
NIST DanWood With Offset   y = a*xb + c
NIST ENSO   y = a + b*cos(2*pi*x/12) + c*sin(2*pi*x/12) + e*cos(2*pi*x/d) + f*sin(2*pi*x/d) + h*cos(2*pi*x/g) + i*sin(2*pi*x/g)
NIST Eckerle4   y = (a/b) * e-0.5*((x-c)/b)^2
NIST Eckerle4 With Offset   y = (a/b) * e-0.5*((x-c)/b)^2 + d
NIST Gauss   y = a*e(-b*x) + c*e(-(x-d)^2 / e^2) + f*e(-(x-g)^2 / h^2)
NIST Gauss With Offset   y = a*e(-b*x) + c*e(-(x-d)^2 / e^2) + f*e(-(x-g)^2 / h^2) + i
NIST Hahn   y = (a + b*x + c*x2 + d*x3) / (1.0 + e*x + f*x2 + g*x3)
NIST Hahn With Offset   y = (a + b*x + c*x2 + d*x3) / (1.0 + e*x + f*x2 + g*x3) + h
NIST Kirby   y = (a + b*x + c*x2) / (1.0 + d*x + e*x2)
NIST Kirby With Offset   y = (a + b*x + c*x2) / (1.0 + d*x + e*x2) + f
NIST Lanczos   y = a*exp(-b*x) + c*exp(-d*x) + e*exp(-f*x)
NIST Lanczos With Offset   y = a*exp(-b*x) + c*exp(-d*x) + e*exp(-f*x) + g
NIST MGH09   y = a * (x2 + b*x) / (x2 + c*x + d)
NIST MGH09 With Offset   y = a * (x2 + b*x) / (x2 + c*x + d) + e
NIST MGH10   y = a * eb/(x+c)
NIST MGH10 With Offset   y = a * eb/(x+c) + d
NIST MGH17   y = a + b*exp(-x*d) + c*exp(-x*e)
NIST Misra1a   y = a * (1.0 - e-b*x)
NIST Misra1a With Offset   y = a * (1.0 - e-b*x) + c
NIST Misra1b   y = a * (1.0 - (1.0+b*x/2.0)-2.0)
NIST Misra1b With Offset   y = a * (1.0 - (1.0+b*x/2.0)-2.0) + c
NIST Misra1c   y = a * (1.0 - 2.0*b*x)-0.5
NIST Misra1c With Offset   y = a * (1.0 - 2.0*b*x)-0.5 + c
NIST Misra1d   y = a * b * x * (1.0 + b*x)-1.0
NIST Misra1d With Offset   y = a * b * x * (1.0 + b*x)-1.0 + c
NIST Rat42   y = a / (1.0 + exp[b - c*x])
NIST Rat42 With Offset   y = a / (1.0 + exp[b - c*x]) + d
NIST Rat43   y = a / ((1.0 + exp[b - c*x])(1.0/d))
NIST Rat43 With Offset   y = a / ((1.0 + exp[b - c*x])(1.0/d)) + e
NIST Roszman   y = a - bx - (arctan[c/(x-d)] / pi)
NIST Thurber   y = (a + bx + cx2 + dx3) / (1.0 + ex + fx2 + gx3) + h








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D Peak

Gaussian Peak   y = a * e(-0.5 * (x-b)^2 / c^2)
Gaussian Peak With Offset   y = a * e(-0.5 * (x-b)^2 / c^2) + d
Lorentzian Peak   y = a / (1.0 + ((x-b)/c)2)
Lorentzian Peak With Offset   y = a / (1.0 + ((x-b)/c)2) + d
Pulse Peak   y = 4.0 * a * e(-(x-b)/c) * (1.0 - e(-(x-b)/c))
Pulse Peak With Offset   y = 4.0 * a * e(-(x-b)/c) * (1.0 - e(-(x-b)/c)) + d








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D Polyfunctional

User-Selectable Polyfunctional   y = user-selectable function








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D Polynomial

Cubic   y = a + bx + cx2 + dx3
Inverse Cubic   y = 1.0 / (a + bx + cx2 + dx3)
Inverse Linear   y = 1.0 / (a + bx)
Inverse Quadratic   y = 1.0 / (a + bx + cx2)
Linear   y = a + bx
Quadratic   y = a + bx + cx2
User-Selectable Inverse Polynomial   y = 1.0 / (a + bx + cx2 + dx3 + ...)
User-Selectable Polynomial   y = a + bx + cx2 + dx3 + ...








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D Power

Modified Geometric   y = a * x(b/x)
Modified Geometric With Offset   y = a * x(b/x) + c
Modified Power   y = a * bx
Modified Power With Offset   y = a * bx + c
Power Law With Exponential Cutoff   p(k) = C * k(-T) * e(-k/K)
Power Law With Exponential Cutoff With Offset   p(k) = C * k(-T) * e(-k/K) + d
Root   y = a(1.0/x)
Root With Offset   y = a(1.0/x) + b
Simple Power   y = xa
Simple Power With Offset   y = xa + b
Standard Geometric   y = a * xbx
Standard Geometric With Offset   y = a * xbx + c
Standard Power   y = a * xb
Standard Power With Offset   y = a * xb + c
X Shifted Power   y = a * (x-b)c
X Shifted Power With Offset   y = a * (x-b)c + d








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D Sigmoidal

Gompertz   y = a * e^(-e(b - cx))
Gompertz With Offset   y = a * e^(-e(b - cx)) + d
Logistic   y = a / (1.0 + be-cx)
Logistic With Offset   y = a / (1.0 + be-cx) + d
Magnetic Saturation   y = ax * (1.0 + b*ecx)
Magnetic Saturation With Offset   y = ax * (1.0 + b*ecx) + d
Sigmoid   y = a / (1.0 + e(-(x-b)/c))
Sigmoid With Offset   y = a / (1.0 + e(-(x-b)/c)) + d
Weibull   y = a - b*e-cx^d
Weibull CDF   y = 1.0 - e-(x/b)^a
Weibull CDF With Offset   y = 1.0 - e-(x/b)^a + c
Weibull PDF   y = (a/b) * (x/b)(a-1.0) * e-(x/b)^a
Weibull PDF With Offset   y = (a/b) * (x/b)(a-1.0) * e-(x/b)^a + c








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D Trigonometric

Sine A [radians]   y = a * sin(x)
Sine A [radians] With Exponential Decay   y = a * sin(x) / (b * ex)
Sine A [radians] With Linear Decay   y = a * sin(x) / (b * x)
Sine A [radians] With Offset   y = a * sin(x) + b
Sine B [radians]   y = a * sin(b*x)
Sine B [radians] With Exponential Decay   y = a * sin(b*x) / (c * ex)
Sine B [radians] With Linear Decay   y = a * sin(b*x) / (c * x)
Sine B [radians] With Offset   y = a * sin(b*x) + c
Sine C [radians]   y = a * sin(bx + c)
Sine C [radians] With Exponential Decay   y = a * sin(bx + c) / (d * ex)
Sine C [radians] With Linear Decay   y = a * sin(bx + c) / (d * x)
Sine C [radians] With Offset   y = a * sin(bx + c) + d
Sine D [radians]   y = a * sin(x + b)
Sine D [radians] With Exponential Decay   y = a * sin(x + b) / (c * ex)
Sine D [radians] With Linear Decay   y = a * sin(x + b) / (c * x)
Sine D [radians] With Offset   y = a * sin(x + b) + c
Tangent A [radians]   y = a * tan(x)
Tangent A [radians] With Offset   y = a * tan(x) + b
Tangent B [radians]   y = a * tan(b*x)
Tangent B [radians] With Offset   y = a * tan(b*x) + c
Tangent C [radians]   y = a * tan(bx + c)
Tangent C [radians] With Offset   y = a * tan(bx + c) + d








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




2D YieldDensity

Bleasdale   y = 1.0 / (a + bx)(-1.0/c)
Bleasdale With Offset   y = 1.0 / (a + bx)(-1.0/c) + d
Harris   y = 1.0 / (a + bxc)








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




3D Miscellaneous

Gary Cler's Custom Equation   z = a * xb * yc
Gary Cler's Custom Equation With Offset   z = a * xb * yc + d
Liping Zheng's core loss coefficients   z = ax2y + bx2y2 + cx1.5y1.5
Liping Zheng's core loss coefficients With Offset   z = ax2y + bx2y2 + cx1.5y1.5 + d








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




3D Optical

Sag For Asphere 0   s2 = x2 + y2
z = (s2/r) / (1+(1-(k+1)(s/r)2)1/2) + offset
Sag For Asphere 0 Borisovsky   s2 = (x - a)2 + (y - b)2
z = (s2/r) / (1+(1-(k+1)(s/r)2)1/2) + offset








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




3D Polyfunctional

User-Selectable Polyfunctional   z = user-selectable function








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




3D Polynomial

Full Cubic   z = a + bx + cy + dx2 + ey2 + fx3 + gy3 + hxy + ix2y + jxy2
Full Quadratic   z = a + bx + cy + dx2 + ey2 + fxy
Inverse Full Cubic   z = 1.0 / (a + bx + cy + dx2 + ey2 + fx3 + gy3 + hxy + ix2y + jxy2)
Inverse Full Quadratic   z = 1.0 / (a + bx + cy + dx2 + ey2 + fxy)
Inverse Linear   z = 1.0 / (a + bx + cy)
Inverse Simplified Cubic   z = 1.0 / (a + bx + cy + dx2 + ey2 + fx3 + gy3)
Inverse Simplified Quadratic   z = 1.0 / (a + bx + cy + dx2 + ey2)
Linear   z = a + bx + cy
Simplified Cubic   z = a + bx + cy + dx2 + ey2 + fx3 + gy3
Simplified Quadratic   z = a + bx + cy + dx2 + ey2
User-Selectable Inverse Polynomial   z = 1.0 / (a + bx + cy + dx2 + ey2 + fx3 + gy3 + ...)
User-Selectable Polynomial   z = a + bx + cy + dx2 + ey2 + fx3 + gy3 + ...








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




3D Power

Power A   z = a * (xb + yc)
Power A With Offset   z = a * (xb + yc) + d
Power B   z = a + xb + yc
Power C   z = a + xb * yc
Power D   z = axb + cyd
Power D With Offset   z = axb + cyd + e








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




3D Rational

Rational A   z = (a + bx + cy)/(1 + dx + ey)
Rational A With Offset   z = (a + bx + cy)/(1 + dx + ey) + f
Rational B   z = (a + b*ln(x) + c*ln(y))/(1 + dx + ey)
Rational B With Offset   z = (a + b*ln(x) + c*ln(y))/(1 + dx + ey) + f
Rational C   z = (a + bx + cy)/(1 + d*ln(x) + e*ln(y))
Rational C With Offset   z = (a + bx + cy)/(1 + d*ln(x) + e*ln(y)) + f
Rational D   z = (a + b*ln(x) + c*ln(y))/(1 + d*ln(x) + e*ln(y))
Rational D With Offset   z = (a + b*ln(x) + c*ln(y))/(1 + d*ln(x) + e*ln(y)) + f








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




3D Sigmoidal

Fraser Smith Sigmoid   z = 1.0 / ((1.0 + e(a - bx)) * (1.0 + e(c - dy)))
Fraser Smith Sigmoid With Offset   z = 1.0 / ((1.0 + e(a - bx)) * (1.0 + e(c - dy))) + e
Sigmoid   z = a / ((1.0 + e(b - cx)) * (1.0 + e(d - ey)))
Sigmoid With Offset   z = a / ((1.0 + e(b - cx)) * (1.0 + e(d - ey))) + f








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




3D TaylorSeries

Taylor Series A   z = a + bx + cy + dx2 + ey2 + fxy
Taylor Series B   z = a + b/x + cy + d/x2 + ey2 + fy/x
Taylor Series C   z = a + bx + c/y + dx2 + e/y2 + fx/y
Taylor Series D   z = a + b/x + c/y + d/x2 + e/y2 + f/(xy)








The source code for the site middleware is at Python Equations.

You might be interested in this curve fitting and surface fitting web site tutorial.




Welcome to ZunZun.com

Here you can curve and surface fit your 2D and 3D data online with a rich set of error
histograms, error plots, curve plots, surface plots, contour plots, VRML, and source code.

If you're looking for quality curve fitting and surface fitting, this is the site for you!

To begin, select an equation family from the 2D and 3D drop-down menus above or
try the "Function Finders" to help determine the best curve fit for your data.




Powered by Linux           Written in Python           Accelerated by SkunkWeb           Zunzun music
Powered by Linux           Written in Python           Accelerated by SkunkWeb           Zunzun music
About ZunZun.com

This site is dedicated to Jesus of Nazareth, and was written by James R. Phillips.

The site is a natural outgrowth of my old Research and Development days in
Washington, D.C., my previous software engineering work in Tokyo, Japan and
now Birmingham, AL, USA. The site is hosted at linode.com, highly recommended!

The name of the site, ZunZun.com, is taken from my wife's Burmese nickname.
Site News

May 2008     Corrected an error in the newly integrated site code (see the
Hall of Fame). Corrected the VRML output (see the Hall of Fame).
Corrected offset forms of equations (see the Hall of Fame).
Corrected function-finder related error when fitting nonlinear
equations (see the Hall of Fame).
  
April 2008     Removed extraneous semicolons from auto-generated SCILAB and
MATLAB source code for several equations (see the Hall of Fame).
Tuned genetic algorithm parameters using exhaustive search method.
Upgraded server and development laptop OS's from Ubuntu 7.10 to 8.04.
Completed integration of new code base.
  
March 2008     Corrected NIST Eckerle4 (see the Hall of Fame). Wrapping up integration
of new code base.
  
February 2008     Added 3D Full Polynomials (see the Hall of Fame). Continuing work
on parallel processing with new 4-core server.
  
November 2007     Moved site to a new Xen server - same excellent host, Linode.com.
New server has 4 CPU cores, site will run faster now with multiple
users. Big speedup for page downloads by using multiple subdomains.
Redesign of site to take advantage of multiple CPU cores is underway.
  
October 2007     As part of integrating the new code base into the web site,
created a do-it-youself tutorial on making a curve and surface
fitting web site here.
  
September 2007     Completed conversion of middleware to native Numpy. Moving
on to integrate the new code into the web site.
  
April 2007     Added Gary Cler's Custom Equation (see the Hall of Fame). Fixed a
C++ typo in the Standard Vapor Pressure equation (see the Hall of Fame).
Site host provider doubled host memory from 256M to 512M for free.
Fixed typos in a few offset forms of equations (see the Hall of Fame).
  
February 2007     Fixed my broken laptop, moving on to calculate fit statistics.
  
January 2007     Released site middleware code under a liberal BSD-style license.
  
December 2006     Corrected auto-generated MATLAB code (see the Hall of Fame).
  
November 2006     Corrected histogram displays (see the Hall of Fame). Added Standard
Error of Mean to the statistics (see the Hall of Fame). Added
Offset Exponential equation (see the Hall of Fame). Added Simple
Exponential equation (see the Hall of Fame). Added selection of
comma conversion methodology for user data (see the Hall of Fame).
Added Inverse Polynomial equations. Added Site CPU Usage graphs.
  
October 2006     Completed change from Gentoo Linux to Ubuntu Linux. Still have a
bit of cleanup here and there before starting on the backlog of
user requests. Added gcc flags '-O3 -funroll-loops -march=i686 -malign-double'
back for performance.
  
July 2006     Caught and fixed a rare bug relating to parentheses in graph labels.
  
June 2006     Fixed VRML display problem from last month (see May 2006 entry).
Corrected the new MATLAB code (see the Hall of Fame). Corrected an error
in the Sine A equation. Added linearly and exponentially damped sine functions
(see the Hall of Fame). Found and corrected a rare bug in the results code.
added Fraser Smith 3D Sigmoid equations (see the Hall of Fame).
  
May 2006     Fixed a display bug in the VRML surface plots. Still troubleshooting
the VRML display sudden loss of displayed data from a recent Gentoo emerge.
Getting tired of Gentoo updates constantly breaking the site, will switch
to Ubuntu Server sometime in the near future to improve stability. Corrected
several errors in the source code output (see the Hall of Fame). Fixed a scaling
bug in the data graphs (see the Hall of Fame). Added MATLAB source code
generation (see the Hall of Fame).
  
April 2006     Fixed a rare and very ugly bug where the function finders gave "no
session data" errors, with major assistance from Don Parker (see the
Hall of Fame). Completed non-VRML work on adding scientific notation
control, moving on to wrap up the VRML cases later (see the Hall of Fame).
Added "Lipeng Zheng's core loss coefficients" to the new 3D Miscellaneous
equation category (see the Hall of Fame).
  
March 2006     Re-designed the code for offset form of equations to simplify
adding new equations to the site. Restored offset forms of NIST
equations.
  
February 2006     Added 2D Sine D and Sine D with offset equations (See the
Hall of Fame). Fixed a few minor display problems.
  
January 2006     2D User-Selectable Polynomials now generate source code using
the numerically more efficient Horner, or nested, form (See the
Hall of Fame).
  
December 2005     Data object redesign complete. Making a few scripts to help me
deploy code after testing. Fixed minor problem with Function Finders
on some data sets. Now working on the backlog of user requests.
  
October-November 2005     Matplotlib needs to be more complete before I can use it. In the
course of this work I found that I need to represent user data in
a more abstract form, so I'm redesigning a bit to use a data object.
  
August 2005     Switching graphs to matplotlib.
  
July 2005     Site went down for about two weeks due to another newbie mistake using
Gentoo, I had to rebuild the server again. Everything is back up now.
  
June 2005     Now using Subversion for revision control. Added 3D Sigmoidal
equations (see the Hall of Fame).
  
April-May 2005     Added 3D Optical equation. Converted site from Webware to Skunkweb,
which means the site is now multi-process instead of multi-threaded.
Now if I have a multi-core CPU running the site it will be several
times faster than it is now, I'm specifically looking to go to the
new Cell processor in the future.
  
February 2005     Site went down for about a week due to my newbie mistake using some
Gentoo features, had to rebuild the server. Everything is back up now.
  
January 2005     Added SCILAB code generation (see the Hall of Fame).
  
December 2004     Added Weibull PDF and Weibull CDF equations (see the Hall of Fame).
Added options for manual scaling of graphs (see the Hall of Fame). Corrected
the calculation of lowest sum of squared error for linear equations (see the Hall of
Fame). Performed some site maintenence related to the setup on the new server.
  
November-December 2004     Moved site to Linode.com due to the threading bug discussed below.
  
October 2004     Using Apache's JMeter to load test fitting pages, I can finally
cause the infrequent site instability problem on demand. I am investigating.
Added Hocket-Sherby exponential equation. Instability seems due to
this bug in RedHat 9. Making the changes they mention causes other
problems that prevent the site from running. I have contacted my site
host provider to ask about a Linux kernel upgrade date.
  
September 2004     Fixed a bug that Steve Hutcheon had found preventing two of the data
graphs from being displayed (see the Hall Of Fame). Reduced the number
of statistics displayed after Steve Hutcheon found an error in the
statistics output (See the Hall Of Fame). Added thread mutexes around
all VTK access. Corrected an error found by Gordon Ingram in the NIST
MGH17 equation (see the Hall Of Fame). Added thread death catch code.
  
August 2004     Fixed a bug in the Feedback section that went in with the new code.
Upgraded to 8 Aug, 2004 CVS version of Webware as it is far ahead of
the current release version, 0.8.1.
  
July 2004     Fixed a bug that Steve Hutcheon had found in the new fitting
target code. Added a smoothness control to the Function Finders.
Completed addition of NIST test equations. Found site was listed
as a reference in Phys. Chem. Chem. Phys., 2004, 6 (3), 471 - 473.
See the Hall of Fame for details.
  
June 2004     The new redesign code now running on site. I still need to
complete some new items and polish a few rough edges. Fixed a
minor bug in the new Function Finder code. Fixed a very bad typo.
Fixed a few minor bugs in the new code.
  
May 2004     Almost all of the redesign has been completed and beta tested.
  
April 2004     Working on a Python array() memory leak in the Function Finders,
this turned out to be a bug related to the Python array() module.
Redesign is back on track, I'm now ensuring session data passes
properly between the function finders and the fitting pages.
  
March 2004     Redesign work continues. Will need to hold Function Finder
results on the server as session variables and generate the
FF pages on the fly, as generating 30,000+ pages per FF use
will take up too much hard drive space. This will also have the
advantage of allowing users access to all of their FF results.
  
February 2004     Redesign work continues extremely well. New site now fits
the 2D test data to 32,000+ equations and the 3D test data
to 16,000+ equations, both in less than 60 seconds. Work
on the site interface and result pages currently underway.
New data characterizers are now completely finished.
  
January 2004     Redesign work is going extremely well. Initial code
tests are complete. Development work underway. The
redesigned code runs the 2D function fitter in 1/6 of
the current time.
  
December 2003     Got a lot of the redesign completed over the holidays.
  
November 2003     Top-level UML use case diagrams for the site redesign are now
complete. Modeler Interface UML diagram is complete. Web page
and report Activity and Class diagrams are complete. Initial
Python development coding has begun. C++ work will begin after
the new web page code looks OK.
  
October 2003     As integrating the 3D polyfunctional equations into the
function finders requires much greater computing power than
I can afford for my hobby site in its current form, I will
need to redesign the fitting algorithms to make more efficient
use of the resources I have. I'm taking the opportunity to
redesign the entire site from scratch as well.
  
September 2003     Implemented new 3D polyfunctional equations as one way to
increase the number of 3D equations, however this is not yet
integrated with the functions finders.
  
August 2003     Designed and implemented new code updating and testing methods
and procedures. Corrected minor bug in data characterization.
  
July 2003     Found and fixed the buffer overflow error that was causing C++
segmentation faults. Began addition of trigonometric functions
to the site (see the Hall of Fame). Corrected recent problem in
the data characterization. Added 2D Pulse peak and 2D Sigmoid
equations. Accounted for Nyquist's Theorem when fitting sines.
Fixed a bug in the polynomial fitter. Added digits of precision
to coefficient listings (see the Hall of Fame).
  
June 2003     Went down a conceptual blind alley, backtracked. Fixed a bug in
the inverse exponential equations. Investigating stability
problems where C++ segmentation faults kill all Python threads.
  
May 2003     Site was down for a week due to host provider problems. Added
non-traditional SSQ relative, abs(abs err), and abs(rel error)
modeling methods as fitting targets. Added relative error plots
in addition to percent error plots. Changed fit statistics
from percent error to relative error. Initiated expansion of
3D equations.
  
April 2003     Began research into more robust modeling methods than the
traditional SSQ.
  
Mar 2003     Added data characterization. Upgraded statistics. Fixed minor
bug in use of statistics module. Removed all "virtual
destructor" warnings when compiling C++ code. Added all data
characterization output to fitting results pages. Removed the
unused data plot menu from 1D characterization. Deleted all
thread-specific data when a thread completes. If user allows
cookies, a cookie is used to hold user preferences across sessions.
Added C# source code generation. Dollar signs ($) and percent
characters (%) in data sets are now ignored. Added "clear all
text" button to text data entry sections.
  
Feb 2003     2D model graphs now show data points colored by the sign of
fitted error. Optimized genetic algorithm parameters. Added
extrapolation control. Extended 2D models to graph edges for
extrapolation view. Added browser icon to the site. Added
function finder progress status. Upgraded the site to Webware
version 0.8, fixed KDE's Konqueror browser file upload bug.
  
Jan 2003     Moved to a new site host with faster servers, optimized the C++
compiler settings, changed the VTK compiler optimizations to
have -mmmx -msse -ffast-math -funroll-loops -O3
-fexpensive-optimizations, upgraded the site to Webware version
0.7. Added offset forms for many of the existing equations.
Addition of NIST test equations to the site is underway.
Separated the function fitter results into individual pages.
Changed the site to run with 10 threads, using thread-safe data
per user.
  
Dec 2002     Fixed a bug taking the log of non-positive numbers. Fixed a
bug for poorly-conditioned data. Fixed a bug where one
variable in a user data set consisted of a single value.
Added "guess initial coefficients" buttons to the non-linear
fitting pages. Fixed a bug where Python does not throw
underflow exceptions for pow().
  
Nov-Dec 2002     Completed preliminary work on initial coefficient guessers for
non-linear equations. Added 2D Gaussian and Lorentzian
equations.
  
Nov 2002     Completed work speeding up the non-linear equation fitting.
Fixed minor bug related to passing initial coefficients to the
nonlinear fitters. Work on adding peak equations and initial
coefficient guessers progressing.
  
Oct-Nov 2002     Linear equations now fit in C++, this is much faster. Increased
maximum 2D polynomial order to 15, and the max 3D X and Y
polynomial orders to 5. Porting the nonlinear equations to C++
is underway. Also added absolute error plots to function
fitter pages to aid in equation selection.
  
October 2002     C++/Python interface via SWIG completed, using a C++ matrix
library for linear equations results in curve and surface
fitting times less than 1/1000 of current times. Implementation
of the new C++ libraries and interface to the site is underway.
  
September 2002     Added automatic C++, Java, and Python source code generation.
  
August 2002     Added "Hall Of Fame" and "User Wish List" sections, researched
genetic algorithms and C++/Python interfacing.
  
July 2002     Fixed a bug in the function finder incorrectly passing data on
Macs. Added VRML options interface. Fixed a bug in Netscape
where HTML DIV names could not contain underscores. Corrected
problem with the 2D Logistic equation (see the Hall Of Fame).
  
June-July 2002     Fixed a try-except block bug in the pre-caching of some math
operations. Added test XML-RPC remote functionality.
  
June 2002     Added the About, Feedback, and News selections to the new
"Site Related" home page menu. Fixed minor bug when curve
fitting very small numbers.
  
May-June 2002     Added X, Y, and Z axis labels to 3D VRML files.
  
May 2002     Changed from function-based automatic differentiation to
equation-based automatic differentiation with a large decrease
in fitting time, especially for more complex equations.
  
April-May 2002     Added 3D VRML files for model, absolute error, and relative
error.
Hall Of Fame

May 2008     James McLaughlin
Consulting Engineer
Allentown, PA USA

Discovered a function-finder related problem fitting
nonlinear equations and generously assisted in correcting
the problem.
May 2008     Professor Nagalla Sudhakar
Department of Computer Science and Engineering
Bapatla Engineering College
Andhra Pradesh, India

Discovered an error in the (new) offset forms of equations
and generously assisted in correcting the problem. Thank
you again for your help, Professor Sudhakar.
May 2008     Rick Becker
Transonic Combustion

Discovered an error in the VRML generation.
May 2008     James McLaughlin
Consulting Engineer
Allentown, PA USA

Discovered an error in the newly integrated site code and
generously assisted in correcting the problem.
April 2008     Andrea Raviglione

Discovered extraneous semicolons in the SCILAB and MATLAB
source code output for several equations.
March 2008     Dan Barton

Discovered a coding error in NIST Eckerle4 - Thanks, Dan!
February 2008     Michal Szymanski
Warsaw University Observatory
Warszawa, POLAND

Suggested 3D Full Polynomials.
April 2007     Don Gillies
San Diego, Ca USA

Discovered a bug where several offset forms of equations had
typographical errors in the SCILAB and MATLAB output code.
April 2007     Dr. Manuel L. Quiroga Teixeiro
Gridcore AB
Sweden

Discovered and generously assisted in testing the fix for
a typo that invalidated the Standard Vapor Pressure results.
April 2007     Gary Cler
Colorado, USA

Suggested Gary Cler's Custom Equation.
December 2006     John Reilly
Barron Associates, Inc.

Discovered and generously assisted in testing the fix for
MATLAB code element-wise multiplication and comment designator.
November 2006     Dave W.
Editor and administrator
Skeptic Friends Network

Suggested adding Simple Exponential equation.
November 2006     James A. Bowery

Suggested adding Offset Exponential equation.
November 2006     Steve Hutcheon
Brisbane, Australia

Suggested adding Standard Error of the Mean to statistics.
November 2006     Steve Hutcheon
Brisbane, Australia

Found errors in the site histogram calculations.
June 2006     Fraser W. Smith
Postdoctoral Research Assistant
Department of Psychology
University of Glasgow

Suggested Fraser Smith 3D Sigmoid equations.
June 2006     jinydu
Sophomore, UCLA

Suggested Sine A [radians] With Exponential Decay equation.
June 2006     Andrea Li, Ph. D.
State University of New York
College of Optometry

Corrected the new MATLAB code output.
May 2006     Alexander Rosemann
University of British Columbia

Suggested MATLAB code output.
May 2006     Douglas C. Eberle
Southwest Research Institute
San Antonio, Texas USA

Corrected the SCILAB source code output.
May 2006     Steve Hutcheon
Brisbane, Australia

Found typographical errors in the Lorentzian Peak equations.
May 2006     Steve Hutcheon
Brisbane, Australia

Found scaling bug in data graphs.
May 2006     Ben Shipway

Found typographical errors in Sigmoid 3D source code.
May 2006     Darren W. Wade
Lockheed Martin

Found a typographical error in Taylor 3D series C# source code.
April 2006     Liping Zheng

Suggested "Liping Zheng's core loss coefficients" equation.
April 2006     Hank Poellnitz
Birmingham, Alabama USA

Suggested user control to turn scientific notation on and off.
April 2006     Don Parker

Gave major assistance pinning down and testing the fix for
the function finders giving "no session data" errors.
February 2006     Steve Hutcheon
Brisbane, Australia

Suggested Sine D and Sine D with Offset equations.
January 2006     Karl Skinner
Siemens

Suggested conversion of 2D polynomial evaluations to the
numerically more efficient Horner, or nested, form.
December 2005     David Zaks
University of Wisconsin - Madison
Madison, Wisconsin USA

Discovered and generously assisted in testing the fix for
occasional blank pages when fitting.
December 2005     Steve Hutcheon
Brisbane, Australia

Suggested adding fitting target result to individual
fitting result pages (under Coefficients - James).
August 2005     Steve Hutcheon
Brisbane, Australia

Found that the function finders did not report
errors correctly.
August 2005     Steve Hutcheon
Brisbane, Australia

Found an error when fitting a data set with a zero to
the smallest peak absolute value of error.
June 2005     A. A. Yazdani

Suggested Ramberg-Osgood equation.
June 2005     Fei Yu
Complex Carbohydrate Research Center
University of Georgia
Athens, Georgia USA

Suggested new 2D Trigonometric equations.
June 2005     David Zaks
University of Wisconsin - Madison
Madison, Wisconsin USA

Suggested 3D Sigmoidal equation.
April 2005     Tore Opsahl
London, England

Suggested Power Law With Exponential Cutoff equation.
January 2005     Keith Coombe
Australia

Suggested SCILAB code generation.
December 2004     Chris
United Kingdom

Corrected calculation of lowest sum of squared relative error.
December 2004     Venkat Venkataramani
San Francisco, USA

Suggested options for absolute graph scaling.
December 2004     Zainal Kadir
University of Manchester, UK

Suggested addition of the Weibull CDF and PDF equations.
October 2004     Klaus Lamprecht
University of Erlangen-Nuremberg

Suggested addition of the Hocket-Sherby exponential equation.
September 2004     Gordon Ingram
University of Queensland
Brisbane, Australia

Found an error in the site implentation of the NIST MGH17 equation.
September 2004     Steve Hutcheon
Brisbane, Australia

Found that the new code did not display two data graphs.
Found an error in the site's statistics module.
Late July 2004     Jing-Fang Pan
and
Yiew-Wang Lee
DSO National Laboratories
Singapore

Used the site for their paper Crystal density prediction for
cyclic and cage compounds
, Phys. Chem. Chem. Phys., 2004, 6 (3),
471 - 473
and gave the site a reference in the paper. Thank you.!
Early July 2004     Steve Hutcheon
Brisbane, Australia

Suggested and generously assisted in testing the option
for fitting to the smallest peak absolute value of error.
May 2004     Gokhan Tolun
Ph.D. candidate in Molecular Biology and Biochemistry

Found a typo in the display of Lorentzian Peak equations, and
gave several references to biochemical and enzyme kinetic equations.
July 2003     Naser Zamanan
Kuwait

Found a problem where the site did not show sufficient digits
of precision for fitted coefficients.
July 2003     Carl Witthoft

Suggested addition of trigonometric functions, and generously
assisted in both testing and troubleshooting the new functions.
January 2003     Kazbek Karayev

Suggested addition of model extrapolation control. Cool!
August-September 2002     Kieran Maher
Australia

Inspired C++, Java and Python source code for the fitted
function with fitted coefficients already in place.

Personal Note: Bloody brilliant idea, mate!
July 2002     Roxanne Byrne
Associate Professor Mathematics
University of Colorado at Denver

and

Michael Bonomo
Student in Algebra for Business and Social Sciences
University of Colorado at Denver

discovered and generously assisted in fixing the 2D Logistics
equation bug. Many thanks!
Wish List

April 2006     Don Parker

Add Discrete Fourier Transforms (basically FFTs).
March 04, 2006     Jeroen Demeyer
University of Ghent
Flanders, Belgium

Allow logarithmic plots of data.
June 13, 2005     Art Blair
University of Wisconsin - Madison
Madison, Wisconsin USA

Enable data file uploads.
May 18, 2005     David Zaks
University of Wisconsin - Madison
Madison, Wisconsin USA

Allow user to force intercept - i.e.,
force a curve to pass through the origin.
April, 2005     Tore Opsahl
London, England

Add r2 to the fit statistics.
January 20, 2005     Dan Chalom

Allow user-defined equations.
Work In Progress


1) Convert the site code to use parallel computations.
2) Test the Opera web browser with site javacript code
3) Add fit statistics such as covariance, parameter standard errors, etc.
4) Redesign the site to run under Pylons instead of Skunkweb
5) Correct the Initial Fitting Coefficients for polyXial equations
6) Add r2 to the fit statistics
7) Add Nyquist checks to the polyfunctionals
8) Add data translation, normalization and transformation
9) Add help system and tutorials
Characterize Data

Characterize 1D (X) Data
Characterize 2D (XY) Data
Characterize 3D (XYZ) Data





2D Function Finder

2D Function Finder





3D Function Finder

3D Function Finder





Feedback

Enter comments, questions, or general feedback here then press
"Send Feedback". Suggestions for equations are always welcome.
Your email address isn't required unless you'd like a reply.
If you'd prefer to email me directly, use zunzun@zunzun.com.




Email Address for Reply (optional)

Contribute

I would prefer that a non-profit charitable organization own,
operate and manage stronger computer equipment to run this
site. Ideally the site source code would be released under
an open source license as well. I have started by releasing
the middleware under a BSD license at Python Equations.

If anyone would be interested in funding or operating such a
non-profit, please let me know by using the Feedback section.
Server Load

ZunZun.com is hosted on Linode 720 Xen 4-core virtual server.

Load < 4 means the server cores are running with a light load.
Load = 4 means the server cores each average 100% CPU with a single user.
Load > 4 means the server cores each average 100% CPU with multiple users.


Virtual server load for the last 24 hours:


Virtual server load for the last 30 days: