This is companion code to a manuscript submitted to Mathematical Geosciences


A supplemental Matlab function “multibells.m” is included with the manuscript:

Conder, J.A., Fitting multiple bell curves stably and accurately to a time series as applied to Hubbert cycles or other phenomena, Mathematical Geosciences, DOI: 10.1007/s11004-014-9557-7, 2014

This function will fit multiple Gaussians or logistic derivatives (“Hubbert curves”) to a time series. It jointly fits them in a least squares sense, using the algorithm explained in the above manuscript. This is a more robust and accurate (and somewhat easier to use) function than the previously published function for Anderson and Conder, 2011. The function was written in Matlab ver. R20131 (Mac).


>> [Ppre, p, RMSE, pseed] = multibells(t,P,n);

The function requires three inputs: t is time (or other independent variable). P is the data to be fit by n bell curves. The function defaults to Gaussians, but will fit logistic derivatives by including the argument ‘Hubbert’ or ‘logistic’ as an additional input.

Up to 4 outputs: Ppre is a vector of predicted data. p contains the parameters (mu, sigma, A) of the best fitting n curves. RMSE is the root mean squared error and pseed contains the parameters of the seed curves. An example script, fit_bells_example.m, is included.

Jan 3, 2014

James Conder