Symbolic Fitting; fitting as it should be.
Project description
Documentation
Project Goals
The goal of this project is simple: to make fitting in Python sexy and pythonic. What does pythonic fitting look like? Well, there’s a simple test. If I can give you pieces of example code and don’t have to use any additional words to explain what it does, it’s pythonic.
from symfit import parameters, variables, Fit
xdata = [1.0, 2.0, 3.0, 4.0, 5.0]
ydata = [2.3, 3.3, 4.1, 5.5, 6.7]
yerr = [0.1, 0.1, 0.1, 0.1, 0.1]
a, b = parameters('a, b')
x, y = variables('x, y')
model = {y: a * x + b}
fit = Fit(model, x=xdata, y=ydata, sigma_y=yerr)
fit_result = fit.execute()
Cool right? So now that we have done a fit, how do can we use the results?
import matplotlib.pyplot as plt y = model(x=xdata, **fit_result.params) plt.plot(xdata, y) plt.show()
Need I say more? How about I let another code example do the talking?
from symfit import parameters, Maximize, Equality, GreaterThan
x, y = parameters('x, y')
model = 2 * x * y + 2 * x - x**2 - 2 * y**2
constraints = [
Equality(x**3, y),
GreaterThan(y, 1),
]
fit = Maximize(model, constraints=constraints)
fit_result = fit.execute()
“But what if I need to fit to an ODE?”
from symfit import variables, Parameter, ODEModel, Fit, D
tdata = np.array([10, 26, 44, 70, 120])
adata = 10e-4 * np.array([44, 34, 27, 20, 14])
a, b, t = variables('a, b, t')
k = Parameter(0.1)
model_dict = {
D(a, t): - k * a**2,
D(b, t): k * a**2,
}
ode_model = ODEModel(model_dict, initial={t: 0.0, a: 54 * 10e-4, b: 0.0})
fit = Fit(ode_model, t=tdata, a=adata, b=None)
fit_result = fit.execute()
For more fitting delight, check the docs at http://symfit.readthedocs.org.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file symfit-0.3.3.dev155.tar.gz.
File metadata
- Download URL: symfit-0.3.3.dev155.tar.gz
- Upload date:
- Size: 867.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee7de03170a3a5987d3d20aa035166492462f98b99123c0496eeb354da877148
|
|
| MD5 |
cbf9928517d3b64a33f87b2cf7c285ab
|
|
| BLAKE2b-256 |
902841260c3cbbc63e7bbcc9ba13ad9e8b8cf9951db5723feeb376aa186e0cf9
|
File details
Details for the file symfit-0.3.3.dev155-py2.py3-none-any.whl.
File metadata
- Download URL: symfit-0.3.3.dev155-py2.py3-none-any.whl
- Upload date:
- Size: 37.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
672f1e8b8f078dec2db5a9db2db7d536c3c8593dc182e624486b30d8609552fb
|
|
| MD5 |
dc2da90c2f53ebc38a963f2d9ba4cf21
|
|
| BLAKE2b-256 |
efab8d1f93ce9af1211307b1582624743388368ebc7856f4c0a7300c0d6014f3
|