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.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef9600f50f03d7cfbecf811defd035e6f19d9ee5ca99e9f768d93dc643528e63 |
|
MD5 | 85cb3a162217d84cbca37632be142bca |
|
BLAKE2b-256 | e0481981f17ab50c661bdabc320ac8c81a3a5f2be4439c0c8a8db8d8b8190c97 |