Symbolic Fitting; fitting as it should be.
Project description
Documentation: http://symfit.readthedocs.org/
This project aims to marry the power of scipy.optimize with the readability of SymPy to create a highly readable and easy to use fitting package which works for projects of any scale.
symfit is designed to be very readable:
x = variables('x') A, sig, x0 = parameters('A, sig, x0') # Gaussian distribution gaussian = A * exp(-(x - x0)**2 / (2 * sig**2)) fit = Fit(gaussian, xdata, ydata) fit_result = fit.execute()
You can also name dependent variables, allowing for sexy assignment of data:
x, y = variables('x, y') model = {y: a * x**2} fit = Fit(model, x=xdata, y=ydata, sigma_y=sigma) fit.execute()
Constraint maximization has never been this easy:
x, y = parameters('x, y') model = 2*x*y + 2*x - x**2 -2*y**2 constraints = [ Eq(x**3 - y, 0), Ge(y - 1, 0), ] fit = Maximize(model, constraints=constraints) fit_result = fit.execute()
And evaluating a model with the best fit parameters is easy since symfit expressions are callable:
y = gaussian(x=xdata, **fit_result.params)
For many more features such as bounds on Parameter’s, maximum-likelihood fitting, and much more check the docs at http://symfit.readthedocs.org/.
You can find symfit on github at https://github.com/tBuLi/symfit.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for symfit-0.3.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ab21ad8139809ea95867e1ce488ff5c4082a5f40bf77b5274f8c7232076b09a |
|
MD5 | a9336800f1e79c16fc8c556bfcba3027 |
|
BLAKE2b-256 | 2167fa99de2c7e0de91fc587a23fa540bc9670a454dcb2c254b23620fd4d100c |