Esempio n. 1
0
    def test_error_makes_ndarray(self):
        data = Data()
        data.error = (0.1, None)
        assert_allclose(data.error[0], numpy.array(0.1))
        eq_(data.error[1], None)

        data.error = ([0.1, 0.2], None)
        assert_allclose(data.error[0], numpy.array([0.1, 0.2]))
        eq_(data.error[1], None)

        data.error = (0.1, 0.2)
        assert_allclose(data.error[0], numpy.array(0.1))
        assert_allclose(data.error[1], numpy.array(0.2))

        data.error = (0.1, [0.1, 0.2])
        assert_allclose(data.error[0], numpy.array(0.1))
        assert_allclose(data.error[1], numpy.array([0.1, 0.2]))
Esempio n. 2
0
import sympy

from example_helper import save_example_fit
from scipy_data_fitting import Data, Model, Fit

#
# Example of a fit to a sine wave with error bars.
#

name = 'wave'

# Load data from a csv file.
data = Data(name)
data.path = os.path.join('examples','data', 'wave.csv')
data.genfromtxt_args['skip_header'] = 1
data.error = (0.1, 0.05)

# Create a wave model.
model = Model(name)
model.add_symbols('t', 'A', 'ω', 'δ')
A, t, ω, δ = model.get_symbols('A', 't', 'ω', 'δ')
model.expressions['wave'] = A * sympy.functions.sin(ω * t + δ)
model.expressions['frequency'] = ω / (2 * sympy.pi)

# Create the fit using the data and model.
fit = Fit(name, data=data, model=model)
fit.expression = 'wave'
fit.independent = {'symbol': 't', 'name': 'Time', 'units': 's'}
fit.dependent = {'name': 'Voltage', 'prefix': 'kilo', 'units': 'kV'}
fit.parameters = [
    {'symbol': 'A', 'value': 0.3, 'prefix': 'kilo', 'units': 'kV'},